{"version":3,"file":"js/chunk-vendors.90cc0c0e.js","mappings":"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,SAChB0B,KAAKyme,cAAcnoe,SACf0B,KAAKume,kBACRvme,KAAKume,gBAAgBjoe,SACrB0B,KAAKume,gBAAkB,MAIxBvme,KAAKwle,WAAa,GAClBxle,KAAKyle,oBAAsB,GAC3Bzle,KAAK4le,iBAAmB,CAAC,EAErB5le,KAAKile,SAERjle,KAAKile,OAAO/6b,OAAS,KACrBlqC,KAAKile,OAAO76b,UAAY,KACxBpqC,KAAKile,OAAOjoe,QAAU,KACtBgD,KAAKile,OAAOv8b,QAAU,KACS,IAA3B1oC,KAAKile,OAAOtoe,YACfqD,KAAKile,OAAOt8b,eACN3oC,KAAKile,QAGTjle,KAAKkme,eAAekB,MAAQpne,KAAKmme,UAAYnme,KAAKkme,eAAekB,KAAKxme,OAAO,EAEhFZ,KAAKmme,YACLnme,KAAKqne,WAAWrne,KAAKkme,eAAekB,KAAKpne,KAAKmme,iBAS9C,QANkBzoe,IAAdwjC,IACHA,EAAYgmC,EAAMw5Z,GAAG18d,KACrBime,EAAYx0W,EAAOvuD,EAAMw5Z,KAItB1ge,KAAKgme,WAMR,GALAhme,KAAKgme,WAAY,EAEbhme,KAAKgiC,kBACRhiC,KAAKgiC,iBAAiB,CAACd,UAAUA,EAAWiwB,aAAa84a,EAAWF,UAAU/pe,KAAKkme,eAAe6D,UAAWtoU,IAAIzhK,KAAKsle,SAEnHpkc,IAAcgmC,EAAMw5Z,GAAG18d,MAAQhE,KAAKkme,eAAe6D,UAItD,OAFA/pe,KAAK0me,mBAAqB,OAC1B1me,KAAKgqe,kBAKkC,IAApChqe,KAAKkme,eAAe9jc,cAAiE,IAA5CpiC,KAAKkme,eAAegE,qBAChElqe,KAAKgle,OAAO,6CACZhle,KAAKkme,eAAe9jc,YAAc,EAC9BpiC,KAAKkme,eAAekB,MACvBpne,KAAKmme,UAAY,EACjBnme,KAAKqne,WAAWrne,KAAKkme,eAAekB,KAAK,KAEzCpne,KAAKqne,WAAWrne,KAAKyhK,MAEbzhK,KAAKkme,eAAe5jc,WAC7BtiC,KAAKkme,eAAe5jc,UAAU,CAACklc,kBAAkBxne,KAAKkme,eAAesB,kBAAmBtm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","sources":["webpack://missanriscn/./node_modules/@aws-amplify/api-graphql/lib-esm/types/index.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/index.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/adapters/xhr.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/axios.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/cancel/Cancel.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/cancel/CancelToken.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/cancel/isCancel.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/Axios.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/InterceptorManager.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/buildFullPath.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/createError.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/dispatchRequest.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/enhanceError.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/mergeConfig.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/settle.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/transformData.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/defaults.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/env/data.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/bind.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/buildURL.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/combineURLs.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/cookies.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/isAxiosError.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/parseHeaders.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/spread.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/validator.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/utils.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Signer.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/lib-esm/RestClient.js","webpack://missanriscn/./node_modules/@aws-amplify/api-rest/lib-esm/RestAPI.js","webpack://missanriscn/./node_modules/graphql/jsutils/isObjectLike.mjs","webpack://missanriscn/./node_modules/graphql/polyfills/symbols.mjs","webpack://missanriscn/./node_modules/graphql/language/location.mjs","webpack://missanriscn/./node_modules/graphql/language/printLocation.mjs","webpack://missanriscn/./node_modules/graphql/error/GraphQLError.mjs","webpack://missanriscn/./node_modules/graphql/error/syntaxError.mjs","webpack://missanriscn/./node_modules/graphql/language/kinds.mjs","webpack://missanriscn/./node_modules/graphql/jsutils/invariant.mjs","webpack://missanriscn/./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","webpack://missanriscn/./node_modules/graphql/jsutils/defineInspect.mjs","webpack://missanriscn/./node_modules/graphql/language/ast.mjs","webpack://missanriscn/./node_modules/graphql/language/tokenKind.mjs","webpack://missanriscn/./node_modules/graphql/jsutils/inspect.mjs","webpack://missanriscn/./node_modules/graphql/jsutils/devAssert.mjs","webpack://missanriscn/./node_modules/graphql/jsutils/instanceOf.mjs","webpack://missanriscn/./node_modules/graphql/language/source.mjs","webpack://missanriscn/./node_modules/graphql/language/directiveLocation.mjs","webpack://missanriscn/./node_modules/graphql/language/blockString.mjs","webpack://missanriscn/./node_modules/graphql/language/lexer.mjs","webpack://missanriscn/./node_modules/graphql/language/parser.mjs","webpack://missanriscn/./node_modules/graphql/language/visitor.mjs","webpack://missanriscn/./node_modules/graphql/language/printer.mjs","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/constants.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/constants.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/PubSubProvider.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/lib-esm/utils/ReachabilityMonitor/index.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/lib-esm/utils/ConnectionStateMonitor.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/MqttOverWSProvider.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncProvider.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/index.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/lib-esm/PubSub.js","webpack://missanriscn/./node_modules/@aws-amplify/api-graphql/lib-esm/GraphQLAPI.js","webpack://missanriscn/./node_modules/@aws-amplify/api/lib-esm/API.js","webpack://missanriscn/./node_modules/universal-cookie/es6/utils.js","webpack://missanriscn/./node_modules/universal-cookie/es6/Cookies.js","webpack://missanriscn/./node_modules/universal-cookie/es6/index.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Util/StringUtils.js","webpack://missanriscn/./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js","webpack://missanriscn/./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js","webpack://missanriscn/./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js","webpack://missanriscn/./node_modules/@aws-amplify/auth/lib-esm/urlListener.js","webpack://missanriscn/./node_modules/@aws-amplify/auth/lib-esm/Errors.js","webpack://missanriscn/./node_modules/@aws-amplify/auth/lib-esm/Auth.js","webpack://missanriscn/./node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js","webpack://missanriscn/./node_modules/@aws-amplify/auth/lib-esm/index.js","webpack://missanriscn/./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js","webpack://missanriscn/./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js","webpack://missanriscn/./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js","webpack://missanriscn/./node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js","webpack://missanriscn/./node_modules/@aws-amplify/cache/lib-esm/index.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Amplify.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js","webpack://missanriscn/./node_modules/@aws-sdk/client-cognito-identity/node_modules/tslib/tslib.es6.mjs","webpack://missanriscn/./node_modules/@aws-sdk/client-cognito-identity/dist/es/models/models_0.js","webpack://missanriscn/./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js","webpack://missanriscn/./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js","webpack://missanriscn/./node_modules/@aws-sdk/property-provider/dist/es/ProviderError.js","webpack://missanriscn/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/resolveLogins.js","webpack://missanriscn/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentity.js","webpack://missanriscn/./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js","webpack://missanriscn/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/IndexedDbStorage.js","webpack://missanriscn/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/InMemoryStorage.js","webpack://missanriscn/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/localStorage.js","webpack://missanriscn/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentityPool.js","webpack://missanriscn/./node_modules/@aws-sdk/client-cognito-identity/dist/es/endpoints.js","webpack://missanriscn/./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.shared.js","webpack://missanriscn/./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.browser.js","webpack://missanriscn/./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Util/CognitoIdentityClient.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Credentials.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Hub.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/I18n/index.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/JS.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Util/Constants.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Parser.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Platform/version.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Platform/index.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Util/Reachability.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Util/Retry.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Util/BackgroundProcessManager.js","webpack://missanriscn/./node_modules/@aws-amplify/api/lib-esm/index.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/authModeStrategies/multiAuthStrategy.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/utils.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/authModeStrategies/defaultAuthStrategy.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/predicates/sort.js","webpack://missanriscn/./node_modules/@aws-amplify/core/lib-esm/Util/Mutex.js","webpack://missanriscn/./node_modules/idb/build/esm/wrap-idb-value.js","webpack://missanriscn/./node_modules/idb/build/esm/index.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/IndexedDBAdapter.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/InMemoryStore.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/AsyncStorageDatabase.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/AsyncStorageAdapter.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/getDefaultAdapter/index.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/storage/storage.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/datastoreReachability/index.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/datastoreConnectivity.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/merger.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/outbox.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/processors/errorMaps.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/processors/mutation.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/processors/subscription.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/index.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/sync/processors/sync.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/datastore/datastore.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/predicates/index.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/types.js","webpack://missanriscn/./node_modules/ulid/dist/index.esm.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/lib-esm/util.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/node_modules/uuid/index.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/node_modules/uuid/lib/bytesToUuid.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/node_modules/uuid/lib/rng-browser.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/node_modules/uuid/v1.js","webpack://missanriscn/./node_modules/@aws-amplify/datastore/node_modules/uuid/v4.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/lib-esm/types/PubSub.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/node_modules/uuid/index.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/bytesToUuid.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/rng-browser.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/node_modules/uuid/v1.js","webpack://missanriscn/./node_modules/@aws-amplify/pubsub/node_modules/uuid/v4.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/node_modules/tslib/tslib.es6.mjs","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/models/models_0.js","webpack://missanriscn/./node_modules/@aws-sdk/xml-builder/dist/es/escape-attribute.js","webpack://missanriscn/./node_modules/@aws-sdk/xml-builder/dist/es/XmlNode.js","webpack://missanriscn/./node_modules/@aws-sdk/xml-builder/dist/es/escape-element.js","webpack://missanriscn/./node_modules/@aws-sdk/xml-builder/dist/es/XmlText.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/protocols/Aws_restXml.js","webpack://missanriscn/./node_modules/@aws-sdk/util-arn-parser/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostnameUtils.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostname.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketEndpointMiddleware.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/configurations.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-sdk-s3/dist/es/validate-bucket-name.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-sdk-s3/dist/es/use-regional-endpoint.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-sdk-s3/dist/es/throw-200-exceptions.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-ssec/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/CopyObjectCommand.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/GetObjectCommand.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/DeleteObjectCommand.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/ListObjectsV2Command.js","webpack://missanriscn/./node_modules/@aws-sdk/util-format-url/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/util-create-request/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/common/StorageErrorStrings.js","webpack://missanriscn/./node_modules/@aws-sdk/s3-request-presigner/dist/es/constants.js","webpack://missanriscn/./node_modules/@aws-sdk/s3-request-presigner/dist/es/presigner.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/providers/axios-http-handler.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/common/StorageConstants.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/common/StorageUtils.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/Int64.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/HeaderMarshaller.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/splitMessage.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/EventStreamMarshaller.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getChunkedStream.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getUnmarshalledStream.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-serde-universal/dist/es/EventStreamMarshaller.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-serde-browser/dist/es/utils.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-serde-browser/dist/es/EventStreamMarshaller.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-serde-browser/dist/es/provider.js","webpack://missanriscn/./node_modules/@aws-sdk/chunked-blob-reader/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/hash-blob-browser/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/md5-js/dist/es/constants.js","webpack://missanriscn/./node_modules/@aws-sdk/md5-js/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/endpoints.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.shared.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.browser.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-serde-config-resolver/dist/es/EventStreamSerdeConfig.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-expect-continue/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/models/models_1.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/S3Client.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/common/S3ClientUtils.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/PutObjectCommand.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/CreateMultipartUploadCommand.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/UploadPartCommand.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3UploadTask.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/CompleteMultipartUploadCommand.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/AbortMultipartUploadCommand.js","webpack://missanriscn/./node_modules/@aws-sdk/client-s3/dist/es/commands/ListPartsCommand.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3ProviderManagedUpload.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3Provider.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/Storage.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/lib-esm/index.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/index.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/adapters/xhr.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/axios.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/cancel/Cancel.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/cancel/CancelToken.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/cancel/isCancel.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/core/Axios.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/core/InterceptorManager.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/core/buildFullPath.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/core/createError.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/core/dispatchRequest.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/core/enhanceError.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/core/mergeConfig.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/core/settle.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/core/transformData.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/defaults.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/env/data.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/bind.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/buildURL.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/combineURLs.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/cookies.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/isAxiosError.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/parseHeaders.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/spread.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/validator.js","webpack://missanriscn/./node_modules/@aws-amplify/storage/node_modules/axios/lib/utils.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/esm-es5/Translations-108d469f.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/esm-es5/auth-types-78df304e.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/esm-es5/constants-c8ecaa24.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/esm-es5/helpers-14fcb50c.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/esm-es5/index-83f2275b.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/esm-es5/storage-types-f257c0f2.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-vue/node_modules/@aws-amplify/ui-components/dist/esm/polyfills/index.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-vue/node_modules/@aws-amplify/ui-components/dist/esm-es5/theme-19a9209a.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-vue/node_modules/@aws-amplify/ui-components/dist/esm-es5/loader.mjs","webpack://missanriscn/./node_modules/@aws-amplify/ui-vue/node_modules/@aws-amplify/ui-components/dist/loader/index.mjs","webpack://missanriscn/./node_modules/@aws-amplify/ui-vue/dist/index.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-vue/node_modules/@aws-amplify/ui-components/dist/esm-es5/index-83f2275b.js","webpack://missanriscn/./node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","webpack://missanriscn/./node_modules/@aws-crypto/ie11-detection/build/Key.js","webpack://missanriscn/./node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","webpack://missanriscn/./node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","webpack://missanriscn/./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","webpack://missanriscn/./node_modules/@aws-crypto/ie11-detection/build/index.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/build/constants.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/build/index.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/index.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-js/build/index.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","webpack://missanriscn/./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-crypto/supports-web-crypto/build/index.js","webpack://missanriscn/./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","webpack://missanriscn/./node_modules/@aws-crypto/util/build/convertToBuffer.js","webpack://missanriscn/./node_modules/@aws-crypto/util/build/index.js","webpack://missanriscn/./node_modules/@aws-crypto/util/build/isEmptyData.js","webpack://missanriscn/./node_modules/@aws-crypto/util/build/numToUint8.js","webpack://missanriscn/./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","webpack://missanriscn/./node_modules/@aws-sdk/config-resolver/dist/es/EndpointsConfig.js","webpack://missanriscn/./node_modules/@aws-sdk/config-resolver/dist/es/RegionConfig.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/crc32/build/aws_crc32.js","webpack://missanriscn/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/crc32/build/index.js","webpack://missanriscn/./node_modules/@aws-sdk/fetch-http-handler/dist/es/request-timeout.js","webpack://missanriscn/./node_modules/@aws-sdk/fetch-http-handler/dist/es/fetch-http-handler.js","webpack://missanriscn/./node_modules/@aws-sdk/fetch-http-handler/dist/es/stream-collector.js","webpack://missanriscn/./node_modules/@aws-sdk/invalid-dependency/dist/es/invalidProvider.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-content-length/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-host-header/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-logger/dist/es/loggerMiddleware.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/dist/es/retryMiddleware.js","webpack://missanriscn/./node_modules/@aws-sdk/service-error-classification/dist/es/constants.js","webpack://missanriscn/./node_modules/@aws-sdk/service-error-classification/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/dist/es/constants.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultRetryQuota.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/dist/es/delayDecider.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/dist/es/retryDecider.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultStrategy.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/dist/es/configurations.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/index.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/bytesToUuid.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/rng-browser.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v1.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v4.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-serde/dist/es/deserializerMiddleware.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-serde/dist/es/serializerMiddleware.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-serde/dist/es/serdePlugin.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-signing/dist/es/configurations.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-signing/dist/es/middleware.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-user-agent/dist/es/configurations.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-user-agent/dist/es/constants.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-user-agent/dist/es/user-agent-middleware.js","webpack://missanriscn/./node_modules/@aws-sdk/protocol-http/dist/es/httpResponse.js","webpack://missanriscn/./node_modules/@aws-sdk/protocol-http/dist/es/httpRequest.js","webpack://missanriscn/./node_modules/@aws-sdk/querystring-builder/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/constants.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js","webpack://missanriscn/./node_modules/@aws-sdk/is-array-buffer/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js","webpack://missanriscn/./node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js","webpack://missanriscn/./node_modules/@aws-sdk/middleware-stack/dist/es/MiddlewareStack.js","webpack://missanriscn/./node_modules/@aws-sdk/smithy-client/dist/es/client.js","webpack://missanriscn/./node_modules/@aws-sdk/smithy-client/dist/es/command.js","webpack://missanriscn/./node_modules/@aws-sdk/smithy-client/dist/es/extended-encode-uri-component.js","webpack://missanriscn/./node_modules/@aws-sdk/smithy-client/dist/es/get-array-if-single-item.js","webpack://missanriscn/./node_modules/@aws-sdk/smithy-client/dist/es/get-value-from-text-node.js","webpack://missanriscn/./node_modules/@aws-sdk/smithy-client/dist/es/lazy-json.js","webpack://missanriscn/./node_modules/@aws-sdk/smithy-client/dist/es/date-utils.js","webpack://missanriscn/./node_modules/@aws-sdk/smithy-client/dist/es/constants.js","webpack://missanriscn/./node_modules/@aws-sdk/querystring-parser/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/url-parser/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/util-base64-browser/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/util-body-length-browser/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/util-hex-encoding/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/util-locate-window/dist-es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","webpack://missanriscn/./node_modules/@aws-sdk/util-user-agent-browser/dist/es/index.js","webpack://missanriscn/./node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","webpack://missanriscn/./node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","webpack://missanriscn/./node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","webpack://missanriscn/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/BigInteger.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/DateHelper.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/StorageHelper.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/CognitoUser.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/Platform/version.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/Platform/index.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/UserAgent.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/Client.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","webpack://missanriscn/./node_modules/amazon-cognito-identity-js/es/CookieStorage.js","webpack://missanriscn/./node_modules/aws-sdk/clients/acm.js","webpack://missanriscn/./node_modules/aws-sdk/clients/amp.js","webpack://missanriscn/./node_modules/aws-sdk/clients/apigateway.js","webpack://missanriscn/./node_modules/aws-sdk/clients/applicationautoscaling.js","webpack://missanriscn/./node_modules/aws-sdk/clients/athena.js","webpack://missanriscn/./node_modules/aws-sdk/clients/autoscaling.js","webpack://missanriscn/./node_modules/aws-sdk/clients/browser_default.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cloudformation.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cloudfront.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cloudhsm.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cloudhsmv2.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cloudtrail.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cloudwatch.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cloudwatchevents.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cloudwatchlogs.js","webpack://missanriscn/./node_modules/aws-sdk/clients/codebuild.js","webpack://missanriscn/./node_modules/aws-sdk/clients/codecommit.js","webpack://missanriscn/./node_modules/aws-sdk/clients/codedeploy.js","webpack://missanriscn/./node_modules/aws-sdk/clients/codepipeline.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cognitoidentity.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cognitosync.js","webpack://missanriscn/./node_modules/aws-sdk/clients/comprehend.js","webpack://missanriscn/./node_modules/aws-sdk/clients/comprehendmedical.js","webpack://missanriscn/./node_modules/aws-sdk/clients/configservice.js","webpack://missanriscn/./node_modules/aws-sdk/clients/connect.js","webpack://missanriscn/./node_modules/aws-sdk/clients/costexplorer.js","webpack://missanriscn/./node_modules/aws-sdk/clients/cur.js","webpack://missanriscn/./node_modules/aws-sdk/clients/devicefarm.js","webpack://missanriscn/./node_modules/aws-sdk/clients/directconnect.js","webpack://missanriscn/./node_modules/aws-sdk/clients/dynamodb.js","webpack://missanriscn/./node_modules/aws-sdk/clients/dynamodbstreams.js","webpack://missanriscn/./node_modules/aws-sdk/clients/ec2.js","webpack://missanriscn/./node_modules/aws-sdk/clients/ecr.js","webpack://missanriscn/./node_modules/aws-sdk/clients/ecs.js","webpack://missanriscn/./node_modules/aws-sdk/clients/efs.js","webpack://missanriscn/./node_modules/aws-sdk/clients/elasticache.js","webpack://missanriscn/./node_modules/aws-sdk/clients/elasticbeanstalk.js","webpack://missanriscn/./node_modules/aws-sdk/clients/elastictranscoder.js","webpack://missanriscn/./node_modules/aws-sdk/clients/elb.js","webpack://missanriscn/./node_modules/aws-sdk/clients/elbv2.js","webpack://missanriscn/./node_modules/aws-sdk/clients/emr.js","webpack://missanriscn/./node_modules/aws-sdk/clients/firehose.js","webpack://missanriscn/./node_modules/aws-sdk/clients/forecastqueryservice.js","webpack://missanriscn/./node_modules/aws-sdk/clients/forecastservice.js","webpack://missanriscn/./node_modules/aws-sdk/clients/gamelift.js","webpack://missanriscn/./node_modules/aws-sdk/clients/iam.js","webpack://missanriscn/./node_modules/aws-sdk/clients/inspector.js","webpack://missanriscn/./node_modules/aws-sdk/clients/iot.js","webpack://missanriscn/./node_modules/aws-sdk/clients/iotanalytics.js","webpack://missanriscn/./node_modules/aws-sdk/clients/iotdata.js","webpack://missanriscn/./node_modules/aws-sdk/clients/kinesis.js","webpack://missanriscn/./node_modules/aws-sdk/clients/kinesisvideo.js","webpack://missanriscn/./node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js","webpack://missanriscn/./node_modules/aws-sdk/clients/kinesisvideomedia.js","webpack://missanriscn/./node_modules/aws-sdk/clients/kinesisvideosignalingchannels.js","webpack://missanriscn/./node_modules/aws-sdk/clients/kms.js","webpack://missanriscn/./node_modules/aws-sdk/clients/lambda.js","webpack://missanriscn/./node_modules/aws-sdk/clients/lexmodelbuildingservice.js","webpack://missanriscn/./node_modules/aws-sdk/clients/lexruntime.js","webpack://missanriscn/./node_modules/aws-sdk/clients/lexruntimev2.js","webpack://missanriscn/./node_modules/aws-sdk/clients/location.js","webpack://missanriscn/./node_modules/aws-sdk/clients/machinelearning.js","webpack://missanriscn/./node_modules/aws-sdk/clients/marketplacecatalog.js","webpack://missanriscn/./node_modules/aws-sdk/clients/marketplacecommerceanalytics.js","webpack://missanriscn/./node_modules/aws-sdk/clients/mediastoredata.js","webpack://missanriscn/./node_modules/aws-sdk/clients/mobileanalytics.js","webpack://missanriscn/./node_modules/aws-sdk/clients/mturk.js","webpack://missanriscn/./node_modules/aws-sdk/clients/opsworks.js","webpack://missanriscn/./node_modules/aws-sdk/clients/personalize.js","webpack://missanriscn/./node_modules/aws-sdk/clients/personalizeevents.js","webpack://missanriscn/./node_modules/aws-sdk/clients/personalizeruntime.js","webpack://missanriscn/./node_modules/aws-sdk/clients/polly.js","webpack://missanriscn/./node_modules/aws-sdk/clients/pricing.js","webpack://missanriscn/./node_modules/aws-sdk/clients/rds.js","webpack://missanriscn/./node_modules/aws-sdk/clients/redshift.js","webpack://missanriscn/./node_modules/aws-sdk/clients/rekognition.js","webpack://missanriscn/./node_modules/aws-sdk/clients/resourcegroups.js","webpack://missanriscn/./node_modules/aws-sdk/clients/route53.js","webpack://missanriscn/./node_modules/aws-sdk/clients/route53domains.js","webpack://missanriscn/./node_modules/aws-sdk/clients/s3.js","webpack://missanriscn/./node_modules/aws-sdk/clients/secretsmanager.js","webpack://missanriscn/./node_modules/aws-sdk/clients/servicecatalog.js","webpack://missanriscn/./node_modules/aws-sdk/clients/ses.js","webpack://missanriscn/./node_modules/aws-sdk/clients/sns.js","webpack://missanriscn/./node_modules/aws-sdk/clients/sqs.js","webpack://missanriscn/./node_modules/aws-sdk/clients/ssm.js","webpack://missanriscn/./node_modules/aws-sdk/clients/storagegateway.js","webpack://missanriscn/./node_modules/aws-sdk/clients/sts.js","webpack://missanriscn/./node_modules/aws-sdk/clients/translate.js","webpack://missanriscn/./node_modules/aws-sdk/clients/waf.js","webpack://missanriscn/./node_modules/aws-sdk/clients/workdocs.js","webpack://missanriscn/./node_modules/aws-sdk/clients/xray.js","webpack://missanriscn/./node_modules/aws-sdk/lib/api_loader.js","webpack://missanriscn/./node_modules/aws-sdk/lib/browser.js","webpack://missanriscn/./node_modules/aws-sdk/lib/browserCryptoLib.js","webpack://missanriscn/./node_modules/aws-sdk/lib/browserHashUtils.js","webpack://missanriscn/./node_modules/aws-sdk/lib/browserHmac.js","webpack://missanriscn/./node_modules/aws-sdk/lib/browserMd5.js","webpack://missanriscn/./node_modules/aws-sdk/lib/browserSha1.js","webpack://missanriscn/./node_modules/aws-sdk/lib/browserSha256.js","webpack://missanriscn/./node_modules/aws-sdk/lib/browser_loader.js","webpack://missanriscn/./node_modules/aws-sdk/lib/cloudfront/signer.js","webpack://missanriscn/./node_modules/aws-sdk/lib/config.js","webpack://missanriscn/./node_modules/aws-sdk/lib/config_regional_endpoint.js","webpack://missanriscn/./node_modules/aws-sdk/lib/core.js","webpack://missanriscn/./node_modules/aws-sdk/lib/credentials.js","webpack://missanriscn/./node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","webpack://missanriscn/./node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","webpack://missanriscn/./node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","webpack://missanriscn/./node_modules/aws-sdk/lib/credentials/saml_credentials.js","webpack://missanriscn/./node_modules/aws-sdk/lib/credentials/temporary_credentials.js","webpack://missanriscn/./node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","webpack://missanriscn/./node_modules/aws-sdk/lib/discover_endpoint.js","webpack://missanriscn/./node_modules/aws-sdk/lib/dynamodb/converter.js","webpack://missanriscn/./node_modules/aws-sdk/lib/dynamodb/document_client.js","webpack://missanriscn/./node_modules/aws-sdk/lib/dynamodb/numberValue.js","webpack://missanriscn/./node_modules/aws-sdk/lib/dynamodb/set.js","webpack://missanriscn/./node_modules/aws-sdk/lib/dynamodb/translator.js","webpack://missanriscn/./node_modules/aws-sdk/lib/dynamodb/types.js","webpack://missanriscn/./node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","webpack://missanriscn/./node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","webpack://missanriscn/./node_modules/aws-sdk/lib/event-stream/int64.js","webpack://missanriscn/./node_modules/aws-sdk/lib/event-stream/parse-event.js","webpack://missanriscn/./node_modules/aws-sdk/lib/event-stream/parse-message.js","webpack://missanriscn/./node_modules/aws-sdk/lib/event-stream/split-message.js","webpack://missanriscn/./node_modules/aws-sdk/lib/event_listeners.js","webpack://missanriscn/./node_modules/aws-sdk/lib/http.js","webpack://missanriscn/./node_modules/aws-sdk/lib/http/xhr.js","webpack://missanriscn/./node_modules/aws-sdk/lib/json/builder.js","webpack://missanriscn/./node_modules/aws-sdk/lib/json/parser.js","webpack://missanriscn/./node_modules/aws-sdk/lib/maintenance_mode_message.js","webpack://missanriscn/./node_modules/aws-sdk/lib/model/api.js","webpack://missanriscn/./node_modules/aws-sdk/lib/model/collection.js","webpack://missanriscn/./node_modules/aws-sdk/lib/model/operation.js","webpack://missanriscn/./node_modules/aws-sdk/lib/model/paginator.js","webpack://missanriscn/./node_modules/aws-sdk/lib/model/resource_waiter.js","webpack://missanriscn/./node_modules/aws-sdk/lib/model/shape.js","webpack://missanriscn/./node_modules/aws-sdk/lib/param_validator.js","webpack://missanriscn/./node_modules/aws-sdk/lib/polly/presigner.js","webpack://missanriscn/./node_modules/aws-sdk/lib/protocol/helpers.js","webpack://missanriscn/./node_modules/aws-sdk/lib/protocol/json.js","webpack://missanriscn/./node_modules/aws-sdk/lib/protocol/query.js","webpack://missanriscn/./node_modules/aws-sdk/lib/protocol/rest.js","webpack://missanriscn/./node_modules/aws-sdk/lib/protocol/rest_json.js","webpack://missanriscn/./node_modules/aws-sdk/lib/protocol/rest_xml.js","webpack://missanriscn/./node_modules/aws-sdk/lib/query/query_param_serializer.js","webpack://missanriscn/./node_modules/aws-sdk/lib/rds/signer.js","webpack://missanriscn/./node_modules/aws-sdk/lib/realclock/browserClock.js","webpack://missanriscn/./node_modules/aws-sdk/lib/region/utils.js","webpack://missanriscn/./node_modules/aws-sdk/lib/region_config.js","webpack://missanriscn/./node_modules/aws-sdk/lib/request.js","webpack://missanriscn/./node_modules/aws-sdk/lib/resource_waiter.js","webpack://missanriscn/./node_modules/aws-sdk/lib/response.js","webpack://missanriscn/./node_modules/aws-sdk/lib/s3/managed_upload.js","webpack://missanriscn/./node_modules/aws-sdk/lib/sequential_executor.js","webpack://missanriscn/./node_modules/aws-sdk/lib/service.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/apigateway.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/cloudfront.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/dynamodb.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/ec2.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/iotdata.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/lambda.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/machinelearning.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/polly.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/rds.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/rdsutil.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/route53.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/s3.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/s3util.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/sqs.js","webpack://missanriscn/./node_modules/aws-sdk/lib/services/sts.js","webpack://missanriscn/./node_modules/aws-sdk/lib/signers/bearer.js","webpack://missanriscn/./node_modules/aws-sdk/lib/signers/presign.js","webpack://missanriscn/./node_modules/aws-sdk/lib/signers/request_signer.js","webpack://missanriscn/./node_modules/aws-sdk/lib/signers/s3.js","webpack://missanriscn/./node_modules/aws-sdk/lib/signers/v2.js","webpack://missanriscn/./node_modules/aws-sdk/lib/signers/v3.js","webpack://missanriscn/./node_modules/aws-sdk/lib/signers/v3https.js","webpack://missanriscn/./node_modules/aws-sdk/lib/signers/v4.js","webpack://missanriscn/./node_modules/aws-sdk/lib/signers/v4_credentials.js","webpack://missanriscn/./node_modules/aws-sdk/lib/state_machine.js","webpack://missanriscn/./node_modules/aws-sdk/lib/util.js","webpack://missanriscn/./node_modules/aws-sdk/lib/xml/browser_parser.js","webpack://missanriscn/./node_modules/aws-sdk/lib/xml/builder.js","webpack://missanriscn/./node_modules/aws-sdk/lib/xml/escape-attribute.js","webpack://missanriscn/./node_modules/aws-sdk/lib/xml/escape-element.js","webpack://missanriscn/./node_modules/aws-sdk/lib/xml/xml-node.js","webpack://missanriscn/./node_modules/aws-sdk/lib/xml/xml-text.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/events/events.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/punycode/punycode.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/url/url.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/bytesToUuid.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/index.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/md5-browser.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/rng-browser.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/sha1-browser.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/v1.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/v3.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/v35.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/v4.js","webpack://missanriscn/./node_modules/aws-sdk/node_modules/uuid/dist/v5.js","webpack://missanriscn/./node_modules/aws-sdk/vendor/endpoint-cache/index.js","webpack://missanriscn/./node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","webpack://missanriscn/./node_modules/@peepi/vuetify-tiptap/dist/v-tiptap.esm.js","webpack://missanriscn/Vuetify/webpack/universalModuleDefinition","webpack://missanriscn/Vuetify/webpack/bootstrap","webpack://missanriscn/Vuetify/src/components/VAlert/VAlert.ts","webpack://missanriscn/Vuetify/src/components/VAlert/index.ts","webpack://missanriscn/Vuetify/src/components/VApp/VApp.ts","webpack://missanriscn/Vuetify/src/components/VApp/index.ts","webpack://missanriscn/Vuetify/src/components/VAppBar/VAppBar.ts","webpack://missanriscn/Vuetify/src/components/VAppBar/VAppBarNavIcon.ts","webpack://missanriscn/Vuetify/src/components/VAppBar/VAppBarTitle.ts","webpack://missanriscn/Vuetify/src/components/VAppBar/index.ts","webpack://missanriscn/Vuetify/src/components/VAutocomplete/VAutocomplete.ts","webpack://missanriscn/Vuetify/src/components/VAutocomplete/index.ts","webpack://missanriscn/Vuetify/src/components/VAvatar/VAvatar.ts","webpack://missanriscn/Vuetify/src/components/VAvatar/index.ts","webpack://missanriscn/Vuetify/src/components/VBadge/VBadge.ts","webpack://missanriscn/Vuetify/src/components/VBadge/index.ts","webpack://missanriscn/Vuetify/src/components/VBanner/VBanner.ts","webpack://missanriscn/Vuetify/src/components/VBanner/index.ts","webpack://missanriscn/Vuetify/src/components/VBottomNavigation/VBottomNavigation.ts","webpack://missanriscn/Vuetify/src/components/VBottomNavigation/index.ts","webpack://missanriscn/Vuetify/src/components/VBottomSheet/VBottomSheet.ts","webpack://missanriscn/Vuetify/src/components/VBottomSheet/index.ts","webpack://missanriscn/Vuetify/src/components/VBreadcrumbs/VBreadcrumbs.ts","webpack://missanriscn/Vuetify/src/components/VBreadcrumbs/VBreadcrumbsDivider.ts","webpack://missanriscn/Vuetify/src/components/VBreadcrumbs/VBreadcrumbsItem.ts","webpack://missanriscn/Vuetify/src/components/VBreadcrumbs/index.ts","webpack://missanriscn/Vuetify/src/components/VBtn/VBtn.ts","webpack://missanriscn/Vuetify/src/components/VBtn/index.ts","webpack://missanriscn/Vuetify/src/components/VBtnToggle/VBtnToggle.ts","webpack://missanriscn/Vuetify/src/components/VBtnToggle/index.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/VCalendar.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/VCalendarCategory.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/VCalendarDaily.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/VCalendarMonthly.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/VCalendarWeekly.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/index.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/mixins/calendar-base.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/mixins/calendar-with-events.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/mixins/calendar-with-intervals.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/mixins/times.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/modes/column.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/modes/common.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/modes/index.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/modes/stack.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/util/events.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/util/parser.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/util/props.ts","webpack://missanriscn/Vuetify/src/components/VCalendar/util/timestamp.ts","webpack://missanriscn/Vuetify/src/components/VCard/VCard.ts","webpack://missanriscn/Vuetify/src/components/VCard/index.ts","webpack://missanriscn/Vuetify/src/components/VCarousel/VCarousel.ts","webpack://missanriscn/Vuetify/src/components/VCarousel/VCarouselItem.ts","webpack://missanriscn/Vuetify/src/components/VCarousel/index.ts","webpack://missanriscn/Vuetify/src/components/VCheckbox/VCheckbox.ts","webpack://missanriscn/Vuetify/src/components/VCheckbox/VSimpleCheckbox.ts","webpack://missanriscn/Vuetify/src/components/VCheckbox/index.ts","webpack://missanriscn/Vuetify/src/components/VChip/VChip.ts","webpack://missanriscn/Vuetify/src/components/VChip/index.ts","webpack://missanriscn/Vuetify/src/components/VChipGroup/VChipGroup.ts","webpack://missanriscn/Vuetify/src/components/VChipGroup/index.ts","webpack://missanriscn/Vuetify/src/components/VColorPicker/VColorPicker.ts","webpack://missanriscn/Vuetify/src/components/VColorPicker/VColorPickerCanvas.ts","webpack://missanriscn/Vuetify/src/components/VColorPicker/VColorPickerEdit.ts","webpack://missanriscn/Vuetify/src/components/VColorPicker/VColorPickerPreview.ts","webpack://missanriscn/Vuetify/src/components/VColorPicker/VColorPickerSwatches.ts","webpack://missanriscn/Vuetify/src/components/VColorPicker/index.ts","webpack://missanriscn/Vuetify/src/components/VColorPicker/util/index.ts","webpack://missanriscn/Vuetify/src/components/VCombobox/VCombobox.ts","webpack://missanriscn/Vuetify/src/components/VCombobox/index.ts","webpack://missanriscn/Vuetify/src/components/VContent/VContent.ts","webpack://missanriscn/Vuetify/src/components/VContent/index.ts","webpack://missanriscn/Vuetify/src/components/VCounter/VCounter.ts","webpack://missanriscn/Vuetify/src/components/VCounter/index.ts","webpack://missanriscn/Vuetify/src/components/VData/VData.ts","webpack://missanriscn/Vuetify/src/components/VData/index.ts","webpack://missanriscn/Vuetify/src/components/VDataIterator/VDataFooter.ts","webpack://missanriscn/Vuetify/src/components/VDataIterator/VDataIterator.ts","webpack://missanriscn/Vuetify/src/components/VDataIterator/index.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/MobileRow.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/Row.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/RowGroup.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/VDataTable.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/VDataTableHeader.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/VDataTableHeaderMobile.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/VEditDialog.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/VSimpleTable.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/VVirtualTable.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/index.ts","webpack://missanriscn/Vuetify/src/components/VDataTable/mixins/header.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/VDatePicker.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/VDatePickerDateTable.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/VDatePickerHeader.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/VDatePickerMonthTable.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/VDatePickerTitle.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/VDatePickerYears.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/index.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/mixins/date-picker-table.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/util/createNativeLocaleFormatter.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/util/eventHelpers.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/util/index.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/util/isDateAllowed.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/util/monthChange.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/util/pad.ts","webpack://missanriscn/Vuetify/src/components/VDatePicker/util/sanitizeDateString.ts","webpack://missanriscn/Vuetify/src/components/VDialog/VDialog.ts","webpack://missanriscn/Vuetify/src/components/VDialog/index.ts","webpack://missanriscn/Vuetify/src/components/VDivider/VDivider.ts","webpack://missanriscn/Vuetify/src/components/VDivider/index.ts","webpack://missanriscn/Vuetify/src/components/VExpansionPanel/VExpansionPanel.ts","webpack://missanriscn/Vuetify/src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack://missanriscn/Vuetify/src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack://missanriscn/Vuetify/src/components/VExpansionPanel/VExpansionPanels.ts","webpack://missanriscn/Vuetify/src/components/VExpansionPanel/index.ts","webpack://missanriscn/Vuetify/src/components/VFileInput/VFileInput.ts","webpack://missanriscn/Vuetify/src/components/VFileInput/index.ts","webpack://missanriscn/Vuetify/src/components/VFooter/VFooter.ts","webpack://missanriscn/Vuetify/src/components/VFooter/index.ts","webpack://missanriscn/Vuetify/src/components/VForm/VForm.ts","webpack://missanriscn/Vuetify/src/components/VForm/index.ts","webpack://missanriscn/Vuetify/src/components/VGrid/VCol.ts","webpack://missanriscn/Vuetify/src/components/VGrid/VContainer.ts","webpack://missanriscn/Vuetify/src/components/VGrid/VFlex.ts","webpack://missanriscn/Vuetify/src/components/VGrid/VLayout.ts","webpack://missanriscn/Vuetify/src/components/VGrid/VRow.ts","webpack://missanriscn/Vuetify/src/components/VGrid/VSpacer.ts","webpack://missanriscn/Vuetify/src/components/VGrid/grid.ts","webpack://missanriscn/Vuetify/src/components/VGrid/index.ts","webpack://missanriscn/Vuetify/src/components/VHover/VHover.ts","webpack://missanriscn/Vuetify/src/components/VHover/index.ts","webpack://missanriscn/Vuetify/src/components/VIcon/VIcon.ts","webpack://missanriscn/Vuetify/src/components/VIcon/index.ts","webpack://missanriscn/Vuetify/src/components/VImg/VImg.ts","webpack://missanriscn/Vuetify/src/components/VImg/index.ts","webpack://missanriscn/Vuetify/src/components/VInput/VInput.ts","webpack://missanriscn/Vuetify/src/components/VInput/index.ts","webpack://missanriscn/Vuetify/src/components/VItemGroup/VItem.ts","webpack://missanriscn/Vuetify/src/components/VItemGroup/VItemGroup.ts","webpack://missanriscn/Vuetify/src/components/VItemGroup/index.ts","webpack://missanriscn/Vuetify/src/components/VLabel/VLabel.ts","webpack://missanriscn/Vuetify/src/components/VLabel/index.ts","webpack://missanriscn/Vuetify/src/components/VLazy/VLazy.ts","webpack://missanriscn/Vuetify/src/components/VLazy/index.ts","webpack://missanriscn/Vuetify/src/components/VList/VList.ts","webpack://missanriscn/Vuetify/src/components/VList/VListGroup.ts","webpack://missanriscn/Vuetify/src/components/VList/VListItem.ts","webpack://missanriscn/Vuetify/src/components/VList/VListItemAction.ts","webpack://missanriscn/Vuetify/src/components/VList/VListItemAvatar.ts","webpack://missanriscn/Vuetify/src/components/VList/VListItemGroup.ts","webpack://missanriscn/Vuetify/src/components/VList/VListItemIcon.ts","webpack://missanriscn/Vuetify/src/components/VList/index.ts","webpack://missanriscn/Vuetify/src/components/VMain/VMain.ts","webpack://missanriscn/Vuetify/src/components/VMain/index.ts","webpack://missanriscn/Vuetify/src/components/VMenu/VMenu.ts","webpack://missanriscn/Vuetify/src/components/VMenu/index.ts","webpack://missanriscn/Vuetify/src/components/VMessages/VMessages.ts","webpack://missanriscn/Vuetify/src/components/VMessages/index.ts","webpack://missanriscn/Vuetify/src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack://missanriscn/Vuetify/src/components/VNavigationDrawer/index.ts","webpack://missanriscn/Vuetify/src/components/VOtpInput/VOtpInput.ts","webpack://missanriscn/Vuetify/src/components/VOtpInput/index.ts","webpack://missanriscn/Vuetify/src/components/VOverflowBtn/VOverflowBtn.ts","webpack://missanriscn/Vuetify/src/components/VOverflowBtn/index.ts","webpack://missanriscn/Vuetify/src/components/VOverlay/VOverlay.ts","webpack://missanriscn/Vuetify/src/components/VOverlay/index.ts","webpack://missanriscn/Vuetify/src/components/VPagination/VPagination.ts","webpack://missanriscn/Vuetify/src/components/VPagination/index.ts","webpack://missanriscn/Vuetify/src/components/VParallax/VParallax.ts","webpack://missanriscn/Vuetify/src/components/VParallax/index.ts","webpack://missanriscn/Vuetify/src/components/VPicker/VPicker.ts","webpack://missanriscn/Vuetify/src/components/VPicker/index.ts","webpack://missanriscn/Vuetify/src/components/VProgressCircular/VProgressCircular.ts","webpack://missanriscn/Vuetify/src/components/VProgressCircular/index.ts","webpack://missanriscn/Vuetify/src/components/VProgressLinear/VProgressLinear.ts","webpack://missanriscn/Vuetify/src/components/VProgressLinear/index.ts","webpack://missanriscn/Vuetify/src/components/VRadioGroup/VRadio.ts","webpack://missanriscn/Vuetify/src/components/VRadioGroup/VRadioGroup.ts","webpack://missanriscn/Vuetify/src/components/VRadioGroup/index.ts","webpack://missanriscn/Vuetify/src/components/VRangeSlider/VRangeSlider.ts","webpack://missanriscn/Vuetify/src/components/VRangeSlider/index.ts","webpack://missanriscn/Vuetify/src/components/VRating/VRating.ts","webpack://missanriscn/Vuetify/src/components/VRating/index.ts","webpack://missanriscn/Vuetify/src/components/VResponsive/VResponsive.ts","webpack://missanriscn/Vuetify/src/components/VResponsive/index.ts","webpack://missanriscn/Vuetify/src/components/VSelect/VSelect.ts","webpack://missanriscn/Vuetify/src/components/VSelect/VSelectList.ts","webpack://missanriscn/Vuetify/src/components/VSelect/index.ts","webpack://missanriscn/Vuetify/src/components/VSheet/VSheet.ts","webpack://missanriscn/Vuetify/src/components/VSheet/index.ts","webpack://missanriscn/Vuetify/src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack://missanriscn/Vuetify/src/components/VSkeletonLoader/index.ts","webpack://missanriscn/Vuetify/src/components/VSlideGroup/VSlideGroup.ts","webpack://missanriscn/Vuetify/src/components/VSlideGroup/VSlideItem.ts","webpack://missanriscn/Vuetify/src/components/VSlideGroup/index.ts","webpack://missanriscn/Vuetify/src/components/VSlider/VSlider.ts","webpack://missanriscn/Vuetify/src/components/VSlider/index.ts","webpack://missanriscn/Vuetify/src/components/VSnackbar/VSnackbar.ts","webpack://missanriscn/Vuetify/src/components/VSnackbar/index.ts","webpack://missanriscn/Vuetify/src/components/VSparkline/VSparkline.ts","webpack://missanriscn/Vuetify/src/components/VSparkline/helpers/core.ts","webpack://missanriscn/Vuetify/src/components/VSparkline/helpers/math.ts","webpack://missanriscn/Vuetify/src/components/VSparkline/helpers/path.ts","webpack://missanriscn/Vuetify/src/components/VSparkline/index.ts","webpack://missanriscn/Vuetify/src/components/VSpeedDial/VSpeedDial.ts","webpack://missanriscn/Vuetify/src/components/VSpeedDial/index.ts","webpack://missanriscn/Vuetify/src/components/VStepper/VStepper.ts","webpack://missanriscn/Vuetify/src/components/VStepper/VStepperContent.ts","webpack://missanriscn/Vuetify/src/components/VStepper/VStepperStep.ts","webpack://missanriscn/Vuetify/src/components/VStepper/index.ts","webpack://missanriscn/Vuetify/src/components/VSubheader/VSubheader.ts","webpack://missanriscn/Vuetify/src/components/VSubheader/index.ts","webpack://missanriscn/Vuetify/src/components/VSwitch/VSwitch.ts","webpack://missanriscn/Vuetify/src/components/VSwitch/index.ts","webpack://missanriscn/Vuetify/src/components/VSystemBar/VSystemBar.ts","webpack://missanriscn/Vuetify/src/components/VSystemBar/index.ts","webpack://missanriscn/Vuetify/src/components/VTabs/VTab.ts","webpack://missanriscn/Vuetify/src/components/VTabs/VTabItem.ts","webpack://missanriscn/Vuetify/src/components/VTabs/VTabs.ts","webpack://missanriscn/Vuetify/src/components/VTabs/VTabsBar.ts","webpack://missanriscn/Vuetify/src/components/VTabs/VTabsItems.ts","webpack://missanriscn/Vuetify/src/components/VTabs/VTabsSlider.ts","webpack://missanriscn/Vuetify/src/components/VTabs/index.ts","webpack://missanriscn/Vuetify/src/components/VTextField/VTextField.ts","webpack://missanriscn/Vuetify/src/components/VTextField/index.ts","webpack://missanriscn/Vuetify/src/components/VTextarea/VTextarea.ts","webpack://missanriscn/Vuetify/src/components/VTextarea/index.ts","webpack://missanriscn/Vuetify/src/components/VThemeProvider/VThemeProvider.ts","webpack://missanriscn/Vuetify/src/components/VThemeProvider/index.ts","webpack://missanriscn/Vuetify/src/components/VTimePicker/SelectingTimes.ts","webpack://missanriscn/Vuetify/src/components/VTimePicker/VTimePicker.ts","webpack://missanriscn/Vuetify/src/components/VTimePicker/VTimePickerClock.ts","webpack://missanriscn/Vuetify/src/components/VTimePicker/VTimePickerTitle.ts","webpack://missanriscn/Vuetify/src/components/VTimePicker/index.ts","webpack://missanriscn/Vuetify/src/components/VTimeline/VTimeline.ts","webpack://missanriscn/Vuetify/src/components/VTimeline/VTimelineItem.ts","webpack://missanriscn/Vuetify/src/components/VTimeline/index.ts","webpack://missanriscn/Vuetify/src/components/VToolbar/VToolbar.ts","webpack://missanriscn/Vuetify/src/components/VToolbar/index.ts","webpack://missanriscn/Vuetify/src/components/VTooltip/VTooltip.ts","webpack://missanriscn/Vuetify/src/components/VTooltip/index.ts","webpack://missanriscn/Vuetify/src/components/VTreeview/VTreeview.ts","webpack://missanriscn/Vuetify/src/components/VTreeview/VTreeviewNode.ts","webpack://missanriscn/Vuetify/src/components/VTreeview/index.ts","webpack://missanriscn/Vuetify/src/components/VTreeview/util/filterTreeItems.ts","webpack://missanriscn/Vuetify/src/components/VVirtualScroll/VVirtualScroll.ts","webpack://missanriscn/Vuetify/src/components/VVirtualScroll/index.ts","webpack://missanriscn/Vuetify/src/components/VWindow/VWindow.ts","webpack://missanriscn/Vuetify/src/components/VWindow/VWindowItem.ts","webpack://missanriscn/Vuetify/src/components/VWindow/index.ts","webpack://missanriscn/Vuetify/src/components/index.ts","webpack://missanriscn/Vuetify/src/components/transitions/createTransition.ts","webpack://missanriscn/Vuetify/src/components/transitions/expand-transition.ts","webpack://missanriscn/Vuetify/src/components/transitions/index.ts","webpack://missanriscn/Vuetify/src/directives/click-outside/index.ts","webpack://missanriscn/Vuetify/src/directives/index.ts","webpack://missanriscn/Vuetify/src/directives/intersect/index.ts","webpack://missanriscn/Vuetify/src/directives/mutate/index.ts","webpack://missanriscn/Vuetify/src/directives/resize/index.ts","webpack://missanriscn/Vuetify/src/directives/ripple/index.ts","webpack://missanriscn/Vuetify/src/directives/scroll/index.ts","webpack://missanriscn/Vuetify/src/directives/touch/index.ts","webpack://missanriscn/Vuetify/src/framework.ts","webpack://missanriscn/Vuetify/src/index.ts","webpack://missanriscn/Vuetify/src/install.ts","webpack://missanriscn/Vuetify/src/locale/af.ts","webpack://missanriscn/Vuetify/src/locale/ar.ts","webpack://missanriscn/Vuetify/src/locale/az.ts","webpack://missanriscn/Vuetify/src/locale/bg.ts","webpack://missanriscn/Vuetify/src/locale/ca.ts","webpack://missanriscn/Vuetify/src/locale/ckb.ts","webpack://missanriscn/Vuetify/src/locale/cs.ts","webpack://missanriscn/Vuetify/src/locale/da.ts","webpack://missanriscn/Vuetify/src/locale/de.ts","webpack://missanriscn/Vuetify/src/locale/el.ts","webpack://missanriscn/Vuetify/src/locale/en.ts","webpack://missanriscn/Vuetify/src/locale/es.ts","webpack://missanriscn/Vuetify/src/locale/et.ts","webpack://missanriscn/Vuetify/src/locale/fa.ts","webpack://missanriscn/Vuetify/src/locale/fi.ts","webpack://missanriscn/Vuetify/src/locale/fr.ts","webpack://missanriscn/Vuetify/src/locale/he.ts","webpack://missanriscn/Vuetify/src/locale/hr.ts","webpack://missanriscn/Vuetify/src/locale/hu.ts","webpack://missanriscn/Vuetify/src/locale/id.ts","webpack://missanriscn/Vuetify/src/locale/index.ts","webpack://missanriscn/Vuetify/src/locale/it.ts","webpack://missanriscn/Vuetify/src/locale/ja.ts","webpack://missanriscn/Vuetify/src/locale/ko.ts","webpack://missanriscn/Vuetify/src/locale/lt.ts","webpack://missanriscn/Vuetify/src/locale/lv.ts","webpack://missanriscn/Vuetify/src/locale/nl.ts","webpack://missanriscn/Vuetify/src/locale/no.ts","webpack://missanriscn/Vuetify/src/locale/pl.ts","webpack://missanriscn/Vuetify/src/locale/pt.ts","webpack://missanriscn/Vuetify/src/locale/ro.ts","webpack://missanriscn/Vuetify/src/locale/ru.ts","webpack://missanriscn/Vuetify/src/locale/sk.ts","webpack://missanriscn/Vuetify/src/locale/sl.ts","webpack://missanriscn/Vuetify/src/locale/sr-Cyrl.ts","webpack://missanriscn/Vuetify/src/locale/sr-Latn.ts","webpack://missanriscn/Vuetify/src/locale/sv.ts","webpack://missanriscn/Vuetify/src/locale/th.ts","webpack://missanriscn/Vuetify/src/locale/tr.ts","webpack://missanriscn/Vuetify/src/locale/uk.ts","webpack://missanriscn/Vuetify/src/locale/vi.ts","webpack://missanriscn/Vuetify/src/locale/zh-Hans.ts","webpack://missanriscn/Vuetify/src/locale/zh-Hant.ts","webpack://missanriscn/Vuetify/src/mixins/activatable/index.ts","webpack://missanriscn/Vuetify/src/mixins/applicationable/index.ts","webpack://missanriscn/Vuetify/src/mixins/binds-attrs/index.ts","webpack://missanriscn/Vuetify/src/mixins/bootable/index.ts","webpack://missanriscn/Vuetify/src/mixins/button-group/index.ts","webpack://missanriscn/Vuetify/src/mixins/colorable/index.ts","webpack://missanriscn/Vuetify/src/mixins/comparable/index.ts","webpack://missanriscn/Vuetify/src/mixins/delayable/index.ts","webpack://missanriscn/Vuetify/src/mixins/dependent/index.ts","webpack://missanriscn/Vuetify/src/mixins/detachable/index.ts","webpack://missanriscn/Vuetify/src/mixins/elevatable/index.ts","webpack://missanriscn/Vuetify/src/mixins/filterable/index.ts","webpack://missanriscn/Vuetify/src/mixins/groupable/index.ts","webpack://missanriscn/Vuetify/src/mixins/intersectable/index.ts","webpack://missanriscn/Vuetify/src/mixins/loadable/index.ts","webpack://missanriscn/Vuetify/src/mixins/localable/index.ts","webpack://missanriscn/Vuetify/src/mixins/measurable/index.ts","webpack://missanriscn/Vuetify/src/mixins/menuable/index.ts","webpack://missanriscn/Vuetify/src/mixins/mobile/index.ts","webpack://missanriscn/Vuetify/src/mixins/mouse/index.ts","webpack://missanriscn/Vuetify/src/mixins/overlayable/index.ts","webpack://missanriscn/Vuetify/src/mixins/picker-button/index.ts","webpack://missanriscn/Vuetify/src/mixins/picker/index.ts","webpack://missanriscn/Vuetify/src/mixins/positionable/index.ts","webpack://missanriscn/Vuetify/src/mixins/proxyable/index.ts","webpack://missanriscn/Vuetify/src/mixins/registrable/index.ts","webpack://missanriscn/Vuetify/src/mixins/returnable/index.ts","webpack://missanriscn/Vuetify/src/mixins/rippleable/index.ts","webpack://missanriscn/Vuetify/src/mixins/roundable/index.ts","webpack://missanriscn/Vuetify/src/mixins/routable/index.ts","webpack://missanriscn/Vuetify/src/mixins/scrollable/index.ts","webpack://missanriscn/Vuetify/src/mixins/selectable/index.ts","webpack://missanriscn/Vuetify/src/mixins/sizeable/index.ts","webpack://missanriscn/Vuetify/src/mixins/ssr-bootable/index.ts","webpack://missanriscn/Vuetify/src/mixins/stackable/index.ts","webpack://missanriscn/Vuetify/src/mixins/themeable/index.ts","webpack://missanriscn/Vuetify/src/mixins/toggleable/index.ts","webpack://missanriscn/Vuetify/src/mixins/transitionable/index.ts","webpack://missanriscn/Vuetify/src/mixins/translatable/index.ts","webpack://missanriscn/Vuetify/src/mixins/validatable/index.ts","webpack://missanriscn/Vuetify/src/presets/default/index.ts","webpack://missanriscn/Vuetify/src/services/application/index.ts","webpack://missanriscn/Vuetify/src/services/breakpoint/index.ts","webpack://missanriscn/Vuetify/src/services/goto/easing-patterns.ts","webpack://missanriscn/Vuetify/src/services/goto/index.ts","webpack://missanriscn/Vuetify/src/services/goto/util.ts","webpack://missanriscn/Vuetify/src/services/icons/index.ts","webpack://missanriscn/Vuetify/src/services/icons/presets/fa-svg.ts","webpack://missanriscn/Vuetify/src/services/icons/presets/fa.ts","webpack://missanriscn/Vuetify/src/services/icons/presets/fa4.ts","webpack://missanriscn/Vuetify/src/services/icons/presets/index.ts","webpack://missanriscn/Vuetify/src/services/icons/presets/md.ts","webpack://missanriscn/Vuetify/src/services/icons/presets/mdi-svg.ts","webpack://missanriscn/Vuetify/src/services/icons/presets/mdi.ts","webpack://missanriscn/Vuetify/src/services/index.ts","webpack://missanriscn/Vuetify/src/services/lang/index.ts","webpack://missanriscn/Vuetify/src/services/presets/index.ts","webpack://missanriscn/Vuetify/src/services/service/index.ts","webpack://missanriscn/Vuetify/src/services/theme/index.ts","webpack://missanriscn/Vuetify/src/services/theme/utils.ts","webpack://missanriscn/Vuetify/src/util/color/transformCIELAB.ts","webpack://missanriscn/Vuetify/src/util/color/transformSRGB.ts","webpack://missanriscn/Vuetify/src/util/colorUtils.ts","webpack://missanriscn/Vuetify/src/util/colors.ts","webpack://missanriscn/Vuetify/src/util/console.ts","webpack://missanriscn/Vuetify/src/util/dateTimeUtils.ts","webpack://missanriscn/Vuetify/src/util/dedupeModelListeners.ts","webpack://missanriscn/Vuetify/src/util/dom.ts","webpack://missanriscn/Vuetify/src/util/helpers.ts","webpack://missanriscn/Vuetify/src/util/mergeData.ts","webpack://missanriscn/Vuetify/src/util/mixins.ts","webpack://missanriscn/Vuetify/src/util/rebuildFunctionalSlots.ts","webpack://missanriscn/Vuetify/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"amd\":\"vue\",\"root\":\"Vue\"}","webpack://missanriscn/../../../src/components/VAlert/VAlert.ts","webpack://missanriscn/../../../src/components/VApp/VApp.ts","webpack://missanriscn/../../../src/mixins/scrollable/index.ts","webpack://missanriscn/../../../src/components/VAppBar/VAppBar.ts","webpack://missanriscn/../../../src/components/VAppBar/VAppBarNavIcon.ts","webpack://missanriscn/../../../src/components/VAutocomplete/VAutocomplete.ts","webpack://missanriscn/../../../src/components/VAvatar/VAvatar.ts","webpack://missanriscn/../../../src/components/VBadge/VBadge.ts","webpack://missanriscn/../../../src/components/VProgressCircular/index.ts","webpack://missanriscn/../../../src/components/VBtn/VBtn.ts","webpack://missanriscn/../../../src/components/VBtn/index.ts","webpack://missanriscn/../../../../src/components/VCalendar/mixins/times.ts","webpack://missanriscn/../../../../src/components/VCalendar/modes/common.ts","webpack://missanriscn/../../../../src/components/VCalendar/modes/stack.ts","webpack://missanriscn/../../../../src/components/VCalendar/modes/column.ts","webpack://missanriscn/../../../../src/components/VCalendar/modes/index.ts","webpack://missanriscn/../../../../src/components/VCalendar/util/props.ts","webpack://missanriscn/../../../../src/components/VCalendar/mixins/calendar-base.ts","webpack://missanriscn/../../../../src/components/VCalendar/util/events.ts","webpack://missanriscn/../../../../src/components/VCalendar/mixins/calendar-with-events.ts","webpack://missanriscn/../../../src/components/VCalendar/VCalendarWeekly.ts","webpack://missanriscn/../../../src/components/VCalendar/VCalendarMonthly.ts","webpack://missanriscn/../../../../src/components/VCalendar/mixins/calendar-with-intervals.ts","webpack://missanriscn/../../../src/components/VCalendar/VCalendarDaily.ts","webpack://missanriscn/../../../../src/components/VCalendar/util/parser.ts","webpack://missanriscn/../../../src/components/VCalendar/VCalendarCategory.ts","webpack://missanriscn/../../../src/components/VCalendar/VCalendar.ts","webpack://missanriscn/../../../../src/components/VCalendar/util/timestamp.ts","webpack://missanriscn/../../../src/components/VCard/VCard.ts","webpack://missanriscn/../../../src/components/VCard/index.ts","webpack://missanriscn/../../../src/mixins/button-group/index.ts","webpack://missanriscn/../../../src/components/VCarousel/VCarousel.ts","webpack://missanriscn/../../../src/components/VCarousel/VCarouselItem.ts","webpack://missanriscn/../../../src/components/VCheckbox/VCheckbox.ts","webpack://missanriscn/../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack://missanriscn/../../../src/components/VChip/VChip.ts","webpack://missanriscn/../../../src/components/VChip/index.ts","webpack://missanriscn/../../../../src/components/VColorPicker/util/index.ts","webpack://missanriscn/../../../src/components/VColorPicker/VColorPickerPreview.ts","webpack://missanriscn/../../../src/components/VColorPicker/VColorPickerCanvas.ts","webpack://missanriscn/../../../src/components/VColorPicker/VColorPickerEdit.ts","webpack://missanriscn/../util/colors.ts","webpack://missanriscn/../../../src/components/VColorPicker/VColorPickerSwatches.ts","webpack://missanriscn/../../../src/components/VColorPicker/VColorPicker.ts","webpack://missanriscn/../../../src/components/VCombobox/VCombobox.ts","webpack://missanriscn/../../../src/components/VData/VData.ts","webpack://missanriscn/../../../src/components/VDataIterator/VDataFooter.ts","webpack://missanriscn/../../../src/components/VDataIterator/VDataIterator.ts","webpack://missanriscn/../../../../src/components/VDataTable/mixins/header.ts","webpack://missanriscn/../../../src/components/VDataTable/VDataTableHeaderMobile.ts","webpack://missanriscn/../../../src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack://missanriscn/../util/dedupeModelListeners.ts","webpack://missanriscn/../util/rebuildFunctionalSlots.ts","webpack://missanriscn/../../../src/components/VDataTable/VDataTableHeader.ts","webpack://missanriscn/../../../src/components/VDataTable/Row.ts","webpack://missanriscn/../../../src/components/VDataTable/RowGroup.ts","webpack://missanriscn/../../../src/components/VDataTable/VSimpleTable.ts","webpack://missanriscn/../../../src/components/VDataTable/MobileRow.ts","webpack://missanriscn/../../../src/components/VDataTable/VDataTable.ts","webpack://missanriscn/../../../src/components/VDatePicker/VDatePickerTitle.ts","webpack://missanriscn/../../../../src/components/VDatePicker/util/createNativeLocaleFormatter.ts","webpack://missanriscn/../../../../src/components/VDatePicker/util/monthChange.ts","webpack://missanriscn/../../../src/components/VDatePicker/VDatePickerHeader.ts","webpack://missanriscn/../../../../src/components/VDatePicker/util/eventHelpers.ts","webpack://missanriscn/../../../../src/components/VDatePicker/util/sanitizeDateString.ts","webpack://missanriscn/../../../../src/components/VDatePicker/util/isDateAllowed.ts","webpack://missanriscn/../../../../src/components/VDatePicker/mixins/date-picker-table.ts","webpack://missanriscn/../../../src/components/VDatePicker/VDatePickerDateTable.ts","webpack://missanriscn/../../../src/components/VDatePicker/VDatePickerMonthTable.ts","webpack://missanriscn/../../../src/components/VDatePicker/VDatePickerYears.ts","webpack://missanriscn/../../../src/components/VDatePicker/VDatePicker.ts","webpack://missanriscn/../../../../src/components/VDatePicker/util/pad.ts","webpack://missanriscn/../../../src/components/VDialog/VDialog.ts","webpack://missanriscn/../../../src/components/VDivider/VDivider.ts","webpack://missanriscn/../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack://missanriscn/../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack://missanriscn/../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack://missanriscn/../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack://missanriscn/../../../src/components/VTextField/index.ts","webpack://missanriscn/../../../src/components/VFileInput/VFileInput.ts","webpack://missanriscn/../../../src/components/VFooter/VFooter.ts","webpack://missanriscn/../../../src/components/VForm/VForm.ts","webpack://missanriscn/../../../src/components/VGrid/VCol.ts","webpack://missanriscn/../../../src/components/VGrid/grid.ts","webpack://missanriscn/../../../src/components/VGrid/VContainer.ts","webpack://missanriscn/../../../src/components/VGrid/VRow.ts","webpack://missanriscn/../../../src/components/VGrid/VSpacer.ts","webpack://missanriscn/../../../src/components/VIcon/VIcon.ts","webpack://missanriscn/../../../src/components/VIcon/index.ts","webpack://missanriscn/../../../src/components/VResponsive/index.ts","webpack://missanriscn/../../../src/components/VImg/VImg.ts","webpack://missanriscn/../../../src/components/VMessages/VMessages.ts","webpack://missanriscn/../../../src/components/VMessages/index.ts","webpack://missanriscn/../../../src/components/VInput/VInput.ts","webpack://missanriscn/../../../src/components/VInput/index.ts","webpack://missanriscn/../../../src/components/VItemGroup/VItemGroup.ts","webpack://missanriscn/../../../src/components/VLabel/VLabel.ts","webpack://missanriscn/../../../src/components/VLabel/index.ts","webpack://missanriscn/../../../src/components/VList/VList.ts","webpack://missanriscn/../../../src/components/VList/VListGroup.ts","webpack://missanriscn/../../../src/components/VList/VListItem.ts","webpack://missanriscn/../../../src/components/VList/VListItemAction.ts","webpack://missanriscn/../../../src/components/VAvatar/index.ts","webpack://missanriscn/../../../src/components/VList/VListItemAvatar.ts","webpack://missanriscn/../../../src/components/VList/VListItemGroup.ts","webpack://missanriscn/../../../src/components/VList/VListItemIcon.ts","webpack://missanriscn/../../../src/components/VList/index.ts","webpack://missanriscn/../../../src/components/VMain/VMain.ts","webpack://missanriscn/../../../src/components/VMenu/VMenu.ts","webpack://missanriscn/../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack://missanriscn/../../../src/components/VOverlay/VOverlay.ts","webpack://missanriscn/../../../src/components/VProgressCircular/VProgressCircular.ts","webpack://missanriscn/../../../src/components/VProgressLinear/VProgressLinear.ts","webpack://missanriscn/../../../src/components/VProgressLinear/index.ts","webpack://missanriscn/../../../src/components/VRadioGroup/VRadio.ts","webpack://missanriscn/../../../src/components/VRadioGroup/VRadioGroup.ts","webpack://missanriscn/../../../src/components/VResponsive/VResponsive.ts","webpack://missanriscn/../../../src/components/VMenu/index.ts","webpack://missanriscn/../../../src/components/VDivider/index.ts","webpack://missanriscn/../../../src/components/VSubheader/VSubheader.ts","webpack://missanriscn/../../../src/components/VSubheader/index.ts","webpack://missanriscn/../../../src/components/VSelect/VSelectList.ts","webpack://missanriscn/../../../src/mixins/filterable/index.ts","webpack://missanriscn/../../../src/components/VSelect/VSelect.ts","webpack://missanriscn/../../../src/components/VSheet/VSheet.ts","webpack://missanriscn/../../../src/components/VSheet/index.ts","webpack://missanriscn/../../../src/components/VSlider/VSlider.ts","webpack://missanriscn/../../../src/components/VSnackbar/VSnackbar.ts","webpack://missanriscn/../../../src/components/VStepper/VStepper.ts","webpack://missanriscn/../../../src/components/VStepper/VStepperContent.ts","webpack://missanriscn/../../../src/components/VStepper/VStepperStep.ts","webpack://missanriscn/../../../src/components/VStepper/index.ts","webpack://missanriscn/../../../src/components/VSwitch/VSwitch.ts","webpack://missanriscn/../../../src/components/VTabs/VTab.ts","webpack://missanriscn/../../../src/components/VTabs/VTabItem.ts","webpack://missanriscn/../../../src/components/VSlideGroup/VSlideGroup.ts","webpack://missanriscn/../../../src/components/VTabs/VTabsBar.ts","webpack://missanriscn/../../../src/components/VTabs/VTabs.ts","webpack://missanriscn/../../../src/components/VTabs/VTabsItems.ts","webpack://missanriscn/../../../src/components/VTabs/VTabsSlider.ts","webpack://missanriscn/../../../src/components/VCounter/VCounter.ts","webpack://missanriscn/../../../src/components/VCounter/index.ts","webpack://missanriscn/../../../src/mixins/intersectable/index.ts","webpack://missanriscn/../../../src/components/VTextField/VTextField.ts","webpack://missanriscn/../../../src/components/VTextarea/VTextarea.ts","webpack://missanriscn/../../../src/components/VThemeProvider/VThemeProvider.ts","webpack://missanriscn/../../../src/components/VTimePicker/SelectingTimes.ts","webpack://missanriscn/../../../src/components/VTimePicker/VTimePickerTitle.ts","webpack://missanriscn/../../../src/components/VTimePicker/VTimePickerClock.ts","webpack://missanriscn/../../../src/components/VTimePicker/VTimePicker.ts","webpack://missanriscn/../../../src/components/VToolbar/VToolbar.ts","webpack://missanriscn/../../../src/components/VToolbar/index.ts","webpack://missanriscn/../../../src/components/VTooltip/VTooltip.ts","webpack://missanriscn/../../../src/components/VTreeview/VTreeviewNode.ts","webpack://missanriscn/../../../../src/components/VTreeview/util/filterTreeItems.ts","webpack://missanriscn/../../../src/components/VTreeview/VTreeview.ts","webpack://missanriscn/../../../src/components/VWindow/VWindow.ts","webpack://missanriscn/../../../src/components/VWindow/VWindowItem.ts","webpack://missanriscn/../../../src/components/transitions/createTransition.ts","webpack://missanriscn/../../../src/components/transitions/expand-transition.ts","webpack://missanriscn/../../../src/components/transitions/index.ts","webpack://missanriscn/../../../src/directives/click-outside/index.ts","webpack://missanriscn/../../../src/directives/intersect/index.ts","webpack://missanriscn/../../../src/directives/resize/index.ts","webpack://missanriscn/../../../src/directives/ripple/index.ts","webpack://missanriscn/../../../src/directives/scroll/index.ts","webpack://missanriscn/../../../src/directives/touch/index.ts","webpack://missanriscn/../src/install.ts","webpack://missanriscn/../locale/en.ts","webpack://missanriscn/../../../src/presets/default/index.ts","webpack://missanriscn/../../../src/services/presets/index.ts","webpack://missanriscn/../../../src/services/application/index.ts","webpack://missanriscn/../../../src/services/breakpoint/index.ts","webpack://missanriscn/../../../../src/services/icons/presets/mdi-svg.ts","webpack://missanriscn/../../../../src/services/icons/presets/md.ts","webpack://missanriscn/../../../../src/services/icons/presets/mdi.ts","webpack://missanriscn/../../../../src/services/icons/presets/fa.ts","webpack://missanriscn/../../../../src/services/icons/presets/fa4.ts","webpack://missanriscn/../../../../src/services/icons/presets/fa-svg.ts","webpack://missanriscn/../../../../src/services/icons/presets/index.ts","webpack://missanriscn/../../../src/services/icons/index.ts","webpack://missanriscn/../../../src/services/lang/index.ts","webpack://missanriscn/../../../src/util/color/transformCIELAB.ts","webpack://missanriscn/../../../src/services/theme/utils.ts","webpack://missanriscn/../../../src/services/theme/index.ts","webpack://missanriscn/../src/framework.ts","webpack://missanriscn/../../../src/mixins/activatable/index.ts","webpack://missanriscn/../../../src/mixins/applicationable/index.ts","webpack://missanriscn/../../../src/mixins/binds-attrs/index.ts","webpack://missanriscn/../../../src/mixins/bootable/index.ts","webpack://missanriscn/../../../src/mixins/colorable/index.ts","webpack://missanriscn/../../../src/mixins/comparable/index.ts","webpack://missanriscn/../../../src/mixins/delayable/index.ts","webpack://missanriscn/../../../src/mixins/dependent/index.ts","webpack://missanriscn/../../../src/mixins/detachable/index.ts","webpack://missanriscn/../../../src/mixins/elevatable/index.ts","webpack://missanriscn/../../../src/mixins/groupable/index.ts","webpack://missanriscn/../../../src/mixins/loadable/index.ts","webpack://missanriscn/../../../src/mixins/localable/index.ts","webpack://missanriscn/../../../src/mixins/measurable/index.ts","webpack://missanriscn/../../../src/mixins/menuable/index.ts","webpack://missanriscn/../../../src/mixins/mobile/index.ts","webpack://missanriscn/../../../src/mixins/mouse/index.ts","webpack://missanriscn/../../../src/components/VOverlay/index.ts","webpack://missanriscn/../../../src/mixins/overlayable/index.ts","webpack://missanriscn/../../../src/mixins/picker-button/index.ts","webpack://missanriscn/../../../src/components/VPicker/VPicker.ts","webpack://missanriscn/../../../src/components/VPicker/index.ts","webpack://missanriscn/../../../src/mixins/picker/index.ts","webpack://missanriscn/../../../src/mixins/positionable/index.ts","webpack://missanriscn/../../../src/mixins/proxyable/index.ts","webpack://missanriscn/../../../src/mixins/registrable/index.ts","webpack://missanriscn/../../../src/mixins/returnable/index.ts","webpack://missanriscn/../../../src/mixins/rippleable/index.ts","webpack://missanriscn/../../../src/mixins/roundable/index.ts","webpack://missanriscn/../../../src/mixins/routable/index.ts","webpack://missanriscn/../../../src/mixins/selectable/index.ts","webpack://missanriscn/../../../src/mixins/sizeable/index.ts","webpack://missanriscn/../../../src/mixins/ssr-bootable/index.ts","webpack://missanriscn/../../../src/mixins/stackable/index.ts","webpack://missanriscn/../../../src/mixins/themeable/index.ts","webpack://missanriscn/../../../src/mixins/toggleable/index.ts","webpack://missanriscn/../../../src/mixins/transitionable/index.ts","webpack://missanriscn/../../../src/mixins/validatable/index.ts","webpack://missanriscn/../../../src/services/goto/easing-patterns.ts","webpack://missanriscn/../../../src/services/goto/util.ts","webpack://missanriscn/../../../src/services/goto/index.ts","webpack://missanriscn/../../../src/services/service/index.ts","webpack://missanriscn/../../../src/util/color/transformSRGB.ts","webpack://missanriscn/../util/colorUtils.ts","webpack://missanriscn/../util/console.ts","webpack://missanriscn/../util/dateTimeUtils.ts","webpack://missanriscn/../util/dom.ts","webpack://missanriscn/../util/helpers.ts","webpack://missanriscn/../util/mergeData.ts","webpack://missanriscn/../util/mixins.ts","webpack://missanriscn/./node_modules/base64-js/index.js","webpack://missanriscn/./node_modules/bowser/es5.js","webpack://missanriscn/./node_modules/buffer/index.js","webpack://missanriscn/./node_modules/call-bind/callBound.js","webpack://missanriscn/./node_modules/call-bind/index.js","webpack://missanriscn/./node_modules/cookie/index.js","webpack://missanriscn/./node_modules/crypto-js/core.js","webpack://missanriscn/./node_modules/crypto-js/enc-base64.js","webpack://missanriscn/./node_modules/crypto-js/hmac-sha256.js","webpack://missanriscn/./node_modules/crypto-js/hmac.js","webpack://missanriscn/./node_modules/crypto-js/lib-typedarrays.js","webpack://missanriscn/./node_modules/crypto-js/md5.js","webpack://missanriscn/./node_modules/crypto-js/sha256.js","webpack://missanriscn/./node_modules/define-data-property/index.js","webpack://missanriscn/./node_modules/es-define-property/index.js","webpack://missanriscn/./node_modules/es-errors/eval.js","webpack://missanriscn/./node_modules/es-errors/index.js","webpack://missanriscn/./node_modules/es-errors/range.js","webpack://missanriscn/./node_modules/es-errors/ref.js","webpack://missanriscn/./node_modules/es-errors/syntax.js","webpack://missanriscn/./node_modules/es-errors/type.js","webpack://missanriscn/./node_modules/es-errors/uri.js","webpack://missanriscn/./node_modules/events/events.js","webpack://missanriscn/./node_modules/fast-xml-parser/src/json2xml.js","webpack://missanriscn/./node_modules/fast-xml-parser/src/nimndata.js","webpack://missanriscn/./node_modules/fast-xml-parser/src/node2json.js","webpack://missanriscn/./node_modules/fast-xml-parser/src/node2json_str.js","webpack://missanriscn/./node_modules/fast-xml-parser/src/parser.js","webpack://missanriscn/./node_modules/fast-xml-parser/src/util.js","webpack://missanriscn/./node_modules/fast-xml-parser/src/validator.js","webpack://missanriscn/./node_modules/fast-xml-parser/src/xmlNode.js","webpack://missanriscn/./node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","webpack://missanriscn/./node_modules/for-each/index.js","webpack://missanriscn/./node_modules/function-bind/implementation.js","webpack://missanriscn/./node_modules/function-bind/index.js","webpack://missanriscn/./node_modules/get-intrinsic/index.js","webpack://missanriscn/./node_modules/gopd/index.js","webpack://missanriscn/./node_modules/has-property-descriptors/index.js","webpack://missanriscn/./node_modules/has-proto/index.js","webpack://missanriscn/./node_modules/has-symbols/index.js","webpack://missanriscn/./node_modules/has-symbols/shams.js","webpack://missanriscn/./node_modules/has-tostringtag/shams.js","webpack://missanriscn/./node_modules/hasown/index.js","webpack://missanriscn/./node_modules/ieee754/index.js","webpack://missanriscn/./node_modules/immer/dist/immer.esm.js","webpack://missanriscn/./node_modules/inherits/inherits_browser.js","webpack://missanriscn/./node_modules/is-arguments/index.js","webpack://missanriscn/./node_modules/is-callable/index.js","webpack://missanriscn/./node_modules/is-generator-function/index.js","webpack://missanriscn/./node_modules/is-typed-array/index.js","webpack://missanriscn/./node_modules/isarray/index.js","webpack://missanriscn/./node_modules/isomorphic-unfetch/browser.js","webpack://missanriscn/./node_modules/jmespath/jmespath.js","webpack://missanriscn/./node_modules/js-cookie/src/js.cookie.js","webpack://missanriscn/./node_modules/lodash/lodash.js","webpack://missanriscn/./node_modules/object-inspect/index.js","webpack://missanriscn/./node_modules/paho-mqtt/paho-mqtt.js","webpack://missanriscn/./node_modules/papaparse/papaparse.min.js","webpack://missanriscn/./node_modules/qs/lib/formats.js","webpack://missanriscn/./node_modules/qs/lib/index.js","webpack://missanriscn/./node_modules/qs/lib/parse.js","webpack://missanriscn/./node_modules/qs/lib/stringify.js","webpack://missanriscn/./node_modules/qs/lib/utils.js","webpack://missanriscn/./node_modules/querystring/decode.js","webpack://missanriscn/./node_modules/querystring/encode.js","webpack://missanriscn/./node_modules/querystring/index.js","webpack://missanriscn/./node_modules/recaptcha-v3/dist/ReCaptcha.js","webpack://missanriscn/./node_modules/recaptcha-v3/dist/ReCaptchaInstance.js","webpack://missanriscn/./node_modules/recaptcha-v3/dist/ReCaptchaLoader.js","webpack://missanriscn/./node_modules/register-service-worker/index.js","webpack://missanriscn/./node_modules/set-function-length/index.js","webpack://missanriscn/./node_modules/side-channel/index.js","webpack://missanriscn/./node_modules/sortablejs/modular/sortable.esm.js","webpack://missanriscn/./node_modules/strnum/strnum.js","webpack://missanriscn/./node_modules/tslib/tslib.es6.js","webpack://missanriscn/./node_modules/unfetch/dist/unfetch.module.js","webpack://missanriscn/./node_modules/url/node_modules/punycode/punycode.js","webpack://missanriscn/./node_modules/url/url.js","webpack://missanriscn/./node_modules/util/support/isBufferBrowser.js","webpack://missanriscn/./node_modules/util/support/types.js","webpack://missanriscn/./node_modules/util/util.js","webpack://missanriscn/./node_modules/vue-cookie-law/dist/vue-cookie-law.js","webpack://missanriscn/./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack://missanriscn/./node_modules/vue-masonry-css/dist/vue-masonry.es2015.js","webpack://missanriscn/./node_modules/vue-recaptcha-v3/dist/ReCaptchaVuePlugin.js","webpack://missanriscn/./node_modules/vue-router/dist/vue-router.esm.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/index.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/any.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/array.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/boolean.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/function.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/instanceOf.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/integer.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/number.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/object.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/oneOf.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/oneOfObjectKeys.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/oneOfTypes.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/string.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/symbol.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/prop-types/vueComponent.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/util.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/validators/index.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/validators/isInstanceOf.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/validators/isInteger.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/validators/isNegative.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/validators/isNonNegative.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/validators/isNonPositive.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/validators/isOneOf.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/validators/isPositive.js","webpack://missanriscn/./node_modules/vue-ts-types/dist/validators/isSymbol.js","webpack://missanriscn/./node_modules/vue/dist/vue.esm.js","webpack://missanriscn/./node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack://missanriscn/./node_modules/vuex/dist/vuex.esm.js","webpack://missanriscn/./node_modules/which-typed-array/index.js","webpack://missanriscn/./node_modules/zen-observable-ts/lib/bundle.esm.js","webpack://missanriscn/./node_modules/zen-observable/index.js","webpack://missanriscn/./node_modules/zen-observable/lib/Observable.js","webpack://missanriscn/./node_modules/zen-push/index.js","webpack://missanriscn/./node_modules/zen-push/node_modules/zen-observable/index.js","webpack://missanriscn/./node_modules/zen-push/node_modules/zen-observable/zen-observable.js","webpack://missanriscn/./node_modules/available-typed-arrays/index.js","webpack://missanriscn/./node_modules/core-js/internals/a-callable.js","webpack://missanriscn/./node_modules/core-js/internals/a-possible-prototype.js","webpack://missanriscn/./node_modules/core-js/internals/an-instance.js","webpack://missanriscn/./node_modules/core-js/internals/an-object.js","webpack://missanriscn/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://missanriscn/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://missanriscn/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://missanriscn/./node_modules/core-js/internals/array-includes.js","webpack://missanriscn/./node_modules/core-js/internals/array-set-length.js","webpack://missanriscn/./node_modules/core-js/internals/array-to-reversed.js","webpack://missanriscn/./node_modules/core-js/internals/array-with.js","webpack://missanriscn/./node_modules/core-js/internals/classof-raw.js","webpack://missanriscn/./node_modules/core-js/internals/classof.js","webpack://missanriscn/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://missanriscn/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://missanriscn/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://missanriscn/./node_modules/core-js/internals/create-property-descriptor.js","webpack://missanriscn/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://missanriscn/./node_modules/core-js/internals/define-built-in.js","webpack://missanriscn/./node_modules/core-js/internals/define-global-property.js","webpack://missanriscn/./node_modules/core-js/internals/descriptors.js","webpack://missanriscn/./node_modules/core-js/internals/document-all.js","webpack://missanriscn/./node_modules/core-js/internals/document-create-element.js","webpack://missanriscn/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://missanriscn/./node_modules/core-js/internals/dom-exception-constants.js","webpack://missanriscn/./node_modules/core-js/internals/engine-user-agent.js","webpack://missanriscn/./node_modules/core-js/internals/engine-v8-version.js","webpack://missanriscn/./node_modules/core-js/internals/enum-bug-keys.js","webpack://missanriscn/./node_modules/core-js/internals/error-stack-clear.js","webpack://missanriscn/./node_modules/core-js/internals/export.js","webpack://missanriscn/./node_modules/core-js/internals/fails.js","webpack://missanriscn/./node_modules/core-js/internals/function-bind-native.js","webpack://missanriscn/./node_modules/core-js/internals/function-call.js","webpack://missanriscn/./node_modules/core-js/internals/function-name.js","webpack://missanriscn/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://missanriscn/./node_modules/core-js/internals/function-uncurry-this.js","webpack://missanriscn/./node_modules/core-js/internals/get-built-in.js","webpack://missanriscn/./node_modules/core-js/internals/get-method.js","webpack://missanriscn/./node_modules/core-js/internals/global.js","webpack://missanriscn/./node_modules/core-js/internals/has-own-property.js","webpack://missanriscn/./node_modules/core-js/internals/hidden-keys.js","webpack://missanriscn/./node_modules/core-js/internals/ie8-dom-define.js","webpack://missanriscn/./node_modules/core-js/internals/indexed-object.js","webpack://missanriscn/./node_modules/core-js/internals/inherit-if-required.js","webpack://missanriscn/./node_modules/core-js/internals/inspect-source.js","webpack://missanriscn/./node_modules/core-js/internals/internal-state.js","webpack://missanriscn/./node_modules/core-js/internals/is-array.js","webpack://missanriscn/./node_modules/core-js/internals/is-big-int-array.js","webpack://missanriscn/./node_modules/core-js/internals/is-callable.js","webpack://missanriscn/./node_modules/core-js/internals/is-forced.js","webpack://missanriscn/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://missanriscn/./node_modules/core-js/internals/is-object.js","webpack://missanriscn/./node_modules/core-js/internals/is-pure.js","webpack://missanriscn/./node_modules/core-js/internals/is-symbol.js","webpack://missanriscn/./node_modules/core-js/internals/length-of-array-like.js","webpack://missanriscn/./node_modules/core-js/internals/make-built-in.js","webpack://missanriscn/./node_modules/core-js/internals/math-trunc.js","webpack://missanriscn/./node_modules/core-js/internals/normalize-string-argument.js","webpack://missanriscn/./node_modules/core-js/internals/object-define-property.js","webpack://missanriscn/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://missanriscn/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://missanriscn/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://missanriscn/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://missanriscn/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://missanriscn/./node_modules/core-js/internals/object-keys-internal.js","webpack://missanriscn/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://missanriscn/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://missanriscn/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://missanriscn/./node_modules/core-js/internals/own-keys.js","webpack://missanriscn/./node_modules/core-js/internals/regexp-flags.js","webpack://missanriscn/./node_modules/core-js/internals/require-object-coercible.js","webpack://missanriscn/./node_modules/core-js/internals/shared-key.js","webpack://missanriscn/./node_modules/core-js/internals/shared-store.js","webpack://missanriscn/./node_modules/core-js/internals/shared.js","webpack://missanriscn/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://missanriscn/./node_modules/core-js/internals/to-absolute-index.js","webpack://missanriscn/./node_modules/core-js/internals/to-big-int.js","webpack://missanriscn/./node_modules/core-js/internals/to-indexed-object.js","webpack://missanriscn/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://missanriscn/./node_modules/core-js/internals/to-length.js","webpack://missanriscn/./node_modules/core-js/internals/to-object.js","webpack://missanriscn/./node_modules/core-js/internals/to-primitive.js","webpack://missanriscn/./node_modules/core-js/internals/to-property-key.js","webpack://missanriscn/./node_modules/core-js/internals/to-string-tag-support.js","webpack://missanriscn/./node_modules/core-js/internals/to-string.js","webpack://missanriscn/./node_modules/core-js/internals/try-to-string.js","webpack://missanriscn/./node_modules/core-js/internals/uid.js","webpack://missanriscn/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://missanriscn/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://missanriscn/./node_modules/core-js/internals/validate-arguments-length.js","webpack://missanriscn/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://missanriscn/./node_modules/core-js/internals/well-known-symbol.js","webpack://missanriscn/./node_modules/core-js/modules/es.array.push.js","webpack://missanriscn/./node_modules/core-js/modules/es.regexp.flags.js","webpack://missanriscn/./node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack://missanriscn/./node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack://missanriscn/./node_modules/core-js/modules/es.typed-array.with.js","webpack://missanriscn/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://missanriscn/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://missanriscn/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://missanriscn/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/esm/polyfills/index.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/esm-es5/theme-19a9209a.js","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/esm-es5/loader.mjs","webpack://missanriscn/./node_modules/@aws-amplify/ui-components/dist/loader/index.mjs","webpack://missanriscn/./node_modules/@gtm-support/core/lib/index.js","webpack://missanriscn/./node_modules/@gtm-support/vue2-gtm/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-commands/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-schema-list/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/core/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-image/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-table-cell/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-table-header/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-table-row/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-tables/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-table/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-text-align/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-underline/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-blockquote/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-bold/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-bullet-list/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-code/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-code-block/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-document/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-dropcursor/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-dropcursor/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-gapcursor/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-gapcursor/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-hard-break/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-heading/dist/index.js","webpack://missanriscn/./node_modules/rope-sequence/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-history/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-history/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-horizontal-rule/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-italic/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-list-item/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-ordered-list/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-paragraph/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-strike/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-text/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/starter-kit/dist/index.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/math.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/enums.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/createPopper.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/utils/within.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://missanriscn/./node_modules/@popperjs/core/lib/popper.js","webpack://missanriscn/./node_modules/tippy.js/dist/tippy.esm.js","webpack://missanriscn/./node_modules/@tiptap/extension-bubble-menu/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/extension-floating-menu/dist/index.js","webpack://missanriscn/./node_modules/@tiptap/vue-2/dist/index.js","webpack://missanriscn/./node_modules/axios/lib/helpers/bind.js","webpack://missanriscn/./node_modules/axios/lib/utils.js","webpack://missanriscn/./node_modules/axios/lib/core/AxiosError.js","webpack://missanriscn/./node_modules/axios/lib/helpers/null.js","webpack://missanriscn/./node_modules/axios/lib/helpers/toFormData.js","webpack://missanriscn/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://missanriscn/./node_modules/axios/lib/helpers/buildURL.js","webpack://missanriscn/./node_modules/axios/lib/core/InterceptorManager.js","webpack://missanriscn/./node_modules/axios/lib/defaults/transitional.js","webpack://missanriscn/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://missanriscn/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://missanriscn/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://missanriscn/./node_modules/axios/lib/platform/browser/index.js","webpack://missanriscn/./node_modules/axios/lib/platform/common/utils.js","webpack://missanriscn/./node_modules/axios/lib/platform/index.js","webpack://missanriscn/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://missanriscn/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://missanriscn/./node_modules/axios/lib/defaults/index.js","webpack://missanriscn/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://missanriscn/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://missanriscn/./node_modules/axios/lib/core/transformData.js","webpack://missanriscn/./node_modules/axios/lib/cancel/isCancel.js","webpack://missanriscn/./node_modules/axios/lib/cancel/CanceledError.js","webpack://missanriscn/./node_modules/axios/lib/core/settle.js","webpack://missanriscn/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://missanriscn/./node_modules/axios/lib/helpers/speedometer.js","webpack://missanriscn/./node_modules/axios/lib/helpers/throttle.js","webpack://missanriscn/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://missanriscn/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://missanriscn/./node_modules/axios/lib/helpers/cookies.js","webpack://missanriscn/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://missanriscn/./node_modules/axios/lib/helpers/combineURLs.js","webpack://missanriscn/./node_modules/axios/lib/core/buildFullPath.js","webpack://missanriscn/./node_modules/axios/lib/core/mergeConfig.js","webpack://missanriscn/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://missanriscn/./node_modules/axios/lib/adapters/xhr.js","webpack://missanriscn/./node_modules/axios/lib/helpers/composeSignals.js","webpack://missanriscn/./node_modules/axios/lib/helpers/trackStream.js","webpack://missanriscn/./node_modules/axios/lib/adapters/fetch.js","webpack://missanriscn/./node_modules/axios/lib/adapters/adapters.js","webpack://missanriscn/./node_modules/axios/lib/core/dispatchRequest.js","webpack://missanriscn/./node_modules/axios/lib/env/data.js","webpack://missanriscn/./node_modules/axios/lib/helpers/validator.js","webpack://missanriscn/./node_modules/axios/lib/core/Axios.js","webpack://missanriscn/./node_modules/axios/lib/cancel/CancelToken.js","webpack://missanriscn/./node_modules/axios/lib/helpers/spread.js","webpack://missanriscn/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://missanriscn/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://missanriscn/./node_modules/axios/lib/axios.js","webpack://missanriscn/./node_modules/p-limit/node_modules/yocto-queue/index.js","webpack://missanriscn/./node_modules/p-limit/index.js","webpack://missanriscn/./node_modules/pako/dist/pako.esm.mjs","webpack://missanriscn/./node_modules/w3c-keyname/index.js","webpack://missanriscn/./node_modules/prosemirror-keymap/dist/index.js","webpack://missanriscn/./node_modules/orderedmap/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-model/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-state/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-transform/dist/index.js","webpack://missanriscn/./node_modules/prosemirror-view/dist/index.js"],"sourcesContent":["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","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","/**\n * Date & time utility functions to abstract the `aws-sdk` away from users.\n * (v2 => v3 modularization is a breaking change)\n *\n * @see https://github.com/aws/aws-sdk-js/blob/6edf586dcc1de7fe8fbfbbd9a0d2b1847921e6e1/lib/util.js#L262\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// Comment - TODO: remove\nvar FIVE_MINUTES_IN_MS = 1000 * 60 * 5;\nexport var DateUtils = {\n /**\n * Milliseconds to offset the date to compensate for clock skew between device & services\n */\n clockOffset: 0,\n getDateWithClockOffset: function () {\n if (DateUtils.clockOffset) {\n return new Date(new Date().getTime() + DateUtils.clockOffset);\n }\n else {\n return new Date();\n }\n },\n /**\n * @returns {number} Clock offset in milliseconds\n */\n getClockOffset: function () {\n return DateUtils.clockOffset;\n },\n getHeaderStringFromDate: function (date) {\n if (date === void 0) { date = DateUtils.getDateWithClockOffset(); }\n return date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n },\n getDateFromHeaderString: function (header) {\n var _a = __read(header.match(/^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2}).+/), 7), year = _a[1], month = _a[2], day = _a[3], hour = _a[4], minute = _a[5], second = _a[6];\n return new Date(Date.UTC(Number(year), Number(month) - 1, Number(day), Number(hour), Number(minute), Number(second)));\n },\n isClockSkewed: function (serverDate) {\n // API gateway permits client calls that are off by no more than ±5 minutes\n return (Math.abs(serverDate.getTime() - DateUtils.getDateWithClockOffset().getTime()) >= FIVE_MINUTES_IN_MS);\n },\n isClockSkewError: function (error) {\n if (!error.response || !error.response.headers) {\n return false;\n }\n var headers = error.response.headers;\n return Boolean(['BadRequestException', 'InvalidSignatureException'].includes(headers['x-amzn-errortype']) &&\n (headers.date || headers.Date));\n },\n /**\n * @param {number} offset Clock offset in milliseconds\n */\n setClockOffset: function (offset) {\n DateUtils.clockOffset = offset;\n },\n};\n//# sourceMappingURL=DateUtils.js.map","/*\n * Copyright 2017-2017 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 */\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};\nimport { ConsoleLogger as Logger } from './Logger';\nimport { Sha256 as jsSha256 } from '@aws-crypto/sha256-js';\nimport { toHex } from '@aws-sdk/util-hex-encoding';\nimport { parse, format } from 'url';\nimport { DateUtils } from './Util';\nvar logger = new Logger('Signer');\nvar DEFAULT_ALGORITHM = 'AWS4-HMAC-SHA256';\nvar IOT_SERVICE_NAME = 'iotdevicegateway';\nvar encrypt = function (key, src) {\n var hash = new jsSha256(key);\n hash.update(src);\n return hash.digestSync();\n};\nvar hash = function (src) {\n var arg = src || '';\n var hash = new jsSha256();\n hash.update(arg);\n return toHex(hash.digestSync());\n};\n/**\n * @private\n * RFC 3986 compliant version of encodeURIComponent\n */\nvar escape_RFC3986 = function (component) {\n return component.replace(/[!'()*]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n};\n/**\n * @private\n * Create canonical query string\n *\n */\nvar canonical_query = function (query) {\n if (!query || query.length === 0) {\n return '';\n }\n return query\n .split('&')\n .map(function (e) {\n var key_val = e.split('=');\n if (key_val.length === 1) {\n return e;\n }\n else {\n var reencoded_val = escape_RFC3986(key_val[1]);\n return key_val[0] + '=' + reencoded_val;\n }\n })\n .sort(function (a, b) {\n var key_a = a.split('=')[0];\n var key_b = b.split('=')[0];\n if (key_a === key_b) {\n return a < b ? -1 : 1;\n }\n else {\n return key_a < key_b ? -1 : 1;\n }\n })\n .join('&');\n};\n/**\n* @private\n* Create canonical headers\n*\n
\nCanonicalHeaders =\n    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN\nCanonicalHeadersEntry =\n    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\\n'\n
\n*/\nvar canonical_headers = function (headers) {\n if (!headers || Object.keys(headers).length === 0) {\n return '';\n }\n return (Object.keys(headers)\n .map(function (key) {\n return {\n key: key.toLowerCase(),\n value: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : '',\n };\n })\n .sort(function (a, b) {\n return a.key < b.key ? -1 : 1;\n })\n .map(function (item) {\n return item.key + ':' + item.value;\n })\n .join('\\n') + '\\n');\n};\n/**\n * List of header keys included in the canonical headers.\n * @access private\n */\nvar signed_headers = function (headers) {\n return Object.keys(headers)\n .map(function (key) {\n return key.toLowerCase();\n })\n .sort()\n .join(';');\n};\n/**\n* @private\n* Create canonical request\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request}\n*\n
\nCanonicalRequest =\n    HTTPRequestMethod + '\\n' +\n    CanonicalURI + '\\n' +\n    CanonicalQueryString + '\\n' +\n    CanonicalHeaders + '\\n' +\n    SignedHeaders + '\\n' +\n    HexEncode(Hash(RequestPayload))\n
\n*/\nvar canonical_request = function (request) {\n var url_info = parse(request.url);\n return [\n request.method || '/',\n encodeURIComponent(url_info.pathname).replace(/%2F/gi, '/'),\n canonical_query(url_info.query),\n canonical_headers(request.headers),\n signed_headers(request.headers),\n hash(request.data),\n ].join('\\n');\n};\nvar parse_service_info = function (request) {\n var url_info = parse(request.url), host = url_info.host;\n var matched = host.match(/([^\\.]+)\\.(?:([^\\.]*)\\.)?amazonaws\\.com$/);\n var parsed = (matched || []).slice(1, 3);\n if (parsed[1] === 'es') {\n // Elastic Search\n parsed = parsed.reverse();\n }\n return {\n service: request.service || parsed[0],\n region: request.region || parsed[1],\n };\n};\nvar credential_scope = function (d_str, region, service) {\n return [d_str, region, service, 'aws4_request'].join('/');\n};\n/**\n* @private\n* Create a string to sign\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign}\n*\n
\nStringToSign =\n    Algorithm + \\n +\n    RequestDateTime + \\n +\n    CredentialScope + \\n +\n    HashedCanonicalRequest\n
\n*/\nvar string_to_sign = function (algorithm, canonical_request, dt_str, scope) {\n return [algorithm, dt_str, scope, hash(canonical_request)].join('\\n');\n};\n/**\n* @private\n* Create signing key\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature}\n*\n
\nkSecret = your secret access key\nkDate = HMAC(\"AWS4\" + kSecret, Date)\nkRegion = HMAC(kDate, Region)\nkService = HMAC(kRegion, Service)\nkSigning = HMAC(kService, \"aws4_request\")\n
\n*/\nvar get_signing_key = function (secret_key, d_str, service_info) {\n logger.debug(service_info);\n var k = 'AWS4' + secret_key, k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request');\n return k_signing;\n};\nvar get_signature = function (signing_key, str_to_sign) {\n return toHex(encrypt(signing_key, str_to_sign));\n};\n/**\n * @private\n * Create authorization header\n * Refer to\n * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information}\n */\nvar get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) {\n return [\n algorithm + ' ' + 'Credential=' + access_key + '/' + scope,\n 'SignedHeaders=' + signed_headers,\n 'Signature=' + signature,\n ].join(', ');\n};\nvar Signer = /** @class */ (function () {\n function Signer() {\n }\n /**\n * Sign a HTTP request, add 'Authorization' header to request param\n * @method sign\n * @memberof Signer\n * @static\n *\n * @param {object} request - HTTP request object\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, access_info, service_info) {\n if (service_info === void 0) { service_info = null; }\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 // datetime string and date string\n var dt = DateUtils.getDateWithClockOffset(), dt_str = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, ''), d_str = dt_str.substr(0, 8);\n var url_info = parse(request.url);\n request.headers['host'] = url_info.host;\n request.headers['x-amz-date'] = dt_str;\n if (access_info.session_token) {\n request.headers['X-Amz-Security-Token'] = access_info.session_token;\n }\n // Task 1: Create a Canonical Request\n var request_str = canonical_request(request);\n logger.debug(request_str);\n // Task 2: Create a String to Sign\n var serviceInfo = service_info || parse_service_info(request), scope = credential_scope(d_str, serviceInfo.region, serviceInfo.service), str_to_sign = string_to_sign(DEFAULT_ALGORITHM, request_str, dt_str, scope);\n // Task 3: Calculate the Signature\n var signing_key = get_signing_key(access_info.secret_key, d_str, serviceInfo), signature = get_signature(signing_key, str_to_sign);\n // Task 4: Adding the Signing information to the Request\n var authorization_header = get_authorization_header(DEFAULT_ALGORITHM, access_info.access_key, scope, signed_headers(request.headers), signature);\n request.headers['Authorization'] = authorization_header;\n return request;\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 now = DateUtils.getDateWithClockOffset()\n .toISOString()\n .replace(/[:\\-]|\\.\\d{3}/g, '');\n var today = now.substr(0, 8);\n // Intentionally discarding search\n var _a = parse(urlToSign, true, true), search = _a.search, parsedUrl = __rest(_a, [\"search\"]);\n var host = parsedUrl.host;\n var signedHeaders = { host: host };\n var _b = serviceInfo || parse_service_info({ url: format(parsedUrl) }), region = _b.region, service = _b.service;\n var credentialScope = credential_scope(today, region, service);\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 var sessionTokenRequired = accessInfo.session_token && service !== IOT_SERVICE_NAME;\n var queryParams = __assign(__assign(__assign({ 'X-Amz-Algorithm': DEFAULT_ALGORITHM, 'X-Amz-Credential': [accessInfo.access_key, credentialScope].join('/'), 'X-Amz-Date': now.substr(0, 16) }, (sessionTokenRequired\n ? { 'X-Amz-Security-Token': \"\" + accessInfo.session_token }\n : {})), (expiration ? { 'X-Amz-Expires': \"\" + expiration } : {})), { 'X-Amz-SignedHeaders': Object.keys(signedHeaders).join(',') });\n var canonicalRequest = canonical_request({\n method: method,\n url: format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), queryParams) })),\n headers: signedHeaders,\n data: body,\n });\n var stringToSign = string_to_sign(DEFAULT_ALGORITHM, canonicalRequest, now, credentialScope);\n var signing_key = get_signing_key(accessInfo.secret_key, today, {\n region: region,\n service: service,\n });\n var signature = get_signature(signing_key, stringToSign);\n var additionalQueryParams = __assign({ 'X-Amz-Signature': signature }, (accessInfo.session_token && {\n 'X-Amz-Security-Token': accessInfo.session_token,\n }));\n var result = format({\n protocol: parsedUrl.protocol,\n slashes: true,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n pathname: parsedUrl.pathname,\n query: __assign(__assign(__assign({}, parsedUrl.query), queryParams), additionalQueryParams),\n });\n return result;\n };\n return Signer;\n}());\nexport { Signer };\n/**\n * @deprecated use per-function import\n */\nexport default Signer;\n//# sourceMappingURL=Signer.js.map","/*\n * Copyright 2017-2017 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 */\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 (_) 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 __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};\nimport { ConsoleLogger as Logger, Credentials, DateUtils, Signer, Platform, } 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, userAgent, initParams, isAllResponse, custom_header_obj, _a, _b, search, parsedUrl;\n var _this = this;\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 if (Platform.isReactNative) {\n userAgent = Platform.userAgent || 'aws-amplify/0.1.x';\n libraryHeaders = {\n 'User-Agent': userAgent,\n };\n }\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 // Signing the request in case there credentials are available\n return [2 /*return*/, this.Credentials.get().then(function (credentials) {\n return _this._signed(__assign({}, params), credentials, isAllResponse, {\n region: region,\n service: service,\n }).catch(function (error) {\n if (DateUtils.isClockSkewError(error)) {\n var headers = error.response.headers;\n var dateHeader = headers && (headers.date || headers.Date);\n var responseDate = new Date(dateHeader);\n var requestDate = DateUtils.getDateFromHeaderString(params.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 _this.ajax(urlOrApiInfo, method, init);\n }\n }\n throw error;\n });\n }, function (err) {\n logger.debug('No credentials available, the request will be unsigned');\n return _this._request(params, isAllResponse);\n })];\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._signed = function (params, credentials, isAllResponse, _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 axios(signed_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._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","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 (_) 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 __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};\n/*\n * Copyright 2017-2019 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 { 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","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\n}\n","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';\n","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n var lineRegexp = /\\r\\n|[\\n\\r]/g;\n var line = 1;\n var column = position + 1;\n var match;\n\n while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n line += 1;\n column = position + 1 - (match.index + match[0].length);\n }\n\n return {\n line: line,\n column: column\n };\n}\n","import { getLocation } from \"./location.mjs\";\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printLocation(location) {\n return printSourceLocation(location.source, getLocation(location.source, location.start));\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n var firstLineColumnOffset = source.locationOffset.column - 1;\n var body = whitespace(firstLineColumnOffset) + source.body;\n var lineIndex = sourceLocation.line - 1;\n var lineOffset = source.locationOffset.line - 1;\n var lineNum = sourceLocation.line + lineOffset;\n var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n var columnNum = sourceLocation.column + columnOffset;\n var locationStr = \"\".concat(source.name, \":\").concat(lineNum, \":\").concat(columnNum, \"\\n\");\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n var locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n var subLineIndex = Math.floor(columnNum / 80);\n var subLineColumnNum = columnNum % 80;\n var subLines = [];\n\n for (var i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return locationStr + printPrefixedLines([[\"\".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {\n return ['', subLine];\n }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));\n }\n\n return locationStr + printPrefixedLines([// Lines specified like this: [\"prefix\", \"string\"],\n [\"\".concat(lineNum - 1), lines[lineIndex - 1]], [\"\".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], [\"\".concat(lineNum + 1), lines[lineIndex + 1]]]);\n}\n\nfunction printPrefixedLines(lines) {\n var existingLines = lines.filter(function (_ref) {\n var _ = _ref[0],\n line = _ref[1];\n return line !== undefined;\n });\n var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {\n var prefix = _ref2[0];\n return prefix.length;\n }));\n return existingLines.map(function (_ref3) {\n var prefix = _ref3[0],\n line = _ref3[1];\n return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');\n }).join('\\n');\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction leftPad(len, str) {\n return whitespace(len - str.length) + str;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { 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\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\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\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; } 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 _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport { getLocation } from \"../language/location.mjs\";\nimport { printLocation, printSourceLocation } from \"../language/printLocation.mjs\";\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport var GraphQLError = /*#__PURE__*/function (_Error) {\n _inherits(GraphQLError, _Error);\n\n var _super = _createSuper(GraphQLError);\n\n /**\n * An array of { line, column } locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n var _nodeLocations, _nodeLocations2, _nodeLocations3;\n\n var _this;\n\n _classCallCheck(this, GraphQLError);\n\n _this = _super.call(this, message);\n _this.name = 'GraphQLError';\n _this.originalError = originalError !== null && originalError !== void 0 ? originalError : undefined; // Compute list of blame nodes.\n\n _this.nodes = undefinedIfEmpty(Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined);\n var nodeLocations = [];\n\n for (var _i2 = 0, _ref3 = (_this$nodes = _this.nodes) !== null && _this$nodes !== void 0 ? _this$nodes : []; _i2 < _ref3.length; _i2++) {\n var _this$nodes;\n\n var _ref4 = _ref3[_i2];\n var loc = _ref4.loc;\n\n if (loc != null) {\n nodeLocations.push(loc);\n }\n }\n\n nodeLocations = undefinedIfEmpty(nodeLocations); // Compute locations in the source for the given nodes/positions.\n\n _this.source = source !== null && source !== void 0 ? source : (_nodeLocations = nodeLocations) === null || _nodeLocations === void 0 ? void 0 : _nodeLocations[0].source;\n _this.positions = positions !== null && positions !== void 0 ? positions : (_nodeLocations2 = nodeLocations) === null || _nodeLocations2 === void 0 ? void 0 : _nodeLocations2.map(function (loc) {\n return loc.start;\n });\n _this.locations = positions && source ? positions.map(function (pos) {\n return getLocation(source, pos);\n }) : (_nodeLocations3 = nodeLocations) === null || _nodeLocations3 === void 0 ? void 0 : _nodeLocations3.map(function (loc) {\n return getLocation(loc.source, loc.start);\n });\n _this.path = path !== null && path !== void 0 ? path : undefined;\n var originalExtensions = originalError === null || originalError === void 0 ? void 0 : originalError.extensions;\n\n if (extensions == null && isObjectLike(originalExtensions)) {\n _this.extensions = _objectSpread({}, originalExtensions);\n } else {\n _this.extensions = extensions !== null && extensions !== void 0 ? extensions : {};\n } // By being enumerable, JSON.stringify will include bellow properties in the resulting output.\n // This ensures that the simplest possible GraphQL service adheres to the spec.\n\n\n Object.defineProperties(_assertThisInitialized(_this), {\n message: {\n enumerable: true\n },\n locations: {\n enumerable: _this.locations != null\n },\n path: {\n enumerable: _this.path != null\n },\n extensions: {\n enumerable: _this.extensions != null && Object.keys(_this.extensions).length > 0\n },\n name: {\n enumerable: false\n },\n nodes: {\n enumerable: false\n },\n source: {\n enumerable: false\n },\n positions: {\n enumerable: false\n },\n originalError: {\n enumerable: false\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError !== null && originalError !== void 0 && originalError.stack) {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n return _possibleConstructorReturn(_this);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);\n } else {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n\n return _this;\n }\n\n _createClass(GraphQLError, [{\n key: \"toString\",\n value: function toString() {\n return printError(this);\n } // FIXME: workaround to not break chai comparisons, should be remove in v16\n // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n }, {\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Object';\n }\n }]);\n\n return GraphQLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i4 = 0, _error$nodes2 = error.nodes; _i4 < _error$nodes2.length; _i4++) {\n var node = _error$nodes2[_i4];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i6 = 0, _error$locations2 = error.locations; _i6 < _error$locations2.length; _i6++) {\n var location = _error$locations2[_i6];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\n}\n","import { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}\n","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */\n","export default function invariant(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message != null ? message : 'Unexpected invariant triggered.');\n }\n}\n","// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\n","import invariant from \"./invariant.mjs\";\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\n/**\n * The `defineInspect()` function defines `inspect()` prototype method as alias of `toJSON`\n */\n\nexport default function defineInspect(classObject) {\n var fn = classObject.prototype.toJSON;\n typeof fn === 'function' || invariant(0);\n classObject.prototype.inspect = fn; // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}\n","import defineInspect from \"../jsutils/defineInspect.mjs\";\n\n/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport var Location = /*#__PURE__*/function () {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n function Location(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n var _proto = Location.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n start: this.start,\n end: this.end\n };\n };\n\n return Location;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Location);\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport var Token = /*#__PURE__*/function () {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n function Token(kind, start, end, line, column, prev, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column;\n this.value = value;\n this.prev = prev;\n this.next = null;\n }\n\n var _proto2 = Token.prototype;\n\n _proto2.toJSON = function toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\n };\n\n return Token;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Token);\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n return maybeNode != null && typeof maybeNode.kind === 'string';\n}\n/**\n * The list of all possible AST node types.\n */\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n SOF: '',\n EOF: '',\n BANG: '!',\n DOLLAR: '$',\n AMP: '&',\n PAREN_L: '(',\n PAREN_R: ')',\n SPREAD: '...',\n COLON: ':',\n EQUALS: '=',\n AT: '@',\n BRACKET_L: '[',\n BRACKET_R: ']',\n BRACE_L: '{',\n PIPE: '|',\n BRACE_R: '}',\n NAME: 'Name',\n INT: 'Int',\n FLOAT: 'Float',\n STRING: 'String',\n BLOCK_STRING: 'BlockString',\n COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\n */\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable flowtype/no-weak-types */\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","export default function devAssert(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport inspect from \"./inspect.mjs\";\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\nexport default process.env.NODE_ENV === 'production' ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n// eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (_typeof(value) === 'object' && value !== null) {\n var _value$constructor;\n\n var className = constructor.prototype[Symbol.toStringTag];\n var valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name;\n\n if (className === valueClassName) {\n var stringifiedValue = inspect(value);\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(stringifiedValue, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n }\n }\n\n return false;\n};\n","function _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\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport var Source = /*#__PURE__*/function () {\n function Source(body) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n line: 1,\n column: 1\n };\n typeof body === 'string' || devAssert(0, \"Body must be a string. Received: \".concat(inspect(body), \".\"));\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n\n _createClass(Source, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Source';\n }\n }]);\n\n return Source;\n}();\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n // Request Definitions\n QUERY: 'QUERY',\n MUTATION: 'MUTATION',\n SUBSCRIPTION: 'SUBSCRIPTION',\n FIELD: 'FIELD',\n FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n // Type System Definitions\n SCHEMA: 'SCHEMA',\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n FIELD_DEFINITION: 'FIELD_DEFINITION',\n ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n ENUM_VALUE: 'ENUM_VALUE',\n INPUT_OBJECT: 'INPUT_OBJECT',\n INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */\n","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(rawString);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n var startLine = 0;\n\n while (startLine < lines.length && isBlank(lines[startLine])) {\n ++startLine;\n }\n\n var endLine = lines.length;\n\n while (endLine > startLine && isBlank(lines[endLine - 1])) {\n --endLine;\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n for (var i = 0; i < str.length; ++i) {\n if (str[i] !== ' ' && str[i] !== '\\t') {\n return false;\n }\n }\n\n return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n var _commonIndent;\n\n var isFirstLine = true;\n var isEmptyLine = true;\n var indent = 0;\n var commonIndent = null;\n\n for (var i = 0; i < value.length; ++i) {\n switch (value.charCodeAt(i)) {\n case 13:\n // \\r\n if (value.charCodeAt(i + 1) === 10) {\n ++i; // skip \\r\\n as one symbol\n }\n\n // falls through\n\n case 10:\n // \\n\n isFirstLine = false;\n isEmptyLine = true;\n indent = 0;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n ++indent;\n break;\n\n default:\n if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n commonIndent = indent;\n }\n\n isEmptyLine = false;\n }\n }\n\n return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var hasTrailingSlash = value[value.length - 1] === '\\\\';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Token } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"./blockString.mjs\";\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport var Lexer = /*#__PURE__*/function () {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n function Lexer(source) {\n var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n\n var _proto = Lexer.prototype;\n\n _proto.advance = function advance() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n ;\n\n _proto.lookahead = function lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n var _token$next;\n\n // Note: next is only mutable during parsing, so we cast to allow this.\n token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n };\n\n return Lexer;\n}();\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n\nfunction printCharCode(code) {\n return (// NaN/undefined represents access beyond the end of the file.\n isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n var source = lexer.source;\n var body = source.body;\n var bodyLength = body.length;\n var pos = prev.end;\n\n while (pos < bodyLength) {\n var code = body.charCodeAt(pos);\n var _line = lexer.line;\n\n var _col = 1 + pos - lexer.lineStart; // SourceCharacter\n\n\n switch (code) {\n case 0xfeff: // \n\n case 9: // \\t\n\n case 32: // \n\n case 44:\n // ,\n ++pos;\n continue;\n\n case 10:\n // \\n\n ++pos;\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 13:\n // \\r\n if (body.charCodeAt(pos + 1) === 10) {\n pos += 2;\n } else {\n ++pos;\n }\n\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 33:\n // !\n return new Token(TokenKind.BANG, pos, pos + 1, _line, _col, prev);\n\n case 35:\n // #\n return readComment(source, pos, _line, _col, prev);\n\n case 36:\n // $\n return new Token(TokenKind.DOLLAR, pos, pos + 1, _line, _col, prev);\n\n case 38:\n // &\n return new Token(TokenKind.AMP, pos, pos + 1, _line, _col, prev);\n\n case 40:\n // (\n return new Token(TokenKind.PAREN_L, pos, pos + 1, _line, _col, prev);\n\n case 41:\n // )\n return new Token(TokenKind.PAREN_R, pos, pos + 1, _line, _col, prev);\n\n case 46:\n // .\n if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n return new Token(TokenKind.SPREAD, pos, pos + 3, _line, _col, prev);\n }\n\n break;\n\n case 58:\n // :\n return new Token(TokenKind.COLON, pos, pos + 1, _line, _col, prev);\n\n case 61:\n // =\n return new Token(TokenKind.EQUALS, pos, pos + 1, _line, _col, prev);\n\n case 64:\n // @\n return new Token(TokenKind.AT, pos, pos + 1, _line, _col, prev);\n\n case 91:\n // [\n return new Token(TokenKind.BRACKET_L, pos, pos + 1, _line, _col, prev);\n\n case 93:\n // ]\n return new Token(TokenKind.BRACKET_R, pos, pos + 1, _line, _col, prev);\n\n case 123:\n // {\n return new Token(TokenKind.BRACE_L, pos, pos + 1, _line, _col, prev);\n\n case 124:\n // |\n return new Token(TokenKind.PIPE, pos, pos + 1, _line, _col, prev);\n\n case 125:\n // }\n return new Token(TokenKind.BRACE_R, pos, pos + 1, _line, _col, prev);\n\n case 34:\n // \"\n if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n return readBlockString(source, pos, _line, _col, prev, lexer);\n }\n\n return readString(source, pos, _line, _col, prev);\n\n case 45: // -\n\n case 48: // 0\n\n case 49: // 1\n\n case 50: // 2\n\n case 51: // 3\n\n case 52: // 4\n\n case 53: // 5\n\n case 54: // 6\n\n case 55: // 7\n\n case 56: // 8\n\n case 57:\n // 9\n return readNumber(source, pos, code, _line, _col, prev);\n\n case 65: // A\n\n case 66: // B\n\n case 67: // C\n\n case 68: // D\n\n case 69: // E\n\n case 70: // F\n\n case 71: // G\n\n case 72: // H\n\n case 73: // I\n\n case 74: // J\n\n case 75: // K\n\n case 76: // L\n\n case 77: // M\n\n case 78: // N\n\n case 79: // O\n\n case 80: // P\n\n case 81: // Q\n\n case 82: // R\n\n case 83: // S\n\n case 84: // T\n\n case 85: // U\n\n case 86: // V\n\n case 87: // W\n\n case 88: // X\n\n case 89: // Y\n\n case 90: // Z\n\n case 95: // _\n\n case 97: // a\n\n case 98: // b\n\n case 99: // c\n\n case 100: // d\n\n case 101: // e\n\n case 102: // f\n\n case 103: // g\n\n case 104: // h\n\n case 105: // i\n\n case 106: // j\n\n case 107: // k\n\n case 108: // l\n\n case 109: // m\n\n case 110: // n\n\n case 111: // o\n\n case 112: // p\n\n case 113: // q\n\n case 114: // r\n\n case 115: // s\n\n case 116: // t\n\n case 117: // u\n\n case 118: // v\n\n case 119: // w\n\n case 120: // x\n\n case 121: // y\n\n case 122:\n // z\n return readName(source, pos, _line, _col, prev);\n }\n\n throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n }\n\n var line = lexer.line;\n var col = 1 + pos - lexer.lineStart;\n return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n }\n\n if (code === 39) {\n // '\n return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n }\n\n return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n var body = source.body;\n var code;\n var position = start;\n\n do {\n code = body.charCodeAt(++position);\n } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n code > 0x001f || code === 0x0009));\n\n return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int: -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n var body = source.body;\n var code = firstCode;\n var position = start;\n var isFloat = false;\n\n if (code === 45) {\n // -\n code = body.charCodeAt(++position);\n }\n\n if (code === 48) {\n // 0\n code = body.charCodeAt(++position);\n\n if (code >= 48 && code <= 57) {\n throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n }\n } else {\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 46) {\n // .\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 69 || code === 101) {\n // E e\n isFloat = true;\n code = body.charCodeAt(++position);\n\n if (code === 43 || code === 45) {\n // + -\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n\n if (code === 46 || isNameStart(code)) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n var body = source.body;\n var position = start;\n var code = firstCode;\n\n if (code >= 48 && code <= 57) {\n // 0 - 9\n do {\n code = body.charCodeAt(++position);\n } while (code >= 48 && code <= 57); // 0 - 9\n\n\n return position;\n }\n\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n var body = source.body;\n var position = start + 1;\n var chunkStart = position;\n var code = 0;\n var value = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n code !== 0x000a && code !== 0x000d) {\n // Closing Quote (\")\n if (code === 34) {\n value += body.slice(chunkStart, position);\n return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n ++position;\n\n if (code === 92) {\n // \\\n value += body.slice(chunkStart, position - 1);\n code = body.charCodeAt(position);\n\n switch (code) {\n case 34:\n value += '\"';\n break;\n\n case 47:\n value += '/';\n break;\n\n case 92:\n value += '\\\\';\n break;\n\n case 98:\n value += '\\b';\n break;\n\n case 102:\n value += '\\f';\n break;\n\n case 110:\n value += '\\n';\n break;\n\n case 114:\n value += '\\r';\n break;\n\n case 116:\n value += '\\t';\n break;\n\n case 117:\n {\n // uXXXX\n var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n if (charCode < 0) {\n var invalidSequence = body.slice(position + 1, position + 5);\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n }\n\n value += String.fromCharCode(charCode);\n position += 4;\n break;\n }\n\n default:\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n }\n\n ++position;\n chunkStart = position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n var body = source.body;\n var position = start + 3;\n var chunkStart = position;\n var code = 0;\n var rawValue = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n // Closing Triple-Quote (\"\"\")\n if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n rawValue += body.slice(chunkStart, position);\n return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else if ( // Escape Triple-Quote (\\\"\"\")\n code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n rawValue += body.slice(chunkStart, position) + '\"\"\"';\n position += 4;\n chunkStart = position;\n } else {\n ++position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n return a >= 48 && a <= 57 ? a - 48 // 0-9\n : a >= 65 && a <= 70 ? a - 55 // A-F\n : a >= 97 && a <= 102 ? a - 87 // a-f\n : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n var body = source.body;\n var bodyLength = body.length;\n var position = start + 1;\n var code = 0;\n\n while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n code >= 48 && code <= 57 || // 0-9\n code >= 65 && code <= 90 || // A-Z\n code >= 97 && code <= 122) // a-z\n ) {\n ++position;\n }\n\n return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n} // _ A-Z a-z\n\n\nfunction isNameStart(code) {\n return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;\n}\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Kind } from \"./kinds.mjs\";\nimport { Location } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { Source, isSource } from \"./source.mjs\";\nimport { DirectiveLocation } from \"./directiveLocation.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"./lexer.mjs\";\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n var parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport var Parser = /*#__PURE__*/function () {\n function Parser(source, options) {\n var sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.parseName = function parseName() {\n var token = this.expectToken(TokenKind.NAME);\n return {\n kind: Kind.NAME,\n value: token.value,\n loc: this.loc(token)\n };\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n ;\n\n _proto.parseDocument = function parseDocument() {\n var start = this._lexer.token;\n return {\n kind: Kind.DOCUMENT,\n definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n loc: this.loc(start)\n };\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n */\n ;\n\n _proto.parseDefinition = function parseDefinition() {\n if (this.peek(TokenKind.NAME)) {\n switch (this._lexer.token.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'schema':\n case 'scalar':\n case 'type':\n case 'interface':\n case 'union':\n case 'enum':\n case 'input':\n case 'directive':\n return this.parseTypeSystemDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n } else if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } else if (this.peekDescription()) {\n return this.parseTypeSystemDefinition();\n }\n\n throw this.unexpected();\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n ;\n\n _proto.parseOperationDefinition = function parseOperationDefinition() {\n var start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: 'query',\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n var operation = this.parseOperationType();\n var name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n name: name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * OperationType : one of query mutation subscription\n */\n ;\n\n _proto.parseOperationType = function parseOperationType() {\n var operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return 'query';\n\n case 'mutation':\n return 'mutation';\n\n case 'subscription':\n return 'subscription';\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n ;\n\n _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseVariableDefinition = function parseVariableDefinition() {\n var start = this._lexer.token;\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n directives: this.parseDirectives(true),\n loc: this.loc(start)\n };\n }\n /**\n * Variable : $ Name\n */\n ;\n\n _proto.parseVariable = function parseVariable() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n }\n /**\n * SelectionSet : { Selection+ }\n */\n ;\n\n _proto.parseSelectionSet = function parseSelectionSet() {\n var start = this._lexer.token;\n return {\n kind: Kind.SELECTION_SET,\n selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n ;\n\n _proto.parseSelection = function parseSelection() {\n return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n ;\n\n _proto.parseField = function parseField() {\n var start = this._lexer.token;\n var nameOrAlias = this.parseName();\n var alias;\n var name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return {\n kind: Kind.FIELD,\n alias: alias,\n name: name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n loc: this.loc(start)\n };\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n ;\n\n _proto.parseArguments = function parseArguments(isConst) {\n var item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseArgument = function parseArgument() {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.ARGUMENT,\n name: name,\n value: this.parseValueLiteral(false),\n loc: this.loc(start)\n };\n };\n\n _proto.parseConstArgument = function parseConstArgument() {\n var start = this._lexer.token;\n return {\n kind: Kind.ARGUMENT,\n name: this.parseName(),\n value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n ;\n\n _proto.parseFragment = function parseFragment() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n var hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n ;\n\n _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n var _this$_options;\n\n var start = this._lexer.token;\n this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentName : Name but not `on`\n */\n ;\n\n _proto.parseFragmentName = function parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n ;\n\n _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n var token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return {\n kind: Kind.INT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return {\n kind: Kind.FLOAT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this._lexer.advance();\n\n switch (token.value) {\n case 'true':\n return {\n kind: Kind.BOOLEAN,\n value: true,\n loc: this.loc(token)\n };\n\n case 'false':\n return {\n kind: Kind.BOOLEAN,\n value: false,\n loc: this.loc(token)\n };\n\n case 'null':\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n\n default:\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\n };\n }\n\n case TokenKind.DOLLAR:\n if (!isConst) {\n return this.parseVariable();\n }\n\n break;\n }\n\n throw this.unexpected();\n };\n\n _proto.parseStringLiteral = function parseStringLiteral() {\n var token = this._lexer.token;\n\n this._lexer.advance();\n\n return {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n loc: this.loc(token)\n };\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n ;\n\n _proto.parseList = function parseList(isConst) {\n var _this = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this.parseValueLiteral(isConst);\n };\n\n return {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n */\n ;\n\n _proto.parseObject = function parseObject(isConst) {\n var _this2 = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this2.parseObjectField(isConst);\n };\n\n return {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseObjectField = function parseObjectField(isConst) {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.OBJECT_FIELD,\n name: name,\n value: this.parseValueLiteral(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n ;\n\n _proto.parseDirectives = function parseDirectives(isConst) {\n var directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n /**\n * Directive[Const] : @ Name Arguments[?Const]?\n */\n ;\n\n _proto.parseDirective = function parseDirective(isConst) {\n var start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n ;\n\n _proto.parseTypeReference = function parseTypeReference() {\n var start = this._lexer.token;\n var type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n type = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = {\n kind: Kind.LIST_TYPE,\n type: type,\n loc: this.loc(start)\n };\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: type,\n loc: this.loc(start)\n };\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n ;\n\n _proto.parseNamedType = function parseNamedType() {\n var start = this._lexer.token;\n return {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Type Definition section.\n\n /**\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n // Many definitions begin with a description and require a lookahead.\n var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n }\n\n throw this.unexpected(keywordToken);\n };\n\n _proto.peekDescription = function peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n ;\n\n _proto.parseDescription = function parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n return {\n kind: Kind.SCHEMA_DEFINITION,\n description: description,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n ;\n\n _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n var start = this._lexer.token;\n var operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n var type = this.parseNamedType();\n return {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operation,\n type: type,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n ;\n\n _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n ;\n\n _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n var _this$_options2;\n\n if (!this.expectOptionalKeyword('implements')) {\n return [];\n }\n\n if (((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true) {\n var types = []; // Optional leading ampersand\n\n this.expectOptionalToken(TokenKind.AMP);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || this.peek(TokenKind.NAME));\n\n return types;\n }\n\n return this.delimitedMany(TokenKind.AMP, this.parseNamedType);\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n var _this$_options3;\n\n // Legacy support for the SDL?\n if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n this._lexer.advance();\n\n this._lexer.advance();\n\n return [];\n }\n\n return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n ;\n\n _proto.parseFieldDefinition = function parseFieldDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.FIELD_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n type: type,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n ;\n\n _proto.parseArgumentDefs = function parseArgumentDefs() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseInputValueDef = function parseInputValueDef() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseValueLiteral(true);\n }\n\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: description,\n name: name,\n type: type,\n defaultValue: defaultValue,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n ;\n\n _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n ;\n\n _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n ;\n\n _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * EnumValuesDefinition : { EnumValueDefinition+ }\n */\n ;\n\n _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n *\n * EnumValue : Name\n */\n ;\n\n _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n ;\n\n _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InputFieldsDefinition : { InputValueDefinition+ }\n */\n ;\n\n _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n var keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n */\n ;\n\n _proto.parseSchemaExtension = function parseSchemaExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCHEMA_EXTENSION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n ;\n\n _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n ;\n\n _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n ;\n\n _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n ;\n\n _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.UNION_TYPE_EXTENSION,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n ;\n\n _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n ;\n\n _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n */\n ;\n\n _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n var repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n var locations = this.parseDirectiveLocations();\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n repeatable: repeatable,\n locations: locations,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n ;\n\n _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n ;\n\n _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n var start = this._lexer.token;\n var name = this.parseName();\n\n if (DirectiveLocation[name.value] !== undefined) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a location object, used to identify the place in the source that created a given parsed object.\n */\n ;\n\n _proto.loc = function loc(startToken) {\n var _this$_options4;\n\n if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {\n return new Location(startToken, this._lexer.lastToken, this._lexer.source);\n }\n }\n /**\n * Determines if the next token is of a given kind\n */\n ;\n\n _proto.peek = function peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectToken = function expectToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(getTokenKindDesc(kind), \", found \").concat(getTokenDesc(token), \".\"));\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and return undefined.\n */\n ;\n\n _proto.expectOptionalToken = function expectOptionalToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n return undefined;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectKeyword = function expectKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token), \".\"));\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n ;\n\n _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n ;\n\n _proto.unexpected = function unexpected(atToken) {\n var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token), \".\"));\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.any = function any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.many = function many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n ;\n\n _proto.delimitedMany = function delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n };\n\n return Parser;\n}();\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? \" \\\"\".concat(value, \"\\\"\") : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? \"\\\"\".concat(kind, \"\\\"\") : kind;\n}\n","import inspect from \"../jsutils/inspect.mjs\";\nimport { isNode } from \"./ast.mjs\";\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport var QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n * a specific kind.\n *\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n * visit(ast, {\n * enter: {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * },\n * leave: {\n * Kind(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n */\n\nexport function visit(root, visitor) {\n var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n\n /* eslint-disable no-undef-init */\n var stack = undefined;\n var inArray = Array.isArray(root);\n var keys = [root];\n var index = -1;\n var edits = [];\n var node = undefined;\n var key = undefined;\n var parent = undefined;\n var path = [];\n var ancestors = [];\n var newRoot = root;\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n var isLeaving = index === keys.length;\n var isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n } else {\n var clone = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n clone[k] = node[k];\n }\n\n node = clone;\n }\n\n var editOffset = 0;\n\n for (var ii = 0; ii < edits.length; ii++) {\n var editKey = edits[ii][0];\n var editValue = edits[ii][1];\n\n if (inArray) {\n editKey -= editOffset;\n }\n\n if (inArray && editValue === null) {\n node.splice(editKey, 1);\n editOffset++;\n } else {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else {\n key = parent ? inArray ? index : keys[index] : undefined;\n node = parent ? parent[key] : newRoot;\n\n if (node === null || node === undefined) {\n continue;\n }\n\n if (parent) {\n path.push(key);\n }\n }\n\n var result = void 0;\n\n if (!Array.isArray(node)) {\n if (!isNode(node)) {\n throw new Error(\"Invalid AST Node: \".concat(inspect(node), \".\"));\n }\n\n var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n if (visitFn) {\n result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _visitorKeys$node$kin;\n\n stack = {\n inArray: inArray,\n index: index,\n keys: keys,\n edits: edits,\n prev: stack\n };\n inArray = Array.isArray(node);\n keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n newRoot = edits[edits.length - 1][1];\n }\n\n return newRoot;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n var skipping = new Array(visitors.length);\n return {\n enter: function enter(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n }\n },\n leave: function leave(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n true);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n }\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n var kindVisitor = visitor[kind];\n\n if (kindVisitor) {\n if (!isLeaving && typeof kindVisitor === 'function') {\n // { Kind() {} }\n return kindVisitor;\n }\n\n var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n if (typeof kindSpecificVisitor === 'function') {\n // { Kind: { enter() {}, leave() {} } }\n return kindSpecificVisitor;\n }\n } else {\n var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n if (specificVisitor) {\n if (typeof specificVisitor === 'function') {\n // { enter() {}, leave() {} }\n return specificVisitor;\n }\n\n var specificKindVisitor = specificVisitor[kind];\n\n if (typeof specificKindVisitor === 'function') {\n // { enter: { Kind() {} }, leave: { Kind() {} } }\n return specificKindVisitor;\n }\n }\n }\n}\n","import { visit } from \"./visitor.mjs\";\nimport { printBlockString } from \"./blockString.mjs\";\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, {\n leave: printDocASTReducer\n });\n}\nvar MAX_LINE_LENGTH = 80; // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n Name: function Name(node) {\n return node.value;\n },\n Variable: function Variable(node) {\n return '$' + node.name;\n },\n // Document\n Document: function Document(node) {\n return join(node.definitions, '\\n\\n') + '\\n';\n },\n OperationDefinition: function OperationDefinition(node) {\n var op = node.operation;\n var name = node.name;\n var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n var directives = join(node.directives, ' ');\n var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n },\n VariableDefinition: function VariableDefinition(_ref) {\n var variable = _ref.variable,\n type = _ref.type,\n defaultValue = _ref.defaultValue,\n directives = _ref.directives;\n return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n },\n SelectionSet: function SelectionSet(_ref2) {\n var selections = _ref2.selections;\n return block(selections);\n },\n Field: function Field(_ref3) {\n var alias = _ref3.alias,\n name = _ref3.name,\n args = _ref3.arguments,\n directives = _ref3.directives,\n selectionSet = _ref3.selectionSet;\n var prefix = wrap('', alias, ': ') + name;\n var argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n Argument: function Argument(_ref4) {\n var name = _ref4.name,\n value = _ref4.value;\n return name + ': ' + value;\n },\n // Fragments\n FragmentSpread: function FragmentSpread(_ref5) {\n var name = _ref5.name,\n directives = _ref5.directives;\n return '...' + name + wrap(' ', join(directives, ' '));\n },\n InlineFragment: function InlineFragment(_ref6) {\n var typeCondition = _ref6.typeCondition,\n directives = _ref6.directives,\n selectionSet = _ref6.selectionSet;\n return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n },\n FragmentDefinition: function FragmentDefinition(_ref7) {\n var name = _ref7.name,\n typeCondition = _ref7.typeCondition,\n variableDefinitions = _ref7.variableDefinitions,\n directives = _ref7.directives,\n selectionSet = _ref7.selectionSet;\n return (// Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n );\n },\n // Value\n IntValue: function IntValue(_ref8) {\n var value = _ref8.value;\n return value;\n },\n FloatValue: function FloatValue(_ref9) {\n var value = _ref9.value;\n return value;\n },\n StringValue: function StringValue(_ref10, key) {\n var value = _ref10.value,\n isBlockString = _ref10.block;\n return isBlockString ? printBlockString(value, key === 'description' ? '' : ' ') : JSON.stringify(value);\n },\n BooleanValue: function BooleanValue(_ref11) {\n var value = _ref11.value;\n return value ? 'true' : 'false';\n },\n NullValue: function NullValue() {\n return 'null';\n },\n EnumValue: function EnumValue(_ref12) {\n var value = _ref12.value;\n return value;\n },\n ListValue: function ListValue(_ref13) {\n var values = _ref13.values;\n return '[' + join(values, ', ') + ']';\n },\n ObjectValue: function ObjectValue(_ref14) {\n var fields = _ref14.fields;\n return '{' + join(fields, ', ') + '}';\n },\n ObjectField: function ObjectField(_ref15) {\n var name = _ref15.name,\n value = _ref15.value;\n return name + ': ' + value;\n },\n // Directive\n Directive: function Directive(_ref16) {\n var name = _ref16.name,\n args = _ref16.arguments;\n return '@' + name + wrap('(', join(args, ', '), ')');\n },\n // Type\n NamedType: function NamedType(_ref17) {\n var name = _ref17.name;\n return name;\n },\n ListType: function ListType(_ref18) {\n var type = _ref18.type;\n return '[' + type + ']';\n },\n NonNullType: function NonNullType(_ref19) {\n var type = _ref19.type;\n return type + '!';\n },\n // Type System Definitions\n SchemaDefinition: addDescription(function (_ref20) {\n var directives = _ref20.directives,\n operationTypes = _ref20.operationTypes;\n return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n }),\n OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n var operation = _ref21.operation,\n type = _ref21.type;\n return operation + ': ' + type;\n },\n ScalarTypeDefinition: addDescription(function (_ref22) {\n var name = _ref22.name,\n directives = _ref22.directives;\n return join(['scalar', name, join(directives, ' ')], ' ');\n }),\n ObjectTypeDefinition: addDescription(function (_ref23) {\n var name = _ref23.name,\n interfaces = _ref23.interfaces,\n directives = _ref23.directives,\n fields = _ref23.fields;\n return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n FieldDefinition: addDescription(function (_ref24) {\n var name = _ref24.name,\n args = _ref24.arguments,\n type = _ref24.type,\n directives = _ref24.directives;\n return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n }),\n InputValueDefinition: addDescription(function (_ref25) {\n var name = _ref25.name,\n type = _ref25.type,\n defaultValue = _ref25.defaultValue,\n directives = _ref25.directives;\n return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n }),\n InterfaceTypeDefinition: addDescription(function (_ref26) {\n var name = _ref26.name,\n interfaces = _ref26.interfaces,\n directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n UnionTypeDefinition: addDescription(function (_ref27) {\n var name = _ref27.name,\n directives = _ref27.directives,\n types = _ref27.types;\n return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n }),\n EnumTypeDefinition: addDescription(function (_ref28) {\n var name = _ref28.name,\n directives = _ref28.directives,\n values = _ref28.values;\n return join(['enum', name, join(directives, ' '), block(values)], ' ');\n }),\n EnumValueDefinition: addDescription(function (_ref29) {\n var name = _ref29.name,\n directives = _ref29.directives;\n return join([name, join(directives, ' ')], ' ');\n }),\n InputObjectTypeDefinition: addDescription(function (_ref30) {\n var name = _ref30.name,\n directives = _ref30.directives,\n fields = _ref30.fields;\n return join(['input', name, join(directives, ' '), block(fields)], ' ');\n }),\n DirectiveDefinition: addDescription(function (_ref31) {\n var name = _ref31.name,\n args = _ref31.arguments,\n repeatable = _ref31.repeatable,\n locations = _ref31.locations;\n return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n }),\n SchemaExtension: function SchemaExtension(_ref32) {\n var directives = _ref32.directives,\n operationTypes = _ref32.operationTypes;\n return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n var name = _ref33.name,\n directives = _ref33.directives;\n return join(['extend scalar', name, join(directives, ' ')], ' ');\n },\n ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n var name = _ref34.name,\n interfaces = _ref34.interfaces,\n directives = _ref34.directives,\n fields = _ref34.fields;\n return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n var name = _ref35.name,\n interfaces = _ref35.interfaces,\n directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n UnionTypeExtension: function UnionTypeExtension(_ref36) {\n var name = _ref36.name,\n directives = _ref36.directives,\n types = _ref36.types;\n return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n },\n EnumTypeExtension: function EnumTypeExtension(_ref37) {\n var name = _ref37.name,\n directives = _ref37.directives,\n values = _ref37.values;\n return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n },\n InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n var name = _ref38.name,\n directives = _ref38.directives,\n fields = _ref38.fields;\n return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n }\n};\n\nfunction addDescription(cb) {\n return function (node) {\n return join([node.description, cb(node)], '\\n');\n };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray) {\n var _maybeArray$filter$jo;\n\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {\n return x;\n }).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\n\nfunction wrap(start, maybeString) {\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return maybeString != null && maybeString !== '' ? start + maybeString + end : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction isMultiline(str) {\n return str.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray != null && maybeArray.some(isMultiline);\n}\n","/*\n * Copyright 2018-2019 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 */\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';\n/**\n * @deprecated Unused, all usecases have migrated to INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER\n */\nexport var INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER = hasSymbol\n ? Symbol.for('INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER')\n : '@@INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER';\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//# sourceMappingURL=constants.js.map","export 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//# sourceMappingURL=constants.js.map","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 '@aws-amplify/core';\nvar logger = new Logger('AbstractPubSubProvider');\nvar AbstractPubSubProvider = /** @class */ (function () {\n function AbstractPubSubProvider(options) {\n if (options === void 0) { options = {}; }\n this._config = options;\n }\n AbstractPubSubProvider.prototype.configure = function (config) {\n if (config === void 0) { 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","import { Reachability } from '@aws-amplify/core';\nexport var ReachabilityMonitor = function () { return new Reachability().networkMonitor(); };\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2021 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 */\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 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 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 // 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","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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\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 (_) 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 __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};\n/*\n * Copyright 2017-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 * as Paho from 'paho-mqtt';\nimport { v4 as uuid } from 'uuid';\nimport Observable from 'zen-observable-ts';\nimport { AbstractPubSubProvider } from './PubSubProvider';\nimport { ConsoleLogger as Logger, Hub } from '@aws-amplify/core';\nimport { ConnectionStateMonitor, CONNECTION_CHANGE, } from '../utils/ConnectionStateMonitor';\nimport { AMPLIFY_SYMBOL, CONNECTION_STATE_CHANGE } from './constants';\nvar logger = new Logger('MqttOverWSProvider');\nexport function mqttTopicMatch(filter, topic) {\n var filterArray = filter.split('/');\n var length = filterArray.length;\n var topicArray = topic.split('/');\n for (var i = 0; i < length; ++i) {\n var left = filterArray[i];\n var right = topicArray[i];\n if (left === '#')\n return topicArray.length >= length;\n if (left !== '+' && left !== right)\n return false;\n }\n return length === topicArray.length;\n}\nvar ClientsQueue = /** @class */ (function () {\n function ClientsQueue() {\n this.promises = new Map();\n }\n ClientsQueue.prototype.get = function (clientId, clientFactory) {\n return __awaiter(this, void 0, void 0, function () {\n var cachedPromise, newPromise;\n return __generator(this, function (_a) {\n cachedPromise = this.promises.get(clientId);\n if (cachedPromise) {\n return [2 /*return*/, cachedPromise];\n }\n if (clientFactory) {\n newPromise = clientFactory(clientId);\n this.promises.set(clientId, newPromise);\n return [2 /*return*/, newPromise];\n }\n return [2 /*return*/, undefined];\n });\n });\n };\n Object.defineProperty(ClientsQueue.prototype, \"allClients\", {\n get: function () {\n return Array.from(this.promises.keys());\n },\n enumerable: true,\n configurable: true\n });\n ClientsQueue.prototype.remove = function (clientId) {\n this.promises.delete(clientId);\n };\n return ClientsQueue;\n}());\nvar dispatchPubSubEvent = function (event, data, message) {\n Hub.dispatch('pubsub', { event: event, data: data, message: message }, 'PubSub', AMPLIFY_SYMBOL);\n};\nvar topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic';\nvar MqttOverWSProvider = /** @class */ (function (_super) {\n __extends(MqttOverWSProvider, _super);\n function MqttOverWSProvider(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, __assign(__assign({}, options), { clientId: options.clientId || uuid() })) || this;\n _this._clientsQueue = new ClientsQueue();\n _this.connectionStateMonitor = new ConnectionStateMonitor();\n _this._topicObservers = new Map();\n _this._clientIdObservers = new Map();\n // Monitor the connection health state and pass changes along to Hub\n _this.connectionStateMonitor.connectionStateObservable.subscribe(function (connectionStateChange) {\n dispatchPubSubEvent(CONNECTION_STATE_CHANGE, {\n provider: _this,\n connectionState: connectionStateChange,\n }, \"Connection state is \" + connectionStateChange);\n });\n return _this;\n }\n Object.defineProperty(MqttOverWSProvider.prototype, \"clientId\", {\n get: function () {\n return this.options.clientId;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MqttOverWSProvider.prototype, \"endpoint\", {\n get: function () {\n return this.options.aws_pubsub_endpoint;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MqttOverWSProvider.prototype, \"clientsQueue\", {\n get: function () {\n return this._clientsQueue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MqttOverWSProvider.prototype, \"isSSLEnabled\", {\n get: function () {\n return !this.options\n .aws_appsync_dangerously_connect_to_http_endpoint_for_testing;\n },\n enumerable: true,\n configurable: true\n });\n MqttOverWSProvider.prototype.getTopicForValue = function (value) {\n return typeof value === 'object' && value[topicSymbol];\n };\n MqttOverWSProvider.prototype.getProviderName = function () {\n return 'MqttOverWSProvider';\n };\n MqttOverWSProvider.prototype.onDisconnect = function (_a) {\n var _this = this;\n var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, [\"clientId\", \"errorCode\"]);\n if (errorCode !== 0) {\n logger.warn(clientId, JSON.stringify(__assign({ errorCode: errorCode }, args), null, 2));\n var topicsToDelete_1 = [];\n if (!clientId) {\n return;\n }\n var clientIdObservers = this._clientIdObservers.get(clientId);\n if (!clientIdObservers) {\n return;\n }\n clientIdObservers.forEach(function (observer) {\n observer.error('Disconnected, error code: ' + errorCode);\n // removing observers for disconnected clientId\n _this._topicObservers.forEach(function (observerForTopic, observerTopic) {\n observerForTopic.delete(observer);\n if (observerForTopic.size === 0) {\n topicsToDelete_1.push(observerTopic);\n }\n });\n });\n // forgiving any trace of clientId\n this._clientIdObservers.delete(clientId);\n // Removing topics that are not listen by an observer\n topicsToDelete_1.forEach(function (topic) {\n _this._topicObservers.delete(topic);\n });\n }\n };\n MqttOverWSProvider.prototype.newClient = function (_a) {\n var url = _a.url, clientId = _a.clientId;\n return __awaiter(this, void 0, void 0, function () {\n var client;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug('Creating new MQTT client', clientId);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);\n client = new Paho.Client(url, clientId);\n // client.trace = (args) => logger.debug(clientId, JSON.stringify(args, null, 2));\n client.onMessageArrived = function (_a) {\n var topic = _a.destinationName, msg = _a.payloadString;\n _this._onMessage(topic, msg);\n };\n client.onConnectionLost = function (_a) {\n var errorCode = _a.errorCode, args = __rest(_a, [\"errorCode\"]);\n _this.onDisconnect(__assign({ clientId: clientId, errorCode: errorCode }, args));\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n };\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n client.connect({\n useSSL: _this.isSSLEnabled,\n mqttVersion: 3,\n onSuccess: function () { return resolve(client); },\n onFailure: function () {\n reject();\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n },\n });\n })];\n case 1:\n _b.sent();\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_ESTABLISHED);\n return [2 /*return*/, client];\n }\n });\n });\n };\n MqttOverWSProvider.prototype.connect = function (clientId, options) {\n if (options === void 0) { options = {}; }\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.clientsQueue.get(clientId, function (clientId) {\n return _this.newClient(__assign(__assign({}, options), { clientId: clientId }));\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n MqttOverWSProvider.prototype.disconnect = function (clientId) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.clientsQueue.get(clientId)];\n case 1:\n client = _a.sent();\n if (client && client.isConnected()) {\n client.disconnect();\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n }\n this.clientsQueue.remove(clientId);\n return [2 /*return*/];\n }\n });\n });\n };\n MqttOverWSProvider.prototype.publish = function (topics, msg) {\n return __awaiter(this, void 0, void 0, function () {\n var targetTopics, message, url, client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n targetTopics = [].concat(topics);\n message = JSON.stringify(msg);\n return [4 /*yield*/, this.endpoint];\n case 1:\n url = _a.sent();\n return [4 /*yield*/, this.connect(this.clientId, { url: url })];\n case 2:\n client = _a.sent();\n logger.debug('Publishing to topic(s)', targetTopics.join(','), message);\n targetTopics.forEach(function (topic) { return client.send(topic, message); });\n return [2 /*return*/];\n }\n });\n });\n };\n MqttOverWSProvider.prototype._onMessage = function (topic, msg) {\n try {\n var matchedTopicObservers_1 = [];\n this._topicObservers.forEach(function (observerForTopic, observerTopic) {\n if (mqttTopicMatch(observerTopic, topic)) {\n matchedTopicObservers_1.push(observerForTopic);\n }\n });\n var parsedMessage_1 = JSON.parse(msg);\n if (typeof parsedMessage_1 === 'object') {\n parsedMessage_1[topicSymbol] = topic;\n }\n matchedTopicObservers_1.forEach(function (observersForTopic) {\n observersForTopic.forEach(function (observer) { return observer.next(parsedMessage_1); });\n });\n }\n catch (error) {\n logger.warn('Error handling message', error, msg);\n }\n };\n MqttOverWSProvider.prototype.subscribe = function (topics, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var targetTopics = [].concat(topics);\n logger.debug('Subscribing to topic(s)', targetTopics.join(','));\n return new Observable(function (observer) {\n targetTopics.forEach(function (topic) {\n // this._topicObservers is used to notify the observers according to the topic received on the message\n var observersForTopic = _this._topicObservers.get(topic);\n if (!observersForTopic) {\n observersForTopic = new Set();\n _this._topicObservers.set(topic, observersForTopic);\n }\n observersForTopic.add(observer);\n });\n // @ts-ignore\n var client;\n var _a = options.clientId, clientId = _a === void 0 ? _this.clientId : _a;\n // this._clientIdObservers is used to close observers when client gets disconnected\n var observersForClientId = _this._clientIdObservers.get(clientId);\n if (!observersForClientId) {\n observersForClientId = new Set();\n }\n observersForClientId.add(observer);\n _this._clientIdObservers.set(clientId, observersForClientId);\n (function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, url, _b, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = options.url;\n if (!(_a === void 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.endpoint];\n case 1:\n _b = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _b = _a;\n _c.label = 3;\n case 3:\n url = _b;\n _c.label = 4;\n case 4:\n _c.trys.push([4, 6, , 7]);\n return [4 /*yield*/, this.connect(clientId, { url: url })];\n case 5:\n client = _c.sent();\n targetTopics.forEach(function (topic) {\n client.subscribe(topic);\n });\n return [3 /*break*/, 7];\n case 6:\n e_1 = _c.sent();\n observer.error(e_1);\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n }); })();\n return function () {\n var _a, _b;\n logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));\n if (client) {\n (_a = _this._clientIdObservers.get(clientId)) === null || _a === void 0 ? void 0 : _a.delete(observer);\n // No more observers per client => client not needed anymore\n if (((_b = _this._clientIdObservers.get(clientId)) === null || _b === void 0 ? void 0 : _b.size) === 0) {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSING_CONNECTION);\n _this.disconnect(clientId);\n _this._clientIdObservers.delete(clientId);\n }\n targetTopics.forEach(function (topic) {\n var observersForTopic = _this._topicObservers.get(topic) ||\n new Set();\n observersForTopic.delete(observer);\n // if no observers exists for the topic, topic should be removed\n if (observersForTopic.size === 0) {\n _this._topicObservers.delete(topic);\n if (client.isConnected()) {\n client.unsubscribe(topic);\n }\n }\n });\n }\n return null;\n };\n });\n };\n return MqttOverWSProvider;\n}(AbstractPubSubProvider));\nexport { MqttOverWSProvider };\n//# sourceMappingURL=MqttOverWSProvider.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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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 (_) 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 __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};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport Observable from 'zen-observable-ts';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { MqttOverWSProvider } from './MqttOverWSProvider';\nvar logger = new Logger('AWSAppSyncProvider');\n/**\n * @deprecated Unused, all usecases have migrated to AWSAppSyncRealtimeProvider\n */\nvar AWSAppSyncProvider = /** @class */ (function (_super) {\n __extends(AWSAppSyncProvider, _super);\n function AWSAppSyncProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._topicClient = new Map();\n _this._topicAlias = new Map();\n return _this;\n }\n Object.defineProperty(AWSAppSyncProvider.prototype, \"endpoint\", {\n get: function () {\n throw new Error('Not supported');\n },\n enumerable: true,\n configurable: true\n });\n AWSAppSyncProvider.prototype.getProviderName = function () {\n return 'AWSAppSyncProvider';\n };\n AWSAppSyncProvider.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 AWSAppSyncProvider.prototype._cleanUp = function (clientId) {\n var _this = this;\n var topicsForClient = Array.from(this._topicClient.entries())\n .filter(function (_a) {\n var _b = __read(_a, 2), c = _b[1];\n return c.clientId === clientId;\n })\n .map(function (_a) {\n var _b = __read(_a, 1), t = _b[0];\n return t;\n });\n topicsForClient.forEach(function (t) { return _this._cleanUpForTopic(t); });\n };\n AWSAppSyncProvider.prototype._cleanUpForTopic = function (topic) {\n this._topicClient.delete(topic);\n this._topicAlias.delete(topic);\n };\n AWSAppSyncProvider.prototype.onDisconnect = function (_a) {\n var _this = this;\n var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, [\"clientId\", \"errorCode\"]);\n if (errorCode !== 0) {\n var topicsForClient = Array.from(this._topicClient.entries())\n .filter(function (_a) {\n var _b = __read(_a, 2), c = _b[1];\n return c.clientId === clientId;\n })\n .map(function (_a) {\n var _b = __read(_a, 1), t = _b[0];\n return t;\n });\n topicsForClient.forEach(function (topic) {\n if (_this._topicObservers.has(topic)) {\n _this._topicObservers.get(topic).forEach(function (obs) {\n if (!obs.closed) {\n obs.error(args);\n }\n });\n _this._topicObservers.delete(topic);\n }\n });\n this._cleanUp(clientId);\n }\n };\n AWSAppSyncProvider.prototype.disconnect = function (clientId) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function () { return null; })];\n case 1:\n client = _a.sent();\n return [4 /*yield*/, _super.prototype.disconnect.call(this, clientId)];\n case 2:\n _a.sent();\n this._cleanUp(clientId);\n return [2 /*return*/];\n }\n });\n });\n };\n AWSAppSyncProvider.prototype.subscribe = function (topics, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var result = new Observable(function (observer) {\n var targetTopics = [].concat(topics);\n logger.debug('Subscribing to topic(s)', targetTopics.join(','));\n (function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, mqttConnections, newSubscriptions, newAliases, map;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // Add these topics to map\n targetTopics.forEach(function (t) {\n if (!_this._topicObservers.has(t)) {\n _this._topicObservers.set(t, new Set());\n }\n _this._topicObservers.get(t).add(observer);\n });\n _a = options.mqttConnections, mqttConnections = _a === void 0 ? [] : _a, newSubscriptions = options.newSubscriptions;\n newAliases = Object.entries(newSubscriptions).map(function (_a) {\n var _b = __read(_a, 2), alias = _b[0], v = _b[1];\n return [v.topic, alias];\n });\n // Merge new aliases with old ones\n this._topicAlias = new Map(__spread(Array.from(this._topicAlias.entries()), newAliases));\n map = Object.entries(targetTopics.reduce(function (acc, elem) {\n var connectionInfoForTopic = mqttConnections.find(function (c) { return c.topics.indexOf(elem) > -1; });\n if (connectionInfoForTopic) {\n var clientId = connectionInfoForTopic.client, url = connectionInfoForTopic.url;\n if (!acc[clientId]) {\n acc[clientId] = {\n url: url,\n topics: new Set(),\n };\n }\n acc[clientId].topics.add(elem);\n }\n return acc;\n }, {}));\n // reconnect everything we have in the map\n return [4 /*yield*/, Promise.all(map.map(function (_a) {\n var _b = __read(_a, 2), clientId = _b[0], _c = _b[1], url = _c.url, topics = _c.topics;\n return __awaiter(_this, void 0, void 0, function () {\n var client, err_1;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n client = null;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.connect(clientId, {\n clientId: clientId,\n url: url,\n })];\n case 2:\n client = _d.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _d.sent();\n observer.error({ message: 'Failed to connect', error: err_1 });\n observer.complete();\n return [2 /*return*/, undefined];\n case 4:\n // subscribe to all topics for this client\n // store topic-client mapping\n topics.forEach(function (topic) {\n if (client.isConnected()) {\n client.subscribe(topic);\n _this._topicClient.set(topic, client);\n }\n });\n return [2 /*return*/, client];\n }\n });\n });\n }))];\n case 1:\n // reconnect everything we have in the map\n _b.sent();\n return [2 /*return*/];\n }\n });\n }); })();\n return function () {\n logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));\n targetTopics.forEach(function (t) {\n var client = _this._topicClient.get(t);\n if (client && client.isConnected()) {\n client.unsubscribe(t);\n _this._topicClient.delete(t);\n if (!Array.from(_this._topicClient.values()).some(function (c) { return c === client; })) {\n _this.disconnect(client.clientId);\n }\n }\n _this._topicObservers.delete(t);\n });\n };\n });\n return Observable.from(result).map(function (value) {\n var topic = _this.getTopicForValue(value);\n var alias = _this._topicAlias.get(topic);\n value.data = Object.entries(value.data).reduce(function (obj, _a) {\n var _b = __read(_a, 2), origKey = _b[0], val = _b[1];\n return ((obj[(alias || origKey)] = val), obj);\n }, {});\n return value;\n });\n };\n return AWSAppSyncProvider;\n}(MqttOverWSProvider));\nexport { AWSAppSyncProvider };\n//# sourceMappingURL=AWSAppSyncProvider.js.map","/*\n * Copyright 2017-2017 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 { Amplify } from './Amplify';\nimport { Platform } from './Platform';\nexport { AmplifyClass } from './Amplify';\nexport { ClientDevice } from './ClientDevice';\nexport { ConsoleLogger, ConsoleLogger as Logger } from './Logger';\nexport * from './Errors';\nexport { Hub } from './Hub';\nexport { I18n } from './I18n';\nexport * from './JS';\nexport { Signer } from './Signer';\nexport * from './Parser';\nexport * from './Providers';\nexport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nexport * from './RNComponents';\nexport { Credentials, CredentialsClass } from './Credentials';\nexport { ServiceWorker } from './ServiceWorker';\nexport { StorageHelper, MemoryStorage } from './StorageHelper';\nexport { UniversalStorage } from './UniversalStorage';\nexport { Platform, getAmplifyUserAgent } from './Platform';\nexport * from './constants';\nexport var Constants = {\n userAgent: Platform.userAgent,\n};\nexport * from './constants';\nexport * from './Util';\nexport { Amplify };\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=index.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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\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 (_) 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};\n/*\n * Copyright 2017-2021 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 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, Constants, USER_AGENT_HEADER, jitteredExponentialRetry, NonRetryableError, } from '@aws-amplify/core';\nimport Cache from '@aws-amplify/cache';\nimport Auth from '@aws-amplify/auth';\nimport { AbstractPubSubProvider } from '../PubSubProvider';\nimport { CONTROL_MSG } 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';\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\\/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 // Monitor the connection state and pass changes along to Hub\n _this.connectionStateMonitor.connectionStateObservable.subscribe(function (ConnectionState) {\n dispatchApiEvent(CONNECTION_STATE_CHANGE, {\n provider: _this,\n connectionState: ConnectionState,\n }, \"Connection state is \" + ConnectionState);\n });\n return _this;\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) {\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 subscriptionId_1 = uuid();\n _this._startSubscriptionWithAWSAppSyncRealTime({\n options: options,\n observer: observer,\n subscriptionId: subscriptionId_1,\n }).catch(function (err) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.REALTIME_SUBSCRIPTION_INIT_ERROR + \": \" + err)),\n ],\n });\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n observer.complete();\n });\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 _a.trys.push([0, 2, 3, 4]);\n // Waiting that subscription has been connected before trying to unsubscribe\n return [4 /*yield*/, this._waitForSubscriptionToBeConnected(subscriptionId_1)];\n case 1:\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*/, 4];\n case 2:\n err_1 = _a.sent();\n logger.debug(\"Error while unsubscribing \" + err_1);\n return [3 /*break*/, 4];\n case 3:\n this._removeSubscriptionObserver(subscriptionId_1);\n return [7 /*endfinally*/];\n case 4: return [2 /*return*/];\n }\n });\n }); };\n }\n });\n };\n Object.defineProperty(AWSAppSyncRealTimeProvider.prototype, \"isSSLEnabled\", {\n get: function () {\n return !this.options\n .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;\n var _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _d, graphql_headers, _e, additionalHeaders, subscriptionState, data, dataString, headerObj, _f, _g, subscriptionMessage, stringToAWSRealTime, err_2, message, subscriptionFailedCallback_1, _h, subscriptionFailedCallback, subscriptionReadyCallback;\n var _j;\n var _this = this;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _d = options.graphql_headers, graphql_headers = _d === void 0 ? function () { return ({}); } : _d, _e = options.additionalHeaders, additionalHeaders = _e === void 0 ? {} : _e;\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 _f = [{}];\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 _g = [__assign.apply(void 0, _f.concat([(_k.sent())]))];\n return [4 /*yield*/, graphql_headers()];\n case 2:\n headerObj = __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), additionalHeaders]), (_j = {}, _j[USER_AGENT_HEADER] = Constants.userAgent, _j)]);\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 _k.label = 3;\n case 3:\n _k.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 _k.sent();\n return [3 /*break*/, 6];\n case 5:\n err_2 = _k.sent();\n logger.debug({ err: err_2 });\n message = (_b = err_2['message']) !== null && _b !== void 0 ? _b : '';\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.CONNECTION_FAILED + \": \" + message)),\n ],\n });\n observer.complete();\n subscriptionFailedCallback_1 = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback;\n // Notify concurrent unsubscription\n if (typeof subscriptionFailedCallback_1 === 'function') {\n subscriptionFailedCallback_1();\n }\n return [2 /*return*/];\n case 6:\n _h = (_c = this.subscriptionObserverMap.get(subscriptionId)) !== null && _c !== void 0 ? _c : {}, subscriptionFailedCallback = _h.subscriptionFailedCallback, subscriptionReadyCallback = _h.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 // 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 logger.debug(\"subscription message from AWS AppSync RealTime: \" + message.data);\n var _a = JSON.parse(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 observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.CONNECTION_FAILED + \": \" + JSON.stringify(payload))),\n ],\n });\n if (startAckTimeoutId)\n clearTimeout(startAckTimeoutId);\n observer.complete();\n if (typeof subscriptionFailedCallback === 'function') {\n subscriptionFailedCallback();\n }\n }\n }\n };\n AWSAppSyncRealTimeProvider.prototype._errorDisconnect = function (msg) {\n logger.debug(\"Disconnect error: \" + msg);\n this.subscriptionObserverMap.forEach(function (_a) {\n var observer = _a.observer;\n if (observer && !observer.closed) {\n observer.error({\n errors: [__assign({}, new GraphQLError(msg))],\n });\n }\n });\n this.subscriptionObserverMap.clear();\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 if (observer && !observer.closed) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(\"Subscription timeout \" + JSON.stringify({\n query: query,\n variables: variables,\n }))),\n ],\n });\n // Cleanup will be automatically executed\n observer.complete();\n }\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, headerString, _a, _b, headerQs, payloadQs, discoverableEndpoint, protocol, awsRealTimeUrl, err_3;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this.promiseArray.push({ res: res, rej: rej });\n if (!(this.socketStatus === SOCKET_STATUS.CLOSED)) return [3 /*break*/, 5];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 4, , 5]);\n this.socketStatus = SOCKET_STATUS.CONNECTING;\n payloadString = '{}';\n _b = (_a = JSON).stringify;\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 headerString = _b.apply(_a, [_c.sent()]);\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 _c.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 = _c.sent();\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 _this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\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 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*/, ''];\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","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 (_) 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 * Copyright 2017-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 */\n// import '../Common/Polyfills';\nimport Observable from 'zen-observable-ts';\nimport { Amplify, browserOrNode, ConsoleLogger as Logger, INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, } from '@aws-amplify/core';\nimport { AWSAppSyncProvider, AWSAppSyncRealTimeProvider } from './Providers';\nvar isNode = browserOrNode().isNode;\nvar logger = new Logger('PubSub');\nvar PubSubClass = /** @class */ (function () {\n /**\n * Initialize PubSub with AWS configurations\n *\n * @param {PubSubOptions} options - Configuration object for PubSub\n */\n function PubSubClass(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(PubSubClass.prototype, \"awsAppSyncProvider\", {\n /**\n * Lazy instantiate AWSAppSyncProvider when it is required by the API category\n */\n get: function () {\n if (!this._awsAppSyncProvider) {\n this._awsAppSyncProvider = new AWSAppSyncProvider(this._options);\n }\n return this._awsAppSyncProvider;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PubSubClass.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 PubSubClass.prototype.getModuleName = function () {\n return 'PubSub';\n };\n /**\n * Configure PubSub part with configurations\n *\n * @param {PubSubOptions} config - Configuration for PubSub\n * @return {Object} - The current configuration\n */\n PubSubClass.prototype.configure = function (options) {\n var _this = this;\n var opt = options ? options.PubSub || options : {};\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 PubSubClass.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 PubSubClass.prototype.removePluggable = function (providerName) {\n this._pluggables = this._pluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n };\n PubSubClass.prototype.getProviderByName = function (providerName) {\n if (providerName === INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER) {\n return this.awsAppSyncProvider;\n }\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 PubSubClass.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 \" + providerName);\n }\n return [provider];\n };\n PubSubClass.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 PubSubClass.prototype.subscribe = function (topics, options) {\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 return new Observable(function (observer) {\n var observables = providers.map(function (provider) { return ({\n provider: provider,\n observable: provider.subscribe(topics, options),\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 PubSubClass;\n}());\nexport { PubSubClass };\nexport var PubSub = new PubSubClass();\nAmplify.register(PubSub);\n//# sourceMappingURL=PubSub.js.map","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 (_) 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 __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};\n/*\n * Copyright 2017-2019 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 { print, parse, GraphQLError, } from 'graphql';\nimport { Amplify, ConsoleLogger as Logger, Credentials, getAmplifyUserAgent, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, } from '@aws-amplify/core';\nimport { PubSub } from '@aws-amplify/pubsub';\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, userAgentSuffix) {\n if (variables === void 0) { variables = {}; }\n return ({\n query: query,\n variables: variables,\n authToken: authToken,\n userAgentSuffix: userAgentSuffix,\n });\n};\n/**\n * Export Cloud Logic APIs\n */\nvar GraphQLAPIClass = /** @class */ (function () {\n /**\n * Initialize GraphQL API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function GraphQLAPIClass(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 GraphQLAPIClass.prototype.getModuleName = function () {\n return 'GraphQLAPI';\n };\n /**\n * Configure API\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n GraphQLAPIClass.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 GraphQLAPIClass.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 GraphQLAPIClass.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 GraphQLAPIClass.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 GraphQLAPIClass.prototype.graphql = function (_a, additionalHeaders) {\n var paramQuery = _a.query, _b = _a.variables, variables = _b === void 0 ? {} : _b, authMode = _a.authMode, authToken = _a.authToken, userAgentSuffix = _a.userAgentSuffix;\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 = { cancellableToken: cancellableToken };\n var responsePromise = this._graphql({ query: query, variables: variables, authMode: authMode, userAgentSuffix: userAgentSuffix }, headers, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n case 'subscription':\n return this._graphqlSubscribe({ query: query, variables: variables, authMode: authMode }, headers);\n default:\n throw new Error(\"invalid operation type: \" + operationType);\n }\n };\n GraphQLAPIClass.prototype._graphql = function (_a, additionalHeaders, initParams) {\n var query = _a.query, variables = _a.variables, authMode = _a.authMode, userAgentSuffix = _a.userAgentSuffix;\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(userAgentSuffix),\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 GraphQLAPIClass.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 GraphQLAPIClass.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 GraphQLAPIClass.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 GraphQLAPIClass.prototype.hasCancelToken = function (request) {\n return this._api.hasCancelToken(request);\n };\n GraphQLAPIClass.prototype._graphqlSubscribe = function (_a, additionalHeaders) {\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 (PubSub && typeof PubSub.subscribe === 'function') {\n return PubSub.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 });\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 GraphQLAPIClass.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 GraphQLAPIClass;\n}());\nexport { GraphQLAPIClass };\nexport var GraphQLAPI = new GraphQLAPIClass(null);\nAmplify.register(GraphQLAPI);\n//# sourceMappingURL=GraphQLAPI.js.map","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 (_) 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 * Copyright 2017-2019 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 { Auth } from '@aws-amplify/auth';\nimport Cache from '@aws-amplify/cache';\nimport { RestAPIClass } from '@aws-amplify/api-rest';\nimport { GraphQLAPIClass, } from '@aws-amplify/api-graphql';\nimport { Amplify, ConsoleLogger as Logger, Credentials, } 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 APIClass = /** @class */ (function () {\n /**\n * Initialize API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function APIClass(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 GraphQLAPIClass(options);\n logger.debug('API Options', this._options);\n }\n APIClass.prototype.getModuleName = function () {\n return 'API';\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 APIClass.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 APIClass.prototype.get = function (apiName, path, init) {\n return this._restApi.get(apiName, path, init);\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 APIClass.prototype.post = function (apiName, path, init) {\n return this._restApi.post(apiName, path, init);\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 APIClass.prototype.put = function (apiName, path, init) {\n return this._restApi.put(apiName, path, init);\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 APIClass.prototype.patch = function (apiName, path, init) {\n return this._restApi.patch(apiName, path, init);\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 APIClass.prototype.del = function (apiName, path, init) {\n return this._restApi.del(apiName, path, init);\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 APIClass.prototype.head = function (apiName, path, init) {\n return this._restApi.head(apiName, path, init);\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 APIClass.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 APIClass.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 /**\n * Getting endpoint for API\n * @param apiName - The name of the api\n * @return The endpoint of the api\n */\n APIClass.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 APIClass.prototype.getGraphqlOperationType = function (operation) {\n return this._graphqlApi.getGraphqlOperationType(operation);\n };\n APIClass.prototype.graphql = function (options, additionalHeaders) {\n return this._graphqlApi.graphql(options, additionalHeaders);\n };\n return APIClass;\n}());\nexport { APIClass };\nexport var API = new APIClass(null);\nAmplify.register(API);\n//# sourceMappingURL=API.js.map","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","import Cookies from 'universal-cookie';\nimport { browserOrNode } from '../JS';\nvar isBrowser = browserOrNode().isBrowser;\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(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: true,\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 switch (tokenType) {\n // LastAuthUser is needed for computing other key names\n case 'LastAuthUser':\n // accessToken is required for CognitoUserSession\n case '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 case 'refreshToken':\n // Required for CognitoUserSession\n case 'idToken':\n isBrowser\n ? this.setUniversalItem(key, value)\n : this.setLocalItem(key, value);\n // userData is used when `Auth.currentAuthenticatedUser({ bypassCache: false })`.\n // Can be persisted to speed up calls to `Auth.currentAuthenticatedUser()`\n // case 'userData':\n // Ignoring clockDrift on the server for now, but needs testing\n // case 'clockDrift':\n }\n };\n UniversalStorage.prototype.setLocalItem = function (key, value) {\n this.store[key] = value;\n };\n UniversalStorage.prototype.setUniversalItem = function (key, value) {\n this.cookies.set(key, value, {\n 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: window.location.hostname === 'localhost' ? false : true,\n });\n };\n return UniversalStorage;\n}());\nexport { UniversalStorage };\n//# sourceMappingURL=index.js.map","export 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//# sourceMappingURL=StringUtils.js.map","/*\n * Copyright 2017-2017 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 */\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","/*\n * Copyright 2017-2017 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 */\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","/*\n * Copyright 2017-2017 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 */\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 (_) 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 { parse } from 'url'; // Used for OAuth parsing of Cognito Hosted UI\nimport { launchUri } from './urlOpener';\nimport * as oAuthStorage from './oauthStorage';\nimport { isCognitoHostedOpts, CognitoHostedUIIdentityProvider, } from '../types/Auth';\nimport { ConsoleLogger as Logger, Hub, urlSafeEncode } from '@aws-amplify/core';\nimport sha256 from 'crypto-js/sha256';\nimport Base64 from 'crypto-js/enc-base64';\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n 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, _a, access_token, refresh_token, id_token, error;\n return __generator(this, function (_b) {\n switch (_b.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 return [4 /*yield*/, fetch(oAuthTokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: body,\n })];\n case 1: return [4 /*yield*/, (_b.sent()).json()];\n case 2:\n _a = _b.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.error(\"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 return this._base64URL(sha256(code));\n };\n OAuth.prototype._base64URL = function (string) {\n return string\n .toString(Base64)\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .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","/*\n * Copyright 2017-2019 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 { 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","/*\n * Copyright 2019-2020 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 */\nvar __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\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","/*\n * Copyright 2017-2019 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 *\t 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 */\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 (_) 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 { isUsernamePasswordOpts, isCognitoHostedOpts, isFederatedSignInOptions, isFederatedSignInOptionsCustom, hasCustomState, } from './types';\nimport { Amplify, ConsoleLogger as Logger, Credentials, Hub, StorageHelper, Parser, browserOrNode, UniversalStorage, urlSafeDecode, } from '@aws-amplify/core';\nimport { CookieStorage, CognitoUserPool, AuthenticationDetails, CognitoUser, CognitoUserSession, CognitoUserAttribute, CognitoIdToken, CognitoRefreshToken, CognitoAccessToken, } from 'amazon-cognito-identity-js';\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.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 '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 }\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, Parser.parseMobilehubConfig(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;\n if (!this._config.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(this._config.storage)) {\n logger.error('The storage in the Auth config is not valid!');\n throw new Error('Empty storage object');\n }\n this._storage = this._config.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: identityPoolRegion || region,\n userPoolId: userPoolId,\n identityPoolId: identityPoolId,\n refreshHandlers: refreshHandlers,\n storage: this._storage,\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 sucess', 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 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 dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\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;\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_3 = _a.sent();\n logger.debug('cannot get cognito credentials', e_3);\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('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_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, 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_4 = _a.sent();\n logger.debug('cannot get cognito credentials', e_4);\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_5, 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_5 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_5);\n throw new Error(e_5);\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 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) {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(result);\n }\n }, clientMetadata);\n });\n });\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.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 };\n AuthClass.prototype.cleanUpInvalidSession = function (user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_6;\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_6 = _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, clientMetadata;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.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 _a.sent();\n _a.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 clientMetadata = this._config.clientMetadata;\n // refresh the session if the session expired.\n user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_5, bypassCache, clientMetadata, _a, scope;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.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 _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _b.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_5 = _b.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 [2 /*return*/];\n case 5:\n bypassCache = params ? params.bypassCache : false;\n if (!bypassCache) return [3 /*break*/, 7];\n return [4 /*yield*/, this.Credentials.clear()];\n case 6:\n _b.sent();\n _b.label = 7;\n case 7:\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_6, 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_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 [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 [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n 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_7, federatedInfo, user, e_8;\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_7 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_7);\n throw e_7;\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_8 = _a.sent();\n if (e_8 === '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_8);\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 /**\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 var _this = this;\n if (!user) {\n logger.debug('the user is null');\n return this.rejectAuthError(AuthErrorTypes.NoUserSession);\n }\n var clientMetadata = this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n return new Promise(function (res, rej) {\n logger.debug('Getting the session from this user:', user);\n user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_7;\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_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:\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 /**\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_9, 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_9 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_9);\n throw e_9;\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_10, 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_10 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_10);\n throw e_10;\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_8;\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_8 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_8.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_11, 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_11 = _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_12, info, err_1, 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_12 = _a.sent();\n logger.debug('Failed to retrieve credentials while getting current user info', e_12);\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_1 = _a.sent();\n logger.error('currentUserInfo error', err_1);\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_2;\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_2 = _b.sent();\n logger.debug('Error in cognito hosted auth response', err_2);\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_2, \"The OAuth response flow failed\");\n dispatchAuthEvent('cognitoHostedUI_failure', err_2, \"A failure occurred when returning to the Cognito Hosted UI\");\n dispatchAuthEvent('customState_failure', err_2, \"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","export 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","/*\n * Copyright 2017-2017 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 { Auth } from './Auth';\nimport { CognitoHostedUIIdentityProvider, GRAPHQL_AUTH_MODE, } from './types/Auth';\nimport { CognitoUser, CookieStorage, appendToCognitoUserAgent, } from 'amazon-cognito-identity-js';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\n/**\n * @deprecated use named import\n */\nexport default Auth;\nexport { Auth, CognitoUser, CookieStorage, CognitoHostedUIIdentityProvider, appendToCognitoUserAgent, AuthErrorStrings, GRAPHQL_AUTH_MODE, };\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 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 */\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","/*\n * Copyright 2017-2017 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 { StorageHelper } from '@aws-amplify/core';\n/**\n * Default cache config\n */\nexport var defaultConfig = {\n keyPrefix: 'aws-amplify-cache',\n capacityInBytes: 1048576,\n itemMaxSize: 210000,\n defaultTTL: 259200000,\n defaultPriority: 5,\n warningThreshold: 0.8,\n // the storage helper will check if localStorage exists,\n // if not, will use a in-memory object instead\n storage: new StorageHelper().getStorage(),\n};\n/**\n * return the byte size of the string\n * @param str\n */\nexport function getByteLength(str) {\n var ret = 0;\n ret = str.length;\n for (var i = str.length; i >= 0; i -= 1) {\n var charCode = str.charCodeAt(i);\n if (charCode > 0x7f && charCode <= 0x7ff) {\n ret += 1;\n }\n else if (charCode > 0x7ff && charCode <= 0xffff) {\n ret += 2;\n }\n // trail surrogate\n if (charCode >= 0xdc00 && charCode <= 0xdfff) {\n i -= 1;\n }\n }\n return ret;\n}\n/**\n * get current time\n */\nexport function getCurrTime() {\n var currTime = new Date();\n return currTime.getTime();\n}\n/**\n * check if passed value is an integer\n */\nexport function isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n return _isInteger(value);\n}\nfunction _isInteger(value) {\n return (typeof value === 'number' && isFinite(value) && Math.floor(value) === value);\n}\n/**\n * provide an object as the in-memory cache\n */\nvar store = {};\nvar CacheObject = /** @class */ (function () {\n function CacheObject() {\n }\n CacheObject.clear = function () {\n store = {};\n };\n CacheObject.getItem = function (key) {\n return store[key] || null;\n };\n CacheObject.setItem = function (key, value) {\n store[key] = value;\n };\n CacheObject.removeItem = function (key) {\n delete store[key];\n };\n return CacheObject;\n}());\nexport { CacheObject };\n//# sourceMappingURL=CacheUtils.js.map","/*\n * Copyright 2017-2017 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 { getCurrTime, getByteLength, defaultConfig, isInteger } from './Utils';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('StorageCache');\n/**\n * Initialization of the cache\n *\n */\nvar StorageCache = /** @class */ (function () {\n /**\n * Initialize the cache\n * @param config - the configuration of the cache\n */\n function StorageCache(config) {\n this.config = Object.assign({}, config);\n this.cacheCurSizeKey = this.config.keyPrefix + 'CurSize';\n this.checkConfig();\n }\n StorageCache.prototype.getModuleName = function () {\n return 'Cache';\n };\n StorageCache.prototype.checkConfig = function () {\n // check configuration\n if (!isInteger(this.config.capacityInBytes)) {\n logger.error('Invalid parameter: capacityInBytes. It should be an Integer. Setting back to default.');\n this.config.capacityInBytes = defaultConfig.capacityInBytes;\n }\n if (!isInteger(this.config.itemMaxSize)) {\n logger.error('Invalid parameter: itemMaxSize. It should be an Integer. Setting back to default.');\n this.config.itemMaxSize = defaultConfig.itemMaxSize;\n }\n if (!isInteger(this.config.defaultTTL)) {\n logger.error('Invalid parameter: defaultTTL. It should be an Integer. Setting back to default.');\n this.config.defaultTTL = defaultConfig.defaultTTL;\n }\n if (!isInteger(this.config.defaultPriority)) {\n logger.error('Invalid parameter: defaultPriority. It should be an Integer. Setting back to default.');\n this.config.defaultPriority = defaultConfig.defaultPriority;\n }\n if (this.config.itemMaxSize > this.config.capacityInBytes) {\n logger.error('Invalid parameter: itemMaxSize. It should be smaller than capacityInBytes. Setting back to default.');\n this.config.itemMaxSize = defaultConfig.itemMaxSize;\n }\n if (this.config.defaultPriority > 5 || this.config.defaultPriority < 1) {\n logger.error('Invalid parameter: defaultPriority. It should be between 1 and 5. Setting back to default.');\n this.config.defaultPriority = defaultConfig.defaultPriority;\n }\n if (Number(this.config.warningThreshold) > 1 ||\n Number(this.config.warningThreshold) < 0) {\n logger.error('Invalid parameter: warningThreshold. It should be between 0 and 1. Setting back to default.');\n this.config.warningThreshold = defaultConfig.warningThreshold;\n }\n // set 5MB limit\n var cacheLimit = 5 * 1024 * 1024;\n if (this.config.capacityInBytes > cacheLimit) {\n logger.error('Cache Capacity should be less than 5MB. Setting back to default. Setting back to default.');\n this.config.capacityInBytes = defaultConfig.capacityInBytes;\n }\n };\n /**\n * produce a JSON object with meta-data and data value\n * @param value - the value of the item\n * @param options - optional, the specified meta-data\n *\n * @return - the item which has the meta-data and the value\n */\n StorageCache.prototype.fillCacheItem = function (key, value, options) {\n var ret = {\n key: key,\n data: value,\n timestamp: getCurrTime(),\n visitedTime: getCurrTime(),\n priority: options.priority,\n expires: options.expires,\n type: typeof value,\n byteSize: 0,\n };\n ret.byteSize = getByteLength(JSON.stringify(ret));\n // for accurate size\n ret.byteSize = getByteLength(JSON.stringify(ret));\n return ret;\n };\n /**\n * set cache with customized configuration\n * @param config - customized configuration\n *\n * @return - the current configuration\n */\n StorageCache.prototype.configure = function (config) {\n if (!config) {\n return this.config;\n }\n if (config.keyPrefix) {\n logger.warn(\"Don't try to configure keyPrefix!\");\n }\n this.config = Object.assign({}, this.config, config, config.Cache);\n this.checkConfig();\n return this.config;\n };\n return StorageCache;\n}());\nexport { StorageCache };\n/**\n * @deprecated use named import\n */\nexport default StorageCache;\n//# sourceMappingURL=StorageCache.js.map","/*\n * Copyright 2017-2017 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 */\nvar __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { defaultConfig, getCurrTime } from './Utils';\nimport { StorageCache } from './StorageCache';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('Cache');\n/**\n * Customized storage based on the SessionStorage or LocalStorage with LRU implemented\n */\nvar BrowserStorageCacheClass = /** @class */ (function (_super) {\n __extends(BrowserStorageCacheClass, _super);\n /**\n * initialize the cache\n * @param config - the configuration of the cache\n */\n function BrowserStorageCacheClass(config) {\n var _this = this;\n var cacheConfig = config\n ? Object.assign({}, defaultConfig, config)\n : defaultConfig;\n _this = _super.call(this, cacheConfig) || this;\n _this.config.storage = cacheConfig.storage;\n _this.getItem = _this.getItem.bind(_this);\n _this.setItem = _this.setItem.bind(_this);\n _this.removeItem = _this.removeItem.bind(_this);\n return _this;\n }\n /**\n * decrease current size of the cache\n *\n * @private\n * @param amount - the amount of the cache size which needs to be decreased\n */\n BrowserStorageCacheClass.prototype._decreaseCurSizeInBytes = function (amount) {\n var curSize = this.getCacheCurSize();\n this.config.storage.setItem(this.cacheCurSizeKey, (curSize - amount).toString());\n };\n /**\n * increase current size of the cache\n *\n * @private\n * @param amount - the amount of the cache szie which need to be increased\n */\n BrowserStorageCacheClass.prototype._increaseCurSizeInBytes = function (amount) {\n var curSize = this.getCacheCurSize();\n this.config.storage.setItem(this.cacheCurSizeKey, (curSize + amount).toString());\n };\n /**\n * update the visited time if item has been visited\n *\n * @private\n * @param item - the item which need to be refreshed\n * @param prefixedKey - the key of the item\n *\n * @return the refreshed item\n */\n BrowserStorageCacheClass.prototype._refreshItem = function (item, prefixedKey) {\n item.visitedTime = getCurrTime();\n this.config.storage.setItem(prefixedKey, JSON.stringify(item));\n return item;\n };\n /**\n * check wether item is expired\n *\n * @private\n * @param key - the key of the item\n *\n * @return true if the item is expired.\n */\n BrowserStorageCacheClass.prototype._isExpired = function (key) {\n var text = this.config.storage.getItem(key);\n var item = JSON.parse(text);\n if (getCurrTime() >= item.expires) {\n return true;\n }\n return false;\n };\n /**\n * delete item from cache\n *\n * @private\n * @param prefixedKey - the key of the item\n * @param size - optional, the byte size of the item\n */\n BrowserStorageCacheClass.prototype._removeItem = function (prefixedKey, size) {\n var itemSize = size\n ? size\n : JSON.parse(this.config.storage.getItem(prefixedKey)).byteSize;\n this._decreaseCurSizeInBytes(itemSize);\n // remove the cache item\n this.config.storage.removeItem(prefixedKey);\n };\n /**\n * put item into cache\n *\n * @private\n * @param prefixedKey - the key of the item\n * @param itemData - the value of the item\n * @param itemSizeInBytes - the byte size of the item\n */\n BrowserStorageCacheClass.prototype._setItem = function (prefixedKey, item) {\n // update the cache size\n this._increaseCurSizeInBytes(item.byteSize);\n try {\n this.config.storage.setItem(prefixedKey, JSON.stringify(item));\n }\n catch (setItemErr) {\n // if failed, we need to rollback the cache size\n this._decreaseCurSizeInBytes(item.byteSize);\n logger.error(\"Failed to set item \" + setItemErr);\n }\n };\n /**\n * total space needed when poping out items\n *\n * @private\n * @param itemSize\n *\n * @return total space needed\n */\n BrowserStorageCacheClass.prototype._sizeToPop = function (itemSize) {\n var spaceItemNeed = this.getCacheCurSize() + itemSize - this.config.capacityInBytes;\n var cacheThresholdSpace = (1 - this.config.warningThreshold) * this.config.capacityInBytes;\n return spaceItemNeed > cacheThresholdSpace\n ? spaceItemNeed\n : cacheThresholdSpace;\n };\n /**\n * see whether cache is full\n *\n * @private\n * @param itemSize\n *\n * @return true if cache is full\n */\n BrowserStorageCacheClass.prototype._isCacheFull = function (itemSize) {\n return itemSize + this.getCacheCurSize() > this.config.capacityInBytes;\n };\n /**\n * scan the storage and find out all the keys owned by this cache\n * also clean the expired keys while scanning\n *\n * @private\n *\n * @return array of keys\n */\n BrowserStorageCacheClass.prototype._findValidKeys = function () {\n var keys = [];\n var keyInCache = [];\n // get all keys in Storage\n for (var i = 0; i < this.config.storage.length; i += 1) {\n keyInCache.push(this.config.storage.key(i));\n }\n // find those items which belong to our cache and also clean those expired items\n for (var i = 0; i < keyInCache.length; i += 1) {\n var key = keyInCache[i];\n if (key.indexOf(this.config.keyPrefix) === 0 &&\n key !== this.cacheCurSizeKey) {\n if (this._isExpired(key)) {\n this._removeItem(key);\n }\n else {\n keys.push(key);\n }\n }\n }\n return keys;\n };\n /**\n * get all the items we have, sort them by their priority,\n * if priority is same, sort them by their last visited time\n * pop out items from the low priority (5 is the lowest)\n *\n * @private\n * @param keys - all the keys in this cache\n * @param sizeToPop - the total size of the items which needed to be poped out\n */\n BrowserStorageCacheClass.prototype._popOutItems = function (keys, sizeToPop) {\n var items = [];\n var remainedSize = sizeToPop;\n // get the items from Storage\n for (var i = 0; i < keys.length; i += 1) {\n var val = this.config.storage.getItem(keys[i]);\n if (val != null) {\n var item = JSON.parse(val);\n items.push(item);\n }\n }\n // first compare priority\n // then compare visited time\n items.sort(function (a, b) {\n if (a.priority > b.priority) {\n return -1;\n }\n else if (a.priority < b.priority) {\n return 1;\n }\n else {\n if (a.visitedTime < b.visitedTime) {\n return -1;\n }\n else\n return 1;\n }\n });\n for (var i = 0; i < items.length; i += 1) {\n // pop out items until we have enough room for new item\n this._removeItem(items[i].key, items[i].byteSize);\n remainedSize -= items[i].byteSize;\n if (remainedSize <= 0) {\n return;\n }\n }\n };\n /**\n * Set item into cache. You can put number, string, boolean or object.\n * The cache will first check whether has the same key.\n * If it has, it will delete the old item and then put the new item in\n * The cache will pop out items if it is full\n * You can specify the cache item options. The cache will abort and output a warning:\n * If the key is invalid\n * If the size of the item exceeds itemMaxSize.\n * If the value is undefined\n * If incorrect cache item configuration\n * If error happened with browser storage\n *\n * @param key - the key of the item\n * @param value - the value of the item\n * @param {Object} [options] - optional, the specified meta-data\n */\n BrowserStorageCacheClass.prototype.setItem = function (key, value, options) {\n logger.log(\"Set item: key is \" + key + \", value is \" + value + \" with options: \" + options);\n var prefixedKey = this.config.keyPrefix + key;\n // invalid keys\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return;\n }\n if (typeof value === 'undefined') {\n logger.warn(\"The value of item should not be undefined!\");\n return;\n }\n var cacheItemOptions = {\n priority: options && options.priority !== undefined\n ? options.priority\n : this.config.defaultPriority,\n expires: options && options.expires !== undefined\n ? options.expires\n : this.config.defaultTTL + getCurrTime(),\n };\n if (cacheItemOptions.priority < 1 || cacheItemOptions.priority > 5) {\n logger.warn(\"Invalid parameter: priority due to out or range. It should be within 1 and 5.\");\n return;\n }\n var item = this.fillCacheItem(prefixedKey, value, cacheItemOptions);\n // check wether this item is too big;\n if (item.byteSize > this.config.itemMaxSize) {\n logger.warn(\"Item with key: \" + key + \" you are trying to put into is too big!\");\n return;\n }\n try {\n // first look into the storage, if it exists, delete it.\n var val = this.config.storage.getItem(prefixedKey);\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\n }\n // check whether the cache is full\n if (this._isCacheFull(item.byteSize)) {\n var validKeys = this._findValidKeys();\n // check again and then pop out items\n if (this._isCacheFull(item.byteSize)) {\n var sizeToPop = this._sizeToPop(item.byteSize);\n this._popOutItems(validKeys, sizeToPop);\n }\n }\n // put item in the cache\n // may failed due to storage full\n this._setItem(prefixedKey, item);\n }\n catch (e) {\n logger.warn(\"setItem failed! \" + e);\n }\n };\n /**\n * Get item from cache. It will return null if item doesn’t exist or it has been expired.\n * If you specified callback function in the options,\n * then the function will be executed if no such item in the cache\n * and finally put the return value into cache.\n * Please make sure the callback function will return the value you want to put into the cache.\n * The cache will abort output a warning:\n * If the key is invalid\n * If error happened with browser storage\n *\n * @param key - the key of the item\n * @param {Object} [options] - the options of callback function\n *\n * @return - return the value of the item\n */\n BrowserStorageCacheClass.prototype.getItem = function (key, options) {\n logger.log(\"Get item: key is \" + key + \" with options \" + options);\n var ret = null;\n var prefixedKey = this.config.keyPrefix + key;\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return null;\n }\n try {\n ret = this.config.storage.getItem(prefixedKey);\n if (ret != null) {\n if (this._isExpired(prefixedKey)) {\n // if expired, remove that item and return null\n this._removeItem(prefixedKey, JSON.parse(ret).byteSize);\n ret = null;\n }\n else {\n // if not expired, great, return the value and refresh it\n var item = JSON.parse(ret);\n item = this._refreshItem(item, prefixedKey);\n return item.data;\n }\n }\n if (options && options.callback !== undefined) {\n var val = options.callback();\n if (val !== null) {\n this.setItem(key, val, options);\n }\n return val;\n }\n return null;\n }\n catch (e) {\n logger.warn(\"getItem failed! \" + e);\n return null;\n }\n };\n /**\n * remove item from the cache\n * The cache will abort output a warning:\n * If error happened with browser storage\n * @param key - the key of the item\n */\n BrowserStorageCacheClass.prototype.removeItem = function (key) {\n logger.log(\"Remove item: key is \" + key);\n var prefixedKey = this.config.keyPrefix + key;\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n return;\n }\n try {\n var val = this.config.storage.getItem(prefixedKey);\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\n }\n }\n catch (e) {\n logger.warn(\"removeItem failed! \" + e);\n }\n };\n /**\n * clear the entire cache\n * The cache will abort output a warning:\n * If error happened with browser storage\n */\n BrowserStorageCacheClass.prototype.clear = function () {\n logger.log(\"Clear Cache\");\n var keysToRemove = [];\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n if (key.indexOf(this.config.keyPrefix) === 0) {\n keysToRemove.push(key);\n }\n }\n try {\n for (var i = 0; i < keysToRemove.length; i += 1) {\n this.config.storage.removeItem(keysToRemove[i]);\n }\n }\n catch (e) {\n logger.warn(\"clear failed! \" + e);\n }\n };\n /**\n * Return all the keys in the cache.\n *\n * @return - all keys in the cache\n */\n BrowserStorageCacheClass.prototype.getAllKeys = function () {\n var keys = [];\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n if (key.indexOf(this.config.keyPrefix) === 0 &&\n key !== this.cacheCurSizeKey) {\n keys.push(key.substring(this.config.keyPrefix.length));\n }\n }\n return keys;\n };\n /**\n * return the current size of the cache\n *\n * @return - current size of the cache\n */\n BrowserStorageCacheClass.prototype.getCacheCurSize = function () {\n var ret = this.config.storage.getItem(this.cacheCurSizeKey);\n if (!ret) {\n this.config.storage.setItem(this.cacheCurSizeKey, '0');\n ret = '0';\n }\n return Number(ret);\n };\n /**\n * Return a new instance of cache with customized configuration.\n * @param config - the customized configuration\n *\n * @return - new instance of Cache\n */\n BrowserStorageCacheClass.prototype.createInstance = function (config) {\n if (!config.keyPrefix || config.keyPrefix === defaultConfig.keyPrefix) {\n logger.error('invalid keyPrefix, setting keyPrefix with timeStamp');\n config.keyPrefix = getCurrTime.toString();\n }\n return new BrowserStorageCacheClass(config);\n };\n return BrowserStorageCacheClass;\n}(StorageCache));\nexport { BrowserStorageCacheClass };\nexport var BrowserStorageCache = new BrowserStorageCacheClass();\n/**\n * @deprecated use named import\n */\nexport default BrowserStorageCache;\n//# sourceMappingURL=BrowserStorageCache.js.map","/*\n * Copyright 2017-2017 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 { Amplify } from '@aws-amplify/core';\nimport { BrowserStorageCache } from './BrowserStorageCache';\nimport { InMemoryCache } from './InMemoryCache';\nexport { BrowserStorageCache, InMemoryCache };\nexport { BrowserStorageCache as Cache };\n/**\n * @deprecated use named import\n */\nexport default BrowserStorageCache;\nAmplify.register(BrowserStorageCache);\n//# sourceMappingURL=index.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};\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.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/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=Amplify.js.map","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 (_) 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 * Copyright 2017-2017 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 { 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/**\n * @deprecated use named import\n */\nexport default GoogleOAuth;\n//# sourceMappingURL=GoogleOAuth.js.map","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 (_) 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 * Copyright 2017-2017 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 { 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/**\n * @deprecated use named import\n */\nexport default FacebookOAuth;\n//# sourceMappingURL=FacebookOAuth.js.map","/*\n * Copyright 2017-2017 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 { GoogleOAuth as GoogleOAuthClass } from './GoogleOAuth';\nimport { FacebookOAuth as FacebookOAuthClass } from './FacebookOAuth';\nexport var GoogleOAuth = new GoogleOAuthClass();\nexport var FacebookOAuth = new FacebookOAuthClass();\n//# sourceMappingURL=index.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar 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\nexport function __extends(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\nexport var __assign = function() {\n __assign = Object.assign || function __assign(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)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(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}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(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}\n\nexport function __generator(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\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(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\nexport function __read(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/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(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\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __assign } from \"tslib\";\nexport var AmbiguousRoleResolutionType;\n(function (AmbiguousRoleResolutionType) {\n AmbiguousRoleResolutionType[\"AUTHENTICATED_ROLE\"] = \"AuthenticatedRole\";\n AmbiguousRoleResolutionType[\"DENY\"] = \"Deny\";\n})(AmbiguousRoleResolutionType || (AmbiguousRoleResolutionType = {}));\nexport var CognitoIdentityProvider;\n(function (CognitoIdentityProvider) {\n CognitoIdentityProvider.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CognitoIdentityProvider || (CognitoIdentityProvider = {}));\nexport var CreateIdentityPoolInput;\n(function (CreateIdentityPoolInput) {\n CreateIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateIdentityPoolInput || (CreateIdentityPoolInput = {}));\nexport var IdentityPool;\n(function (IdentityPool) {\n IdentityPool.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityPool || (IdentityPool = {}));\nexport var InternalErrorException;\n(function (InternalErrorException) {\n InternalErrorException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InternalErrorException || (InternalErrorException = {}));\nexport var InvalidParameterException;\n(function (InvalidParameterException) {\n InvalidParameterException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidParameterException || (InvalidParameterException = {}));\nexport var LimitExceededException;\n(function (LimitExceededException) {\n LimitExceededException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LimitExceededException || (LimitExceededException = {}));\nexport var NotAuthorizedException;\n(function (NotAuthorizedException) {\n NotAuthorizedException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotAuthorizedException || (NotAuthorizedException = {}));\nexport var ResourceConflictException;\n(function (ResourceConflictException) {\n ResourceConflictException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceConflictException || (ResourceConflictException = {}));\nexport var TooManyRequestsException;\n(function (TooManyRequestsException) {\n TooManyRequestsException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TooManyRequestsException || (TooManyRequestsException = {}));\nexport var DeleteIdentitiesInput;\n(function (DeleteIdentitiesInput) {\n DeleteIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentitiesInput || (DeleteIdentitiesInput = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ErrorCode[\"ACCESS_DENIED\"] = \"AccessDenied\";\n ErrorCode[\"INTERNAL_SERVER_ERROR\"] = \"InternalServerError\";\n})(ErrorCode || (ErrorCode = {}));\nexport var UnprocessedIdentityId;\n(function (UnprocessedIdentityId) {\n UnprocessedIdentityId.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnprocessedIdentityId || (UnprocessedIdentityId = {}));\nexport var DeleteIdentitiesResponse;\n(function (DeleteIdentitiesResponse) {\n DeleteIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentitiesResponse || (DeleteIdentitiesResponse = {}));\nexport var DeleteIdentityPoolInput;\n(function (DeleteIdentityPoolInput) {\n DeleteIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentityPoolInput || (DeleteIdentityPoolInput = {}));\nexport var ResourceNotFoundException;\n(function (ResourceNotFoundException) {\n ResourceNotFoundException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceNotFoundException || (ResourceNotFoundException = {}));\nexport var DescribeIdentityInput;\n(function (DescribeIdentityInput) {\n DescribeIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeIdentityInput || (DescribeIdentityInput = {}));\nexport var IdentityDescription;\n(function (IdentityDescription) {\n IdentityDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityDescription || (IdentityDescription = {}));\nexport var DescribeIdentityPoolInput;\n(function (DescribeIdentityPoolInput) {\n DescribeIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeIdentityPoolInput || (DescribeIdentityPoolInput = {}));\nexport var ExternalServiceException;\n(function (ExternalServiceException) {\n ExternalServiceException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExternalServiceException || (ExternalServiceException = {}));\nexport var GetCredentialsForIdentityInput;\n(function (GetCredentialsForIdentityInput) {\n GetCredentialsForIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetCredentialsForIdentityInput || (GetCredentialsForIdentityInput = {}));\nexport var Credentials;\n(function (Credentials) {\n Credentials.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Credentials || (Credentials = {}));\nexport var GetCredentialsForIdentityResponse;\n(function (GetCredentialsForIdentityResponse) {\n GetCredentialsForIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetCredentialsForIdentityResponse || (GetCredentialsForIdentityResponse = {}));\nexport var InvalidIdentityPoolConfigurationException;\n(function (InvalidIdentityPoolConfigurationException) {\n InvalidIdentityPoolConfigurationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidIdentityPoolConfigurationException || (InvalidIdentityPoolConfigurationException = {}));\nexport var GetIdInput;\n(function (GetIdInput) {\n GetIdInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdInput || (GetIdInput = {}));\nexport var GetIdResponse;\n(function (GetIdResponse) {\n GetIdResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdResponse || (GetIdResponse = {}));\nexport var GetIdentityPoolRolesInput;\n(function (GetIdentityPoolRolesInput) {\n GetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdentityPoolRolesInput || (GetIdentityPoolRolesInput = {}));\nexport var MappingRuleMatchType;\n(function (MappingRuleMatchType) {\n MappingRuleMatchType[\"CONTAINS\"] = \"Contains\";\n MappingRuleMatchType[\"EQUALS\"] = \"Equals\";\n MappingRuleMatchType[\"NOT_EQUAL\"] = \"NotEqual\";\n MappingRuleMatchType[\"STARTS_WITH\"] = \"StartsWith\";\n})(MappingRuleMatchType || (MappingRuleMatchType = {}));\nexport var MappingRule;\n(function (MappingRule) {\n MappingRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MappingRule || (MappingRule = {}));\nexport var RulesConfigurationType;\n(function (RulesConfigurationType) {\n RulesConfigurationType.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RulesConfigurationType || (RulesConfigurationType = {}));\nexport var RoleMappingType;\n(function (RoleMappingType) {\n RoleMappingType[\"RULES\"] = \"Rules\";\n RoleMappingType[\"TOKEN\"] = \"Token\";\n})(RoleMappingType || (RoleMappingType = {}));\nexport var RoleMapping;\n(function (RoleMapping) {\n RoleMapping.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RoleMapping || (RoleMapping = {}));\nexport var GetIdentityPoolRolesResponse;\n(function (GetIdentityPoolRolesResponse) {\n GetIdentityPoolRolesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdentityPoolRolesResponse || (GetIdentityPoolRolesResponse = {}));\nexport var GetOpenIdTokenInput;\n(function (GetOpenIdTokenInput) {\n GetOpenIdTokenInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenInput || (GetOpenIdTokenInput = {}));\nexport var GetOpenIdTokenResponse;\n(function (GetOpenIdTokenResponse) {\n GetOpenIdTokenResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenResponse || (GetOpenIdTokenResponse = {}));\nexport var DeveloperUserAlreadyRegisteredException;\n(function (DeveloperUserAlreadyRegisteredException) {\n DeveloperUserAlreadyRegisteredException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeveloperUserAlreadyRegisteredException || (DeveloperUserAlreadyRegisteredException = {}));\nexport var GetOpenIdTokenForDeveloperIdentityInput;\n(function (GetOpenIdTokenForDeveloperIdentityInput) {\n GetOpenIdTokenForDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenForDeveloperIdentityInput || (GetOpenIdTokenForDeveloperIdentityInput = {}));\nexport var GetOpenIdTokenForDeveloperIdentityResponse;\n(function (GetOpenIdTokenForDeveloperIdentityResponse) {\n GetOpenIdTokenForDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenForDeveloperIdentityResponse || (GetOpenIdTokenForDeveloperIdentityResponse = {}));\nexport var ListIdentitiesInput;\n(function (ListIdentitiesInput) {\n ListIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentitiesInput || (ListIdentitiesInput = {}));\nexport var ListIdentitiesResponse;\n(function (ListIdentitiesResponse) {\n ListIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentitiesResponse || (ListIdentitiesResponse = {}));\nexport var ListIdentityPoolsInput;\n(function (ListIdentityPoolsInput) {\n ListIdentityPoolsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentityPoolsInput || (ListIdentityPoolsInput = {}));\nexport var IdentityPoolShortDescription;\n(function (IdentityPoolShortDescription) {\n IdentityPoolShortDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityPoolShortDescription || (IdentityPoolShortDescription = {}));\nexport var ListIdentityPoolsResponse;\n(function (ListIdentityPoolsResponse) {\n ListIdentityPoolsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentityPoolsResponse || (ListIdentityPoolsResponse = {}));\nexport var ListTagsForResourceInput;\n(function (ListTagsForResourceInput) {\n ListTagsForResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForResourceInput || (ListTagsForResourceInput = {}));\nexport var ListTagsForResourceResponse;\n(function (ListTagsForResourceResponse) {\n ListTagsForResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForResourceResponse || (ListTagsForResourceResponse = {}));\nexport var LookupDeveloperIdentityInput;\n(function (LookupDeveloperIdentityInput) {\n LookupDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LookupDeveloperIdentityInput || (LookupDeveloperIdentityInput = {}));\nexport var LookupDeveloperIdentityResponse;\n(function (LookupDeveloperIdentityResponse) {\n LookupDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LookupDeveloperIdentityResponse || (LookupDeveloperIdentityResponse = {}));\nexport var MergeDeveloperIdentitiesInput;\n(function (MergeDeveloperIdentitiesInput) {\n MergeDeveloperIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MergeDeveloperIdentitiesInput || (MergeDeveloperIdentitiesInput = {}));\nexport var MergeDeveloperIdentitiesResponse;\n(function (MergeDeveloperIdentitiesResponse) {\n MergeDeveloperIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MergeDeveloperIdentitiesResponse || (MergeDeveloperIdentitiesResponse = {}));\nexport var ConcurrentModificationException;\n(function (ConcurrentModificationException) {\n ConcurrentModificationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ConcurrentModificationException || (ConcurrentModificationException = {}));\nexport var SetIdentityPoolRolesInput;\n(function (SetIdentityPoolRolesInput) {\n SetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SetIdentityPoolRolesInput || (SetIdentityPoolRolesInput = {}));\nexport var TagResourceInput;\n(function (TagResourceInput) {\n TagResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagResourceInput || (TagResourceInput = {}));\nexport var TagResourceResponse;\n(function (TagResourceResponse) {\n TagResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagResourceResponse || (TagResourceResponse = {}));\nexport var UnlinkDeveloperIdentityInput;\n(function (UnlinkDeveloperIdentityInput) {\n UnlinkDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnlinkDeveloperIdentityInput || (UnlinkDeveloperIdentityInput = {}));\nexport var UnlinkIdentityInput;\n(function (UnlinkIdentityInput) {\n UnlinkIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnlinkIdentityInput || (UnlinkIdentityInput = {}));\nexport var UntagResourceInput;\n(function (UntagResourceInput) {\n UntagResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagResourceInput || (UntagResourceInput = {}));\nexport var UntagResourceResponse;\n(function (UntagResourceResponse) {\n UntagResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagResourceResponse || (UntagResourceResponse = {}));\n//# sourceMappingURL=models_0.js.map","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nexport var serializeAws_json1_1CreateIdentityPoolCommand = 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\": \"AWSCognitoIdentityService.CreateIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1CreateIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DeleteIdentitiesCommand = 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\": \"AWSCognitoIdentityService.DeleteIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1DeleteIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DeleteIdentityPoolCommand = 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\": \"AWSCognitoIdentityService.DeleteIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1DeleteIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DescribeIdentityCommand = 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\": \"AWSCognitoIdentityService.DescribeIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DescribeIdentityPoolCommand = 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\": \"AWSCognitoIdentityService.DescribeIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetCredentialsForIdentityCommand = 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\": \"AWSCognitoIdentityService.GetCredentialsForIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1GetCredentialsForIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetIdCommand = 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\": \"AWSCognitoIdentityService.GetId\",\n };\n body = JSON.stringify(serializeAws_json1_1GetIdInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetIdentityPoolRolesCommand = 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\": \"AWSCognitoIdentityService.GetIdentityPoolRoles\",\n };\n body = JSON.stringify(serializeAws_json1_1GetIdentityPoolRolesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetOpenIdTokenCommand = 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\": \"AWSCognitoIdentityService.GetOpenIdToken\",\n };\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = 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\": \"AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListIdentitiesCommand = 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\": \"AWSCognitoIdentityService.ListIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1ListIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListIdentityPoolsCommand = 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\": \"AWSCognitoIdentityService.ListIdentityPools\",\n };\n body = JSON.stringify(serializeAws_json1_1ListIdentityPoolsInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListTagsForResourceCommand = 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\": \"AWSCognitoIdentityService.ListTagsForResource\",\n };\n body = JSON.stringify(serializeAws_json1_1ListTagsForResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1LookupDeveloperIdentityCommand = 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\": \"AWSCognitoIdentityService.LookupDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1LookupDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1MergeDeveloperIdentitiesCommand = 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\": \"AWSCognitoIdentityService.MergeDeveloperIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1MergeDeveloperIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1SetIdentityPoolRolesCommand = 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\": \"AWSCognitoIdentityService.SetIdentityPoolRoles\",\n };\n body = JSON.stringify(serializeAws_json1_1SetIdentityPoolRolesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1TagResourceCommand = 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\": \"AWSCognitoIdentityService.TagResource\",\n };\n body = JSON.stringify(serializeAws_json1_1TagResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UnlinkDeveloperIdentityCommand = 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\": \"AWSCognitoIdentityService.UnlinkDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1UnlinkDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UnlinkIdentityCommand = 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\": \"AWSCognitoIdentityService.UnlinkIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1UnlinkIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UntagResourceCommand = 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\": \"AWSCognitoIdentityService.UntagResource\",\n };\n body = JSON.stringify(serializeAws_json1_1UntagResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UpdateIdentityPoolCommand = 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\": \"AWSCognitoIdentityService.UpdateIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1IdentityPool(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var deserializeAws_json1_1CreateIdentityPoolCommand = 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_1CreateIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1CreateIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"LimitExceededException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\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([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\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 _k.label = 15;\n case 15:\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_1DeleteIdentitiesCommand = 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_1DeleteIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1DeleteIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DeleteIdentitiesCommandError = 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 \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"TooManyRequestsException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 6];\n }\n return [3 /*break*/, 8];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(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_1InvalidParameterExceptionResponse(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_1TooManyRequestsExceptionResponse(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_1DeleteIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var 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_1DeleteIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DeleteIdentityPoolCommandError = 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 \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(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_1InvalidParameterExceptionResponse(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_1NotAuthorizedExceptionResponse(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_1ResourceNotFoundExceptionResponse(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_1TooManyRequestsExceptionResponse(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_1DescribeIdentityCommand = 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_1DescribeIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityDescription(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DescribeIdentityCommandError = 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 \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(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_1InvalidParameterExceptionResponse(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_1NotAuthorizedExceptionResponse(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_1ResourceNotFoundExceptionResponse(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_1TooManyRequestsExceptionResponse(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_1DescribeIdentityPoolCommand = 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_1DescribeIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DescribeIdentityPoolCommandError = 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 \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(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_1InvalidParameterExceptionResponse(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_1NotAuthorizedExceptionResponse(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_1ResourceNotFoundExceptionResponse(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_1TooManyRequestsExceptionResponse(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_1GetCredentialsForIdentityCommand = 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_1GetCredentialsForIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetCredentialsForIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetCredentialsForIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidIdentityPoolConfigurationException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException\": return [3 /*break*/, 6];\n case \"InvalidParameterException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\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 _m.label = 19;\n case 19:\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_1GetIdCommand = 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_1GetIdCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetIdResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetIdCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"LimitExceededException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\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 _m.label = 19;\n case 19:\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_1GetIdentityPoolRolesCommand = 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_1GetIdentityPoolRolesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetIdentityPoolRolesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetIdentityPoolRolesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\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([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\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 _k.label = 15;\n case 15:\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_1GetOpenIdTokenCommand = 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_1GetOpenIdTokenCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetOpenIdTokenCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\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 _l.label = 17;\n case 17:\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_1GetOpenIdTokenForDeveloperIdentityCommand = 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_1GetOpenIdTokenForDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"DeveloperUserAlreadyRegisteredException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\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 _l.label = 17;\n case 17:\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_1ListIdentitiesCommand = 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_1ListIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListIdentitiesCommandError = 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 \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(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_1InvalidParameterExceptionResponse(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_1NotAuthorizedExceptionResponse(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_1ResourceNotFoundExceptionResponse(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_1TooManyRequestsExceptionResponse(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_1ListIdentityPoolsCommand = 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_1ListIdentityPoolsCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListIdentityPoolsResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListIdentityPoolsCommandError = 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 \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(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_1InvalidParameterExceptionResponse(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_1NotAuthorizedExceptionResponse(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_1ResourceNotFoundExceptionResponse(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_1TooManyRequestsExceptionResponse(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_1ListTagsForResourceCommand = 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_1ListTagsForResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListTagsForResourceCommandError = 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 \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(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_1InvalidParameterExceptionResponse(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_1NotAuthorizedExceptionResponse(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_1ResourceNotFoundExceptionResponse(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_1TooManyRequestsExceptionResponse(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_1LookupDeveloperIdentityCommand = 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_1LookupDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1LookupDeveloperIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1LookupDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\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([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\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 _k.label = 15;\n case 15:\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_1MergeDeveloperIdentitiesCommand = 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_1MergeDeveloperIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1MergeDeveloperIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1MergeDeveloperIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\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([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\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 _k.label = 15;\n case 15:\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_1SetIdentityPoolRolesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var 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_1SetIdentityPoolRolesCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1SetIdentityPoolRolesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\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.cognitoidentity#ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\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([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\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 _l.label = 17;\n case 17:\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_1TagResourceCommand = 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_1TagResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1TagResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1TagResourceCommandError = 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 \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(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_1InvalidParameterExceptionResponse(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_1NotAuthorizedExceptionResponse(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_1ResourceNotFoundExceptionResponse(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_1TooManyRequestsExceptionResponse(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_1UnlinkDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var 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_1UnlinkDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UnlinkDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\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([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\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 _k.label = 15;\n case 15:\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_1UnlinkIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var 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_1UnlinkIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UnlinkIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\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 _l.label = 17;\n case 17:\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_1UntagResourceCommand = 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_1UntagResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1UntagResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UntagResourceCommandError = 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 \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(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_1InvalidParameterExceptionResponse(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_1NotAuthorizedExceptionResponse(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_1ResourceNotFoundExceptionResponse(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_1TooManyRequestsExceptionResponse(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_1UpdateIdentityPoolCommand = 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_1UpdateIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UpdateIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\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.cognitoidentity#ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"LimitExceededException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\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([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\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 _m.label = 19;\n case 19:\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_1DeveloperUserAlreadyRegisteredExceptionResponse = 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_1DeveloperUserAlreadyRegisteredException(body, context);\n contents = __assign({ name: \"DeveloperUserAlreadyRegisteredException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ExternalServiceExceptionResponse = 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_1ExternalServiceException(body, context);\n contents = __assign({ name: \"ExternalServiceException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InternalErrorExceptionResponse = 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_1InternalErrorException(body, context);\n contents = __assign({ name: \"InternalErrorException\", $fault: \"server\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse = 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_1InvalidIdentityPoolConfigurationException(body, context);\n contents = __assign({ name: \"InvalidIdentityPoolConfigurationException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidParameterExceptionResponse = 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_1InvalidParameterException(body, context);\n contents = __assign({ name: \"InvalidParameterException\", $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_1NotAuthorizedExceptionResponse = 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_1NotAuthorizedException(body, context);\n contents = __assign({ name: \"NotAuthorizedException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ResourceConflictExceptionResponse = 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_1ResourceConflictException(body, context);\n contents = __assign({ name: \"ResourceConflictException\", $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_1TooManyRequestsExceptionResponse = 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_1TooManyRequestsException(body, context);\n contents = __assign({ name: \"TooManyRequestsException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar serializeAws_json1_1CognitoIdentityProvider = function (input, context) {\n return __assign(__assign(__assign({}, (input.ClientId !== undefined && input.ClientId !== null && { ClientId: input.ClientId })), (input.ProviderName !== undefined && input.ProviderName !== null && { ProviderName: input.ProviderName })), (input.ServerSideTokenCheck !== undefined &&\n input.ServerSideTokenCheck !== null && { ServerSideTokenCheck: input.ServerSideTokenCheck }));\n};\nvar serializeAws_json1_1CognitoIdentityProviderList = 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_1CognitoIdentityProvider(entry, context);\n });\n};\nvar serializeAws_json1_1CreateIdentityPoolInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n })), (input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n })), (input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n })), (input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n })), (input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }));\n};\nvar serializeAws_json1_1DeleteIdentitiesInput = function (input, context) {\n return __assign({}, (input.IdentityIdsToDelete !== undefined &&\n input.IdentityIdsToDelete !== null && {\n IdentityIdsToDelete: serializeAws_json1_1IdentityIdList(input.IdentityIdsToDelete, context),\n }));\n};\nvar serializeAws_json1_1DeleteIdentityPoolInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1DescribeIdentityInput = function (input, context) {\n return __assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }));\n};\nvar serializeAws_json1_1DescribeIdentityPoolInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1GetCredentialsForIdentityInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.CustomRoleArn !== undefined && input.CustomRoleArn !== null && { CustomRoleArn: input.CustomRoleArn })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1GetIdentityPoolRolesInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1GetIdInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.AccountId !== undefined && input.AccountId !== null && { AccountId: input.AccountId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.TokenDuration !== undefined && input.TokenDuration !== null && { TokenDuration: input.TokenDuration }));\n};\nvar serializeAws_json1_1GetOpenIdTokenInput = function (input, context) {\n return __assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1IdentityIdList = 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_1IdentityPool = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n })), (input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n })), (input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n })), (input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n })), (input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }));\n};\nvar serializeAws_json1_1IdentityPoolTagsListType = 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_1IdentityPoolTagsType = 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_1IdentityProviders = 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_1ListIdentitiesInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.HideDisabled !== undefined && input.HideDisabled !== null && { HideDisabled: input.HideDisabled })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1ListIdentityPoolsInput = function (input, context) {\n return __assign(__assign({}, (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1ListTagsForResourceInput = function (input, context) {\n return __assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }));\n};\nvar serializeAws_json1_1LoginsList = 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_1LoginsMap = 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_1LookupDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign({}, (input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1MappingRule = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.Claim !== undefined && input.Claim !== null && { Claim: input.Claim })), (input.MatchType !== undefined && input.MatchType !== null && { MatchType: input.MatchType })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.Value !== undefined && input.Value !== null && { Value: input.Value }));\n};\nvar serializeAws_json1_1MappingRulesList = 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_1MappingRule(entry, context);\n });\n};\nvar serializeAws_json1_1MergeDeveloperIdentitiesInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.DestinationUserIdentifier !== undefined &&\n input.DestinationUserIdentifier !== null && { DestinationUserIdentifier: input.DestinationUserIdentifier })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.SourceUserIdentifier !== undefined &&\n input.SourceUserIdentifier !== null && { SourceUserIdentifier: input.SourceUserIdentifier }));\n};\nvar serializeAws_json1_1OIDCProviderList = 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_1RoleMapping = function (input, context) {\n return __assign(__assign(__assign({}, (input.AmbiguousRoleResolution !== undefined &&\n input.AmbiguousRoleResolution !== null && { AmbiguousRoleResolution: input.AmbiguousRoleResolution })), (input.RulesConfiguration !== undefined &&\n input.RulesConfiguration !== null && {\n RulesConfiguration: serializeAws_json1_1RulesConfigurationType(input.RulesConfiguration, context),\n })), (input.Type !== undefined && input.Type !== null && { Type: input.Type }));\n};\nvar serializeAws_json1_1RoleMappingMap = 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] = serializeAws_json1_1RoleMapping(value, context), _b));\n }, {});\n};\nvar serializeAws_json1_1RolesMap = 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_1RulesConfigurationType = function (input, context) {\n return __assign({}, (input.Rules !== undefined &&\n input.Rules !== null && { Rules: serializeAws_json1_1MappingRulesList(input.Rules, context) }));\n};\nvar serializeAws_json1_1SAMLProviderList = 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_1SetIdentityPoolRolesInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.RoleMappings !== undefined &&\n input.RoleMappings !== null && { RoleMappings: serializeAws_json1_1RoleMappingMap(input.RoleMappings, context) })), (input.Roles !== undefined &&\n input.Roles !== null && { Roles: serializeAws_json1_1RolesMap(input.Roles, context) }));\n};\nvar serializeAws_json1_1TagResourceInput = function (input, context) {\n return __assign(__assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn })), (input.Tags !== undefined &&\n input.Tags !== null && { Tags: serializeAws_json1_1IdentityPoolTagsType(input.Tags, context) }));\n};\nvar serializeAws_json1_1UnlinkDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1UnlinkIdentityInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.LoginsToRemove !== undefined &&\n input.LoginsToRemove !== null && {\n LoginsToRemove: serializeAws_json1_1LoginsList(input.LoginsToRemove, context),\n }));\n};\nvar serializeAws_json1_1UntagResourceInput = function (input, context) {\n return __assign(__assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn })), (input.TagKeys !== undefined &&\n input.TagKeys !== null && { TagKeys: serializeAws_json1_1IdentityPoolTagsListType(input.TagKeys, context) }));\n};\nvar deserializeAws_json1_1CognitoIdentityProvider = function (output, context) {\n return {\n ClientId: output.ClientId !== undefined && output.ClientId !== null ? output.ClientId : undefined,\n ProviderName: output.ProviderName !== undefined && output.ProviderName !== null ? output.ProviderName : undefined,\n ServerSideTokenCheck: output.ServerSideTokenCheck !== undefined && output.ServerSideTokenCheck !== null\n ? output.ServerSideTokenCheck\n : undefined,\n };\n};\nvar deserializeAws_json1_1CognitoIdentityProviderList = 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_1CognitoIdentityProvider(entry, context);\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_1Credentials = function (output, context) {\n return {\n AccessKeyId: output.AccessKeyId !== undefined && output.AccessKeyId !== null ? output.AccessKeyId : undefined,\n Expiration: output.Expiration !== undefined && output.Expiration !== null\n ? new Date(Math.round(output.Expiration * 1000))\n : undefined,\n SecretKey: output.SecretKey !== undefined && output.SecretKey !== null ? output.SecretKey : undefined,\n SessionToken: output.SessionToken !== undefined && output.SessionToken !== null ? output.SessionToken : undefined,\n };\n};\nvar deserializeAws_json1_1DeleteIdentitiesResponse = function (output, context) {\n return {\n UnprocessedIdentityIds: output.UnprocessedIdentityIds !== undefined && output.UnprocessedIdentityIds !== null\n ? deserializeAws_json1_1UnprocessedIdentityIdList(output.UnprocessedIdentityIds, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1DeveloperUserAlreadyRegisteredException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1DeveloperUserIdentifierList = 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_1ExternalServiceException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1GetCredentialsForIdentityResponse = function (output, context) {\n return {\n Credentials: output.Credentials !== undefined && output.Credentials !== null\n ? deserializeAws_json1_1Credentials(output.Credentials, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1GetIdentityPoolRolesResponse = function (output, context) {\n return {\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n RoleMappings: output.RoleMappings !== undefined && output.RoleMappings !== null\n ? deserializeAws_json1_1RoleMappingMap(output.RoleMappings, context)\n : undefined,\n Roles: output.Roles !== undefined && output.Roles !== null\n ? deserializeAws_json1_1RolesMap(output.Roles, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1GetIdResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n };\n};\nvar deserializeAws_json1_1GetOpenIdTokenResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n };\n};\nvar deserializeAws_json1_1IdentitiesList = 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_1IdentityDescription(entry, context);\n });\n};\nvar deserializeAws_json1_1IdentityDescription = function (output, context) {\n return {\n CreationDate: output.CreationDate !== undefined && output.CreationDate !== null\n ? new Date(Math.round(output.CreationDate * 1000))\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null\n ? new Date(Math.round(output.LastModifiedDate * 1000))\n : undefined,\n Logins: output.Logins !== undefined && output.Logins !== null\n ? deserializeAws_json1_1LoginsList(output.Logins, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPool = function (output, context) {\n return {\n AllowClassicFlow: output.AllowClassicFlow !== undefined && output.AllowClassicFlow !== null ? output.AllowClassicFlow : undefined,\n AllowUnauthenticatedIdentities: output.AllowUnauthenticatedIdentities !== undefined && output.AllowUnauthenticatedIdentities !== null\n ? output.AllowUnauthenticatedIdentities\n : undefined,\n CognitoIdentityProviders: output.CognitoIdentityProviders !== undefined && output.CognitoIdentityProviders !== null\n ? deserializeAws_json1_1CognitoIdentityProviderList(output.CognitoIdentityProviders, context)\n : undefined,\n DeveloperProviderName: output.DeveloperProviderName !== undefined && output.DeveloperProviderName !== null\n ? output.DeveloperProviderName\n : undefined,\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n IdentityPoolTags: output.IdentityPoolTags !== undefined && output.IdentityPoolTags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.IdentityPoolTags, context)\n : undefined,\n OpenIdConnectProviderARNs: output.OpenIdConnectProviderARNs !== undefined && output.OpenIdConnectProviderARNs !== null\n ? deserializeAws_json1_1OIDCProviderList(output.OpenIdConnectProviderARNs, context)\n : undefined,\n SamlProviderARNs: output.SamlProviderARNs !== undefined && output.SamlProviderARNs !== null\n ? deserializeAws_json1_1SAMLProviderList(output.SamlProviderARNs, context)\n : undefined,\n SupportedLoginProviders: output.SupportedLoginProviders !== undefined && output.SupportedLoginProviders !== null\n ? deserializeAws_json1_1IdentityProviders(output.SupportedLoginProviders, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPoolShortDescription = function (output, context) {\n return {\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPoolsList = 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_1IdentityPoolShortDescription(entry, context);\n });\n};\nvar deserializeAws_json1_1IdentityPoolTagsType = 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_1IdentityProviders = 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_1InternalErrorException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidIdentityPoolConfigurationException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidParameterException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : 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_1ListIdentitiesResponse = function (output, context) {\n return {\n Identities: output.Identities !== undefined && output.Identities !== null\n ? deserializeAws_json1_1IdentitiesList(output.Identities, context)\n : undefined,\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1ListIdentityPoolsResponse = function (output, context) {\n return {\n IdentityPools: output.IdentityPools !== undefined && output.IdentityPools !== null\n ? deserializeAws_json1_1IdentityPoolsList(output.IdentityPools, context)\n : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1ListTagsForResourceResponse = function (output, context) {\n return {\n Tags: output.Tags !== undefined && output.Tags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.Tags, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1LoginsList = 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_1LookupDeveloperIdentityResponse = function (output, context) {\n return {\n DeveloperUserIdentifierList: output.DeveloperUserIdentifierList !== undefined && output.DeveloperUserIdentifierList !== null\n ? deserializeAws_json1_1DeveloperUserIdentifierList(output.DeveloperUserIdentifierList, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1MappingRule = function (output, context) {\n return {\n Claim: output.Claim !== undefined && output.Claim !== null ? output.Claim : undefined,\n MatchType: output.MatchType !== undefined && output.MatchType !== null ? output.MatchType : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined,\n };\n};\nvar deserializeAws_json1_1MappingRulesList = 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_1MappingRule(entry, context);\n });\n};\nvar deserializeAws_json1_1MergeDeveloperIdentitiesResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1NotAuthorizedException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1OIDCProviderList = 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_1ResourceConflictException = 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_1RoleMapping = function (output, context) {\n return {\n AmbiguousRoleResolution: output.AmbiguousRoleResolution !== undefined && output.AmbiguousRoleResolution !== null\n ? output.AmbiguousRoleResolution\n : undefined,\n RulesConfiguration: output.RulesConfiguration !== undefined && output.RulesConfiguration !== null\n ? deserializeAws_json1_1RulesConfigurationType(output.RulesConfiguration, context)\n : undefined,\n Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n };\n};\nvar deserializeAws_json1_1RoleMappingMap = 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] = deserializeAws_json1_1RoleMapping(value, context), _b));\n }, {});\n};\nvar deserializeAws_json1_1RolesMap = 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_1RulesConfigurationType = function (output, context) {\n return {\n Rules: output.Rules !== undefined && output.Rules !== null\n ? deserializeAws_json1_1MappingRulesList(output.Rules, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1SAMLProviderList = 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_1TagResourceResponse = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1TooManyRequestsException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1UnprocessedIdentityId = function (output, context) {\n return {\n ErrorCode: output.ErrorCode !== undefined && output.ErrorCode !== null ? output.ErrorCode : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1UnprocessedIdentityIdList = 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_1UnprocessedIdentityId(entry, context);\n });\n};\nvar deserializeAws_json1_1UntagResourceResponse = function (output, context) {\n return {};\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 { __extends } from \"tslib\";\nimport { GetCredentialsForIdentityInput, GetCredentialsForIdentityResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1GetCredentialsForIdentityCommand, serializeAws_json1_1GetCredentialsForIdentityCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Returns credentials for the provided identity ID. Any provided logins will be\n * validated against supported login providers. If the token is for\n * cognito-identity.amazonaws.com, it will be passed through to AWS Security Token Service\n * with the appropriate role for the token.

\n *

This is a public API. You do not need any credentials to call this API.

\n */\nvar GetCredentialsForIdentityCommand = /** @class */ (function (_super) {\n __extends(GetCredentialsForIdentityCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetCredentialsForIdentityCommand(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 GetCredentialsForIdentityCommand.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 = \"CognitoIdentityClient\";\n var commandName = \"GetCredentialsForIdentityCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetCredentialsForIdentityInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetCredentialsForIdentityResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetCredentialsForIdentityCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetCredentialsForIdentityCommand(input, context);\n };\n GetCredentialsForIdentityCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetCredentialsForIdentityCommand(output, context);\n };\n return GetCredentialsForIdentityCommand;\n}($Command));\nexport { GetCredentialsForIdentityCommand };\n//# sourceMappingURL=GetCredentialsForIdentityCommand.js.map","import { __extends } from \"tslib\";\n/**\n * An error representing a failure of an individual credential provider.\n *\n * This error class has special meaning to the {@link chain} method. If a\n * provider in the chain is rejected with an error, the chain will only proceed\n * to the next provider if the value of the `tryNextLink` property on the error\n * is truthy. This allows individual providers to halt the chain and also\n * ensures the chain will stop if an entirely unexpected error is encountered.\n */\nvar ProviderError = /** @class */ (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 return _this;\n }\n return ProviderError;\n}(Error));\nexport { ProviderError };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdmlkZXJFcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Qcm92aWRlckVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRztBQUNIO0lBQW1DLGlDQUFLO0lBQ3RDLHVCQUFZLE9BQWUsRUFBa0IsV0FBMkI7UUFBM0IsNEJBQUEsRUFBQSxrQkFBMkI7UUFBeEUsWUFDRSxrQkFBTSxPQUFPLENBQUMsU0FDZjtRQUY0QyxpQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7O0lBRXhFLENBQUM7SUFDSCxvQkFBQztBQUFELENBQUMsQUFKRCxDQUFtQyxLQUFLLEdBSXZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbiBlcnJvciByZXByZXNlbnRpbmcgYSBmYWlsdXJlIG9mIGFuIGluZGl2aWR1YWwgY3JlZGVudGlhbCBwcm92aWRlci5cbiAqXG4gKiBUaGlzIGVycm9yIGNsYXNzIGhhcyBzcGVjaWFsIG1lYW5pbmcgdG8gdGhlIHtAbGluayBjaGFpbn0gbWV0aG9kLiBJZiBhXG4gKiBwcm92aWRlciBpbiB0aGUgY2hhaW4gaXMgcmVqZWN0ZWQgd2l0aCBhbiBlcnJvciwgdGhlIGNoYWluIHdpbGwgb25seSBwcm9jZWVkXG4gKiB0byB0aGUgbmV4dCBwcm92aWRlciBpZiB0aGUgdmFsdWUgb2YgdGhlIGB0cnlOZXh0TGlua2AgcHJvcGVydHkgb24gdGhlIGVycm9yXG4gKiBpcyB0cnV0aHkuIFRoaXMgYWxsb3dzIGluZGl2aWR1YWwgcHJvdmlkZXJzIHRvIGhhbHQgdGhlIGNoYWluIGFuZCBhbHNvXG4gKiBlbnN1cmVzIHRoZSBjaGFpbiB3aWxsIHN0b3AgaWYgYW4gZW50aXJlbHkgdW5leHBlY3RlZCBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IHRyeU5leHRMaW5rOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG59XG4iXX0=","import { __read } from \"tslib\";\n/**\n * @internal\n */\nexport function resolveLogins(logins) {\n return Promise.all(Object.keys(logins).reduce(function (arr, name) {\n var tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n }\n else {\n arr.push(tokenOrProvider().then(function (token) { return [name, token]; }));\n }\n return arr;\n }, [])).then(function (resolvedPairs) {\n return resolvedPairs.reduce(function (logins, _a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n logins[key] = value;\n return logins;\n }, {});\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZUxvZ2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlTG9naW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBYztJQUMxQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsR0FBd0QsRUFBRSxJQUFZO1FBQ2hHLElBQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRTtZQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBcUIsQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBcUIsRUFBakMsQ0FBaUMsQ0FBQyxDQUFDLENBQUM7U0FDaEY7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFzQyxDQUFDLENBQzNDLENBQUMsSUFBSSxDQUFDLFVBQUMsYUFBYTtRQUNuQixPQUFBLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBQyxNQUFzQixFQUFFLEVBQVk7Z0JBQVosS0FBQSxhQUFZLEVBQVgsR0FBRyxRQUFBLEVBQUUsS0FBSyxRQUFBO1lBQ3ZELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQW9CLENBQUM7SUFIeEIsQ0FHd0IsQ0FDekIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dpbnMsIFJlc29sdmVkTG9naW5zIH0gZnJvbSBcIi4vTG9naW5zXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTG9naW5zKGxvZ2luczogTG9naW5zKTogUHJvbWlzZTxSZXNvbHZlZExvZ2lucz4ge1xuICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgT2JqZWN0LmtleXMobG9naW5zKS5yZWR1Y2UoKGFycjogQXJyYXk8W3N0cmluZywgc3RyaW5nXSB8IFByb21pc2U8W3N0cmluZywgc3RyaW5nXT4+LCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRva2VuT3JQcm92aWRlciA9IGxvZ2luc1tuYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgdG9rZW5PclByb3ZpZGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFyci5wdXNoKFtuYW1lLCB0b2tlbk9yUHJvdmlkZXJdIGFzIFtzdHJpbmcsIHN0cmluZ10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJyLnB1c2godG9rZW5PclByb3ZpZGVyKCkudGhlbigodG9rZW4pID0+IFtuYW1lLCB0b2tlbl0gYXMgW3N0cmluZywgc3RyaW5nXSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycjtcbiAgICB9LCBbXSBhcyBBcnJheTxQcm9taXNlPFtzdHJpbmcsIHN0cmluZ10+PilcbiAgKS50aGVuKChyZXNvbHZlZFBhaXJzKSA9PlxuICAgIHJlc29sdmVkUGFpcnMucmVkdWNlKChsb2dpbnM6IFJlc29sdmVkTG9naW5zLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGxvZ2luc1trZXldID0gdmFsdWU7XG4gICAgICByZXR1cm4gbG9naW5zO1xuICAgIH0sIHt9IGFzIFJlc29sdmVkTG9naW5zKVxuICApO1xufVxuIl19","import { __awaiter, __generator } from \"tslib\";\nimport { GetCredentialsForIdentityCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { resolveLogins } from \"./resolveLogins\";\n/**\n * Retrieves temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from this function call are not cached internally.\n */\nexport function fromCognitoIdentity(parameters) {\n var _this = this;\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, _c, AccessKeyId, Expiration, _d, SecretKey, SessionToken, _e, _f, _g, _h;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _f = (_e = parameters.client).send;\n _g = GetCredentialsForIdentityCommand.bind;\n _j = {\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId\n };\n if (!parameters.logins) return [3 /*break*/, 2];\n return [4 /*yield*/, resolveLogins(parameters.logins)];\n case 1:\n _h = _k.sent();\n return [3 /*break*/, 3];\n case 2:\n _h = undefined;\n _k.label = 3;\n case 3: return [4 /*yield*/, _f.apply(_e, [new (_g.apply(GetCredentialsForIdentityCommand, [void 0, (_j.Logins = _h,\n _j)]))()])];\n case 4:\n _a = (_k.sent()).Credentials, _b = _a === void 0 ? throwOnMissingCredentials() : _a, _c = _b.AccessKeyId, AccessKeyId = _c === void 0 ? throwOnMissingAccessKeyId() : _c, Expiration = _b.Expiration, _d = _b.SecretKey, SecretKey = _d === void 0 ? throwOnMissingSecretKey() : _d, SessionToken = _b.SessionToken;\n return [2 /*return*/, {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n }];\n }\n });\n }); };\n}\nfunction throwOnMissingAccessKeyId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no access key ID\");\n}\nfunction throwOnMissingCredentials() {\n throw new ProviderError(\"Response from Amazon Cognito contained no credentials\");\n}\nfunction throwOnMissingSecretKey() {\n throw new ProviderError(\"Response from Amazon Cognito contained no secret key\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNvZ25pdG9JZGVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcm9tQ29nbml0b0lkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBU2hEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFVBQXlDO0lBQTdFLGlCQXlCQztJQXhCQyxPQUFPOzs7Ozs7b0JBUUssS0FBQSxDQUFBLEtBQUEsVUFBVSxDQUFDLE1BQU0sQ0FBQSxDQUFDLElBQUksQ0FBQTt5QkFDMUIsZ0NBQWdDOzt3QkFDbEMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO3dCQUN2QyxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVU7O3lCQUN6QixVQUFVLENBQUMsTUFBTSxFQUFqQix3QkFBaUI7b0JBQUcscUJBQU0sYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBQTs7b0JBQXRDLEtBQUEsU0FBc0MsQ0FBQTs7O29CQUFHLEtBQUEsU0FBUyxDQUFBOzt3QkFKOUUscUJBQU0sY0FDUixjQUFJLGdDQUFnQyxZQUdsQyxTQUFNLEtBQXdFO3dDQUM5RSxFQUNILEVBQUE7O29CQVpDLEtBTUUsQ0FBQSxTQU1ILENBQUEsWUFQZ0MsRUFML0IscUJBS0kseUJBQXlCLEVBQUUsS0FBQSxFQUo3QixtQkFBeUMsRUFBekMsV0FBVyxtQkFBRyx5QkFBeUIsRUFBRSxLQUFBLEVBQ3pDLFVBQVUsZ0JBQUEsRUFDVixpQkFBcUMsRUFBckMsU0FBUyxtQkFBRyx1QkFBdUIsRUFBRSxLQUFBLEVBQ3JDLFlBQVksa0JBQUE7b0JBVWhCLHNCQUFPOzRCQUNMLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTs0QkFDakMsV0FBVyxFQUFFLFdBQVc7NEJBQ3hCLGVBQWUsRUFBRSxTQUFTOzRCQUMxQixZQUFZLEVBQUUsWUFBWTs0QkFDMUIsVUFBVSxFQUFFLFVBQVU7eUJBQ3ZCLEVBQUM7OztTQUNILENBQUM7QUFDSixDQUFDO0FBVUQsU0FBUyx5QkFBeUI7SUFDaEMsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLHlCQUF5QjtJQUNoQyxNQUFNLElBQUksYUFBYSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7QUFDbkYsQ0FBQztBQUVELFNBQVMsdUJBQXVCO0lBQzlCLE1BQU0sSUFBSSxhQUFhLENBQUMsc0RBQXNELENBQUMsQ0FBQztBQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eUNvbW1hbmQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWNvZ25pdG8taWRlbnRpdHlcIjtcbmltcG9ydCB7IFByb3ZpZGVyRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvcHJvcGVydHktcHJvdmlkZXJcIjtcbmltcG9ydCB7IENyZWRlbnRpYWxQcm92aWRlciwgQ3JlZGVudGlhbHMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB9IGZyb20gXCIuL0NvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHJlc29sdmVMb2dpbnMgfSBmcm9tIFwiLi9yZXNvbHZlTG9naW5zXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHMgZXh0ZW5kcyBDcmVkZW50aWFscyB7XG4gIC8qKlxuICAgKiBUaGUgQ29nbml0byBJRCByZXR1cm5lZCBieSB0aGUgbGFzdCBjYWxsIHRvIEFXUy5Db2duaXRvSWRlbnRpdHkuZ2V0T3BlbklkVG9rZW4oKS5cbiAgICovXG4gIGlkZW50aXR5SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGVtcG9yYXJ5IEFXUyBjcmVkZW50aWFscyB1c2luZyBBbWF6b24gQ29nbml0bydzXG4gKiBgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eWAgb3BlcmF0aW9uLlxuICpcbiAqIFJlc3VsdHMgZnJvbSB0aGlzIGZ1bmN0aW9uIGNhbGwgYXJlIG5vdCBjYWNoZWQgaW50ZXJuYWxseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21Db2duaXRvSWRlbnRpdHkocGFyYW1ldGVyczogRnJvbUNvZ25pdG9JZGVudGl0eVBhcmFtZXRlcnMpOiBDcmVkZW50aWFsUHJvdmlkZXIge1xuICByZXR1cm4gYXN5bmMgKCk6IFByb21pc2U8Q29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHM+ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBDcmVkZW50aWFsczoge1xuICAgICAgICBBY2Nlc3NLZXlJZCA9IHRocm93T25NaXNzaW5nQWNjZXNzS2V5SWQoKSxcbiAgICAgICAgRXhwaXJhdGlvbixcbiAgICAgICAgU2VjcmV0S2V5ID0gdGhyb3dPbk1pc3NpbmdTZWNyZXRLZXkoKSxcbiAgICAgICAgU2Vzc2lvblRva2VuLFxuICAgICAgfSA9IHRocm93T25NaXNzaW5nQ3JlZGVudGlhbHMoKSxcbiAgICB9ID0gYXdhaXQgcGFyYW1ldGVycy5jbGllbnQuc2VuZChcbiAgICAgIG5ldyBHZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5Q29tbWFuZCh7XG4gICAgICAgIEN1c3RvbVJvbGVBcm46IHBhcmFtZXRlcnMuY3VzdG9tUm9sZUFybixcbiAgICAgICAgSWRlbnRpdHlJZDogcGFyYW1ldGVycy5pZGVudGl0eUlkLFxuICAgICAgICBMb2dpbnM6IHBhcmFtZXRlcnMubG9naW5zID8gYXdhaXQgcmVzb2x2ZUxvZ2lucyhwYXJhbWV0ZXJzLmxvZ2lucykgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWRlbnRpdHlJZDogcGFyYW1ldGVycy5pZGVudGl0eUlkLFxuICAgICAgYWNjZXNzS2V5SWQ6IEFjY2Vzc0tleUlkLFxuICAgICAgc2VjcmV0QWNjZXNzS2V5OiBTZWNyZXRLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IFNlc3Npb25Ub2tlbixcbiAgICAgIGV4cGlyYXRpb246IEV4cGlyYXRpb24sXG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9tQ29nbml0b0lkZW50aXR5UGFyYW1ldGVycyBleHRlbmRzIENvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnMge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHkgYWdhaW5zdCB3aGljaCBjcmVkZW50aWFscyB3aWxsIGJlXG4gICAqIGlzc3VlZC5cbiAgICovXG4gIGlkZW50aXR5SWQ6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gdGhyb3dPbk1pc3NpbmdBY2Nlc3NLZXlJZCgpOiBuZXZlciB7XG4gIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiUmVzcG9uc2UgZnJvbSBBbWF6b24gQ29nbml0byBjb250YWluZWQgbm8gYWNjZXNzIGtleSBJRFwiKTtcbn1cblxuZnVuY3Rpb24gdGhyb3dPbk1pc3NpbmdDcmVkZW50aWFscygpOiBuZXZlciB7XG4gIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiUmVzcG9uc2UgZnJvbSBBbWF6b24gQ29nbml0byBjb250YWluZWQgbm8gY3JlZGVudGlhbHNcIik7XG59XG5cbmZ1bmN0aW9uIHRocm93T25NaXNzaW5nU2VjcmV0S2V5KCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJSZXNwb25zZSBmcm9tIEFtYXpvbiBDb2duaXRvIGNvbnRhaW5lZCBubyBzZWNyZXQga2V5XCIpO1xufVxuIl19","import { __extends } from \"tslib\";\nimport { GetIdInput, GetIdResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1GetIdCommand, serializeAws_json1_1GetIdCommand } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Generates (or retrieves) a Cognito ID. Supplying multiple logins will create an\n * implicit linked account.

\n *

This is a public API. You do not need any credentials to call this API.

\n */\nvar GetIdCommand = /** @class */ (function (_super) {\n __extends(GetIdCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetIdCommand(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 GetIdCommand.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 = \"CognitoIdentityClient\";\n var commandName = \"GetIdCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetIdInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetIdResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetIdCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetIdCommand(input, context);\n };\n GetIdCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetIdCommand(output, context);\n };\n return GetIdCommand;\n}($Command));\nexport { GetIdCommand };\n//# sourceMappingURL=GetIdCommand.js.map","var STORE_NAME = \"IdentityIds\";\nvar IndexedDbStorage = /** @class */ (function () {\n function IndexedDbStorage(dbName) {\n if (dbName === void 0) { dbName = \"aws:cognito-identity-ids\"; }\n this.dbName = dbName;\n }\n IndexedDbStorage.prototype.getItem = function (key) {\n return this.withObjectStore(\"readonly\", function (store) {\n var req = store.get(key);\n return new Promise(function (resolve) {\n req.onerror = function () { return resolve(null); };\n req.onsuccess = function () { return resolve(req.result ? req.result.value : null); };\n });\n }).catch(function () { return null; });\n };\n IndexedDbStorage.prototype.removeItem = function (key) {\n return this.withObjectStore(\"readwrite\", function (store) {\n var req = store.delete(key);\n return new Promise(function (resolve, reject) {\n req.onerror = function () { return reject(req.error); };\n req.onsuccess = function () { return resolve(); };\n });\n });\n };\n IndexedDbStorage.prototype.setItem = function (id, value) {\n return this.withObjectStore(\"readwrite\", function (store) {\n var req = store.put({ id: id, value: value });\n return new Promise(function (resolve, reject) {\n req.onerror = function () { return reject(req.error); };\n req.onsuccess = function () { return resolve(); };\n });\n });\n };\n IndexedDbStorage.prototype.getDb = function () {\n var openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise(function (resolve, reject) {\n openDbRequest.onsuccess = function () {\n resolve(openDbRequest.result);\n };\n openDbRequest.onerror = function () {\n reject(openDbRequest.error);\n };\n openDbRequest.onblocked = function () {\n reject(new Error(\"Unable to access DB\"));\n };\n openDbRequest.onupgradeneeded = function () {\n var db = openDbRequest.result;\n db.onerror = function () {\n reject(new Error(\"Failed to create object store\"));\n };\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n };\n IndexedDbStorage.prototype.withObjectStore = function (mode, action) {\n return this.getDb().then(function (db) {\n var tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = function () { return db.close(); };\n return new Promise(function (resolve, reject) {\n tx.onerror = function () { return reject(tx.error); };\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch(function (err) {\n db.close();\n throw err;\n });\n });\n };\n return IndexedDbStorage;\n}());\nexport { IndexedDbStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kZXhlZERiU3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbmRleGVkRGJTdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLElBQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQztBQUVqQztJQUNFLDBCQUE2QixNQUEyQztRQUEzQyx1QkFBQSxFQUFBLG1DQUEyQztRQUEzQyxXQUFNLEdBQU4sTUFBTSxDQUFxQztJQUFHLENBQUM7SUFFNUUsa0NBQU8sR0FBUCxVQUFRLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxVQUFDLEtBQUs7WUFDNUMsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUzQixPQUFPLElBQUksT0FBTyxDQUFnQixVQUFDLE9BQU87Z0JBQ3hDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBYixDQUFhLENBQUM7Z0JBRWxDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQTdDLENBQTZDLENBQUM7WUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQscUNBQVUsR0FBVixVQUFXLEdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxVQUFDLEtBQUs7WUFDN0MsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUU5QixPQUFPLElBQUksT0FBTyxDQUFPLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ3ZDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQWpCLENBQWlCLENBQUM7Z0JBRXRDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsY0FBTSxPQUFBLE9BQU8sRUFBRSxFQUFULENBQVMsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtDQUFPLEdBQVAsVUFBUSxFQUFVLEVBQUUsS0FBYTtRQUMvQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFVBQUMsS0FBSztZQUM3QyxJQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFBLEVBQUUsS0FBSyxPQUFBLEVBQUUsQ0FBQyxDQUFDO1lBRXJDLE9BQU8sSUFBSSxPQUFPLENBQU8sVUFBQyxPQUFPLEVBQUUsTUFBTTtnQkFDdkMsR0FBRyxDQUFDLE9BQU8sR0FBRyxjQUFNLE9BQUEsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBakIsQ0FBaUIsQ0FBQztnQkFFdEMsR0FBRyxDQUFDLFNBQVMsR0FBRyxjQUFNLE9BQUEsT0FBTyxFQUFFLEVBQVQsQ0FBUyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0NBQUssR0FBYjtRQUNFLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1lBQ2pDLGFBQWEsQ0FBQyxTQUFTLEdBQUc7Z0JBQ3hCLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDO1lBRUYsYUFBYSxDQUFDLE9BQU8sR0FBRztnQkFDdEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUM7WUFFRixhQUFhLENBQUMsU0FBUyxHQUFHO2dCQUN4QixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1lBQzNDLENBQUMsQ0FBQztZQUVGLGFBQWEsQ0FBQyxlQUFlLEdBQUc7Z0JBQzlCLElBQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2hDLEVBQUUsQ0FBQyxPQUFPLEdBQUc7b0JBQ1gsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQztnQkFDckQsQ0FBQyxDQUFDO2dCQUVGLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTywwQ0FBZSxHQUF2QixVQUEyQixJQUF3QixFQUFFLE1BQTZDO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEVBQUU7WUFDMUIsSUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUMsRUFBRSxDQUFDLFVBQVUsR0FBRyxjQUFNLE9BQUEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFWLENBQVUsQ0FBQztZQUVqQyxPQUFPLElBQUksT0FBTyxDQUFJLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ3BDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQWhCLENBQWdCLENBQUM7Z0JBRXBDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQUMsR0FBRztnQkFDWCxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxHQUFHLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQWhGRCxJQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tIFwiLi9TdG9yYWdlXCI7XG5cbmNvbnN0IFNUT1JFX05BTUUgPSBcIklkZW50aXR5SWRzXCI7XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkRGJTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGJOYW1lOiBzdHJpbmcgPSBcImF3czpjb2duaXRvLWlkZW50aXR5LWlkc1wiKSB7fVxuXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkb25seVwiLCAoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IHJlcSA9IHN0b3JlLmdldChrZXkpO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nIHwgbnVsbD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVxLm9uZXJyb3IgPSAoKSA9PiByZXNvbHZlKG51bGwpO1xuXG4gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSAoKSA9PiByZXNvbHZlKHJlcS5yZXN1bHQgPyByZXEucmVzdWx0LnZhbHVlIDogbnVsbCk7XG4gICAgICB9KTtcbiAgICB9KS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkd3JpdGVcIiwgKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByZXEgPSBzdG9yZS5kZWxldGUoa2V5KTtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgcmVxLm9uZXJyb3IgPSAoKSA9PiByZWplY3QocmVxLmVycm9yKTtcblxuICAgICAgICByZXEub25zdWNjZXNzID0gKCkgPT4gcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRJdGVtKGlkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkd3JpdGVcIiwgKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByZXEgPSBzdG9yZS5wdXQoeyBpZCwgdmFsdWUgfSk7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHJlcS5vbmVycm9yID0gKCkgPT4gcmVqZWN0KHJlcS5lcnJvcik7XG5cbiAgICAgICAgcmVxLm9uc3VjY2VzcyA9ICgpID0+IHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYigpOiBQcm9taXNlPElEQkRhdGFiYXNlPiB7XG4gICAgY29uc3Qgb3BlbkRiUmVxdWVzdCA9IHNlbGYuaW5kZXhlZERCLm9wZW4odGhpcy5kYk5hbWUsIDEpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShvcGVuRGJSZXF1ZXN0LnJlc3VsdCk7XG4gICAgICB9O1xuXG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHJlamVjdChvcGVuRGJSZXF1ZXN0LmVycm9yKTtcbiAgICAgIH07XG5cbiAgICAgIG9wZW5EYlJlcXVlc3Qub25ibG9ja2VkID0gKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKFwiVW5hYmxlIHRvIGFjY2VzcyBEQlwiKSk7XG4gICAgICB9O1xuXG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZGIgPSBvcGVuRGJSZXF1ZXN0LnJlc3VsdDtcbiAgICAgICAgZGIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKFwiRmFpbGVkIHRvIGNyZWF0ZSBvYmplY3Qgc3RvcmVcIikpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKFNUT1JFX05BTUUsIHsga2V5UGF0aDogXCJpZFwiIH0pO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgd2l0aE9iamVjdFN0b3JlPFI+KG1vZGU6IElEQlRyYW5zYWN0aW9uTW9kZSwgYWN0aW9uOiAoc3RvcmU6IElEQk9iamVjdFN0b3JlKSA9PiBQcm9taXNlPFI+KTogUHJvbWlzZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGIoKS50aGVuKChkYikgPT4ge1xuICAgICAgY29uc3QgdHggPSBkYi50cmFuc2FjdGlvbihTVE9SRV9OQU1FLCBtb2RlKTtcbiAgICAgIHR4Lm9uY29tcGxldGUgPSAoKSA9PiBkYi5jbG9zZSgpO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0eC5vbmVycm9yID0gKCkgPT4gcmVqZWN0KHR4LmVycm9yKTtcblxuICAgICAgICByZXNvbHZlKGFjdGlvbih0eC5vYmplY3RTdG9yZShTVE9SRV9OQU1FKSkpO1xuICAgICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19","var InMemoryStorage = /** @class */ (function () {\n function InMemoryStorage(store) {\n if (store === void 0) { store = {}; }\n this.store = store;\n }\n InMemoryStorage.prototype.getItem = function (key) {\n if (key in this.store) {\n return this.store[key];\n }\n return null;\n };\n InMemoryStorage.prototype.removeItem = function (key) {\n delete this.store[key];\n };\n InMemoryStorage.prototype.setItem = function (key, value) {\n this.store[key] = value;\n };\n return InMemoryStorage;\n}());\nexport { InMemoryStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5NZW1vcnlTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0luTWVtb3J5U3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtJQUNFLHlCQUFvQixLQUFxQztRQUFyQyxzQkFBQSxFQUFBLFVBQXFDO1FBQXJDLFVBQUssR0FBTCxLQUFLLENBQWdDO0lBQUcsQ0FBQztJQUU3RCxpQ0FBTyxHQUFQLFVBQVEsR0FBVztRQUNqQixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9DQUFVLEdBQVYsVUFBVyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsaUNBQU8sR0FBUCxVQUFRLEdBQVcsRUFBRSxLQUFhO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFsQkQsSUFrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSBcIi4vU3RvcmFnZVwiO1xuXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSkge31cblxuICBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKGtleSBpbiB0aGlzLnN0b3JlKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZVtrZXldO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLnN0b3JlW2tleV07XG4gIH1cblxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZVtrZXldID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==","import { IndexedDbStorage } from \"./IndexedDbStorage\";\nimport { InMemoryStorage } from \"./InMemoryStorage\";\nvar inMemoryStorage = new InMemoryStorage();\nexport function localStorage() {\n if (typeof self === \"object\" && self.indexedDB) {\n return new IndexedDbStorage();\n }\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n return inMemoryStorage;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsU3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsSUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztBQUU5QyxNQUFNLFVBQVUsWUFBWTtJQUMxQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQzlDLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0tBQy9CO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtRQUNyRCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUM7S0FDNUI7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5kZXhlZERiU3RvcmFnZSB9IGZyb20gXCIuL0luZGV4ZWREYlN0b3JhZ2VcIjtcbmltcG9ydCB7IEluTWVtb3J5U3RvcmFnZSB9IGZyb20gXCIuL0luTWVtb3J5U3RvcmFnZVwiO1xuaW1wb3J0IHsgU3RvcmFnZSB9IGZyb20gXCIuL1N0b3JhZ2VcIjtcblxuY29uc3QgaW5NZW1vcnlTdG9yYWdlID0gbmV3IEluTWVtb3J5U3RvcmFnZSgpO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlKCk6IFN0b3JhZ2Uge1xuICBpZiAodHlwZW9mIHNlbGYgPT09IFwib2JqZWN0XCIgJiYgc2VsZi5pbmRleGVkREIpIHtcbiAgICByZXR1cm4gbmV3IEluZGV4ZWREYlN0b3JhZ2UoKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgfVxuXG4gIHJldHVybiBpbk1lbW9yeVN0b3JhZ2U7XG59XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { GetIdCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { fromCognitoIdentity } from \"./fromCognitoIdentity\";\nimport { localStorage } from \"./localStorage\";\nimport { resolveLogins } from \"./resolveLogins\";\n/**\n * Retrieves or generates a unique identifier using Amazon Cognito's `GetId`\n * operation, then generates temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from `GetId` are cached internally, but results from\n * `GetCredentialsForIdentity` are not.\n */\nexport function fromCognitoIdentityPool(_a) {\n var _this = this;\n var accountId = _a.accountId, _b = _a.cache, cache = _b === void 0 ? localStorage() : _b, client = _a.client, customRoleArn = _a.customRoleArn, identityPoolId = _a.identityPoolId, logins = _a.logins, _c = _a.userIdentifier, userIdentifier = _c === void 0 ? !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : undefined : _c;\n var cacheKey = userIdentifier ? \"aws:cognito-identity-credentials:\" + identityPoolId + \":\" + userIdentifier : undefined;\n var provider = function () { return __awaiter(_this, void 0, void 0, function () {\n var identityId, _a, _b, IdentityId, _c, _d, _e, _f;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = cacheKey;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, cache.getItem(cacheKey)];\n case 1:\n _a = (_h.sent());\n _h.label = 2;\n case 2:\n identityId = _a;\n if (!!identityId) return [3 /*break*/, 7];\n _d = (_c = client).send;\n _e = GetIdCommand.bind;\n _g = {\n AccountId: accountId,\n IdentityPoolId: identityPoolId\n };\n if (!logins) return [3 /*break*/, 4];\n return [4 /*yield*/, resolveLogins(logins)];\n case 3:\n _f = _h.sent();\n return [3 /*break*/, 5];\n case 4:\n _f = undefined;\n _h.label = 5;\n case 5: return [4 /*yield*/, _d.apply(_c, [new (_e.apply(GetIdCommand, [void 0, (_g.Logins = _f,\n _g)]))()])];\n case 6:\n _b = (_h.sent()).IdentityId, IdentityId = _b === void 0 ? throwOnMissingId() : _b;\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(function () { });\n }\n _h.label = 7;\n case 7:\n provider = fromCognitoIdentity({\n client: client,\n customRoleArn: customRoleArn,\n logins: logins,\n identityId: identityId,\n });\n return [2 /*return*/, provider()];\n }\n });\n }); };\n return function () {\n return provider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(function () { });\n }\n throw err;\n });\n }); });\n };\n}\nfunction throwOnMissingId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no identity ID\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNvZ25pdG9JZGVudGl0eVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnJvbUNvZ25pdG9JZGVudGl0eVBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEVBUUo7SUFScEMsaUJBNkNDO1FBNUNDLFNBQVMsZUFBQSxFQUNULGFBQXNCLEVBQXRCLEtBQUssbUJBQUcsWUFBWSxFQUFFLEtBQUEsRUFDdEIsTUFBTSxZQUFBLEVBQ04sYUFBYSxtQkFBQSxFQUNiLGNBQWMsb0JBQUEsRUFDZCxNQUFNLFlBQUEsRUFDTixzQkFBc0YsRUFBdEYsY0FBYyxtQkFBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFBO0lBRXRGLElBQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsc0NBQW9DLGNBQWMsU0FBSSxjQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFckgsSUFBSSxRQUFRLEdBQXVCOzs7Ozs7b0JBQ2hCLEtBQUEsUUFBUSxDQUFBOzZCQUFSLHdCQUFRO29CQUFLLHFCQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUE7O29CQUE5QixLQUFBLENBQUMsU0FBNkIsQ0FBQyxDQUFBOzs7b0JBQXhELFVBQVUsS0FBOEM7eUJBQ3hELENBQUMsVUFBVSxFQUFYLHdCQUFXO29CQUNxQyxLQUFBLENBQUEsS0FBQSxNQUFNLENBQUEsQ0FBQyxJQUFJLENBQUE7eUJBQ3ZELFlBQVk7O3dCQUNkLFNBQVMsRUFBRSxTQUFTO3dCQUNwQixjQUFjLEVBQUUsY0FBYzs7eUJBQ3RCLE1BQU0sRUFBTix3QkFBTTtvQkFBRyxxQkFBTSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUE7O29CQUEzQixLQUFBLFNBQTJCLENBQUE7OztvQkFBRyxLQUFBLFNBQVMsQ0FBQTs7d0JBSmhCLHFCQUFNLGNBQ2hELGNBQUksWUFBWSxZQUdkLFNBQU0sS0FBa0Q7d0NBQ3hELEVBQ0gsRUFBQTs7b0JBTk8sS0FBb0MsQ0FBQSxTQU0zQyxDQUFBLFdBTnNDLEVBQS9CLFVBQVUsbUJBQUcsZ0JBQWdCLEVBQUUsS0FBQTtvQkFPdkMsVUFBVSxHQUFHLFVBQVUsQ0FBQztvQkFDeEIsSUFBSSxRQUFRLEVBQUU7d0JBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO3FCQUN0RTs7O29CQUdILFFBQVEsR0FBRyxtQkFBbUIsQ0FBQzt3QkFDN0IsTUFBTSxRQUFBO3dCQUNOLGFBQWEsZUFBQTt3QkFDYixNQUFNLFFBQUE7d0JBQ04sVUFBVSxZQUFBO3FCQUNYLENBQUMsQ0FBQztvQkFFSCxzQkFBTyxRQUFRLEVBQUUsRUFBQzs7O1NBQ25CLENBQUM7SUFFRixPQUFPO1FBQ0wsT0FBQSxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBTyxHQUFHOztnQkFDekIsSUFBSSxRQUFRLEVBQUU7b0JBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQU8sQ0FBQyxDQUFDLENBQUM7aUJBQzdEO2dCQUVELE1BQU0sR0FBRyxDQUFDOzthQUNYLENBQUM7SUFORixDQU1FLENBQUM7QUFDUCxDQUFDO0FBc0NELFNBQVMsZ0JBQWdCO0lBQ3ZCLE1BQU0sSUFBSSxhQUFhLENBQUMsdURBQXVELENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0SWRDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5XCI7XG5pbXBvcnQgeyBQcm92aWRlckVycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3BlcnR5LXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB9IGZyb20gXCIuL0NvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGZyb21Db2duaXRvSWRlbnRpdHkgfSBmcm9tIFwiLi9mcm9tQ29nbml0b0lkZW50aXR5XCI7XG5pbXBvcnQgeyBsb2NhbFN0b3JhZ2UgfSBmcm9tIFwiLi9sb2NhbFN0b3JhZ2VcIjtcbmltcG9ydCB7IHJlc29sdmVMb2dpbnMgfSBmcm9tIFwiLi9yZXNvbHZlTG9naW5zXCI7XG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSBcIi4vU3RvcmFnZVwiO1xuXG4vKipcbiAqIFJldHJpZXZlcyBvciBnZW5lcmF0ZXMgYSB1bmlxdWUgaWRlbnRpZmllciB1c2luZyBBbWF6b24gQ29nbml0bydzIGBHZXRJZGBcbiAqIG9wZXJhdGlvbiwgdGhlbiBnZW5lcmF0ZXMgdGVtcG9yYXJ5IEFXUyBjcmVkZW50aWFscyB1c2luZyBBbWF6b24gQ29nbml0bydzXG4gKiBgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eWAgb3BlcmF0aW9uLlxuICpcbiAqIFJlc3VsdHMgZnJvbSBgR2V0SWRgIGFyZSBjYWNoZWQgaW50ZXJuYWxseSwgYnV0IHJlc3VsdHMgZnJvbVxuICogYEdldENyZWRlbnRpYWxzRm9ySWRlbnRpdHlgIGFyZSBub3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQ29nbml0b0lkZW50aXR5UG9vbCh7XG4gIGFjY291bnRJZCxcbiAgY2FjaGUgPSBsb2NhbFN0b3JhZ2UoKSxcbiAgY2xpZW50LFxuICBjdXN0b21Sb2xlQXJuLFxuICBpZGVudGl0eVBvb2xJZCxcbiAgbG9naW5zLFxuICB1c2VySWRlbnRpZmllciA9ICFsb2dpbnMgfHwgT2JqZWN0LmtleXMobG9naW5zKS5sZW5ndGggPT09IDAgPyBcIkFOT05ZTU9VU1wiIDogdW5kZWZpbmVkLFxufTogRnJvbUNvZ25pdG9JZGVudGl0eVBvb2xQYXJhbWV0ZXJzKTogQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgY29uc3QgY2FjaGVLZXkgPSB1c2VySWRlbnRpZmllciA/IGBhd3M6Y29nbml0by1pZGVudGl0eS1jcmVkZW50aWFsczoke2lkZW50aXR5UG9vbElkfToke3VzZXJJZGVudGlmaWVyfWAgOiB1bmRlZmluZWQ7XG5cbiAgbGV0IHByb3ZpZGVyOiBDcmVkZW50aWFsUHJvdmlkZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGlkZW50aXR5SWQgPSBjYWNoZUtleSAmJiAoYXdhaXQgY2FjaGUuZ2V0SXRlbShjYWNoZUtleSkpO1xuICAgIGlmICghaWRlbnRpdHlJZCkge1xuICAgICAgY29uc3QgeyBJZGVudGl0eUlkID0gdGhyb3dPbk1pc3NpbmdJZCgpIH0gPSBhd2FpdCBjbGllbnQuc2VuZChcbiAgICAgICAgbmV3IEdldElkQ29tbWFuZCh7XG4gICAgICAgICAgQWNjb3VudElkOiBhY2NvdW50SWQsXG4gICAgICAgICAgSWRlbnRpdHlQb29sSWQ6IGlkZW50aXR5UG9vbElkLFxuICAgICAgICAgIExvZ2luczogbG9naW5zID8gYXdhaXQgcmVzb2x2ZUxvZ2lucyhsb2dpbnMpIDogdW5kZWZpbmVkLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIGlkZW50aXR5SWQgPSBJZGVudGl0eUlkO1xuICAgICAgaWYgKGNhY2hlS2V5KSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShjYWNoZS5zZXRJdGVtKGNhY2hlS2V5LCBpZGVudGl0eUlkKSkuY2F0Y2goKCkgPT4ge30pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3ZpZGVyID0gZnJvbUNvZ25pdG9JZGVudGl0eSh7XG4gICAgICBjbGllbnQsXG4gICAgICBjdXN0b21Sb2xlQXJuLFxuICAgICAgbG9naW5zLFxuICAgICAgaWRlbnRpdHlJZCxcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm92aWRlcigpO1xuICB9O1xuXG4gIHJldHVybiAoKSA9PlxuICAgIHByb3ZpZGVyKCkuY2F0Y2goYXN5bmMgKGVycikgPT4ge1xuICAgICAgaWYgKGNhY2hlS2V5KSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShjYWNoZS5yZW1vdmVJdGVtKGNhY2hlS2V5KSkuY2F0Y2goKCkgPT4ge30pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbUNvZ25pdG9JZGVudGl0eVBvb2xQYXJhbWV0ZXJzIGV4dGVuZHMgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBBIHN0YW5kYXJkIEFXUyBhY2NvdW50IElEICg5KyBkaWdpdHMpLlxuICAgKi9cbiAgYWNjb3VudElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNhY2hlIGluIHdoaWNoIHRvIHN0b3JlIHJlc29sdmVkIENvZ25pdG8gSWRlbnRpdHlJZHMuIElmIG5vdCBzdXBwbGllZCxcbiAgICogdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIgd2lsbCBhdHRlbXB0IHRvIHN0b3JlIElkZW50aXR5SWRzIGluIG9uZSBvZiB0aGVcbiAgICogZm9sbG93aW5nIChpbiBvcmRlciBvZiBwcmVmZXJlbmNlKTpcbiAgICogICAxLiBJbmRleGVkREJcbiAgICogICAyLiBMb2NhbFN0b3JhZ2VcbiAgICogICAzLiBBbiBpbi1tZW1vcnkgY2FjaGUgb2JqZWN0IHRoYXQgd2lsbCBub3QgcGVyc2lzdCBiZXR3ZWVuIHBhZ2VzLlxuICAgKlxuICAgKiBJbmRleGVkREIgaXMgcHJlZmVycmVkIHRvIG1heGltaXplIGRhdGEgc2hhcmluZyBiZXR3ZWVuIHRvcC1sZXZlbFxuICAgKiBicm93c2luZyBjb250ZXh0cyBhbmQgd2ViIHdvcmtlcnMuXG4gICAqXG4gICAqIFRoZSBwcm92aWRlciB3aWxsIG5vdCBjYWNoZSBJZGVudGl0eUlkcyBvZiBhdXRoZW50aWNhdGVkIHVzZXJzIHVubGVzcyBhXG4gICAqIHNlcGFyYXRlIGB1c2VySWRlbnRpdGlmZXJgIHBhcmFtZXRlciBpcyBzdXBwbGllZC5cbiAgICovXG4gIGNhY2hlPzogU3RvcmFnZTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHkgcG9vbCBmcm9tIHdoaWNoIGFuIGlkZW50aXR5IHNob3VsZFxuICAgKiBiZSByZXRyaWV2ZWQgb3IgZ2VuZXJhdGVkLlxuICAgKi9cbiAgaWRlbnRpdHlQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHVzZXIuIFRoaXMgaXMgZGlzdGluY3QgZnJvbSBhIENvZ25pdG9cbiAgICogSWRlbnRpdHlJZCBhbmQgc2hvdWxkIGluc3RlYWQgYmUgYW4gaWRlbnRpZmllciBtZWFuaW5nZnVsIHRvIHlvdXJcbiAgICogYXBwbGljYXRpb24uIFVzZWQgdG8gY2FjaGUgQ29nbml0byBJZGVudGl0eUlkcyBvbiBhIHBlci11c2VyIGJhc2lzLlxuICAgKi9cbiAgdXNlcklkZW50aWZpZXI/OiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHRocm93T25NaXNzaW5nSWQoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcIlJlc3BvbnNlIGZyb20gQW1hem9uIENvZ25pdG8gY29udGFpbmVkIG5vIGlkZW50aXR5IElEXCIpO1xufVxuIl19","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"cognito-identity.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"cognito-identity.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"cognito-identity.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"cognito-identity.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"cognito-identity.{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 \"ap-northeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity-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: \"cognito-identity-fips.us-east-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-2\",\n };\n break;\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity-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-2\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.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: \"cognito-identity\" }, 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-06-30\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"Cognito Identity\",\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 { 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 Cognito Federated Identities\n *

Amazon Cognito Federated Identities is a web service that delivers scoped temporary\n * credentials to mobile devices and other untrusted environments. It uniquely identifies a\n * device and supplies the user with a consistent identity over the lifetime of an\n * application.

\n *

Using Amazon Cognito Federated Identities, you can enable authentication with one or\n * more third-party identity providers (Facebook, Google, or Login with Amazon) or an Amazon\n * Cognito user pool, and you can also choose to support unauthenticated access from your app.\n * Cognito delivers a unique identifier for each user and acts as an OpenID token provider\n * trusted by AWS Security Token Service (STS) to access temporary, limited-privilege AWS\n * credentials.

\n *

For a description of the authentication flow from the Amazon Cognito Developer Guide\n * see Authentication Flow.

\n *

For more information see Amazon Cognito Federated Identities.

\n */\nvar CognitoIdentityClient = /** @class */ (function (_super) {\n __extends(CognitoIdentityClient, _super);\n function CognitoIdentityClient(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(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 CognitoIdentityClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CognitoIdentityClient;\n}(__Client));\nexport { CognitoIdentityClient };\n//# sourceMappingURL=CognitoIdentityClient.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 { CognitoIdentityClient, } from '@aws-sdk/client-cognito-identity';\nimport { getAmplifyUserAgent } from '../Platform';\n/**\n * Returns a CognitoIdentityClient with middleware\n * @param {CognitoIdentityClientConfig} config\n * @return {CognitoIdentityClient}\n */\nexport function createCognitoIdentityClient(config) {\n var client = new CognitoIdentityClient({\n region: config.region,\n customUserAgent: getAmplifyUserAgent(),\n });\n client.middlewareStack.add(function (next, _) { return function (args) {\n return next(middlewareArgs(args));\n }; }, {\n step: 'build',\n name: 'cacheControlMiddleWare',\n });\n return client;\n}\nexport function middlewareArgs(args) {\n return __assign(__assign({}, args), { request: __assign(__assign({}, args.request), { headers: __assign(__assign({}, args.request.headers), { 'cache-control': 'no-store' }) }) });\n}\n//# sourceMappingURL=CognitoIdentityClient.js.map","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 (_) 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 } from './Logger';\nimport { StorageHelper } from './StorageHelper';\nimport { makeQuerablePromise } from './JS';\nimport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nimport { jitteredExponentialRetry } from './Util';\nimport { Amplify } from './Amplify';\nimport { fromCognitoIdentity, fromCognitoIdentityPool, } from '@aws-sdk/credential-provider-cognito-identity';\nimport { GetIdCommand, GetCredentialsForIdentityCommand, } from '@aws-sdk/client-cognito-identity';\nimport { createCognitoIdentityClient } from './Util/CognitoIdentityClient';\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 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 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 \"\" + COGNITO_IDENTITY_KEY_PREFIX + 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 return [2 /*return*/, Promise.reject('No Auth module registered in Amplify')];\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 return __awaiter(this, void 0, void 0, function () {\n var _a, identityPoolId, region, mandatorySignIn, identityId, _b, cognitoClient, credentials, cognitoIdentityParams, credentialsProvider;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n logger.debug('setting credentials for guest');\n _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region, mandatorySignIn = _a.mandatorySignIn;\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 (!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 _b = this;\n return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n identityId = (_b._identityId = _c.sent());\n cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n credentials = undefined;\n if (identityId) {\n cognitoIdentityParams = {\n identityId: identityId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n 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 }\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 credentialsProvider;\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 '\" + 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 credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n 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 [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 provider = params.provider, token = params.token, 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;\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 (!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 cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n var credentials = undefined;\n if (identity_id) {\n var cognitoIdentityParams = {\n identityId: identity_id,\n logins: logins,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n var cognitoIdentityParams = {\n logins: logins,\n identityPoolId: identityPoolId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentityPool(cognitoIdentityParams)();\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;\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 (!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 cognitoClient = createCognitoIdentityClient({\n region: region,\n });\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*/, cognitoClient.send(new GetIdCommand({\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*/, cognitoClient.send(new GetCredentialsForIdentityCommand({\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 \" + guestIdentityId + \" has been successfully linked to the logins\");\n if (guestIdentityId === primaryIdentityId) {\n logger.debug(\"The guest identity \" + 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 \" + 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/**\n * @deprecated use named import\n */\nexport default Credentials;\n//# sourceMappingURL=Credentials.js.map","/*\n * Copyright 2017-2017 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 */\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 __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Hub');\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n 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 // Note - Need to pass channel as a reference for removal to work and not anonymous function\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 \" + channel);\n return;\n }\n this.patterns = __spread(this.patterns.filter(function (x) { return x !== pattern_1; }));\n }\n else {\n var holder = this.listeners[channel];\n if (!holder) {\n logger.warn(\"No listeners for \" + channel);\n return;\n }\n this.listeners[channel] = __spread(holder.filter(function (_a) {\n var callback = _a.callback;\n return callback !== listener;\n }));\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: \" + 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 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 \" + 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/**\n * @deprecated use named import\n */\nexport default Hub;\n//# sourceMappingURL=Hub.js.map","/*\n * Copyright 2017-2017 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';\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 Object.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//# sourceMappingURL=I18n.js.map","/*\n * Copyright 2017-2017 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 { 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/**\n * @deprecated use named import\n */\nexport default I18n;\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 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 */\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/**\n * @deprecated use per-function imports\n */\nvar JS = /** @class */ (function () {\n function JS() {\n }\n JS.isEmpty = isEmpty;\n JS.sortByField = sortByField;\n JS.objectLessAttributes = objectLessAttributes;\n JS.filenameToContentType = filenameToContentType;\n JS.isTextFile = isTextFile;\n JS.generateRandomString = generateRandomString;\n JS.makeQuerablePromise = makeQuerablePromise;\n JS.isWebWorker = isWebWorker;\n JS.browserOrNode = browserOrNode;\n JS.transferKeyToLowerCase = transferKeyToLowerCase;\n JS.transferKeyToUpperCase = transferKeyToUpperCase;\n JS.isStrictObject = isStrictObject;\n return JS;\n}());\nexport { JS };\n/**\n * @deprecated use per-function imports\n */\nexport default JS;\n//# sourceMappingURL=JS.js.map","/*\n * Copyright 2017-2019 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 */\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//# sourceMappingURL=Constants.js.map","/*\n * Copyright 2017-2019 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 */\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 __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\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 */\nvar 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 = \"[\" + type + \"] \" + this._ts() + \" \" + this.name;\n var message = '';\n if (msg.length === 1 && typeof msg[0] === 'string') {\n message = prefix + \" - \" + msg[0];\n log(message);\n }\n else if (msg.length === 1) {\n message = prefix + \" \" + 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 = prefix + \" - \" + msg[0] + \" \" + obj;\n log(prefix + \" - \" + msg[0], obj);\n }\n else {\n message = prefix + \" \" + 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, __spread([LOG_TYPE.INFO], msg));\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, __spread([LOG_TYPE.INFO], msg));\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, __spread([LOG_TYPE.WARN], msg));\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, __spread([LOG_TYPE.ERROR], msg));\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, __spread([LOG_TYPE.DEBUG], msg));\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, __spread([LOG_TYPE.VERBOSE], msg));\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}());\nexport { ConsoleLogger };\n//# sourceMappingURL=ConsoleLogger.js.map","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 parseMobileHubConfig = 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/**\n * @deprecated use per-function export\n */\nvar Parser = /** @class */ (function () {\n function Parser() {\n }\n Parser.parseMobilehubConfig = parseMobileHubConfig;\n return Parser;\n}());\nexport { Parser };\n/**\n * @deprecated use per-function export\n */\nexport default Parser;\n//# sourceMappingURL=Parser.js.map","// generated by genversion\nexport var version = '4.7.14';\n//# sourceMappingURL=version.js.map","/*\n * Copyright 2017-2017 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 { version } from './version';\nvar BASE_USER_AGENT = \"aws-amplify/\" + version;\nexport var Platform = {\n userAgent: BASE_USER_AGENT + \" js\",\n product: '',\n navigator: null,\n isReactNative: false,\n};\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\nexport var getAmplifyUserAgent = function (content) {\n return \"\" + Platform.userAgent + (content ? content : '');\n};\n/**\n * @deprecated use named import\n */\nexport default Platform;\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 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 */\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/**\n * @deprecated use named import\n */\nexport default StorageHelper;\n//# sourceMappingURL=index.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};\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//# sourceMappingURL=Reachability.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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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 (_) 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 __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\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 };\nvar 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 _a, _b, err_1, retryIn_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n attempt++;\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with this vars: \" + JSON.stringify(args));\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 7]);\n _a = {};\n _b = resolve;\n return [4 /*yield*/, functionToRetry.apply(void 0, __spread(args))];\n case 2: return [2 /*return*/, (_a.value = _b.apply(void 0, [_c.sent()]), _a)];\n case 3:\n err_1 = _c.sent();\n lastError = err_1;\n logger.debug(\"error on \" + functionToRetry.name, err_1);\n if (isNonRetryableError(err_1)) {\n logger.debug(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(functionToRetry.name + \" retrying in \" + 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 _c.sent();\n _c.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//# sourceMappingURL=Retry.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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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 (_) 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/**\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: true,\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: true,\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: true,\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: true,\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: true,\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: true,\n configurable: true\n });\n BackgroundProcessManager.prototype.closedFailure = function (description) {\n if (!this.isOpen) {\n return Promise.reject(new BackgroundManagerNotOpenError([\n \"The manager is \" + this.state + \".\",\n \"You tried to add \\\"\" + description + \"\\\".\",\n \"Pending jobs: [\\n\" + 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: \" + 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: \" + 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//# sourceMappingURL=BackgroundProcessManager.js.map","/*\n * Copyright 2017-2019 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 { API } from './API';\nexport { API, APIClass } from './API';\nexport { graphqlOperation, GraphQLAuthError, GRAPHQL_AUTH_MODE, } from '@aws-amplify/api-graphql';\n/*\n * @deprecated use named import\n */\nexport default API;\n//# sourceMappingURL=index.js.map","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 (_) 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 __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\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","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 (_) 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 { 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, } from '../types';\nimport { exhaustiveCheck, 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 exhaustiveCheck(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;\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 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 _h = (modelConfig || {}).properties, _j = (_h === void 0 ? {} : _h).subscriptions, _k = (_j === void 0 ? {} : _j).level, level = _k === void 0 ? 'on' : _k;\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) {\n var selectionSet = generateSelectionSet(namespace, modelDefinition);\n var typeName = modelDefinition.name, pluralTypeName = modelDefinition.pluralName;\n var opName = \"on\" + transformerMutationType + typeName;\n var docArgs = '';\n var opArgs = '';\n if (isOwnerAuthorization) {\n docArgs = \"($\" + ownerField + \": String!)\";\n opArgs = \"(\" + ownerField + \": $\" + ownerField + \")\";\n }\n return [\n transformerMutationType,\n opName,\n \"subscription operation\" + docArgs + \"{\\n\\t\\t\\t\" + opName + opArgs + \"{\\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 exhaustiveCheck(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 exhaustiveCheck(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 var keyFields = extractPrimaryKeyFieldNames(modelDefinition);\n predicate.predicates.forEach(function (p) {\n var _a;\n if (isPredicateObj(p)) {\n var field = p.field, operator = p.operator, operand = p.operand;\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 if (keyFields.includes(field)) {\n return;\n }\n result[field] = (_a = {}, _a[operator] = operand, _a);\n }\n else {\n result[p.type] = predicateToGraphQLCondition(p, modelDefinition);\n }\n });\n return result;\n}\nexport function predicateToGraphQLFilter(predicatesGroup) {\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 appendToFilter = function (value) {\n return isList ? result[type].push(value) : (result[type] = value);\n };\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 var gqlField = (_a = {},\n _a[field] = (_b = {}, _b[operator] = operand, _b),\n _a);\n appendToFilter(gqlField);\n return;\n }\n appendToFilter(predicateToGraphQLFilter(predicate));\n });\n return result;\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","// 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","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 ModelSortPredicateCreator.sortPredicateGroupsMap\n .get(receiver)\n .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 return ModelSortPredicateCreator.sortPredicateGroupsMap.get(predicate);\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","/*!\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//# sourceMappingURL=Mutex.js.map","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","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 (_) 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 __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\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};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport * as idb from 'idb';\nimport { ModelPredicateCreator, ModelSortPredicateCreator, } from '../../predicates';\nimport { isPredicateObj, OpType, QueryOne, } from '../../types';\nimport { exhaustiveCheck, getIndex, getIndexFromAssociation, isModelConstructor, isPrivateMode, traverseModel, validatePredicate, sortCompareFunction, keysEqual, getStorename, getIndexKeys, extractPrimaryKeyValues, isSafariCompatabilityMode, } from '../../util';\nvar logger = new Logger('DataStore');\nvar DB_NAME = 'amplify-datastore';\nvar IndexedDBAdapter = /** @class */ (function () {\n function IndexedDBAdapter() {\n var _this = this;\n this.dbName = DB_NAME;\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 }\n IndexedDBAdapter.prototype.getStorenameForModel = function (modelConstructor) {\n var namespace = this.namespaceResolver(modelConstructor);\n var modelName = modelConstructor.name;\n return getStorename(namespace, modelName);\n };\n // Retrieves primary key values from a model\n IndexedDBAdapter.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 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.setUp = function (theSchema, namespaceResolver, modelInstanceCreator, getModelConstructorByModelName, sessionId) {\n return __awaiter(this, void 0, void 0, function () {\n var VERSION, _a, error_1;\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 return [4 /*yield*/, this.setSafariCompatabilityMode()];\n case 2:\n _b.sent();\n if (!!this.initPromise) return [3 /*break*/, 3];\n this.initPromise = new Promise(function (res, rej) {\n _this.resolve = res;\n _this.reject = rej;\n });\n return [3 /*break*/, 5];\n case 3: return [4 /*yield*/, this.initPromise];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5:\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 = 6;\n case 6:\n _b.trys.push([6, 9, , 10]);\n if (!!this.db) return [3 /*break*/, 8];\n VERSION = 3;\n _a = this;\n return [4 /*yield*/, idb.openDB(this.dbName, 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, newStore, cursor, count, e_1_1, error_2;\n var e_1, _d;\n var _this = this;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (oldVersion === 0) {\n Object.keys(theSchema.namespaces).forEach(function (namespaceName) {\n var namespace = theSchema.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 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(theSchema.namespaces).forEach(function (namespaceName) {\n var namespace = theSchema.namespaces[namespaceName];\n var objectStoreNames = new Set(txn.objectStoreNames);\n Object.keys(namespace.models)\n .map(function (modelName) {\n return [\n modelName,\n getStorename(namespaceName, modelName),\n ];\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_2 = _e.sent();\n logger.error('Error migrating IndexedDB data', error_2);\n txn.abort();\n throw error_2;\n case 15: return [2 /*return*/];\n case 16: return [2 /*return*/];\n }\n });\n }); },\n })];\n case 7:\n _a.db = _b.sent();\n this.resolve();\n _b.label = 8;\n case 8: return [3 /*break*/, 10];\n case 9:\n error_1 = _b.sent();\n this.reject(error_1);\n return [3 /*break*/, 10];\n case 10: return [2 /*return*/];\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.save = function (model, condition) {\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var modelConstructor, storeName, namespaceName, connectedModels, set, connectionStoreNames, tx, store, keyValues, fromDB, predicates, predicateObjs, type, isValid, msg, result, connectionStoreNames_1, connectionStoreNames_1_1, resItem, storeName_1, item, instance, keys, store_1, itemKeyValues, fromDB_1, opType, modelKeyValues, key, e_2_1;\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 modelConstructor = Object.getPrototypeOf(model)\n .constructor;\n storeName = this.getStorenameForModel(modelConstructor);\n namespaceName = this.namespaceResolver(modelConstructor);\n connectedModels = traverseModel(modelConstructor.name, model, this.schema.namespaces[namespaceName], this.modelInstanceCreator, this.getModelConstructorByModelName);\n set = new Set();\n 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 tx = this.db.transaction(__spread([storeName], Array.from(set.values())), 'readwrite');\n store = tx.objectStore(storeName);\n keyValues = this.getIndexKeyValuesFromModel(model);\n return [4 /*yield*/, this._get(store, keyValues)];\n case 2:\n fromDB = _b.sent();\n if (condition && fromDB) {\n predicates = ModelPredicateCreator.getPredicates(condition);\n predicateObjs = predicates.predicates, type = predicates.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 }\n result = [];\n _b.label = 3;\n case 3:\n _b.trys.push([3, 11, 12, 17]);\n connectionStoreNames_1 = __asyncValues(connectionStoreNames);\n _b.label = 4;\n case 4: return [4 /*yield*/, connectionStoreNames_1.next()];\n case 5:\n if (!(connectionStoreNames_1_1 = _b.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) {\n var value = item[key];\n return value;\n });\n return [4 /*yield*/, this._get(store_1, itemKeyValues)];\n case 6:\n fromDB_1 = _b.sent();\n opType = fromDB_1 === undefined ? OpType.INSERT : OpType.UPDATE;\n modelKeyValues = this.getIndexKeyValuesFromModel(model);\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 = _b.sent();\n return [4 /*yield*/, store_1.put(item, key)];\n case 8:\n _b.sent();\n result.push([instance, opType]);\n _b.label = 9;\n case 9: return [3 /*break*/, 4];\n case 10: return [3 /*break*/, 17];\n case 11:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 17];\n case 12:\n _b.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 _b.sent();\n _b.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 _b.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.load = function (namespaceName, srcModelName, records) {\n var records_1, records_1_1, records_2, records_2_1;\n var e_3, _a, e_4, _b, e_5, _c;\n return __awaiter(this, void 0, void 0, function () {\n var namespace, relations, connectionStoreNames, modelConstructor, tx, relations_1, relations_1_1, relation, fieldName, modelName, targetName, targetNames, storeName, store, modelConstructor_1, _d, recordItem, getByFields, allPresent, keys, connectionRecord, getByfield, key, connectionRecord, e_4_1, recordItem, allPresent, keys, connectionRecord, key, connectionRecord, e_5_1, e_3_1;\n var _this = this;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\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 tx = this.db.transaction(__spread(connectionStoreNames), 'readonly');\n _e.label = 1;\n case 1:\n _e.trys.push([1, 38, 39, 44]);\n relations_1 = __asyncValues(relations);\n _e.label = 2;\n case 2: return [4 /*yield*/, relations_1.next()];\n case 3:\n if (!(relations_1_1 = _e.sent(), !relations_1_1.done)) return [3 /*break*/, 37];\n relation = relations_1_1.value;\n fieldName = relation.fieldName, modelName = relation.modelName, targetName = relation.targetName, targetNames = relation.targetNames;\n storeName = getStorename(namespaceName, modelName);\n store = tx.objectStore(storeName);\n modelConstructor_1 = this.getModelConstructorByModelName(namespaceName, modelName);\n _d = relation.relationType;\n switch (_d) {\n case 'HAS_ONE': return [3 /*break*/, 4];\n case 'BELONGS_TO': return [3 /*break*/, 19];\n case 'HAS_MANY': return [3 /*break*/, 34];\n }\n return [3 /*break*/, 35];\n case 4:\n _e.trys.push([4, 12, 13, 18]);\n records_1 = __asyncValues(records);\n _e.label = 5;\n case 5: return [4 /*yield*/, records_1.next()];\n case 6:\n if (!(records_1_1 = _e.sent(), !records_1_1.done)) return [3 /*break*/, 11];\n recordItem = records_1_1.value;\n if (!(targetNames === null || targetNames === void 0 ? void 0 : targetNames.length)) return [3 /*break*/, 8];\n getByFields = [];\n allPresent = void 0;\n // iterate through all targetnames to make sure they are all present in the recordItem\n allPresent = targetNames.every(function (targetName) {\n return recordItem[targetName] != null;\n });\n if (!allPresent) {\n return [3 /*break*/, 11];\n }\n getByFields = targetNames;\n keys = getByFields.map(function (getByField) { return recordItem[getByField]; });\n return [4 /*yield*/, this._get(store, keys)];\n case 7:\n connectionRecord = _e.sent();\n recordItem[fieldName] =\n connectionRecord &&\n this.modelInstanceCreator(modelConstructor_1, connectionRecord);\n return [3 /*break*/, 10];\n case 8:\n getByfield = recordItem[targetName]\n ? targetName\n : fieldName;\n // We break here, because the recordItem does not have 'team', the `getByField`\n // extract the keys on the related model.\n if (!recordItem[getByfield])\n return [3 /*break*/, 11];\n key = [recordItem[getByfield]];\n return [4 /*yield*/, this._get(store, key)];\n case 9:\n connectionRecord = _e.sent();\n recordItem[fieldName] =\n connectionRecord &&\n this.modelInstanceCreator(modelConstructor_1, connectionRecord);\n _e.label = 10;\n case 10: return [3 /*break*/, 5];\n case 11: return [3 /*break*/, 18];\n case 12:\n e_4_1 = _e.sent();\n e_4 = { error: e_4_1 };\n return [3 /*break*/, 18];\n case 13:\n _e.trys.push([13, , 16, 17]);\n if (!(records_1_1 && !records_1_1.done && (_b = records_1.return))) return [3 /*break*/, 15];\n return [4 /*yield*/, _b.call(records_1)];\n case 14:\n _e.sent();\n _e.label = 15;\n case 15: return [3 /*break*/, 17];\n case 16:\n if (e_4) throw e_4.error;\n return [7 /*endfinally*/];\n case 17: return [7 /*endfinally*/];\n case 18: return [3 /*break*/, 36];\n case 19:\n _e.trys.push([19, 27, 28, 33]);\n records_2 = __asyncValues(records);\n _e.label = 20;\n case 20: return [4 /*yield*/, records_2.next()];\n case 21:\n if (!(records_2_1 = _e.sent(), !records_2_1.done)) return [3 /*break*/, 26];\n recordItem = records_2_1.value;\n if (!(targetNames === null || targetNames === void 0 ? void 0 : targetNames.length)) return [3 /*break*/, 23];\n allPresent = void 0;\n // iterate through all targetnames to make sure they are all present in the recordItem\n allPresent = targetNames.every(function (targetName) {\n return recordItem[targetName] != null;\n });\n // If not present, there is not yet a connected record\n if (!allPresent) {\n return [3 /*break*/, 26];\n }\n keys = targetNames\n .filter(function (targetName) { var _a; return (_a = recordItem[targetName]) !== null && _a !== void 0 ? _a : false; })\n .map(function (targetName) { return recordItem[targetName]; });\n return [4 /*yield*/, this._get(store, keys)];\n case 22:\n connectionRecord = _e.sent();\n recordItem[fieldName] =\n connectionRecord &&\n this.modelInstanceCreator(modelConstructor_1, connectionRecord);\n targetNames === null || targetNames === void 0 ? void 0 : targetNames.map(function (targetName) {\n delete recordItem[targetName];\n });\n return [3 /*break*/, 25];\n case 23:\n if (!recordItem[targetName]) return [3 /*break*/, 25];\n key = [recordItem[targetName]];\n return [4 /*yield*/, this._get(store, key)];\n case 24:\n connectionRecord = _e.sent();\n recordItem[fieldName] =\n connectionRecord &&\n this.modelInstanceCreator(modelConstructor_1, connectionRecord);\n delete recordItem[targetName];\n _e.label = 25;\n case 25: return [3 /*break*/, 20];\n case 26: return [3 /*break*/, 33];\n case 27:\n e_5_1 = _e.sent();\n e_5 = { error: e_5_1 };\n return [3 /*break*/, 33];\n case 28:\n _e.trys.push([28, , 31, 32]);\n if (!(records_2_1 && !records_2_1.done && (_c = records_2.return))) return [3 /*break*/, 30];\n return [4 /*yield*/, _c.call(records_2)];\n case 29:\n _e.sent();\n _e.label = 30;\n case 30: return [3 /*break*/, 32];\n case 31:\n if (e_5) throw e_5.error;\n return [7 /*endfinally*/];\n case 32: return [7 /*endfinally*/];\n case 33: return [3 /*break*/, 36];\n case 34: \n // TODO: Lazy loading\n return [3 /*break*/, 36];\n case 35:\n exhaustiveCheck(relation.relationType);\n return [3 /*break*/, 36];\n case 36: return [3 /*break*/, 2];\n case 37: return [3 /*break*/, 44];\n case 38:\n e_3_1 = _e.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 44];\n case 39:\n _e.trys.push([39, , 42, 43]);\n if (!(relations_1_1 && !relations_1_1.done && (_a = relations_1.return))) return [3 /*break*/, 41];\n return [4 /*yield*/, _a.call(relations_1)];\n case 40:\n _e.sent();\n _e.label = 41;\n case 41: return [3 /*break*/, 43];\n case 42:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 43: return [7 /*endfinally*/];\n case 44: return [2 /*return*/, records.map(function (record) {\n return _this.modelInstanceCreator(modelConstructor, record);\n })];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.query = function (modelConstructor, predicate, pagination) {\n return __awaiter(this, void 0, void 0, function () {\n var storeName, namespaceName, predicates, keyPath, queryByKey, hasSort, hasPagination, records;\n var _this = this;\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 namespaceName = this.namespaceResolver(modelConstructor);\n predicates = predicate && ModelPredicateCreator.getPredicates(predicate);\n keyPath = getIndexKeys(this.schema.namespaces[namespaceName], modelConstructor.name);\n queryByKey = predicates && this.keyValueFromPredicate(predicates, keyPath);\n hasSort = pagination && pagination.sort;\n hasPagination = pagination && pagination.limit;\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 = _a.sent();\n return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, records)];\n case 3: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.getByKey = function (storeName, keyValue) {\n return __awaiter(this, void 0, void 0, function () {\n var record;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._get(storeName, keyValue)];\n case 1:\n record = _a.sent();\n return [2 /*return*/, record];\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 IndexedDBAdapter.prototype.keyValueFromPredicate = function (predicates, keyPath) {\n var e_6, _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) { return isPredicateObj(p) && p.field === key && p.operator === 'eq'; });\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_6_1) { e_6 = { error: e_6_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_6) throw e_6.error; }\n }\n return keyValues.length === keyPath.length ? keyValues : undefined;\n };\n IndexedDBAdapter.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 IndexedDBAdapter.prototype.inMemoryPagination = function (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 _a = pagination.page, page = _a === void 0 ? 0 : _a, _b = pagination.limit, limit = _b === void 0 ? 0 : _b;\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 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 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.delete = function (modelOrModelConstructor, condition) {\n return __awaiter(this, void 0, void 0, function () {\n var deleteQueue, modelConstructor, nameSpace, storeName, models, relations, deletedModels, deletedModels, model, modelConstructor, namespaceName, storeName, tx, store, keyValues, fromDB, msg, predicates, predicateObjs, type, isValid, msg, relations, relations, deletedModels;\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 deleteQueue = [];\n if (!isModelConstructor(modelOrModelConstructor)) return [3 /*break*/, 9];\n modelConstructor = modelOrModelConstructor;\n nameSpace = this.namespaceResolver(modelConstructor);\n storeName = this.getStorenameForModel(modelConstructor);\n return [4 /*yield*/, this.query(modelConstructor, condition)];\n case 2:\n models = _a.sent();\n relations = this.schema.namespaces[nameSpace].relationships[modelConstructor.name]\n .relationTypes;\n if (!(condition !== undefined)) return [3 /*break*/, 5];\n return [4 /*yield*/, this.deleteTraverse(relations, models, modelConstructor.name, nameSpace, deleteQueue)];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.deleteItem(deleteQueue)];\n case 4:\n _a.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(relations, models, modelConstructor.name, nameSpace, deleteQueue)];\n case 6:\n _a.sent();\n // Delete all\n return [4 /*yield*/, this.db\n .transaction([storeName], 'readwrite')\n .objectStore(storeName)\n .clear()];\n case 7:\n // Delete all\n _a.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*/, 17];\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*/, 13];\n tx = this.db.transaction([storeName], 'readwrite');\n store = tx.objectStore(storeName);\n keyValues = this.getIndexKeyValuesFromModel(model);\n return [4 /*yield*/, this._get(store, keyValues)];\n case 10:\n fromDB = _a.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 predicateObjs = predicates.predicates, type = predicates.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*/, tx.done];\n case 11:\n _a.sent();\n relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;\n return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];\n case 12:\n _a.sent();\n return [3 /*break*/, 15];\n case 13:\n relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;\n return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];\n case 14:\n _a.sent();\n _a.label = 15;\n case 15: return [4 /*yield*/, this.deleteItem(deleteQueue)];\n case 16:\n _a.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 17: return [2 /*return*/];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.deleteItem = function (deleteQueue) {\n var deleteQueue_1, deleteQueue_1_1;\n var e_7, _a, e_8, _b;\n return __awaiter(this, void 0, void 0, function () {\n var connectionStoreNames, tx, deleteItem, storeName, items, store, items_1, items_1_1, item, key, keyValues, itemKey, e_8_1, e_7_1;\n return __generator(this, function (_c) {\n switch (_c.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 _c.label = 1;\n case 1:\n _c.trys.push([1, 22, 23, 28]);\n deleteQueue_1 = __asyncValues(deleteQueue);\n _c.label = 2;\n case 2: return [4 /*yield*/, deleteQueue_1.next()];\n case 3:\n if (!(deleteQueue_1_1 = _c.sent(), !deleteQueue_1_1.done)) return [3 /*break*/, 21];\n deleteItem = deleteQueue_1_1.value;\n storeName = deleteItem.storeName, items = deleteItem.items;\n store = tx.objectStore(storeName);\n _c.label = 4;\n case 4:\n _c.trys.push([4, 14, 15, 20]);\n items_1 = __asyncValues(items);\n _c.label = 5;\n case 5: return [4 /*yield*/, items_1.next()];\n case 6:\n if (!(items_1_1 = _c.sent(), !items_1_1.done)) return [3 /*break*/, 13];\n item = items_1_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 = _c.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 = _c.sent();\n _c.label = 10;\n case 10:\n if (!(key !== undefined)) return [3 /*break*/, 12];\n return [4 /*yield*/, store.delete(key)];\n case 11:\n _c.sent();\n _c.label = 12;\n case 12: return [3 /*break*/, 5];\n case 13: return [3 /*break*/, 20];\n case 14:\n e_8_1 = _c.sent();\n e_8 = { error: e_8_1 };\n return [3 /*break*/, 20];\n case 15:\n _c.trys.push([15, , 18, 19]);\n if (!(items_1_1 && !items_1_1.done && (_b = items_1.return))) return [3 /*break*/, 17];\n return [4 /*yield*/, _b.call(items_1)];\n case 16:\n _c.sent();\n _c.label = 17;\n case 17: return [3 /*break*/, 19];\n case 18:\n if (e_8) throw e_8.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_7_1 = _c.sent();\n e_7 = { error: e_7_1 };\n return [3 /*break*/, 28];\n case 23:\n _c.trys.push([23, , 26, 27]);\n if (!(deleteQueue_1_1 && !deleteQueue_1_1.done && (_a = deleteQueue_1.return))) return [3 /*break*/, 25];\n return [4 /*yield*/, _a.call(deleteQueue_1)];\n case 24:\n _c.sent();\n _c.label = 25;\n case 25: return [3 /*break*/, 27];\n case 26:\n if (e_7) throw e_7.error;\n return [7 /*endfinally*/];\n case 27: return [7 /*endfinally*/];\n case 28: return [2 /*return*/];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.deleteTraverse = function (relations, models, srcModel, nameSpace, deleteQueue) {\n var relations_2, relations_2_1, models_1, models_1_1, models_2, models_2_1;\n var e_9, _a, e_10, _b, e_11, _c;\n return __awaiter(this, void 0, void 0, function () {\n var rel, relationType, modelName, targetName, targetNames, associatedWith, storeName, _d, model, hasOneIndex, values, recordToDelete, index, values, value, recordToDelete, e_10_1, model, index, keyValues, childrenArray, e_11_1, e_9_1;\n var _this = this;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _e.trys.push([0, 38, 39, 44]);\n relations_2 = __asyncValues(relations);\n _e.label = 1;\n case 1: return [4 /*yield*/, relations_2.next()];\n case 2:\n if (!(relations_2_1 = _e.sent(), !relations_2_1.done)) return [3 /*break*/, 37];\n rel = relations_2_1.value;\n relationType = rel.relationType, modelName = rel.modelName, targetName = rel.targetName, targetNames = rel.targetNames, associatedWith = rel.associatedWith;\n storeName = getStorename(nameSpace, modelName);\n _d = relationType;\n switch (_d) {\n case 'HAS_ONE': return [3 /*break*/, 3];\n case 'HAS_MANY': return [3 /*break*/, 20];\n case 'BELONGS_TO': return [3 /*break*/, 34];\n }\n return [3 /*break*/, 35];\n case 3:\n _e.trys.push([3, 13, 14, 19]);\n models_1 = __asyncValues(models);\n _e.label = 4;\n case 4: return [4 /*yield*/, models_1.next()];\n case 5:\n if (!(models_1_1 = _e.sent(), !models_1_1.done)) return [3 /*break*/, 12];\n model = models_1_1.value;\n hasOneIndex = 'byPk';\n if (!(targetNames === null || targetNames === void 0 ? void 0 : targetNames.length)) return [3 /*break*/, 8];\n values = targetNames\n .filter(function (targetName) { var _a; return (_a = model[targetName]) !== null && _a !== void 0 ? _a : false; })\n .map(function (targetName) { return model[targetName]; });\n if (values.length === 0)\n return [3 /*break*/, 12];\n return [4 /*yield*/, this.db\n .transaction(storeName, 'readwrite')\n .objectStore(storeName)\n .index(hasOneIndex)\n .get(this.canonicalKeyPath(values))];\n case 6:\n recordToDelete = (_e.sent());\n return [4 /*yield*/, this.deleteTraverse(this.schema.namespaces[nameSpace].relationships[modelName]\n .relationTypes, recordToDelete ? [recordToDelete] : [], modelName, nameSpace, deleteQueue)];\n case 7:\n _e.sent();\n return [3 /*break*/, 12];\n case 8:\n index = void 0;\n values = void 0;\n if (targetName && targetName in model) {\n index = hasOneIndex;\n value = model[targetName];\n if (!value)\n return [3 /*break*/, 12];\n values = [value];\n }\n else {\n // backwards compatability for older versions of codegen that did not emit targetName for HAS_ONE relations\n // TODO: can we deprecate this? it's been ~2 years since codegen started including targetName for HAS_ONE\n // If we deprecate, we'll need to re-gen the MIPR in __tests__/schema.ts > newSchema\n // otherwise some unit tests will fail\n index = getIndex(this.schema.namespaces[nameSpace].relationships[modelName]\n .relationTypes, srcModel);\n values = this.getIndexKeyValuesFromModel(model);\n }\n if (!values || !index)\n return [3 /*break*/, 12];\n return [4 /*yield*/, this.db\n .transaction(storeName, 'readwrite')\n .objectStore(storeName)\n .index(index)\n .get(this.canonicalKeyPath(values))];\n case 9:\n recordToDelete = (_e.sent());\n return [4 /*yield*/, this.deleteTraverse(this.schema.namespaces[nameSpace].relationships[modelName]\n .relationTypes, recordToDelete ? [recordToDelete] : [], modelName, nameSpace, deleteQueue)];\n case 10:\n _e.sent();\n _e.label = 11;\n case 11: return [3 /*break*/, 4];\n case 12: return [3 /*break*/, 19];\n case 13:\n e_10_1 = _e.sent();\n e_10 = { error: e_10_1 };\n return [3 /*break*/, 19];\n case 14:\n _e.trys.push([14, , 17, 18]);\n if (!(models_1_1 && !models_1_1.done && (_b = models_1.return))) return [3 /*break*/, 16];\n return [4 /*yield*/, _b.call(models_1)];\n case 15:\n _e.sent();\n _e.label = 16;\n case 16: return [3 /*break*/, 18];\n case 17:\n if (e_10) throw e_10.error;\n return [7 /*endfinally*/];\n case 18: return [7 /*endfinally*/];\n case 19: return [3 /*break*/, 36];\n case 20:\n _e.trys.push([20, 27, 28, 33]);\n models_2 = __asyncValues(models);\n _e.label = 21;\n case 21: return [4 /*yield*/, models_2.next()];\n case 22:\n if (!(models_2_1 = _e.sent(), !models_2_1.done)) return [3 /*break*/, 26];\n model = models_2_1.value;\n index = \n // explicit bi-directional @hasMany and @manyToMany\n getIndex(this.schema.namespaces[nameSpace].relationships[modelName]\n .relationTypes, srcModel) ||\n // uni and/or implicit @hasMany\n getIndexFromAssociation(this.schema.namespaces[nameSpace].relationships[modelName]\n .indexes, associatedWith);\n keyValues = this.getIndexKeyValuesFromModel(model);\n return [4 /*yield*/, this.db\n .transaction(storeName, 'readwrite')\n .objectStore(storeName)\n .index(index)\n .getAll(this.canonicalKeyPath(keyValues))];\n case 23:\n childrenArray = _e.sent();\n return [4 /*yield*/, this.deleteTraverse(this.schema.namespaces[nameSpace].relationships[modelName]\n .relationTypes, childrenArray, modelName, nameSpace, deleteQueue)];\n case 24:\n _e.sent();\n _e.label = 25;\n case 25: return [3 /*break*/, 21];\n case 26: return [3 /*break*/, 33];\n case 27:\n e_11_1 = _e.sent();\n e_11 = { error: e_11_1 };\n return [3 /*break*/, 33];\n case 28:\n _e.trys.push([28, , 31, 32]);\n if (!(models_2_1 && !models_2_1.done && (_c = models_2.return))) return [3 /*break*/, 30];\n return [4 /*yield*/, _c.call(models_2)];\n case 29:\n _e.sent();\n _e.label = 30;\n case 30: return [3 /*break*/, 32];\n case 31:\n if (e_11) throw e_11.error;\n return [7 /*endfinally*/];\n case 32: return [7 /*endfinally*/];\n case 33: return [3 /*break*/, 36];\n case 34: \n // Intentionally blank\n return [3 /*break*/, 36];\n case 35:\n exhaustiveCheck(relationType);\n return [3 /*break*/, 36];\n case 36: return [3 /*break*/, 1];\n case 37: return [3 /*break*/, 44];\n case 38:\n e_9_1 = _e.sent();\n e_9 = { error: e_9_1 };\n return [3 /*break*/, 44];\n case 39:\n _e.trys.push([39, , 42, 43]);\n if (!(relations_2_1 && !relations_2_1.done && (_a = relations_2.return))) return [3 /*break*/, 41];\n return [4 /*yield*/, _a.call(relations_2)];\n case 40:\n _e.sent();\n _e.label = 41;\n case 41: return [3 /*break*/, 43];\n case 42:\n if (e_9) throw e_9.error;\n return [7 /*endfinally*/];\n case 43: return [7 /*endfinally*/];\n case 44:\n deleteQueue.push({\n storeName: getStorename(nameSpace, srcModel),\n items: models.map(function (record) {\n return _this.modelInstanceCreator(_this.getModelConstructorByModelName(nameSpace, srcModel), record);\n }),\n });\n return [2 /*return*/];\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.batchSave = function (modelConstructor, items) {\n return __awaiter(this, void 0, void 0, function () {\n var result, storeName, txn, store, _loop_2, this_1, items_2, items_2_1, item, e_12_1;\n var e_12, _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 return [4 /*yield*/, this.checkPrivate()];\n case 1:\n _b.sent();\n result = [];\n storeName = this.getStorenameForModel(modelConstructor);\n txn = this.db.transaction(storeName, 'readwrite');\n store = txn.store;\n _loop_2 = function (item) {\n var namespaceName, modelName, model, connectedModels, keyValues, _deleted, index, key, instance;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n namespaceName = this_1.namespaceResolver(modelConstructor);\n modelName = modelConstructor.name;\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_2 = __values(items), items_2_1 = items_2.next();\n _b.label = 3;\n case 3:\n if (!!items_2_1.done) return [3 /*break*/, 6];\n item = items_2_1.value;\n return [5 /*yield**/, _loop_2(item)];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5:\n items_2_1 = items_2.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_12_1 = _b.sent();\n e_12 = { error: e_12_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (items_2_1 && !items_2_1.done && (_a = items_2.return)) _a.call(items_2);\n }\n finally { if (e_12) throw e_12.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.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 return IndexedDBAdapter;\n}());\nexport default new IndexedDBAdapter();\n//# sourceMappingURL=IndexedDBAdapter.js.map","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 (_) 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 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","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 (_) 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};\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 return __awaiter(this, void 0, void 0, function () {\n var idxName, ulid, itemKey;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n idxName = indexNameFromKeys(keys);\n ulid = this.getCollectionIndex(storeName).get(idxName) ||\n this.getMonotonicFactory(storeName)();\n itemKey = this.getKeyForItem(storeName, keyValuesPath, ulid);\n // Set key in collection index\n this.getCollectionIndex(storeName).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 _a.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","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 (_) 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 __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\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 { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport AsyncStorageDatabase from './AsyncStorageDatabase';\nimport { ModelPredicateCreator, ModelSortPredicateCreator, } from '../../predicates';\nimport { isPredicateObj, OpType, QueryOne, } from '../../types';\nimport { DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR, exhaustiveCheck, getIndex, getIndexFromAssociation, isModelConstructor, traverseModel, validatePredicate, sortCompareFunction, keysEqual, getStorename, getIndexKeys, extractPrimaryKeyValues, IDENTIFIER_KEY_SEPARATOR, } from '../../util';\nvar logger = new Logger('DataStore');\nvar AsyncStorageAdapter = /** @class */ (function () {\n function AsyncStorageAdapter() {\n }\n AsyncStorageAdapter.prototype.getStorenameForModel = function (modelConstructor) {\n var namespace = this.namespaceResolver(modelConstructor);\n var modelName = modelConstructor.name;\n return getStorename(namespace, modelName);\n };\n // Retrieves primary key values from a model\n AsyncStorageAdapter.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 // Retrieves concatenated primary key values from a model\n AsyncStorageAdapter.prototype.getIndexKeyValuesPath = function (model) {\n return this.getIndexKeyValuesFromModel(model).join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n };\n AsyncStorageAdapter.prototype.setUp = function (theSchema, namespaceResolver, modelInstanceCreator, getModelConstructorByModelName) {\n return __awaiter(this, void 0, void 0, function () {\n var error_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initPromise) return [3 /*break*/, 1];\n this.initPromise = new Promise(function (res, rej) {\n _this.resolve = res;\n _this.reject = rej;\n });\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.initPromise];\n case 2:\n _a.sent();\n return [2 /*return*/];\n case 3:\n this.schema = theSchema;\n this.namespaceResolver = namespaceResolver;\n this.modelInstanceCreator = modelInstanceCreator;\n this.getModelConstructorByModelName = getModelConstructorByModelName;\n _a.label = 4;\n case 4:\n _a.trys.push([4, 7, , 8]);\n if (!!this.db) return [3 /*break*/, 6];\n this.db = new AsyncStorageDatabase();\n return [4 /*yield*/, this.db.init()];\n case 5:\n _a.sent();\n this.resolve();\n _a.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n error_1 = _a.sent();\n this.reject(error_1);\n return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.save = function (model, condition) {\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var modelConstructor, storeName, namespaceName, connectedModels, set, connectionStoreNames, keyValuesPath, fromDB, predicates, predicateObjs, type, isValid, msg, result, connectionStoreNames_1, connectionStoreNames_1_1, resItem, storeName_1, item, instance, keys, itemKeyValues, itemKeyValuesPath, fromDB_1, opType, modelKeyValues, e_1_1;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n modelConstructor = Object.getPrototypeOf(model)\n .constructor;\n storeName = this.getStorenameForModel(modelConstructor);\n namespaceName = this.namespaceResolver(modelConstructor);\n connectedModels = traverseModel(modelConstructor.name, model, this.schema.namespaces[namespaceName], this.modelInstanceCreator, this.getModelConstructorByModelName);\n set = new Set();\n 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 keyValuesPath = this.getIndexKeyValuesPath(model);\n return [4 /*yield*/, this.db.get(keyValuesPath, storeName)];\n case 1:\n fromDB = _b.sent();\n if (condition && fromDB) {\n predicates = ModelPredicateCreator.getPredicates(condition);\n predicateObjs = predicates.predicates, type = predicates.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 }\n result = [];\n _b.label = 2;\n case 2:\n _b.trys.push([2, 9, 10, 15]);\n connectionStoreNames_1 = __asyncValues(connectionStoreNames);\n _b.label = 3;\n case 3: return [4 /*yield*/, connectionStoreNames_1.next()];\n case 4:\n if (!(connectionStoreNames_1_1 = _b.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 itemKeyValuesPath = itemKeyValues.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n return [4 /*yield*/, this.db.get(itemKeyValuesPath, storeName_1)];\n case 5:\n fromDB_1 = _b.sent();\n opType = fromDB_1 ? OpType.UPDATE : OpType.INSERT;\n modelKeyValues = this.getIndexKeyValuesFromModel(model);\n if (!(keysEqual(itemKeyValues, modelKeyValues) ||\n opType === OpType.INSERT)) return [3 /*break*/, 7];\n return [4 /*yield*/, this.db.save(item, storeName_1, keys, itemKeyValuesPath)];\n case 6:\n _b.sent();\n result.push([instance, opType]);\n _b.label = 7;\n case 7: return [3 /*break*/, 3];\n case 8: return [3 /*break*/, 15];\n case 9:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 15];\n case 10:\n _b.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 _b.sent();\n _b.label = 12;\n case 12: return [3 /*break*/, 14];\n case 13:\n if (e_1) throw e_1.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.load = function (namespaceName, srcModelName, records) {\n var records_1, records_1_1, records_2, records_2_1;\n var e_2, _a, e_3, _b, e_4, _c;\n return __awaiter(this, void 0, void 0, function () {\n var namespace, relations, connectionStoreNames, modelConstructor, relations_1, relations_1_1, relation, fieldName, modelName, targetName, targetNames, relationType, storeName, modelConstructor_1, _d, recordItem, getByFields, allPresent, keys, connectionRecord, getByfield, key, connectionRecord, e_3_1, recordItem, allPresent, keys, connectionRecord, key, connectionRecord, e_4_1, e_2_1;\n var _this = this;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\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 _e.label = 1;\n case 1:\n _e.trys.push([1, 38, 39, 44]);\n relations_1 = __asyncValues(relations);\n _e.label = 2;\n case 2: return [4 /*yield*/, relations_1.next()];\n case 3:\n if (!(relations_1_1 = _e.sent(), !relations_1_1.done)) return [3 /*break*/, 37];\n relation = relations_1_1.value;\n fieldName = relation.fieldName, modelName = relation.modelName, targetName = relation.targetName, targetNames = relation.targetNames, relationType = relation.relationType;\n storeName = getStorename(namespaceName, modelName);\n modelConstructor_1 = this.getModelConstructorByModelName(namespaceName, modelName);\n _d = relationType;\n switch (_d) {\n case 'HAS_ONE': return [3 /*break*/, 4];\n case 'BELONGS_TO': return [3 /*break*/, 19];\n case 'HAS_MANY': return [3 /*break*/, 34];\n }\n return [3 /*break*/, 35];\n case 4:\n _e.trys.push([4, 12, 13, 18]);\n records_1 = __asyncValues(records);\n _e.label = 5;\n case 5: return [4 /*yield*/, records_1.next()];\n case 6:\n if (!(records_1_1 = _e.sent(), !records_1_1.done)) return [3 /*break*/, 11];\n recordItem = records_1_1.value;\n if (!(targetNames === null || targetNames === void 0 ? void 0 : targetNames.length)) return [3 /*break*/, 8];\n getByFields = [];\n allPresent = void 0;\n // iterate through all targetnames to make sure they are all present in the recordItem\n allPresent = targetNames.every(function (targetName) {\n return recordItem[targetName] != null;\n });\n if (!allPresent) {\n return [3 /*break*/, 11];\n }\n getByFields = targetNames;\n keys = getByFields\n .map(function (getByField) { return recordItem[getByField]; })\n .join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n return [4 /*yield*/, this.db.get(keys, storeName)];\n case 7:\n connectionRecord = _e.sent();\n recordItem[fieldName] =\n connectionRecord &&\n this.modelInstanceCreator(modelConstructor_1, connectionRecord);\n return [3 /*break*/, 10];\n case 8:\n getByfield = recordItem[targetName]\n ? targetName\n : fieldName;\n if (!recordItem[getByfield])\n return [3 /*break*/, 11];\n key = recordItem[getByfield];\n return [4 /*yield*/, this.db.get(key, storeName)];\n case 9:\n connectionRecord = _e.sent();\n recordItem[fieldName] =\n connectionRecord &&\n this.modelInstanceCreator(modelConstructor_1, connectionRecord);\n _e.label = 10;\n case 10: return [3 /*break*/, 5];\n case 11: return [3 /*break*/, 18];\n case 12:\n e_3_1 = _e.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 18];\n case 13:\n _e.trys.push([13, , 16, 17]);\n if (!(records_1_1 && !records_1_1.done && (_b = records_1.return))) return [3 /*break*/, 15];\n return [4 /*yield*/, _b.call(records_1)];\n case 14:\n _e.sent();\n _e.label = 15;\n case 15: return [3 /*break*/, 17];\n case 16:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 17: return [7 /*endfinally*/];\n case 18: return [3 /*break*/, 36];\n case 19:\n _e.trys.push([19, 27, 28, 33]);\n records_2 = __asyncValues(records);\n _e.label = 20;\n case 20: return [4 /*yield*/, records_2.next()];\n case 21:\n if (!(records_2_1 = _e.sent(), !records_2_1.done)) return [3 /*break*/, 26];\n recordItem = records_2_1.value;\n if (!(targetNames === null || targetNames === void 0 ? void 0 : targetNames.length)) return [3 /*break*/, 23];\n allPresent = void 0;\n // iterate through all targetnames to make sure they are all present in the recordItem\n allPresent = targetNames.every(function (targetName) {\n return recordItem[targetName] != null;\n });\n // If not present, there is not yet a connected record\n if (!allPresent) {\n return [3 /*break*/, 26];\n }\n keys = targetNames\n .map(function (targetName) { return recordItem[targetName]; })\n .join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n return [4 /*yield*/, this.db.get(keys, storeName)];\n case 22:\n connectionRecord = _e.sent();\n recordItem[fieldName] =\n connectionRecord &&\n this.modelInstanceCreator(modelConstructor_1, connectionRecord);\n targetNames === null || targetNames === void 0 ? void 0 : targetNames.map(function (targetName) {\n delete recordItem[targetName];\n });\n return [3 /*break*/, 25];\n case 23:\n if (!recordItem[targetName]) return [3 /*break*/, 25];\n key = recordItem[targetName];\n return [4 /*yield*/, this.db.get(key, storeName)];\n case 24:\n connectionRecord = _e.sent();\n recordItem[fieldName] =\n connectionRecord &&\n this.modelInstanceCreator(modelConstructor_1, connectionRecord);\n delete recordItem[targetName];\n _e.label = 25;\n case 25: return [3 /*break*/, 20];\n case 26: return [3 /*break*/, 33];\n case 27:\n e_4_1 = _e.sent();\n e_4 = { error: e_4_1 };\n return [3 /*break*/, 33];\n case 28:\n _e.trys.push([28, , 31, 32]);\n if (!(records_2_1 && !records_2_1.done && (_c = records_2.return))) return [3 /*break*/, 30];\n return [4 /*yield*/, _c.call(records_2)];\n case 29:\n _e.sent();\n _e.label = 30;\n case 30: return [3 /*break*/, 32];\n case 31:\n if (e_4) throw e_4.error;\n return [7 /*endfinally*/];\n case 32: return [7 /*endfinally*/];\n case 33: return [3 /*break*/, 36];\n case 34: \n // TODO: Lazy loading\n return [3 /*break*/, 36];\n case 35:\n exhaustiveCheck(relationType);\n return [3 /*break*/, 36];\n case 36: return [3 /*break*/, 2];\n case 37: return [3 /*break*/, 44];\n case 38:\n e_2_1 = _e.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 44];\n case 39:\n _e.trys.push([39, , 42, 43]);\n if (!(relations_1_1 && !relations_1_1.done && (_a = relations_1.return))) return [3 /*break*/, 41];\n return [4 /*yield*/, _a.call(relations_1)];\n case 40:\n _e.sent();\n _e.label = 41;\n case 41: return [3 /*break*/, 43];\n case 42:\n if (e_2) throw e_2.error;\n return [7 /*endfinally*/];\n case 43: return [7 /*endfinally*/];\n case 44: return [2 /*return*/, records.map(function (record) {\n return _this.modelInstanceCreator(modelConstructor, record);\n })];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.query = function (modelConstructor, predicate, pagination) {\n return __awaiter(this, void 0, void 0, function () {\n var storeName, namespaceName, predicates, keys, queryByKey, hasSort, hasPagination, records;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n storeName = this.getStorenameForModel(modelConstructor);\n namespaceName = this.namespaceResolver(modelConstructor);\n predicates = predicate && ModelPredicateCreator.getPredicates(predicate);\n keys = getIndexKeys(this.schema.namespaces[namespaceName], modelConstructor.name);\n queryByKey = predicates && this.keyValueFromPredicate(predicates, keys);\n hasSort = pagination && pagination.sort;\n hasPagination = pagination && pagination.limit;\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 || 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 = _a.sent();\n return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, records)];\n case 2: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.getByKey = function (storeName, keyValuePath) {\n return __awaiter(this, void 0, void 0, function () {\n var record;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.db.get(keyValuePath, storeName)];\n case 1:\n record = _a.sent();\n return [2 /*return*/, record];\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.keyValueFromPredicate = function (predicates, keys) {\n var e_5, _a;\n var predicateObjs = predicates.predicates;\n if (predicateObjs.length !== keys.length) {\n return;\n }\n var keyValues = [];\n var _loop_1 = function (key) {\n var predicateObj = predicateObjs.find(function (p) { return isPredicateObj(p) && p.field === key && p.operator === 'eq'; });\n predicateObj && keyValues.push(predicateObj.operand);\n };\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 _loop_1(key);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return keyValues.length === keys.length\n ? keyValues.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR)\n : undefined;\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 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 _a = pagination.page, page = _a === void 0 ? 0 : _a, _b = pagination.limit, limit = _b === void 0 ? 0 : _b;\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 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.delete = function (modelOrModelConstructor, condition) {\n return __awaiter(this, void 0, void 0, function () {\n var deleteQueue, modelConstructor, nameSpace, models, relations, deletedModels, deletedModels, model, modelConstructor, namespaceName, storeName, keyValuePath, fromDB, msg, predicates, predicateObjs, type, isValid, msg, relations, relations, deletedModels;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n deleteQueue = [];\n if (!isModelConstructor(modelOrModelConstructor)) return [3 /*break*/, 8];\n modelConstructor = modelOrModelConstructor;\n nameSpace = this.namespaceResolver(modelConstructor);\n return [4 /*yield*/, this.query(modelConstructor, condition)];\n case 1:\n models = _a.sent();\n relations = this.schema.namespaces[nameSpace].relationships[modelConstructor.name]\n .relationTypes;\n if (!(condition !== undefined)) return [3 /*break*/, 4];\n return [4 /*yield*/, this.deleteTraverse(relations, models, modelConstructor.name, nameSpace, deleteQueue)];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.deleteItem(deleteQueue)];\n case 3:\n _a.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 4: return [4 /*yield*/, this.deleteTraverse(relations, models, modelConstructor.name, nameSpace, deleteQueue)];\n case 5:\n _a.sent();\n return [4 /*yield*/, this.deleteItem(deleteQueue)];\n case 6:\n _a.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 7: return [3 /*break*/, 15];\n case 8:\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*/, 11];\n keyValuePath = this.getIndexKeyValuesPath(model);\n return [4 /*yield*/, this.db.get(keyValuePath, storeName)];\n case 9:\n fromDB = _a.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 predicateObjs = predicates.predicates, type = predicates.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 relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;\n return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];\n case 10:\n _a.sent();\n return [3 /*break*/, 13];\n case 11:\n relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;\n return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];\n case 12:\n _a.sent();\n _a.label = 13;\n case 13: return [4 /*yield*/, this.deleteItem(deleteQueue)];\n case 14:\n _a.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 15: return [2 /*return*/];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.deleteItem = function (deleteQueue) {\n var deleteQueue_1, deleteQueue_1_1;\n var e_6, _a, e_7, _b;\n return __awaiter(this, void 0, void 0, function () {\n var deleteItem, storeName, items, items_1, items_1_1, item, keyValuesPath, e_7_1, e_6_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 17, 18, 23]);\n deleteQueue_1 = __asyncValues(deleteQueue);\n _c.label = 1;\n case 1: return [4 /*yield*/, deleteQueue_1.next()];\n case 2:\n if (!(deleteQueue_1_1 = _c.sent(), !deleteQueue_1_1.done)) return [3 /*break*/, 16];\n deleteItem = deleteQueue_1_1.value;\n storeName = deleteItem.storeName, items = deleteItem.items;\n _c.label = 3;\n case 3:\n _c.trys.push([3, 9, 10, 15]);\n items_1 = __asyncValues(items);\n _c.label = 4;\n case 4: return [4 /*yield*/, items_1.next()];\n case 5:\n if (!(items_1_1 = _c.sent(), !items_1_1.done)) return [3 /*break*/, 8];\n item = items_1_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 _c.sent();\n _c.label = 7;\n case 7: return [3 /*break*/, 4];\n case 8: return [3 /*break*/, 15];\n case 9:\n e_7_1 = _c.sent();\n e_7 = { error: e_7_1 };\n return [3 /*break*/, 15];\n case 10:\n _c.trys.push([10, , 13, 14]);\n if (!(items_1_1 && !items_1_1.done && (_b = items_1.return))) return [3 /*break*/, 12];\n return [4 /*yield*/, _b.call(items_1)];\n case 11:\n _c.sent();\n _c.label = 12;\n case 12: return [3 /*break*/, 14];\n case 13:\n if (e_7) throw e_7.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_6_1 = _c.sent();\n e_6 = { error: e_6_1 };\n return [3 /*break*/, 23];\n case 18:\n _c.trys.push([18, , 21, 22]);\n if (!(deleteQueue_1_1 && !deleteQueue_1_1.done && (_a = deleteQueue_1.return))) return [3 /*break*/, 20];\n return [4 /*yield*/, _a.call(deleteQueue_1)];\n case 19:\n _c.sent();\n _c.label = 20;\n case 20: return [3 /*break*/, 22];\n case 21:\n if (e_6) throw e_6.error;\n return [7 /*endfinally*/];\n case 22: return [7 /*endfinally*/];\n case 23: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Populates the delete Queue with all the items to delete\n * @param relations\n * @param models\n * @param srcModel\n * @param nameSpace\n * @param deleteQueue\n */\n AsyncStorageAdapter.prototype.deleteTraverse = function (relations, models, srcModel, nameSpace, deleteQueue) {\n var relations_2, relations_2_1, models_1, models_1_1, models_2, models_2_1;\n var e_8, _a, e_9, _b, e_10, _c;\n return __awaiter(this, void 0, void 0, function () {\n var rel, relationType, modelName, targetName, targetNames, associatedWith, storeName, index, _d, model, hasOneIndex_1, hasConnectedModelFields, keyValuesPath, values_1, isUnidirectionalConnection, allRecords, recordToDelete, hasOneIndex_2, hasOneCustomField, keyValuesPath, value_1, allRecords, recordToDelete, e_9_1, model, keyValues, allRecords, indices, childrenArray, e_10_1, e_8_1;\n var _this = this;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _e.trys.push([0, 38, 39, 44]);\n relations_2 = __asyncValues(relations);\n _e.label = 1;\n case 1: return [4 /*yield*/, relations_2.next()];\n case 2:\n if (!(relations_2_1 = _e.sent(), !relations_2_1.done)) return [3 /*break*/, 37];\n rel = relations_2_1.value;\n relationType = rel.relationType, modelName = rel.modelName, targetName = rel.targetName, targetNames = rel.targetNames, associatedWith = rel.associatedWith;\n storeName = getStorename(nameSpace, modelName);\n index = getIndex(this.schema.namespaces[nameSpace].relationships[modelName]\n .relationTypes, srcModel) ||\n // if we were unable to find an index via relationTypes\n // i.e. for keyName connections, attempt to find one by the\n // associatedWith property\n getIndexFromAssociation(this.schema.namespaces[nameSpace].relationships[modelName].indexes, rel.associatedWith);\n _d = relationType;\n switch (_d) {\n case 'HAS_ONE': return [3 /*break*/, 3];\n case 'HAS_MANY': return [3 /*break*/, 20];\n case 'BELONGS_TO': return [3 /*break*/, 34];\n }\n return [3 /*break*/, 35];\n case 3:\n _e.trys.push([3, 13, 14, 19]);\n models_1 = __asyncValues(models);\n _e.label = 4;\n case 4: return [4 /*yield*/, models_1.next()];\n case 5:\n if (!(models_1_1 = _e.sent(), !models_1_1.done)) return [3 /*break*/, 12];\n model = models_1_1.value;\n if (!(targetNames && (targetNames === null || targetNames === void 0 ? void 0 : targetNames.length))) return [3 /*break*/, 8];\n if (index) {\n hasOneIndex_1 = index.split(IDENTIFIER_KEY_SEPARATOR);\n }\n else if (associatedWith) {\n if (Array.isArray(associatedWith)) {\n hasOneIndex_1 = associatedWith;\n }\n else {\n hasOneIndex_1 = [associatedWith];\n }\n }\n hasConnectedModelFields = targetNames.every(function (targetName) {\n return model.hasOwnProperty(targetName);\n });\n keyValuesPath = this.getIndexKeyValuesPath(model);\n isUnidirectionalConnection = hasOneIndex_1 === associatedWith;\n if (hasConnectedModelFields && isUnidirectionalConnection) {\n // Values will be that of the child model\n values_1 = targetNames\n .filter(function (targetName) { var _a; return (_a = model[targetName]) !== null && _a !== void 0 ? _a : false; })\n .map(function (targetName) { return model[targetName]; });\n }\n else {\n // values will be that of the parent model\n values_1 = keyValuesPath.split(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n }\n if (values_1.length === 0)\n return [3 /*break*/, 12];\n return [4 /*yield*/, this.db.getAll(storeName)];\n case 6:\n allRecords = _e.sent();\n recordToDelete = void 0;\n // values === targetNames\n if (hasConnectedModelFields) {\n /**\n * Retrieve record by finding the record where all\n * targetNames are present on the connected model.\n *\n */\n // recordToDelete = allRecords.filter(childItem =>\n // \tvalues.every(value => childItem[value] != null)\n // ) as T[];\n recordToDelete = allRecords.filter(function (childItem) {\n return hasOneIndex_1.every(function (index) { return values_1.includes(childItem[index]); });\n });\n }\n else {\n // values === keyValuePath\n recordToDelete = allRecords.filter(function (childItem) { return childItem[hasOneIndex_1] === values_1; });\n }\n return [4 /*yield*/, this.deleteTraverse(this.schema.namespaces[nameSpace].relationships[modelName]\n .relationTypes, recordToDelete, modelName, nameSpace, deleteQueue)];\n case 7:\n _e.sent();\n return [3 /*break*/, 11];\n case 8:\n hasOneIndex_2 = index || associatedWith;\n hasOneCustomField = targetName in model;\n keyValuesPath = this.getIndexKeyValuesPath(model);\n value_1 = hasOneCustomField\n ? model[targetName]\n : keyValuesPath;\n if (!value_1)\n return [3 /*break*/, 12];\n return [4 /*yield*/, this.db.getAll(storeName)];\n case 9:\n allRecords = _e.sent();\n recordToDelete = allRecords.filter(function (childItem) { return childItem[hasOneIndex_2] === value_1; });\n return [4 /*yield*/, this.deleteTraverse(this.schema.namespaces[nameSpace].relationships[modelName]\n .relationTypes, recordToDelete, modelName, nameSpace, deleteQueue)];\n case 10:\n _e.sent();\n _e.label = 11;\n case 11: return [3 /*break*/, 4];\n case 12: return [3 /*break*/, 19];\n case 13:\n e_9_1 = _e.sent();\n e_9 = { error: e_9_1 };\n return [3 /*break*/, 19];\n case 14:\n _e.trys.push([14, , 17, 18]);\n if (!(models_1_1 && !models_1_1.done && (_b = models_1.return))) return [3 /*break*/, 16];\n return [4 /*yield*/, _b.call(models_1)];\n case 15:\n _e.sent();\n _e.label = 16;\n case 16: return [3 /*break*/, 18];\n case 17:\n if (e_9) throw e_9.error;\n return [7 /*endfinally*/];\n case 18: return [7 /*endfinally*/];\n case 19: return [3 /*break*/, 36];\n case 20:\n _e.trys.push([20, 27, 28, 33]);\n models_2 = __asyncValues(models);\n _e.label = 21;\n case 21: return [4 /*yield*/, models_2.next()];\n case 22:\n if (!(models_2_1 = _e.sent(), !models_2_1.done)) return [3 /*break*/, 26];\n model = models_2_1.value;\n keyValues = this.getIndexKeyValuesFromModel(model);\n return [4 /*yield*/, this.db.getAll(storeName)];\n case 23:\n allRecords = _e.sent();\n indices = index.split(IDENTIFIER_KEY_SEPARATOR);\n childrenArray = allRecords.filter(function (childItem) {\n return indices.every(function (index) { return keyValues.includes(childItem[index]); });\n });\n return [4 /*yield*/, this.deleteTraverse(this.schema.namespaces[nameSpace].relationships[modelName]\n .relationTypes, childrenArray, modelName, nameSpace, deleteQueue)];\n case 24:\n _e.sent();\n _e.label = 25;\n case 25: return [3 /*break*/, 21];\n case 26: return [3 /*break*/, 33];\n case 27:\n e_10_1 = _e.sent();\n e_10 = { error: e_10_1 };\n return [3 /*break*/, 33];\n case 28:\n _e.trys.push([28, , 31, 32]);\n if (!(models_2_1 && !models_2_1.done && (_c = models_2.return))) return [3 /*break*/, 30];\n return [4 /*yield*/, _c.call(models_2)];\n case 29:\n _e.sent();\n _e.label = 30;\n case 30: return [3 /*break*/, 32];\n case 31:\n if (e_10) throw e_10.error;\n return [7 /*endfinally*/];\n case 32: return [7 /*endfinally*/];\n case 33: return [3 /*break*/, 36];\n case 34: \n // Intentionally blank\n return [3 /*break*/, 36];\n case 35:\n exhaustiveCheck(relationType);\n return [3 /*break*/, 36];\n case 36: return [3 /*break*/, 1];\n case 37: return [3 /*break*/, 44];\n case 38:\n e_8_1 = _e.sent();\n e_8 = { error: e_8_1 };\n return [3 /*break*/, 44];\n case 39:\n _e.trys.push([39, , 42, 43]);\n if (!(relations_2_1 && !relations_2_1.done && (_a = relations_2.return))) return [3 /*break*/, 41];\n return [4 /*yield*/, _a.call(relations_2)];\n case 40:\n _e.sent();\n _e.label = 41;\n case 41: return [3 /*break*/, 43];\n case 42:\n if (e_8) throw e_8.error;\n return [7 /*endfinally*/];\n case 43: return [7 /*endfinally*/];\n case 44:\n deleteQueue.push({\n storeName: getStorename(nameSpace, srcModel),\n items: models.map(function (record) {\n return _this.modelInstanceCreator(_this.getModelConstructorByModelName(nameSpace, srcModel), record);\n }),\n });\n return [2 /*return*/];\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_2, this_1, items_2, items_2_1, item;\n var e_11, _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\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_2 = 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_2 = __values(items), items_2_1 = items_2.next(); !items_2_1.done; items_2_1 = items_2.next()) {\n item = items_2_1.value;\n _loop_2(item);\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (items_2_1 && !items_2_1.done && (_a = items_2.return)) _a.call(items_2);\n }\n finally { if (e_11) throw e_11.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 return AsyncStorageAdapter;\n}());\nexport { AsyncStorageAdapter };\nexport default new AsyncStorageAdapter();\n//# sourceMappingURL=AsyncStorageAdapter.js.map","import { 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","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 (_) 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 __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};\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 { 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\n .setUp(this.schema, this.namespaceResolver, this.modelInstanceCreator, this.getModelConstructorByModelName, this.sessionId)\n .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 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 && !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.getUpdateMutationInput(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: ModelPredicateCreator.getPredicates(condition, false),\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 deleted, models, 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 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,\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 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 var record;\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 return [4 /*yield*/, this.adapter.queryOne(modelConstructor, firstOrLast)];\n case 2:\n record = _a.sent();\n return [2 /*return*/, record];\n }\n });\n });\n };\n StorageClass.prototype.observe = function (modelConstructor, predicate, skipOwn) {\n var listenToAll = !modelConstructor;\n var _a = ModelPredicateCreator.getPredicates(predicate, false) || {}, predicates = _a.predicates, type = _a.type;\n var hasPredicate = !!predicates;\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 (hasPredicate) {\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 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 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: undefined,\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.getUpdateMutationInput = function (model, originalElement, patchesTuple) {\n var e_1, _a;\n var containsPatches = patchesTuple && patchesTuple.length;\n if (!containsPatches) {\n return null;\n }\n var _b = __read(patchesTuple, 2), patches = _b[0], source = _b[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 _c = this.schema.namespaces[namespace].keys[modelConstructor.name], primaryKey = _c.primaryKey, _d = _c.compositeKeys, compositeKeys = _d === void 0 ? [] : _d;\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","import { Reachability } from '@aws-amplify/core';\nexport var ReachabilityMonitor = new Reachability().networkMonitor();\n//# sourceMappingURL=index.js.map","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 (_) 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 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","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 (_) 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};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\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","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 (_) 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 __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 { 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 var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n mutationEventModelDefinition = this.schema.namespaces[SYNC].models['MutationEvent'];\n predicate = ModelPredicateCreator.createFromExisting(mutationEventModelDefinition, function (c) {\n return c\n .modelId('eq', mutationEvent.modelId)\n .id('ne', _this.inProgressMutationEventId);\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.createFromExisting(mutationEventModelDefinition, function (c) { return c.modelId('eq', modelId); }))];\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 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.createFromExisting(mutationEventModelDefinition, function (c) { return c.modelId('eq', recordId).id('ne', _this.inProgressMutationEventId); });\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","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};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\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};\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 /^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 () { return false; },\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(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","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 (_) 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 __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};\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 API from '@aws-amplify/api';\nimport { ConsoleLogger as Logger, jitteredBackoff, NonRetryableError, retry, BackgroundProcessManager, } from '@aws-amplify/core';\nimport Observable from 'zen-observable-ts';\nimport { DISCARD, isModelFieldType, isTargetNameAssociation, OpType, ProcessName, } from '../../types';\nimport { exhaustiveCheck, extractTargetNamesFromSrc, USER, USER_AGENT_SUFFIX_DATASTORE, 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.API = this.amplifyContext.API || API;\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 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 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: 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.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 return __generator(this, function (_b) {\n switch (_b.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 = void 0;\n opName = void 0;\n modelDefinition = void 0;\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;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 4]);\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) {\n logger.debug(\"Mutation failed with authMode: \" + operationAuthModes_1[authModeAttempts_1 - 1]);\n throw error_2;\n }\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 3: return [2 /*return*/, _a.sent()];\n case 4: 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 this_1.observer.next({\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 _b.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 = _b.sent()) !== undefined;\n _b.label = 3;\n case 3:\n if (!_a) return [3 /*break*/, 5];\n return [5 /*yield**/, _loop_1()];\n case 4:\n _b.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, 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 userAgentSuffix: USER_AGENT_SUFFIX_DATASTORE,\n };\n attempt = 0;\n opType = this.opTypeFromTransformerOperation(operation);\n _h.label = 2;\n case 2:\n _h.trys.push([2, 4, , 17]);\n return [4 /*yield*/, this.amplifyContext.API.graphql(tryWith)];\n case 3:\n result = (_h.sent());\n // `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.API.graphql({\n query: query_1,\n variables: { id: variables.input.id },\n authMode: authMode,\n authToken: authToken_1,\n userAgentSuffix: USER_AGENT_SUFFIX_DATASTORE,\n })];\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_1, _a, e_2, _b, e_3, _c;\n var modelDefinition = this.schema.namespaces[namespaceName].models[model];\n var primaryKey = this.schema.namespaces[namespaceName].keys[model].primaryKey;\n var queriesTuples = this.typeQuery.get(modelDefinition);\n var _d = __read(queriesTuples.find(function (_a) {\n var _b = __read(_a, 1), transformerMutationType = _b[0];\n return transformerMutationType === operation;\n }), 3), opName = _d[1], query = _d[2];\n var _e = JSON.parse(data), _version = _e._version, parsedData = __rest(_e, [\"_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_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 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 _f = modelFields_1_1.value, name_1 = _f.name, type = _f.type, association = _f.association;\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_3 = 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_3_1) { e_3 = { error: e_3_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_3) throw e_3.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_2_1) { e_2 = { error: e_2_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_2) throw e_2.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 exhaustiveCheck(operation);\n }\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","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 (_) 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 __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport API, { GRAPHQL_AUTH_MODE } from '@aws-amplify/api';\nimport { Auth } from '@aws-amplify/auth';\nimport Cache from '@aws-amplify/cache';\nimport { ConsoleLogger as Logger, 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, } from '../utils';\nimport { ModelPredicateCreator } from '../../predicates';\nimport { validatePredicate, USER_AGENT_SUFFIX_DATASTORE } 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 = { Auth: Auth, API: API, Cache: Cache }; }\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) {\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), 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 ownerValue = cognitoTokenPayload[ownerAuthRule.identityClaim];\n if (ownerValue) {\n ownerAuthInfo = {\n authMode: GRAPHQL_AUTH_MODE.AMAZON_COGNITO_USER_POOLS,\n isOwner: ownerAuthRule.areSubscriptionsPublic ? false : true,\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 ownerValue = oidcTokenPayload[ownerAuthRule.identityClaim];\n if (ownerValue) {\n ownerAuthInfo = {\n authMode: GRAPHQL_AUTH_MODE.OPENID_CONNECT,\n isOwner: ownerAuthRule.areSubscriptionsPublic ? false : true,\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 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, authModeRetry;\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 authModeRetry = function (operation) { return __awaiter(_this, void 0, void 0, function () {\n var _a, transformerMutationType, opName, query, isOwner, ownerField, ownerValue, authMode, authToken, variables, userAgentSuffix, 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]]), 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 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 userAgentSuffix = USER_AGENT_SUFFIX_DATASTORE;\n queryObservable = this.amplifyContext.API.graphql(__assign(__assign({ query: query,\n variables: variables }, { authMode: authMode }), { authToken: authToken,\n userAgentSuffix: userAgentSuffix }));\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 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, 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 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 authModeRetry(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 operations.forEach(function (op) { return authModeRetry(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 return SubscriptionProcessor;\n}());\nexport { SubscriptionProcessor };\n//# sourceMappingURL=subscription.js.map","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 (_) 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};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { browserOrNode, ConsoleLogger as Logger, BackgroundProcessManager, } from '@aws-amplify/core';\nimport { CONTROL_MSG as PUBSUB_CONTROL_MSG } from '@aws-amplify/pubsub';\nimport Observable from 'zen-observable-ts';\nimport { ModelPredicateCreator } from '../predicates';\nimport { OpType, } from '../types';\nimport { exhaustiveCheck, 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 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.runningProcesses = new BackgroundProcessManager();\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 //#region GraphQL Subscriptions\n _a = __read(this.subscriptionsProcessor.start(), 2), \n // const ctlObservable: Observable\n ctlSubsObservable_1 = _a[0], \n // const dataObservable: Observable<[TransformerMutationType, SchemaModel, Readonly<{\n // id: string;\n // } & Record>]>\n 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 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, newestFullSyncStartedAt, theInterval, start, duration, newestStartedAt, 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 newestStartedAt =\n newestStartedAt === undefined\n ? startedAt\n : Math.max(newestStartedAt, 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 exhaustiveCheck(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 theInterval = fullSyncInterval;\n newestFullSyncStartedAt =\n newestFullSyncStartedAt === undefined\n ? lastFullSync\n : Math.max(newestFullSyncStartedAt, 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 duration = 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 msNextFullSync = newestFullSyncStartedAt +\n theInterval -\n (newestStartedAt + duration);\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 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 unsleep();\n });\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 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 * 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.createFromExisting(this.schema.namespaces[SYNC].models[ModelMetadata.name], function (c) { return c.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 return SyncEngine;\n}());\nexport { SyncEngine };\n//# sourceMappingURL=index.js.map","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 (_) 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 API from '@aws-amplify/api';\nimport Observable from 'zen-observable-ts';\nimport { ProcessName, } from '../../types';\nimport { buildGraphQLOperation, getModelAuthModes, getClientSideAuthError, getForbiddenError, predicateToGraphQLFilter, getTokenForCustomAuth, } from '../utils';\nimport { USER_AGENT_SUFFIX_DATASTORE } from '../../util';\nimport { jitteredExponentialRetry, ConsoleLogger as Logger, 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.API = amplifyContext.API || API;\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, 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 return [4 /*yield*/, this.amplifyContext.API.graphql({\n query: query,\n variables: variables,\n authMode: authMode,\n authToken: authToken,\n userAgentSuffix: USER_AGENT_SUFFIX_DATASTORE,\n })];\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 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 if (unauthorized) {\n logger.warn('queryError', \"User is unauthorized to query \" + opName + \", some items could not be returned.\");\n result.data = result.data || {};\n result.data[opName] = __assign(__assign({}, opResultDefaults), result.data[opName]);\n return [2 /*return*/, result];\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;\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 if (!this.runningProcesses.isOpen) {\n return [2 /*return*/];\n }\n limit = Math.min(maxRecordsToSync - recordsReceived, syncPageSize);\n return [4 /*yield*/, this.retrievePage(modelDefinition, lastSync, nextToken, limit, filter, onTerminate)];\n case 3:\n (_a = _b.sent(), items = _a.items, nextToken = _a.nextToken, startedAt = _a.startedAt);\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 = 4;\n case 4:\n if (!done) return [3 /*break*/, 2];\n _b.label = 5;\n case 5:\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","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 (_) 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 __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};\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 __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport API from '@aws-amplify/api';\nimport { Auth } from '@aws-amplify/auth';\nimport Cache from '@aws-amplify/cache';\nimport { Amplify, ConsoleLogger as Logger, Hub, JS, 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 { ControlMessage, SyncEngine } from '../sync';\nimport { GraphQLScalarType, isGraphQLScalarType, isSchemaModelWithAttributes, AuthModeStrategyType, isNonModelFieldType, isModelFieldType, isIdentifierObject, } from '../types';\nimport { DATASTORE, errorMessages, establishRelationAndKeys, exhaustiveCheck, isModelConstructor, monotonicUlidFactory, STORAGE, SYNC, USER, isNullOrUndefined, registerNonModelClass, sortCompareFunction, DeferredCallbackResolver, extractPrimaryKeyFieldNames, extractPrimaryKeysAndValues, isIdManaged, isIdOptionallyManaged, validatePredicate, mergePatches, } from '../util';\nimport { getIdentifierValue } from '../sync/utils';\nsetAutoFreeze(true);\nenablePatches();\nvar logger = new Logger('DataStore');\nvar ulid = monotonicUlidFactory(Date.now());\nvar isNode = JS.browserOrNode().isNode;\nvar SETTING_SCHEMA_VERSION = 'schemaVersion';\nvar schema;\nvar modelNamespaceMap = new WeakMap();\n// stores data for crafting the correct update mutation input for a model\n// Patch[] - array of changed fields and metadata\n// PersistentModel - the source model, used for diffing object-type fields\nvar modelPatchesMap = new WeakMap();\nvar getModelDefinition = function (modelConstructor) {\n var namespace = modelNamespaceMap.get(modelConstructor);\n return schema.namespaces[namespace].models[modelConstructor.name];\n};\nvar isValidModelConstructor = function (obj) {\n return isModelConstructor(obj) && modelNamespaceMap.has(obj);\n};\nvar namespaceResolver = function (modelConstructor) {\n return modelNamespaceMap.get(modelConstructor);\n};\n// exporting syncClasses for testing outbox.test.ts\nexport var syncClasses;\nvar userClasses;\nvar dataStoreClasses;\nvar storageClasses;\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 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 };\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 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 });\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.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};\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 if (((!isArray && isRequired_1) || (isArray && !isArrayNullable)) &&\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)) {\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};\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};\nvar createModelClass = function (modelDefinition) {\n var clazz = /** @class */ (function () {\n function Model(init) {\n var instance = 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 });\n return instance;\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) { return (draft[key] = source[key]); });\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 }, 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 return model;\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 instance;\n };\n return Model;\n }());\n clazz[immerable] = true;\n Object.defineProperty(clazz, 'name', { value: modelDefinition.name });\n return clazz;\n};\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 exhaustiveCheck(namespaceName);\n break;\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.createFromExisting(modelDefinition, function (c) {\n return c.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 = {}));\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.API = API;\n this.Cache = Cache;\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 API: this.API,\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 * 1. Loads the schema and records metadata.\n * 1. 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 msg, modelDefinition, keyFields, predicate, msg, pagination, result, returnOne;\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 //#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 keyFields = extractPrimaryKeyFieldNames(modelDefinition);\n if (isQueryOne(identifierOrCriteria)) {\n if (keyFields.length > 1) {\n msg = errorMessages.queryByPkWithCompositeKeyPresent;\n logger.error(msg, { keyFields: keyFields });\n throw new Error(msg);\n }\n predicate = ModelPredicateCreator.createForSingleField(modelDefinition, keyFields[0], identifierOrCriteria);\n }\n else {\n // Object is being queried using object literal syntax\n if (isIdentifierObject(identifierOrCriteria, modelDefinition)) {\n predicate = ModelPredicateCreator.createForPk(modelDefinition, identifierOrCriteria);\n }\n else if (isPredicatesAll(identifierOrCriteria)) {\n // Predicates.ALL means \"all records\", so no predicate (undefined)\n predicate = undefined;\n }\n else {\n predicate = ModelPredicateCreator.createFromExisting(modelDefinition, identifierOrCriteria);\n }\n }\n pagination = this.processPagination(modelDefinition, paginationProducer);\n //#endregion\n logger.debug('params ready', {\n modelConstructor: modelConstructor,\n predicate: ModelPredicateCreator.getPredicates(predicate, false),\n pagination: __assign(__assign({}, pagination), { sort: ModelSortPredicateCreator.getPredicates(pagination && pagination.sort, false) }),\n });\n return [4 /*yield*/, this.storage.query(modelConstructor, predicate, pagination)];\n case 2:\n result = _a.sent();\n returnOne = isQueryOne(identifierOrCriteria) ||\n isIdentifierObject(identifierOrCriteria, modelDefinition);\n return [2 /*return*/, returnOne ? result[0] : result];\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 patchesTuple, modelConstructor, msg, modelDefinition, 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 patchesTuple = modelPatchesMap.get(model);\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 producedCondition = ModelPredicateCreator.createFromExisting(modelDefinition, condition);\n return [4 /*yield*/, this.storage.runExclusive(function (s) { return __awaiter(_this, void 0, void 0, function () {\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 _a.sent();\n return [2 /*return*/, s.query(modelConstructor, ModelPredicateCreator.createForPk(modelDefinition, model))];\n }\n });\n }); })];\n case 2:\n _a = __read.apply(void 0, [_b.sent(), 1]), savedModel = _a[0];\n return [2 /*return*/, savedModel];\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 return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this.start()];\n case 1:\n _d.sent();\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 (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.createForSingleField(getModelDefinition(modelConstructor), keyFields[0], identifierOrCriteria);\n }\n else {\n if (isIdentifierObject(identifierOrCriteria, modelDefinition)) {\n condition = ModelPredicateCreator.createForPk(modelDefinition, identifierOrCriteria);\n }\n else {\n condition = ModelPredicateCreator.createFromExisting(modelDefinition, \n /**\n * idOrCriteria is always a ProducerModelPredicate, never a symbol.\n * The symbol is used only for typing purposes. e.g. see Predicates.ALL\n */\n identifierOrCriteria);\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, [_d.sent(), 1]), deleted = _a[0];\n return [2 /*return*/, deleted];\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 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 = identifierOrCriteria(pkPredicate);\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, [_d.sent(), 1]), _c = __read(_b[0], 1), deleted = _c[0];\n return [2 /*return*/, deleted];\n }\n });\n }); }, 'datastore delete')\n .catch(this.handleAddProcError('DataStore.delete()'))];\n });\n }); };\n this.observe = function (modelOrConstructor, identifierOrCriteria) {\n var predicate;\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 (typeof identifierOrCriteria === 'string') {\n var modelDefinition = getModelDefinition(modelConstructor);\n var _a = __read(extractPrimaryKeyFieldNames(modelDefinition), 1), keyField = _a[0];\n predicate = ModelPredicateCreator.createForSingleField(getModelDefinition(modelConstructor), keyField, identifierOrCriteria);\n }\n else {\n if (isPredicatesAll(identifierOrCriteria)) {\n predicate = undefined;\n }\n else {\n predicate =\n modelConstructor &&\n ModelPredicateCreator.createFromExisting(getModelDefinition(modelConstructor), identifierOrCriteria);\n }\n }\n return new Observable(function (observer) {\n var handle;\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 handle = this.storage\n .observe(modelConstructor, predicate)\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;\n return __generator(this, function (_a) {\n switch (_a.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 = _a.sent();\n message = __assign(__assign({}, message), { element: freshElement });\n _a.label = 2;\n case 2:\n observer.next(message);\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 (handle) {\n handle.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 var predicate;\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 var keyFields = extractPrimaryKeyFieldNames(modelDefinition);\n if (isQueryOne(criteria)) {\n predicate = ModelPredicateCreator.createForSingleField(modelDefinition, keyFields[0], criteria);\n }\n else {\n if (isPredicatesAll(criteria)) {\n // Predicates.ALL means \"all records\", so no predicate (undefined)\n predicate = undefined;\n }\n else {\n predicate = ModelPredicateCreator.createFromExisting(modelDefinition, criteria);\n }\n }\n var _a = ModelPredicateCreator.getPredicates(predicate, false) || {}, predicates = _a.predicates, predicateGroupType = _a.type;\n var hasPredicate = !!predicates;\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 var _b, _c;\n var itemModelDefinition = getModelDefinition(model);\n var idOrPk = getIdentifierValue(itemModelDefinition, element);\n if (hasPredicate &&\n !validatePredicate(element, predicateGroupType, predicates)) {\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;\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 var isSynced = (_c = (_b = _this.sync) === null || _b === void 0 ? void 0 : _b.getModelSyncedStatus(model)) !== null && _c !== void 0 ? _c : false;\n var 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 });\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 if (options === null || options === void 0 ? void 0 : options.sort) {\n sortItems(itemsArray);\n }\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 return {\n items: Array.from(items.values()),\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.API = _this.API;\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, paginationProducer.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 = this.createFromCondition(modelDefinition, condition);\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.createFromCondition = function (modelDefinition, condition) {\n try {\n return ModelPredicateCreator.createFromExisting(modelDefinition, condition);\n }\n catch (error) {\n logger.error('Error creating Sync Predicate');\n throw error;\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];\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 { exhaustiveCheck, extractPrimaryKeyFieldNames, extractPrimaryKeyValues, } from '../util';\nexport { ModelSortPredicateCreator } from './sort';\nvar predicatesAllSet = new WeakSet();\nexport function isPredicatesAll(predicate) {\n return predicatesAllSet.has(predicate);\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 ModelPredicateCreator.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 groupType = propertyKey;\n switch (groupType) {\n case 'and':\n case 'or':\n case 'not':\n var result_1 = function (newPredicate) {\n var group = {\n type: groupType,\n predicates: [],\n };\n // Create a new recorder\n var tmpPredicateRecorder = new Proxy({}, handler);\n // Set the recorder group\n ModelPredicateCreator.predicateGroupsMap.set(tmpPredicateRecorder, group);\n // Apply the predicates to the recorder (this is the step that records the changes)\n newPredicate(tmpPredicateRecorder);\n // Push the group to the top-level recorder\n ModelPredicateCreator.predicateGroupsMap\n .get(receiver)\n .predicates.push(group);\n return receiver;\n };\n return result_1;\n default:\n exhaustiveCheck(groupType, false);\n }\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 (operator, operand) {\n ModelPredicateCreator.predicateGroupsMap\n .get(receiver)\n .predicates.push({ field: field, operator: operator, operand: operand });\n return receiver;\n };\n return result;\n },\n }));\n var group = {\n type: 'and',\n predicates: [],\n };\n ModelPredicateCreator.predicateGroupsMap.set(predicate, group);\n return predicate;\n };\n ModelPredicateCreator.isValidPredicate = function (predicate) {\n return ModelPredicateCreator.predicateGroupsMap.has(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 // transforms cb-style predicate into Proxy\n ModelPredicateCreator.createFromExisting = function (modelDefinition, existing) {\n if (!existing || !modelDefinition) {\n return undefined;\n }\n return existing(ModelPredicateCreator.createPredicateBuilder(modelDefinition));\n };\n ModelPredicateCreator.createForSingleField = function (modelDefinition, fieldName, value) {\n return ModelPredicateCreator.createPredicateBuilder(modelDefinition)[fieldName]('eq', value);\n };\n ModelPredicateCreator.createForPk = function (modelDefinition, model) {\n var keyFields = extractPrimaryKeyFieldNames(modelDefinition);\n var keyValues = extractPrimaryKeyValues(model, keyFields);\n var modelPredicate = ModelPredicateCreator.createPredicateBuilder(modelDefinition);\n keyFields.forEach(function (field, idx) {\n var operand = keyValues[idx];\n modelPredicate = modelPredicate[field]('eq', operand);\n });\n return modelPredicate;\n };\n ModelPredicateCreator.predicateGroupsMap = new WeakMap();\n return ModelPredicateCreator;\n}());\nexport { ModelPredicateCreator };\n//# sourceMappingURL=index.js.map","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 (_) 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 { exhaustiveCheck, 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 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 exhaustiveCheck(scalar);\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//# sourceMappingURL=types.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","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 (_) 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};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\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';\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 USER_AGENT_SUFFIX_DATASTORE = '/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 exhaustiveCheck(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 exhaustiveCheck(operator, false);\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 relationships = namespace.relationships;\n var modelConstructor = getModelConstructorByModelName(namespace.name, srcModelName);\n var relation = relationships[srcModelName];\n var result = [];\n var newInstance = modelConstructor.copyOf(instance, function (draftInstance) {\n relation.relationTypes.forEach(function (rItem) {\n var modelConstructor = getModelConstructorByModelName(namespace.name, rItem.modelName);\n switch (rItem.relationType) {\n case 'HAS_ONE':\n if (instance[rItem.fieldName]) {\n var modelInstance = void 0;\n try {\n modelInstance = modelInstanceCreator(modelConstructor, instance[rItem.fieldName]);\n }\n catch (error) {\n // Do nothing\n console.log(error);\n }\n result.push({\n modelName: rItem.modelName,\n item: instance[rItem.fieldName],\n instance: modelInstance,\n });\n var targetNames = extractTargetNamesFromSrc(rItem);\n // `targetName` will be defined for Has One if feature flag\n // https://docs.amplify.aws/cli/reference/feature-flags/#useAppsyncModelgenPlugin\n // is true (default as of 5/7/21)\n // Making this conditional for backward-compatibility\n if (targetNames) {\n targetNames.forEach(function (targetName, idx) {\n // Get the connected record\n var relatedRecordInProxy = (draftInstance[rItem.fieldName]);\n // Previously, we used the hardcoded 'id' as they key,\n // now we need the value of the key to get the PK (and SK)\n // values from the related record\n var primaryKey = namespace.keys[modelConstructor.name].primaryKey;\n var keyField = primaryKey && primaryKey[idx];\n // Get the value\n var relatedRecordInProxyPkValue = relatedRecordInProxy[keyField];\n // Set the targetName value\n draftInstance[targetName] = relatedRecordInProxyPkValue;\n });\n // Delete the instance from the proxy\n delete draftInstance[rItem.fieldName];\n }\n else {\n draftInstance[rItem.fieldName] = (draftInstance[rItem.fieldName]).id;\n }\n }\n break;\n case 'BELONGS_TO':\n if (instance[rItem.fieldName]) {\n var modelInstance = void 0;\n try {\n modelInstance = modelInstanceCreator(modelConstructor, instance[rItem.fieldName]);\n }\n catch (error) {\n // Do nothing\n }\n var isDeleted = (draftInstance[rItem.fieldName])._deleted;\n if (!isDeleted) {\n result.push({\n modelName: rItem.modelName,\n item: instance[rItem.fieldName],\n instance: modelInstance,\n });\n }\n }\n if (draftInstance[rItem.fieldName]) {\n var targetNames = extractTargetNamesFromSrc(rItem);\n if (targetNames) {\n targetNames.forEach(function (targetName, idx) {\n // Get the connected record\n var relatedRecordInProxy = (draftInstance[rItem.fieldName]);\n // Previously, we used the hardcoded `id` for the key.\n // Now, we need the value of the key to get the PK (and SK)\n // values from the related record\n var primaryKey = namespace.keys[modelConstructor.name].primaryKey;\n // fall back to ID if\n var keyField = primaryKey && primaryKey[idx];\n // Get the value\n var relatedRecordInProxyPkValue = relatedRecordInProxy[keyField];\n // Set the targetName value\n draftInstance[targetName] = relatedRecordInProxyPkValue;\n });\n // Delete the instance from the proxy\n delete draftInstance[rItem.fieldName];\n }\n }\n break;\n case 'HAS_MANY':\n // Intentionally blank\n break;\n default:\n exhaustiveCheck(rItem.relationType);\n break;\n }\n });\n });\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}\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_3, _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 = indexNameFromKeys(targetNames);\n relationship[mKey].indexes.push([idxName, targetNames]);\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_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_c = _d.return)) _c.call(_d);\n }\n finally { if (e_3) throw e_3.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;\n var keyPath = (_c = namespace === null || namespace === void 0 ? void 0 : namespace.keys[modelName]) === null || _c === void 0 ? void 0 : _c.primaryKey;\n if (keyPath) {\n return keyPath;\n }\n return [ID];\n};\n//#endregion\n//# sourceMappingURL=util.js.map","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 ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).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/broofa/node-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","/*\n * Copyright 2017-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 */\nexport 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","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","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar 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\nexport function __extends(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\nexport var __assign = function() {\n __assign = Object.assign || function __assign(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)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(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}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(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}\n\nexport function __generator(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\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(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\nexport function __read(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/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(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\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __assign } from \"tslib\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var AbortIncompleteMultipartUpload;\n(function (AbortIncompleteMultipartUpload) {\n AbortIncompleteMultipartUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AbortIncompleteMultipartUpload || (AbortIncompleteMultipartUpload = {}));\nexport var AbortMultipartUploadOutput;\n(function (AbortMultipartUploadOutput) {\n AbortMultipartUploadOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AbortMultipartUploadOutput || (AbortMultipartUploadOutput = {}));\nexport var AbortMultipartUploadRequest;\n(function (AbortMultipartUploadRequest) {\n AbortMultipartUploadRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AbortMultipartUploadRequest || (AbortMultipartUploadRequest = {}));\nexport var NoSuchUpload;\n(function (NoSuchUpload) {\n NoSuchUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoSuchUpload || (NoSuchUpload = {}));\nexport var AccelerateConfiguration;\n(function (AccelerateConfiguration) {\n AccelerateConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AccelerateConfiguration || (AccelerateConfiguration = {}));\nexport var Grantee;\n(function (Grantee) {\n Grantee.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Grantee || (Grantee = {}));\nexport var Grant;\n(function (Grant) {\n Grant.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Grant || (Grant = {}));\nexport var Owner;\n(function (Owner) {\n Owner.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Owner || (Owner = {}));\nexport var AccessControlPolicy;\n(function (AccessControlPolicy) {\n AccessControlPolicy.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AccessControlPolicy || (AccessControlPolicy = {}));\nexport var AccessControlTranslation;\n(function (AccessControlTranslation) {\n AccessControlTranslation.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AccessControlTranslation || (AccessControlTranslation = {}));\nexport var CompleteMultipartUploadOutput;\n(function (CompleteMultipartUploadOutput) {\n CompleteMultipartUploadOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(CompleteMultipartUploadOutput || (CompleteMultipartUploadOutput = {}));\nexport var CompletedPart;\n(function (CompletedPart) {\n CompletedPart.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CompletedPart || (CompletedPart = {}));\nexport var CompletedMultipartUpload;\n(function (CompletedMultipartUpload) {\n CompletedMultipartUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CompletedMultipartUpload || (CompletedMultipartUpload = {}));\nexport var CompleteMultipartUploadRequest;\n(function (CompleteMultipartUploadRequest) {\n CompleteMultipartUploadRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CompleteMultipartUploadRequest || (CompleteMultipartUploadRequest = {}));\nexport var CopyObjectResult;\n(function (CopyObjectResult) {\n CopyObjectResult.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CopyObjectResult || (CopyObjectResult = {}));\nexport var CopyObjectOutput;\n(function (CopyObjectOutput) {\n CopyObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(CopyObjectOutput || (CopyObjectOutput = {}));\nexport var CopyObjectRequest;\n(function (CopyObjectRequest) {\n CopyObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING })), (obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }))); };\n})(CopyObjectRequest || (CopyObjectRequest = {}));\nexport var ObjectNotInActiveTierError;\n(function (ObjectNotInActiveTierError) {\n ObjectNotInActiveTierError.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectNotInActiveTierError || (ObjectNotInActiveTierError = {}));\nexport var BucketAlreadyExists;\n(function (BucketAlreadyExists) {\n BucketAlreadyExists.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BucketAlreadyExists || (BucketAlreadyExists = {}));\nexport var BucketAlreadyOwnedByYou;\n(function (BucketAlreadyOwnedByYou) {\n BucketAlreadyOwnedByYou.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BucketAlreadyOwnedByYou || (BucketAlreadyOwnedByYou = {}));\nexport var CreateBucketOutput;\n(function (CreateBucketOutput) {\n CreateBucketOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateBucketOutput || (CreateBucketOutput = {}));\nexport var CreateBucketConfiguration;\n(function (CreateBucketConfiguration) {\n CreateBucketConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateBucketConfiguration || (CreateBucketConfiguration = {}));\nexport var CreateBucketRequest;\n(function (CreateBucketRequest) {\n CreateBucketRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateBucketRequest || (CreateBucketRequest = {}));\nexport var CreateMultipartUploadOutput;\n(function (CreateMultipartUploadOutput) {\n CreateMultipartUploadOutput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(CreateMultipartUploadOutput || (CreateMultipartUploadOutput = {}));\nexport var CreateMultipartUploadRequest;\n(function (CreateMultipartUploadRequest) {\n CreateMultipartUploadRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(CreateMultipartUploadRequest || (CreateMultipartUploadRequest = {}));\nexport var DeleteBucketRequest;\n(function (DeleteBucketRequest) {\n DeleteBucketRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketRequest || (DeleteBucketRequest = {}));\nexport var DeleteBucketAnalyticsConfigurationRequest;\n(function (DeleteBucketAnalyticsConfigurationRequest) {\n DeleteBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketAnalyticsConfigurationRequest || (DeleteBucketAnalyticsConfigurationRequest = {}));\nexport var DeleteBucketCorsRequest;\n(function (DeleteBucketCorsRequest) {\n DeleteBucketCorsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketCorsRequest || (DeleteBucketCorsRequest = {}));\nexport var DeleteBucketEncryptionRequest;\n(function (DeleteBucketEncryptionRequest) {\n DeleteBucketEncryptionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketEncryptionRequest || (DeleteBucketEncryptionRequest = {}));\nexport var DeleteBucketIntelligentTieringConfigurationRequest;\n(function (DeleteBucketIntelligentTieringConfigurationRequest) {\n DeleteBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketIntelligentTieringConfigurationRequest || (DeleteBucketIntelligentTieringConfigurationRequest = {}));\nexport var DeleteBucketInventoryConfigurationRequest;\n(function (DeleteBucketInventoryConfigurationRequest) {\n DeleteBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketInventoryConfigurationRequest || (DeleteBucketInventoryConfigurationRequest = {}));\nexport var DeleteBucketLifecycleRequest;\n(function (DeleteBucketLifecycleRequest) {\n DeleteBucketLifecycleRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketLifecycleRequest || (DeleteBucketLifecycleRequest = {}));\nexport var DeleteBucketMetricsConfigurationRequest;\n(function (DeleteBucketMetricsConfigurationRequest) {\n DeleteBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketMetricsConfigurationRequest || (DeleteBucketMetricsConfigurationRequest = {}));\nexport var DeleteBucketOwnershipControlsRequest;\n(function (DeleteBucketOwnershipControlsRequest) {\n DeleteBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketOwnershipControlsRequest || (DeleteBucketOwnershipControlsRequest = {}));\nexport var DeleteBucketPolicyRequest;\n(function (DeleteBucketPolicyRequest) {\n DeleteBucketPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketPolicyRequest || (DeleteBucketPolicyRequest = {}));\nexport var DeleteBucketReplicationRequest;\n(function (DeleteBucketReplicationRequest) {\n DeleteBucketReplicationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketReplicationRequest || (DeleteBucketReplicationRequest = {}));\nexport var DeleteBucketTaggingRequest;\n(function (DeleteBucketTaggingRequest) {\n DeleteBucketTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketTaggingRequest || (DeleteBucketTaggingRequest = {}));\nexport var DeleteBucketWebsiteRequest;\n(function (DeleteBucketWebsiteRequest) {\n DeleteBucketWebsiteRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketWebsiteRequest || (DeleteBucketWebsiteRequest = {}));\nexport var DeleteObjectOutput;\n(function (DeleteObjectOutput) {\n DeleteObjectOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectOutput || (DeleteObjectOutput = {}));\nexport var DeleteObjectRequest;\n(function (DeleteObjectRequest) {\n DeleteObjectRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectRequest || (DeleteObjectRequest = {}));\nexport var DeletedObject;\n(function (DeletedObject) {\n DeletedObject.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeletedObject || (DeletedObject = {}));\nexport var _Error;\n(function (_Error) {\n _Error.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(_Error || (_Error = {}));\nexport var DeleteObjectsOutput;\n(function (DeleteObjectsOutput) {\n DeleteObjectsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectsOutput || (DeleteObjectsOutput = {}));\nexport var ObjectIdentifier;\n(function (ObjectIdentifier) {\n ObjectIdentifier.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectIdentifier || (ObjectIdentifier = {}));\nexport var Delete;\n(function (Delete) {\n Delete.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Delete || (Delete = {}));\nexport var DeleteObjectsRequest;\n(function (DeleteObjectsRequest) {\n DeleteObjectsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectsRequest || (DeleteObjectsRequest = {}));\nexport var DeleteObjectTaggingOutput;\n(function (DeleteObjectTaggingOutput) {\n DeleteObjectTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectTaggingOutput || (DeleteObjectTaggingOutput = {}));\nexport var DeleteObjectTaggingRequest;\n(function (DeleteObjectTaggingRequest) {\n DeleteObjectTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectTaggingRequest || (DeleteObjectTaggingRequest = {}));\nexport var DeletePublicAccessBlockRequest;\n(function (DeletePublicAccessBlockRequest) {\n DeletePublicAccessBlockRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeletePublicAccessBlockRequest || (DeletePublicAccessBlockRequest = {}));\nexport var GetBucketAccelerateConfigurationOutput;\n(function (GetBucketAccelerateConfigurationOutput) {\n GetBucketAccelerateConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAccelerateConfigurationOutput || (GetBucketAccelerateConfigurationOutput = {}));\nexport var GetBucketAccelerateConfigurationRequest;\n(function (GetBucketAccelerateConfigurationRequest) {\n GetBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAccelerateConfigurationRequest || (GetBucketAccelerateConfigurationRequest = {}));\nexport var GetBucketAclOutput;\n(function (GetBucketAclOutput) {\n GetBucketAclOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAclOutput || (GetBucketAclOutput = {}));\nexport var GetBucketAclRequest;\n(function (GetBucketAclRequest) {\n GetBucketAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAclRequest || (GetBucketAclRequest = {}));\nexport var Tag;\n(function (Tag) {\n Tag.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tag || (Tag = {}));\nexport var AnalyticsAndOperator;\n(function (AnalyticsAndOperator) {\n AnalyticsAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AnalyticsAndOperator || (AnalyticsAndOperator = {}));\nexport var AnalyticsFilter;\n(function (AnalyticsFilter) {\n AnalyticsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n AnalyticsFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: AnalyticsAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(AnalyticsFilter || (AnalyticsFilter = {}));\nexport var AnalyticsS3BucketDestination;\n(function (AnalyticsS3BucketDestination) {\n AnalyticsS3BucketDestination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AnalyticsS3BucketDestination || (AnalyticsS3BucketDestination = {}));\nexport var AnalyticsExportDestination;\n(function (AnalyticsExportDestination) {\n AnalyticsExportDestination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AnalyticsExportDestination || (AnalyticsExportDestination = {}));\nexport var StorageClassAnalysisDataExport;\n(function (StorageClassAnalysisDataExport) {\n StorageClassAnalysisDataExport.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StorageClassAnalysisDataExport || (StorageClassAnalysisDataExport = {}));\nexport var StorageClassAnalysis;\n(function (StorageClassAnalysis) {\n StorageClassAnalysis.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StorageClassAnalysis || (StorageClassAnalysis = {}));\nexport var AnalyticsConfiguration;\n(function (AnalyticsConfiguration) {\n AnalyticsConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: AnalyticsFilter.filterSensitiveLog(obj.Filter) }))); };\n})(AnalyticsConfiguration || (AnalyticsConfiguration = {}));\nexport var GetBucketAnalyticsConfigurationOutput;\n(function (GetBucketAnalyticsConfigurationOutput) {\n GetBucketAnalyticsConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration),\n }))); };\n})(GetBucketAnalyticsConfigurationOutput || (GetBucketAnalyticsConfigurationOutput = {}));\nexport var GetBucketAnalyticsConfigurationRequest;\n(function (GetBucketAnalyticsConfigurationRequest) {\n GetBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAnalyticsConfigurationRequest || (GetBucketAnalyticsConfigurationRequest = {}));\nexport var CORSRule;\n(function (CORSRule) {\n CORSRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CORSRule || (CORSRule = {}));\nexport var GetBucketCorsOutput;\n(function (GetBucketCorsOutput) {\n GetBucketCorsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketCorsOutput || (GetBucketCorsOutput = {}));\nexport var GetBucketCorsRequest;\n(function (GetBucketCorsRequest) {\n GetBucketCorsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketCorsRequest || (GetBucketCorsRequest = {}));\nexport var ServerSideEncryptionByDefault;\n(function (ServerSideEncryptionByDefault) {\n ServerSideEncryptionByDefault.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.KMSMasterKeyID && { KMSMasterKeyID: SENSITIVE_STRING }))); };\n})(ServerSideEncryptionByDefault || (ServerSideEncryptionByDefault = {}));\nexport var ServerSideEncryptionRule;\n(function (ServerSideEncryptionRule) {\n ServerSideEncryptionRule.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefault.filterSensitiveLog(obj.ApplyServerSideEncryptionByDefault),\n }))); };\n})(ServerSideEncryptionRule || (ServerSideEncryptionRule = {}));\nexport var ServerSideEncryptionConfiguration;\n(function (ServerSideEncryptionConfiguration) {\n ServerSideEncryptionConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return ServerSideEncryptionRule.filterSensitiveLog(item); }) }))); };\n})(ServerSideEncryptionConfiguration || (ServerSideEncryptionConfiguration = {}));\nexport var GetBucketEncryptionOutput;\n(function (GetBucketEncryptionOutput) {\n GetBucketEncryptionOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }))); };\n})(GetBucketEncryptionOutput || (GetBucketEncryptionOutput = {}));\nexport var GetBucketEncryptionRequest;\n(function (GetBucketEncryptionRequest) {\n GetBucketEncryptionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketEncryptionRequest || (GetBucketEncryptionRequest = {}));\nexport var IntelligentTieringAndOperator;\n(function (IntelligentTieringAndOperator) {\n IntelligentTieringAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IntelligentTieringAndOperator || (IntelligentTieringAndOperator = {}));\nexport var IntelligentTieringFilter;\n(function (IntelligentTieringFilter) {\n IntelligentTieringFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IntelligentTieringFilter || (IntelligentTieringFilter = {}));\nexport var Tiering;\n(function (Tiering) {\n Tiering.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tiering || (Tiering = {}));\nexport var IntelligentTieringConfiguration;\n(function (IntelligentTieringConfiguration) {\n IntelligentTieringConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IntelligentTieringConfiguration || (IntelligentTieringConfiguration = {}));\nexport var GetBucketIntelligentTieringConfigurationOutput;\n(function (GetBucketIntelligentTieringConfigurationOutput) {\n GetBucketIntelligentTieringConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketIntelligentTieringConfigurationOutput || (GetBucketIntelligentTieringConfigurationOutput = {}));\nexport var GetBucketIntelligentTieringConfigurationRequest;\n(function (GetBucketIntelligentTieringConfigurationRequest) {\n GetBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketIntelligentTieringConfigurationRequest || (GetBucketIntelligentTieringConfigurationRequest = {}));\nexport var SSEKMS;\n(function (SSEKMS) {\n SSEKMS.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.KeyId && { KeyId: SENSITIVE_STRING }))); };\n})(SSEKMS || (SSEKMS = {}));\nexport var SSES3;\n(function (SSES3) {\n SSES3.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SSES3 || (SSES3 = {}));\nexport var InventoryEncryption;\n(function (InventoryEncryption) {\n InventoryEncryption.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMS && { SSEKMS: SSEKMS.filterSensitiveLog(obj.SSEKMS) }))); };\n})(InventoryEncryption || (InventoryEncryption = {}));\nexport var InventoryS3BucketDestination;\n(function (InventoryS3BucketDestination) {\n InventoryS3BucketDestination.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Encryption && { Encryption: InventoryEncryption.filterSensitiveLog(obj.Encryption) }))); };\n})(InventoryS3BucketDestination || (InventoryS3BucketDestination = {}));\nexport var InventoryDestination;\n(function (InventoryDestination) {\n InventoryDestination.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.S3BucketDestination && {\n S3BucketDestination: InventoryS3BucketDestination.filterSensitiveLog(obj.S3BucketDestination),\n }))); };\n})(InventoryDestination || (InventoryDestination = {}));\nexport var InventoryFilter;\n(function (InventoryFilter) {\n InventoryFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InventoryFilter || (InventoryFilter = {}));\nexport var InventorySchedule;\n(function (InventorySchedule) {\n InventorySchedule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InventorySchedule || (InventorySchedule = {}));\nexport var InventoryConfiguration;\n(function (InventoryConfiguration) {\n InventoryConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Destination && { Destination: InventoryDestination.filterSensitiveLog(obj.Destination) }))); };\n})(InventoryConfiguration || (InventoryConfiguration = {}));\nexport var GetBucketInventoryConfigurationOutput;\n(function (GetBucketInventoryConfigurationOutput) {\n GetBucketInventoryConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration),\n }))); };\n})(GetBucketInventoryConfigurationOutput || (GetBucketInventoryConfigurationOutput = {}));\nexport var GetBucketInventoryConfigurationRequest;\n(function (GetBucketInventoryConfigurationRequest) {\n GetBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketInventoryConfigurationRequest || (GetBucketInventoryConfigurationRequest = {}));\nexport var LifecycleExpiration;\n(function (LifecycleExpiration) {\n LifecycleExpiration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LifecycleExpiration || (LifecycleExpiration = {}));\nexport var LifecycleRuleAndOperator;\n(function (LifecycleRuleAndOperator) {\n LifecycleRuleAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LifecycleRuleAndOperator || (LifecycleRuleAndOperator = {}));\nexport var LifecycleRuleFilter;\n(function (LifecycleRuleFilter) {\n LifecycleRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n LifecycleRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: LifecycleRuleAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(LifecycleRuleFilter || (LifecycleRuleFilter = {}));\nexport var NoncurrentVersionExpiration;\n(function (NoncurrentVersionExpiration) {\n NoncurrentVersionExpiration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoncurrentVersionExpiration || (NoncurrentVersionExpiration = {}));\nexport var NoncurrentVersionTransition;\n(function (NoncurrentVersionTransition) {\n NoncurrentVersionTransition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoncurrentVersionTransition || (NoncurrentVersionTransition = {}));\nexport var Transition;\n(function (Transition) {\n Transition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Transition || (Transition = {}));\nexport var LifecycleRule;\n(function (LifecycleRule) {\n LifecycleRule.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: LifecycleRuleFilter.filterSensitiveLog(obj.Filter) }))); };\n})(LifecycleRule || (LifecycleRule = {}));\nexport var GetBucketLifecycleConfigurationOutput;\n(function (GetBucketLifecycleConfigurationOutput) {\n GetBucketLifecycleConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return LifecycleRule.filterSensitiveLog(item); }) }))); };\n})(GetBucketLifecycleConfigurationOutput || (GetBucketLifecycleConfigurationOutput = {}));\nexport var GetBucketLifecycleConfigurationRequest;\n(function (GetBucketLifecycleConfigurationRequest) {\n GetBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLifecycleConfigurationRequest || (GetBucketLifecycleConfigurationRequest = {}));\nexport var GetBucketLocationOutput;\n(function (GetBucketLocationOutput) {\n GetBucketLocationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLocationOutput || (GetBucketLocationOutput = {}));\nexport var GetBucketLocationRequest;\n(function (GetBucketLocationRequest) {\n GetBucketLocationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLocationRequest || (GetBucketLocationRequest = {}));\nexport var TargetGrant;\n(function (TargetGrant) {\n TargetGrant.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TargetGrant || (TargetGrant = {}));\nexport var LoggingEnabled;\n(function (LoggingEnabled) {\n LoggingEnabled.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LoggingEnabled || (LoggingEnabled = {}));\nexport var GetBucketLoggingOutput;\n(function (GetBucketLoggingOutput) {\n GetBucketLoggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLoggingOutput || (GetBucketLoggingOutput = {}));\nexport var GetBucketLoggingRequest;\n(function (GetBucketLoggingRequest) {\n GetBucketLoggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLoggingRequest || (GetBucketLoggingRequest = {}));\nexport var MetricsAndOperator;\n(function (MetricsAndOperator) {\n MetricsAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MetricsAndOperator || (MetricsAndOperator = {}));\nexport var MetricsFilter;\n(function (MetricsFilter) {\n MetricsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n MetricsFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: MetricsAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(MetricsFilter || (MetricsFilter = {}));\nexport var MetricsConfiguration;\n(function (MetricsConfiguration) {\n MetricsConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: MetricsFilter.filterSensitiveLog(obj.Filter) }))); };\n})(MetricsConfiguration || (MetricsConfiguration = {}));\nexport var GetBucketMetricsConfigurationOutput;\n(function (GetBucketMetricsConfigurationOutput) {\n GetBucketMetricsConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration),\n }))); };\n})(GetBucketMetricsConfigurationOutput || (GetBucketMetricsConfigurationOutput = {}));\nexport var GetBucketMetricsConfigurationRequest;\n(function (GetBucketMetricsConfigurationRequest) {\n GetBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketMetricsConfigurationRequest || (GetBucketMetricsConfigurationRequest = {}));\nexport var GetBucketNotificationConfigurationRequest;\n(function (GetBucketNotificationConfigurationRequest) {\n GetBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketNotificationConfigurationRequest || (GetBucketNotificationConfigurationRequest = {}));\nexport var FilterRule;\n(function (FilterRule) {\n FilterRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(FilterRule || (FilterRule = {}));\nexport var S3KeyFilter;\n(function (S3KeyFilter) {\n S3KeyFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(S3KeyFilter || (S3KeyFilter = {}));\nexport var NotificationConfigurationFilter;\n(function (NotificationConfigurationFilter) {\n NotificationConfigurationFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotificationConfigurationFilter || (NotificationConfigurationFilter = {}));\nexport var LambdaFunctionConfiguration;\n(function (LambdaFunctionConfiguration) {\n LambdaFunctionConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LambdaFunctionConfiguration || (LambdaFunctionConfiguration = {}));\nexport var QueueConfiguration;\n(function (QueueConfiguration) {\n QueueConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(QueueConfiguration || (QueueConfiguration = {}));\nexport var TopicConfiguration;\n(function (TopicConfiguration) {\n TopicConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TopicConfiguration || (TopicConfiguration = {}));\nexport var NotificationConfiguration;\n(function (NotificationConfiguration) {\n NotificationConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotificationConfiguration || (NotificationConfiguration = {}));\nexport var OwnershipControlsRule;\n(function (OwnershipControlsRule) {\n OwnershipControlsRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OwnershipControlsRule || (OwnershipControlsRule = {}));\nexport var OwnershipControls;\n(function (OwnershipControls) {\n OwnershipControls.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OwnershipControls || (OwnershipControls = {}));\nexport var GetBucketOwnershipControlsOutput;\n(function (GetBucketOwnershipControlsOutput) {\n GetBucketOwnershipControlsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketOwnershipControlsOutput || (GetBucketOwnershipControlsOutput = {}));\nexport var GetBucketOwnershipControlsRequest;\n(function (GetBucketOwnershipControlsRequest) {\n GetBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketOwnershipControlsRequest || (GetBucketOwnershipControlsRequest = {}));\nexport var GetBucketPolicyOutput;\n(function (GetBucketPolicyOutput) {\n GetBucketPolicyOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyOutput || (GetBucketPolicyOutput = {}));\nexport var GetBucketPolicyRequest;\n(function (GetBucketPolicyRequest) {\n GetBucketPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyRequest || (GetBucketPolicyRequest = {}));\nexport var PolicyStatus;\n(function (PolicyStatus) {\n PolicyStatus.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PolicyStatus || (PolicyStatus = {}));\nexport var GetBucketPolicyStatusOutput;\n(function (GetBucketPolicyStatusOutput) {\n GetBucketPolicyStatusOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyStatusOutput || (GetBucketPolicyStatusOutput = {}));\nexport var GetBucketPolicyStatusRequest;\n(function (GetBucketPolicyStatusRequest) {\n GetBucketPolicyStatusRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyStatusRequest || (GetBucketPolicyStatusRequest = {}));\nexport var DeleteMarkerReplication;\n(function (DeleteMarkerReplication) {\n DeleteMarkerReplication.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteMarkerReplication || (DeleteMarkerReplication = {}));\nexport var EncryptionConfiguration;\n(function (EncryptionConfiguration) {\n EncryptionConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EncryptionConfiguration || (EncryptionConfiguration = {}));\nexport var ReplicationTimeValue;\n(function (ReplicationTimeValue) {\n ReplicationTimeValue.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicationTimeValue || (ReplicationTimeValue = {}));\nexport var Metrics;\n(function (Metrics) {\n Metrics.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Metrics || (Metrics = {}));\nexport var ReplicationTime;\n(function (ReplicationTime) {\n ReplicationTime.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicationTime || (ReplicationTime = {}));\nexport var Destination;\n(function (Destination) {\n Destination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Destination || (Destination = {}));\nexport var ExistingObjectReplication;\n(function (ExistingObjectReplication) {\n ExistingObjectReplication.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExistingObjectReplication || (ExistingObjectReplication = {}));\nexport var ReplicationRuleAndOperator;\n(function (ReplicationRuleAndOperator) {\n ReplicationRuleAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicationRuleAndOperator || (ReplicationRuleAndOperator = {}));\nexport var ReplicationRuleFilter;\n(function (ReplicationRuleFilter) {\n ReplicationRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n ReplicationRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: ReplicationRuleAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(ReplicationRuleFilter || (ReplicationRuleFilter = {}));\nexport var ReplicaModifications;\n(function (ReplicaModifications) {\n ReplicaModifications.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicaModifications || (ReplicaModifications = {}));\nexport var SseKmsEncryptedObjects;\n(function (SseKmsEncryptedObjects) {\n SseKmsEncryptedObjects.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SseKmsEncryptedObjects || (SseKmsEncryptedObjects = {}));\nexport var SourceSelectionCriteria;\n(function (SourceSelectionCriteria) {\n SourceSelectionCriteria.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SourceSelectionCriteria || (SourceSelectionCriteria = {}));\nexport var ReplicationRule;\n(function (ReplicationRule) {\n ReplicationRule.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: ReplicationRuleFilter.filterSensitiveLog(obj.Filter) }))); };\n})(ReplicationRule || (ReplicationRule = {}));\nexport var ReplicationConfiguration;\n(function (ReplicationConfiguration) {\n ReplicationConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return ReplicationRule.filterSensitiveLog(item); }) }))); };\n})(ReplicationConfiguration || (ReplicationConfiguration = {}));\nexport var GetBucketReplicationOutput;\n(function (GetBucketReplicationOutput) {\n GetBucketReplicationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration),\n }))); };\n})(GetBucketReplicationOutput || (GetBucketReplicationOutput = {}));\nexport var GetBucketReplicationRequest;\n(function (GetBucketReplicationRequest) {\n GetBucketReplicationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketReplicationRequest || (GetBucketReplicationRequest = {}));\nexport var GetBucketRequestPaymentOutput;\n(function (GetBucketRequestPaymentOutput) {\n GetBucketRequestPaymentOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketRequestPaymentOutput || (GetBucketRequestPaymentOutput = {}));\nexport var GetBucketRequestPaymentRequest;\n(function (GetBucketRequestPaymentRequest) {\n GetBucketRequestPaymentRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketRequestPaymentRequest || (GetBucketRequestPaymentRequest = {}));\nexport var GetBucketTaggingOutput;\n(function (GetBucketTaggingOutput) {\n GetBucketTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketTaggingOutput || (GetBucketTaggingOutput = {}));\nexport var GetBucketTaggingRequest;\n(function (GetBucketTaggingRequest) {\n GetBucketTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketTaggingRequest || (GetBucketTaggingRequest = {}));\nexport var GetBucketVersioningOutput;\n(function (GetBucketVersioningOutput) {\n GetBucketVersioningOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketVersioningOutput || (GetBucketVersioningOutput = {}));\nexport var GetBucketVersioningRequest;\n(function (GetBucketVersioningRequest) {\n GetBucketVersioningRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketVersioningRequest || (GetBucketVersioningRequest = {}));\nexport var ErrorDocument;\n(function (ErrorDocument) {\n ErrorDocument.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ErrorDocument || (ErrorDocument = {}));\nexport var IndexDocument;\n(function (IndexDocument) {\n IndexDocument.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IndexDocument || (IndexDocument = {}));\nexport var RedirectAllRequestsTo;\n(function (RedirectAllRequestsTo) {\n RedirectAllRequestsTo.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RedirectAllRequestsTo || (RedirectAllRequestsTo = {}));\nexport var Condition;\n(function (Condition) {\n Condition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Condition || (Condition = {}));\nexport var Redirect;\n(function (Redirect) {\n Redirect.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Redirect || (Redirect = {}));\nexport var RoutingRule;\n(function (RoutingRule) {\n RoutingRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RoutingRule || (RoutingRule = {}));\nexport var GetBucketWebsiteOutput;\n(function (GetBucketWebsiteOutput) {\n GetBucketWebsiteOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketWebsiteOutput || (GetBucketWebsiteOutput = {}));\nexport var GetBucketWebsiteRequest;\n(function (GetBucketWebsiteRequest) {\n GetBucketWebsiteRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketWebsiteRequest || (GetBucketWebsiteRequest = {}));\nexport var GetObjectOutput;\n(function (GetObjectOutput) {\n GetObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(GetObjectOutput || (GetObjectOutput = {}));\nexport var GetObjectRequest;\n(function (GetObjectRequest) {\n GetObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(GetObjectRequest || (GetObjectRequest = {}));\nexport var InvalidObjectState;\n(function (InvalidObjectState) {\n InvalidObjectState.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidObjectState || (InvalidObjectState = {}));\nexport var NoSuchKey;\n(function (NoSuchKey) {\n NoSuchKey.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoSuchKey || (NoSuchKey = {}));\nexport var GetObjectAclOutput;\n(function (GetObjectAclOutput) {\n GetObjectAclOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectAclOutput || (GetObjectAclOutput = {}));\nexport var GetObjectAclRequest;\n(function (GetObjectAclRequest) {\n GetObjectAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectAclRequest || (GetObjectAclRequest = {}));\nexport var ObjectLockLegalHold;\n(function (ObjectLockLegalHold) {\n ObjectLockLegalHold.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockLegalHold || (ObjectLockLegalHold = {}));\nexport var GetObjectLegalHoldOutput;\n(function (GetObjectLegalHoldOutput) {\n GetObjectLegalHoldOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLegalHoldOutput || (GetObjectLegalHoldOutput = {}));\nexport var GetObjectLegalHoldRequest;\n(function (GetObjectLegalHoldRequest) {\n GetObjectLegalHoldRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLegalHoldRequest || (GetObjectLegalHoldRequest = {}));\nexport var DefaultRetention;\n(function (DefaultRetention) {\n DefaultRetention.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DefaultRetention || (DefaultRetention = {}));\nexport var ObjectLockRule;\n(function (ObjectLockRule) {\n ObjectLockRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockRule || (ObjectLockRule = {}));\nexport var ObjectLockConfiguration;\n(function (ObjectLockConfiguration) {\n ObjectLockConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockConfiguration || (ObjectLockConfiguration = {}));\nexport var GetObjectLockConfigurationOutput;\n(function (GetObjectLockConfigurationOutput) {\n GetObjectLockConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLockConfigurationOutput || (GetObjectLockConfigurationOutput = {}));\nexport var GetObjectLockConfigurationRequest;\n(function (GetObjectLockConfigurationRequest) {\n GetObjectLockConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLockConfigurationRequest || (GetObjectLockConfigurationRequest = {}));\nexport var ObjectLockRetention;\n(function (ObjectLockRetention) {\n ObjectLockRetention.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockRetention || (ObjectLockRetention = {}));\nexport var GetObjectRetentionOutput;\n(function (GetObjectRetentionOutput) {\n GetObjectRetentionOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectRetentionOutput || (GetObjectRetentionOutput = {}));\nexport var GetObjectRetentionRequest;\n(function (GetObjectRetentionRequest) {\n GetObjectRetentionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectRetentionRequest || (GetObjectRetentionRequest = {}));\nexport var GetObjectTaggingOutput;\n(function (GetObjectTaggingOutput) {\n GetObjectTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTaggingOutput || (GetObjectTaggingOutput = {}));\nexport var GetObjectTaggingRequest;\n(function (GetObjectTaggingRequest) {\n GetObjectTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTaggingRequest || (GetObjectTaggingRequest = {}));\nexport var GetObjectTorrentOutput;\n(function (GetObjectTorrentOutput) {\n GetObjectTorrentOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTorrentOutput || (GetObjectTorrentOutput = {}));\nexport var GetObjectTorrentRequest;\n(function (GetObjectTorrentRequest) {\n GetObjectTorrentRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTorrentRequest || (GetObjectTorrentRequest = {}));\nexport var PublicAccessBlockConfiguration;\n(function (PublicAccessBlockConfiguration) {\n PublicAccessBlockConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PublicAccessBlockConfiguration || (PublicAccessBlockConfiguration = {}));\nexport var GetPublicAccessBlockOutput;\n(function (GetPublicAccessBlockOutput) {\n GetPublicAccessBlockOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetPublicAccessBlockOutput || (GetPublicAccessBlockOutput = {}));\nexport var GetPublicAccessBlockRequest;\n(function (GetPublicAccessBlockRequest) {\n GetPublicAccessBlockRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetPublicAccessBlockRequest || (GetPublicAccessBlockRequest = {}));\nexport var HeadBucketRequest;\n(function (HeadBucketRequest) {\n HeadBucketRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(HeadBucketRequest || (HeadBucketRequest = {}));\nexport var NoSuchBucket;\n(function (NoSuchBucket) {\n NoSuchBucket.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoSuchBucket || (NoSuchBucket = {}));\nexport var HeadObjectOutput;\n(function (HeadObjectOutput) {\n HeadObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(HeadObjectOutput || (HeadObjectOutput = {}));\nexport var HeadObjectRequest;\n(function (HeadObjectRequest) {\n HeadObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(HeadObjectRequest || (HeadObjectRequest = {}));\nexport var ListBucketAnalyticsConfigurationsOutput;\n(function (ListBucketAnalyticsConfigurationsOutput) {\n ListBucketAnalyticsConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.AnalyticsConfigurationList && {\n AnalyticsConfigurationList: obj.AnalyticsConfigurationList.map(function (item) {\n return AnalyticsConfiguration.filterSensitiveLog(item);\n }),\n }))); };\n})(ListBucketAnalyticsConfigurationsOutput || (ListBucketAnalyticsConfigurationsOutput = {}));\nexport var ListBucketAnalyticsConfigurationsRequest;\n(function (ListBucketAnalyticsConfigurationsRequest) {\n ListBucketAnalyticsConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketAnalyticsConfigurationsRequest || (ListBucketAnalyticsConfigurationsRequest = {}));\nexport var ListBucketIntelligentTieringConfigurationsOutput;\n(function (ListBucketIntelligentTieringConfigurationsOutput) {\n ListBucketIntelligentTieringConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketIntelligentTieringConfigurationsOutput || (ListBucketIntelligentTieringConfigurationsOutput = {}));\nexport var ListBucketIntelligentTieringConfigurationsRequest;\n(function (ListBucketIntelligentTieringConfigurationsRequest) {\n ListBucketIntelligentTieringConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketIntelligentTieringConfigurationsRequest || (ListBucketIntelligentTieringConfigurationsRequest = {}));\nexport var ListBucketInventoryConfigurationsOutput;\n(function (ListBucketInventoryConfigurationsOutput) {\n ListBucketInventoryConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map(function (item) {\n return InventoryConfiguration.filterSensitiveLog(item);\n }),\n }))); };\n})(ListBucketInventoryConfigurationsOutput || (ListBucketInventoryConfigurationsOutput = {}));\nexport var ListBucketInventoryConfigurationsRequest;\n(function (ListBucketInventoryConfigurationsRequest) {\n ListBucketInventoryConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketInventoryConfigurationsRequest || (ListBucketInventoryConfigurationsRequest = {}));\nexport var ListBucketMetricsConfigurationsOutput;\n(function (ListBucketMetricsConfigurationsOutput) {\n ListBucketMetricsConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.MetricsConfigurationList && {\n MetricsConfigurationList: obj.MetricsConfigurationList.map(function (item) {\n return MetricsConfiguration.filterSensitiveLog(item);\n }),\n }))); };\n})(ListBucketMetricsConfigurationsOutput || (ListBucketMetricsConfigurationsOutput = {}));\nexport var ListBucketMetricsConfigurationsRequest;\n(function (ListBucketMetricsConfigurationsRequest) {\n ListBucketMetricsConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketMetricsConfigurationsRequest || (ListBucketMetricsConfigurationsRequest = {}));\nexport var Bucket;\n(function (Bucket) {\n Bucket.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Bucket || (Bucket = {}));\nexport var ListBucketsOutput;\n(function (ListBucketsOutput) {\n ListBucketsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketsOutput || (ListBucketsOutput = {}));\nexport var CommonPrefix;\n(function (CommonPrefix) {\n CommonPrefix.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CommonPrefix || (CommonPrefix = {}));\nexport var Initiator;\n(function (Initiator) {\n Initiator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Initiator || (Initiator = {}));\nexport var MultipartUpload;\n(function (MultipartUpload) {\n MultipartUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MultipartUpload || (MultipartUpload = {}));\nexport var ListMultipartUploadsOutput;\n(function (ListMultipartUploadsOutput) {\n ListMultipartUploadsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListMultipartUploadsOutput || (ListMultipartUploadsOutput = {}));\nexport var ListMultipartUploadsRequest;\n(function (ListMultipartUploadsRequest) {\n ListMultipartUploadsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListMultipartUploadsRequest || (ListMultipartUploadsRequest = {}));\nexport var _Object;\n(function (_Object) {\n _Object.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(_Object || (_Object = {}));\nexport var ListObjectsOutput;\n(function (ListObjectsOutput) {\n ListObjectsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsOutput || (ListObjectsOutput = {}));\nexport var ListObjectsRequest;\n(function (ListObjectsRequest) {\n ListObjectsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsRequest || (ListObjectsRequest = {}));\nexport var ListObjectsV2Output;\n(function (ListObjectsV2Output) {\n ListObjectsV2Output.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsV2Output || (ListObjectsV2Output = {}));\nexport var ListObjectsV2Request;\n(function (ListObjectsV2Request) {\n ListObjectsV2Request.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsV2Request || (ListObjectsV2Request = {}));\nexport var DeleteMarkerEntry;\n(function (DeleteMarkerEntry) {\n DeleteMarkerEntry.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteMarkerEntry || (DeleteMarkerEntry = {}));\nexport var ObjectVersion;\n(function (ObjectVersion) {\n ObjectVersion.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectVersion || (ObjectVersion = {}));\nexport var ListObjectVersionsOutput;\n(function (ListObjectVersionsOutput) {\n ListObjectVersionsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectVersionsOutput || (ListObjectVersionsOutput = {}));\nexport var ListObjectVersionsRequest;\n(function (ListObjectVersionsRequest) {\n ListObjectVersionsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectVersionsRequest || (ListObjectVersionsRequest = {}));\nexport var Part;\n(function (Part) {\n Part.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Part || (Part = {}));\nexport var ListPartsOutput;\n(function (ListPartsOutput) {\n ListPartsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListPartsOutput || (ListPartsOutput = {}));\nexport var ListPartsRequest;\n(function (ListPartsRequest) {\n ListPartsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListPartsRequest || (ListPartsRequest = {}));\nexport var PutBucketAccelerateConfigurationRequest;\n(function (PutBucketAccelerateConfigurationRequest) {\n PutBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketAccelerateConfigurationRequest || (PutBucketAccelerateConfigurationRequest = {}));\nexport var PutBucketAclRequest;\n(function (PutBucketAclRequest) {\n PutBucketAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketAclRequest || (PutBucketAclRequest = {}));\nexport var PutBucketAnalyticsConfigurationRequest;\n(function (PutBucketAnalyticsConfigurationRequest) {\n PutBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration),\n }))); };\n})(PutBucketAnalyticsConfigurationRequest || (PutBucketAnalyticsConfigurationRequest = {}));\nexport var CORSConfiguration;\n(function (CORSConfiguration) {\n CORSConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CORSConfiguration || (CORSConfiguration = {}));\nexport var PutBucketCorsRequest;\n(function (PutBucketCorsRequest) {\n PutBucketCorsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketCorsRequest || (PutBucketCorsRequest = {}));\nexport var PutBucketEncryptionRequest;\n(function (PutBucketEncryptionRequest) {\n PutBucketEncryptionRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }))); };\n})(PutBucketEncryptionRequest || (PutBucketEncryptionRequest = {}));\nexport var PutBucketIntelligentTieringConfigurationRequest;\n(function (PutBucketIntelligentTieringConfigurationRequest) {\n PutBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketIntelligentTieringConfigurationRequest || (PutBucketIntelligentTieringConfigurationRequest = {}));\nexport var PutBucketInventoryConfigurationRequest;\n(function (PutBucketInventoryConfigurationRequest) {\n PutBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration),\n }))); };\n})(PutBucketInventoryConfigurationRequest || (PutBucketInventoryConfigurationRequest = {}));\nexport var BucketLifecycleConfiguration;\n(function (BucketLifecycleConfiguration) {\n BucketLifecycleConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return LifecycleRule.filterSensitiveLog(item); }) }))); };\n})(BucketLifecycleConfiguration || (BucketLifecycleConfiguration = {}));\nexport var PutBucketLifecycleConfigurationRequest;\n(function (PutBucketLifecycleConfigurationRequest) {\n PutBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.LifecycleConfiguration && {\n LifecycleConfiguration: BucketLifecycleConfiguration.filterSensitiveLog(obj.LifecycleConfiguration),\n }))); };\n})(PutBucketLifecycleConfigurationRequest || (PutBucketLifecycleConfigurationRequest = {}));\nexport var BucketLoggingStatus;\n(function (BucketLoggingStatus) {\n BucketLoggingStatus.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BucketLoggingStatus || (BucketLoggingStatus = {}));\nexport var PutBucketLoggingRequest;\n(function (PutBucketLoggingRequest) {\n PutBucketLoggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketLoggingRequest || (PutBucketLoggingRequest = {}));\nexport var PutBucketMetricsConfigurationRequest;\n(function (PutBucketMetricsConfigurationRequest) {\n PutBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration),\n }))); };\n})(PutBucketMetricsConfigurationRequest || (PutBucketMetricsConfigurationRequest = {}));\nexport var PutBucketNotificationConfigurationRequest;\n(function (PutBucketNotificationConfigurationRequest) {\n PutBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketNotificationConfigurationRequest || (PutBucketNotificationConfigurationRequest = {}));\nexport var PutBucketOwnershipControlsRequest;\n(function (PutBucketOwnershipControlsRequest) {\n PutBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketOwnershipControlsRequest || (PutBucketOwnershipControlsRequest = {}));\nexport var PutBucketPolicyRequest;\n(function (PutBucketPolicyRequest) {\n PutBucketPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketPolicyRequest || (PutBucketPolicyRequest = {}));\nexport var PutBucketReplicationRequest;\n(function (PutBucketReplicationRequest) {\n PutBucketReplicationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration),\n }))); };\n})(PutBucketReplicationRequest || (PutBucketReplicationRequest = {}));\nexport var RequestPaymentConfiguration;\n(function (RequestPaymentConfiguration) {\n RequestPaymentConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RequestPaymentConfiguration || (RequestPaymentConfiguration = {}));\nexport var PutBucketRequestPaymentRequest;\n(function (PutBucketRequestPaymentRequest) {\n PutBucketRequestPaymentRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketRequestPaymentRequest || (PutBucketRequestPaymentRequest = {}));\nexport var Tagging;\n(function (Tagging) {\n Tagging.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tagging || (Tagging = {}));\nexport var PutBucketTaggingRequest;\n(function (PutBucketTaggingRequest) {\n PutBucketTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketTaggingRequest || (PutBucketTaggingRequest = {}));\nexport var VersioningConfiguration;\n(function (VersioningConfiguration) {\n VersioningConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(VersioningConfiguration || (VersioningConfiguration = {}));\nexport var PutBucketVersioningRequest;\n(function (PutBucketVersioningRequest) {\n PutBucketVersioningRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketVersioningRequest || (PutBucketVersioningRequest = {}));\nexport var WebsiteConfiguration;\n(function (WebsiteConfiguration) {\n WebsiteConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(WebsiteConfiguration || (WebsiteConfiguration = {}));\nexport var PutBucketWebsiteRequest;\n(function (PutBucketWebsiteRequest) {\n PutBucketWebsiteRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketWebsiteRequest || (PutBucketWebsiteRequest = {}));\nexport var PutObjectOutput;\n(function (PutObjectOutput) {\n PutObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(PutObjectOutput || (PutObjectOutput = {}));\nexport var PutObjectRequest;\n(function (PutObjectRequest) {\n PutObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(PutObjectRequest || (PutObjectRequest = {}));\nexport var PutObjectAclOutput;\n(function (PutObjectAclOutput) {\n PutObjectAclOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectAclOutput || (PutObjectAclOutput = {}));\nexport var PutObjectAclRequest;\n(function (PutObjectAclRequest) {\n PutObjectAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectAclRequest || (PutObjectAclRequest = {}));\nexport var PutObjectLegalHoldOutput;\n(function (PutObjectLegalHoldOutput) {\n PutObjectLegalHoldOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLegalHoldOutput || (PutObjectLegalHoldOutput = {}));\nexport var PutObjectLegalHoldRequest;\n(function (PutObjectLegalHoldRequest) {\n PutObjectLegalHoldRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLegalHoldRequest || (PutObjectLegalHoldRequest = {}));\nexport var PutObjectLockConfigurationOutput;\n(function (PutObjectLockConfigurationOutput) {\n PutObjectLockConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLockConfigurationOutput || (PutObjectLockConfigurationOutput = {}));\nexport var PutObjectLockConfigurationRequest;\n(function (PutObjectLockConfigurationRequest) {\n PutObjectLockConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLockConfigurationRequest || (PutObjectLockConfigurationRequest = {}));\nexport var PutObjectRetentionOutput;\n(function (PutObjectRetentionOutput) {\n PutObjectRetentionOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectRetentionOutput || (PutObjectRetentionOutput = {}));\nexport var PutObjectRetentionRequest;\n(function (PutObjectRetentionRequest) {\n PutObjectRetentionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectRetentionRequest || (PutObjectRetentionRequest = {}));\nexport var PutObjectTaggingOutput;\n(function (PutObjectTaggingOutput) {\n PutObjectTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectTaggingOutput || (PutObjectTaggingOutput = {}));\nexport var PutObjectTaggingRequest;\n(function (PutObjectTaggingRequest) {\n PutObjectTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectTaggingRequest || (PutObjectTaggingRequest = {}));\nexport var PutPublicAccessBlockRequest;\n(function (PutPublicAccessBlockRequest) {\n PutPublicAccessBlockRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutPublicAccessBlockRequest || (PutPublicAccessBlockRequest = {}));\nexport var ObjectAlreadyInActiveTierError;\n(function (ObjectAlreadyInActiveTierError) {\n ObjectAlreadyInActiveTierError.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectAlreadyInActiveTierError || (ObjectAlreadyInActiveTierError = {}));\nexport var RestoreObjectOutput;\n(function (RestoreObjectOutput) {\n RestoreObjectOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RestoreObjectOutput || (RestoreObjectOutput = {}));\nexport var GlacierJobParameters;\n(function (GlacierJobParameters) {\n GlacierJobParameters.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GlacierJobParameters || (GlacierJobParameters = {}));\nexport var Encryption;\n(function (Encryption) {\n Encryption.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.KMSKeyId && { KMSKeyId: SENSITIVE_STRING }))); };\n})(Encryption || (Encryption = {}));\n//# sourceMappingURL=models_0.js.map","/**\n * Escapes characters that can not be in an XML attribute.\n */\nexport function escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLWF0dHJpYnV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtYXR0cmlidXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFhO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDMUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXNjYXBlcyBjaGFyYWN0ZXJzIHRoYXQgY2FuIG5vdCBiZSBpbiBhbiBYTUwgYXR0cmlidXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpLnJlcGxhY2UoLzwvZywgXCImbHQ7XCIpLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpLnJlcGxhY2UoL1wiL2csIFwiJnF1b3Q7XCIpO1xufVxuIl19","import { __values } from \"tslib\";\nimport { escapeAttribute } from \"./escape-attribute\";\n/**\n * Represents an XML node.\n */\nvar XmlNode = /** @class */ (function () {\n function XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n }\n XmlNode.prototype.withName = function (name) {\n this.name = name;\n return this;\n };\n XmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n };\n XmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n };\n XmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n };\n XmlNode.prototype.toString = function () {\n var e_1, _a;\n var hasChildren = Boolean(this.children.length);\n var xmlText = \"<\" + this.name;\n // add attributes\n var attributes = this.attributes;\n try {\n for (var _b = __values(Object.keys(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var attributeName = _c.value;\n var attribute = attributes[attributeName];\n if (typeof attribute !== \"undefined\" && attribute !== null) {\n xmlText += \" \" + attributeName + \"=\\\"\" + escapeAttribute(\"\" + attribute) + \"\\\"\";\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 (xmlText += !hasChildren ? \"/>\" : \">\" + this.children.map(function (c) { return c.toString(); }).join(\"\") + \"\");\n };\n return XmlNode;\n}());\nexport { XmlNode };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWG1sTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9YbWxOb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQ7O0dBRUc7QUFDSDtJQUdFLGlCQUFvQixJQUFZLEVBQWtCLFFBQTJCO1FBQTNCLHlCQUFBLEVBQUEsYUFBMkI7UUFBekQsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFrQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUZyRSxlQUFVLEdBQTRCLEVBQUUsQ0FBQztJQUUrQixDQUFDO0lBRWpGLDBCQUFRLEdBQVIsVUFBUyxJQUFZO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDhCQUFZLEdBQVosVUFBYSxJQUFZLEVBQUUsS0FBVTtRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCw4QkFBWSxHQUFaLFVBQWEsS0FBaUI7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUNBQWUsR0FBZixVQUFnQixJQUFZO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCwwQkFBUSxHQUFSOztRQUNFLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksT0FBTyxHQUFHLE1BQUksSUFBSSxDQUFDLElBQU0sQ0FBQztRQUM5QixpQkFBaUI7UUFDakIsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs7WUFDbkMsS0FBNEIsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBaEQsSUFBTSxhQUFhLFdBQUE7Z0JBQ3RCLElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtvQkFDMUQsT0FBTyxJQUFJLE1BQUksYUFBYSxXQUFLLGVBQWUsQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQUcsQ0FBQztpQkFDckU7YUFDRjs7Ozs7Ozs7O1FBRUQsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFaLENBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBSyxJQUFJLENBQUMsSUFBSSxNQUFHLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBQ0gsY0FBQztBQUFELENBQUMsQUF2Q0QsSUF1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlc2NhcGVBdHRyaWJ1dGUgfSBmcm9tIFwiLi9lc2NhcGUtYXR0cmlidXRlXCI7XG5pbXBvcnQgeyBTdHJpbmdhYmxlIH0gZnJvbSBcIi4vc3RyaW5nYWJsZVwiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gWE1MIG5vZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBYbWxOb2RlIHtcbiAgcHJpdmF0ZSBhdHRyaWJ1dGVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmFtZTogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgY2hpbGRyZW46IFN0cmluZ2FibGVbXSA9IFtdKSB7fVxuXG4gIHdpdGhOYW1lKG5hbWU6IHN0cmluZyk6IFhtbE5vZGUge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRBdHRyaWJ1dGUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogWG1sTm9kZSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRDaGlsZE5vZGUoY2hpbGQ6IFN0cmluZ2FibGUpOiBYbWxOb2RlIHtcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVtb3ZlQXR0cmlidXRlKG5hbWU6IHN0cmluZyk6IFhtbE5vZGUge1xuICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gQm9vbGVhbih0aGlzLmNoaWxkcmVuLmxlbmd0aCk7XG4gICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgLy8gYWRkIGF0dHJpYnV0ZXNcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzO1xuICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgYXR0cmlidXRlICE9PSBcInVuZGVmaW5lZFwiICYmIGF0dHJpYnV0ZSAhPT0gbnVsbCkge1xuICAgICAgICB4bWxUZXh0ICs9IGAgJHthdHRyaWJ1dGVOYW1lfT1cIiR7ZXNjYXBlQXR0cmlidXRlKFwiXCIgKyBhdHRyaWJ1dGUpfVwiYDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKHhtbFRleHQgKz0gIWhhc0NoaWxkcmVuID8gXCIvPlwiIDogYD4ke3RoaXMuY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvU3RyaW5nKCkpLmpvaW4oXCJcIil9PC8ke3RoaXMubmFtZX0+YCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Escapes characters that can not be in an XML element.\n */\nexport function escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXNjYXBlLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWE7SUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXNjYXBlcyBjaGFyYWN0ZXJzIHRoYXQgY2FuIG5vdCBiZSBpbiBhbiBYTUwgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUVsZW1lbnQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8mL2csIFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLCBcIiZsdDtcIikucmVwbGFjZSgvPi9nLCBcIiZndDtcIik7XG59XG4iXX0=","import { escapeElement } from \"./escape-element\";\n/**\n * Represents an XML text value.\n */\nvar XmlText = /** @class */ (function () {\n function XmlText(value) {\n this.value = value;\n }\n XmlText.prototype.toString = function () {\n return escapeElement(\"\" + this.value);\n };\n return XmlText;\n}());\nexport { XmlText };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWG1sVGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9YbWxUZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRDs7R0FFRztBQUNIO0lBQ0UsaUJBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQUcsQ0FBQztJQUVyQywwQkFBUSxHQUFSO1FBQ0UsT0FBTyxhQUFhLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0gsY0FBQztBQUFELENBQUMsQUFORCxJQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXNjYXBlRWxlbWVudCB9IGZyb20gXCIuL2VzY2FwZS1lbGVtZW50XCI7XG5pbXBvcnQgeyBTdHJpbmdhYmxlIH0gZnJvbSBcIi4vc3RyaW5nYWJsZVwiO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFhNTCB0ZXh0IHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgWG1sVGV4dCBpbXBsZW1lbnRzIFN0cmluZ2FibGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbHVlOiBzdHJpbmcpIHt9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZXNjYXBlRWxlbWVudChcIlwiICsgdGhpcy52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { AnalyticsFilter, LifecycleRuleFilter, MetricsFilter, ReplicationRuleFilter, } from \"../models/models_0\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { dateToUtcString as __dateToUtcString, extendedEncodeURIComponent as __extendedEncodeURIComponent, getArrayIfSingleItem as __getArrayIfSingleItem, getValueFromTextNode as __getValueFromTextNode, } from \"@aws-sdk/smithy-client\";\nimport { XmlNode as __XmlNode, XmlText as __XmlText } from \"@aws-sdk/xml-builder\";\nimport { parse as xmlParse } from \"fast-xml-parser\";\nexport var serializeAws_restXmlAbortMultipartUploadCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"x-id\": \"AbortMultipartUpload\" }, (input.UploadId !== undefined && { uploadId: input.UploadId }));\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCompleteMultipartUploadCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({}, (input.UploadId !== undefined && { uploadId: input.UploadId }));\n if (input.MultipartUpload !== undefined) {\n contents = serializeAws_restXmlCompletedMultipartUpload(input.MultipartUpload, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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 query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCopyObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.CacheControl) && { \"cache-control\": input.CacheControl })), (isSerializableHeaderValue(input.ContentDisposition) && { \"content-disposition\": input.ContentDisposition })), (isSerializableHeaderValue(input.ContentEncoding) && { \"content-encoding\": input.ContentEncoding })), (isSerializableHeaderValue(input.ContentLanguage) && { \"content-language\": input.ContentLanguage })), (isSerializableHeaderValue(input.ContentType) && { \"content-type\": input.ContentType })), (isSerializableHeaderValue(input.CopySource) && { \"x-amz-copy-source\": input.CopySource })), (isSerializableHeaderValue(input.CopySourceIfMatch) && {\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfModifiedSince) && {\n \"x-amz-copy-source-if-modified-since\": __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.CopySourceIfNoneMatch) && {\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince) && {\n \"x-amz-copy-source-if-unmodified-since\": __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires).toString() })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.MetadataDirective) && { \"x-amz-metadata-directive\": input.MetadataDirective })), (isSerializableHeaderValue(input.TaggingDirective) && { \"x-amz-tagging-directive\": input.TaggingDirective })), (isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n })), (isSerializableHeaderValue(input.StorageClass) && { \"x-amz-storage-class\": input.StorageClass })), (isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n })), (isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n })), (isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString(),\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerAlgorithm) && {\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKey) && {\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKeyMD5) && {\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Tagging) && { \"x-amz-tagging\": input.Tagging })), (isSerializableHeaderValue(input.ObjectLockMode) && { \"x-amz-object-lock-mode\": input.ObjectLockMode })), (isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (isSerializableHeaderValue(input.ExpectedSourceBucketOwner) && {\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n })), (input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a)));\n }, {})));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n \"x-id\": \"CopyObject\",\n };\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCreateBucketCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWrite) && { \"x-amz-grant-write\": input.GrantWrite })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ObjectLockEnabledForBucket) && {\n \"x-amz-bucket-object-lock-enabled\": input.ObjectLockEnabledForBucket.toString(),\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.CreateBucketConfiguration !== undefined) {\n contents = serializeAws_restXmlCreateBucketConfiguration(input.CreateBucketConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCreateMultipartUploadCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.CacheControl) && { \"cache-control\": input.CacheControl })), (isSerializableHeaderValue(input.ContentDisposition) && { \"content-disposition\": input.ContentDisposition })), (isSerializableHeaderValue(input.ContentEncoding) && { \"content-encoding\": input.ContentEncoding })), (isSerializableHeaderValue(input.ContentLanguage) && { \"content-language\": input.ContentLanguage })), (isSerializableHeaderValue(input.ContentType) && { \"content-type\": input.ContentType })), (isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires).toString() })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n })), (isSerializableHeaderValue(input.StorageClass) && { \"x-amz-storage-class\": input.StorageClass })), (isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n })), (isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n })), (isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString(),\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Tagging) && { \"x-amz-tagging\": input.Tagging })), (isSerializableHeaderValue(input.ObjectLockMode) && { \"x-amz-object-lock-mode\": input.ObjectLockMode })), (isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a)));\n }, {})));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n uploads: \"\",\n };\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 query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\" }, (input.Id !== undefined && { id: input.Id }));\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketCorsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n cors: \"\",\n };\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n encryption: \"\",\n };\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\" }, (input.Id !== undefined && { id: input.Id }));\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketInventoryConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\" }, (input.Id !== undefined && { id: input.Id }));\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketLifecycleCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n lifecycle: \"\",\n };\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketMetricsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\" }, (input.Id !== undefined && { id: input.Id }));\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketOwnershipControlsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n ownershipControls: \"\",\n };\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketPolicyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policy: \"\",\n };\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketReplicationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n replication: \"\",\n };\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n tagging: \"\",\n };\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketWebsiteCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n website: \"\",\n };\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.MFA) && { \"x-amz-mfa\": input.MFA })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString(),\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"x-id\": \"DeleteObject\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteObjectsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.MFA) && { \"x-amz-mfa\": input.MFA })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString(),\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n delete: \"\",\n };\n if (input.Delete !== undefined) {\n contents = serializeAws_restXmlDelete(input.Delete, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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 query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteObjectTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ tagging: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeletePublicAccessBlockCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n publicAccessBlock: \"\",\n };\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: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketAccelerateConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n accelerate: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n acl: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketAnalyticsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\", \"x-id\": \"GetBucketAnalyticsConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketCorsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n cors: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n encryption: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\", \"x-id\": \"GetBucketIntelligentTieringConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketInventoryConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\", \"x-id\": \"GetBucketInventoryConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketLifecycleConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n lifecycle: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketLocationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n location: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketLoggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n logging: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketMetricsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\", \"x-id\": \"GetBucketMetricsConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketNotificationConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n notification: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketOwnershipControlsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n ownershipControls: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketPolicyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policy: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketPolicyStatusCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policyStatus: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketReplicationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n replication: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketRequestPaymentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n requestPayment: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n tagging: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketVersioningCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n versioning: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketWebsiteCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n website: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.IfMatch) && { \"if-match\": input.IfMatch })), (isSerializableHeaderValue(input.IfModifiedSince) && {\n \"if-modified-since\": __dateToUtcString(input.IfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.IfNoneMatch) && { \"if-none-match\": input.IfNoneMatch })), (isSerializableHeaderValue(input.IfUnmodifiedSince) && {\n \"if-unmodified-since\": __dateToUtcString(input.IfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.Range) && { range: input.Range })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"x-id\": \"GetObject\" }, (input.ResponseCacheControl !== undefined && { \"response-cache-control\": input.ResponseCacheControl })), (input.ResponseContentDisposition !== undefined && {\n \"response-content-disposition\": input.ResponseContentDisposition,\n })), (input.ResponseContentEncoding !== undefined && { \"response-content-encoding\": input.ResponseContentEncoding })), (input.ResponseContentLanguage !== undefined && { \"response-content-language\": input.ResponseContentLanguage })), (input.ResponseContentType !== undefined && { \"response-content-type\": input.ResponseContentType })), (input.ResponseExpires !== undefined && {\n \"response-expires\": (input.ResponseExpires.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (input.VersionId !== undefined && { versionId: input.VersionId })), (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ acl: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectLegalHoldCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"legal-hold\": \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectLockConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n \"object-lock\": \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectRetentionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ retention: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ tagging: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectTorrentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n torrent: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetPublicAccessBlockCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n publicAccessBlock: \"\",\n };\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlHeadBucketCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\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: \"HEAD\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlHeadObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.IfMatch) && { \"if-match\": input.IfMatch })), (isSerializableHeaderValue(input.IfModifiedSince) && {\n \"if-modified-since\": __dateToUtcString(input.IfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.IfNoneMatch) && { \"if-none-match\": input.IfNoneMatch })), (isSerializableHeaderValue(input.IfUnmodifiedSince) && {\n \"if-unmodified-since\": __dateToUtcString(input.IfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.Range) && { range: input.Range })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign({}, (input.VersionId !== undefined && { versionId: input.VersionId })), (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() }));\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: \"HEAD\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketAnalyticsConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\", \"x-id\": \"ListBucketAnalyticsConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\", \"x-id\": \"ListBucketIntelligentTieringConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketInventoryConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\", \"x-id\": \"ListBucketInventoryConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketMetricsConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\", \"x-id\": \"ListBucketMetricsConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketsCommand = 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 resolvedPath = \"/\";\n body = \"\";\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListMultipartUploadsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign({ uploads: \"\" }, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.KeyMarker !== undefined && { \"key-marker\": input.KeyMarker })), (input.MaxUploads !== undefined && { \"max-uploads\": input.MaxUploads.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.UploadIdMarker !== undefined && { \"upload-id-marker\": input.UploadIdMarker }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListObjectsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign({}, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.Marker !== undefined && { marker: input.Marker })), (input.MaxKeys !== undefined && { \"max-keys\": input.MaxKeys.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListObjectsV2Command = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"list-type\": \"2\" }, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.MaxKeys !== undefined && { \"max-keys\": input.MaxKeys.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken })), (input.FetchOwner !== undefined && { \"fetch-owner\": input.FetchOwner.toString() })), (input.StartAfter !== undefined && { \"start-after\": input.StartAfter }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListObjectVersionsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign({ versions: \"\" }, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.KeyMarker !== undefined && { \"key-marker\": input.KeyMarker })), (input.MaxKeys !== undefined && { \"max-keys\": input.MaxKeys.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.VersionIdMarker !== undefined && { \"version-id-marker\": input.VersionIdMarker }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListPartsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign(__assign({ \"x-id\": \"ListParts\" }, (input.MaxParts !== undefined && { \"max-parts\": input.MaxParts.toString() })), (input.PartNumberMarker !== undefined && { \"part-number-marker\": input.PartNumberMarker })), (input.UploadId !== undefined && { uploadId: input.UploadId }));\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: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketAccelerateConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n accelerate: \"\",\n };\n if (input.AccelerateConfiguration !== undefined) {\n contents = serializeAws_restXmlAccelerateConfiguration(input.AccelerateConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWrite) && { \"x-amz-grant-write\": input.GrantWrite })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n acl: \"\",\n };\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketAnalyticsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.AnalyticsConfiguration !== undefined) {\n contents = serializeAws_restXmlAnalyticsConfiguration(input.AnalyticsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketCorsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n cors: \"\",\n };\n if (input.CORSConfiguration !== undefined) {\n contents = serializeAws_restXmlCORSConfiguration(input.CORSConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n encryption: \"\",\n };\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n contents = serializeAws_restXmlServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {\n \"content-type\": \"application/xml\",\n };\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.IntelligentTieringConfiguration !== undefined) {\n contents = serializeAws_restXmlIntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketInventoryConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.InventoryConfiguration !== undefined) {\n contents = serializeAws_restXmlInventoryConfiguration(input.InventoryConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketLifecycleConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n lifecycle: \"\",\n };\n if (input.LifecycleConfiguration !== undefined) {\n contents = serializeAws_restXmlBucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketLoggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n logging: \"\",\n };\n if (input.BucketLoggingStatus !== undefined) {\n contents = serializeAws_restXmlBucketLoggingStatus(input.BucketLoggingStatus, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketMetricsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.MetricsConfiguration !== undefined) {\n contents = serializeAws_restXmlMetricsConfiguration(input.MetricsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketNotificationConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n notification: \"\",\n };\n if (input.NotificationConfiguration !== undefined) {\n contents = serializeAws_restXmlNotificationConfiguration(input.NotificationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketOwnershipControlsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n ownershipControls: \"\",\n };\n if (input.OwnershipControls !== undefined) {\n contents = serializeAws_restXmlOwnershipControls(input.OwnershipControls, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketPolicyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"text/plain\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ConfirmRemoveSelfBucketAccess) && {\n \"x-amz-confirm-remove-self-bucket-access\": input.ConfirmRemoveSelfBucketAccess.toString(),\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policy: \"\",\n };\n if (input.Policy !== undefined) {\n contents = input.Policy;\n body = contents;\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketReplicationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.Token) && { \"x-amz-bucket-object-lock-token\": input.Token })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n replication: \"\",\n };\n if (input.ReplicationConfiguration !== undefined) {\n contents = serializeAws_restXmlReplicationConfiguration(input.ReplicationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketRequestPaymentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n requestPayment: \"\",\n };\n if (input.RequestPaymentConfiguration !== undefined) {\n contents = serializeAws_restXmlRequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n tagging: \"\",\n };\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketVersioningCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.MFA) && { \"x-amz-mfa\": input.MFA })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n versioning: \"\",\n };\n if (input.VersioningConfiguration !== undefined) {\n contents = serializeAws_restXmlVersioningConfiguration(input.VersioningConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketWebsiteCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n website: \"\",\n };\n if (input.WebsiteConfiguration !== undefined) {\n contents = serializeAws_restXmlWebsiteConfiguration(input.WebsiteConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/octet-stream\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.CacheControl) && { \"cache-control\": input.CacheControl })), (isSerializableHeaderValue(input.ContentDisposition) && { \"content-disposition\": input.ContentDisposition })), (isSerializableHeaderValue(input.ContentEncoding) && { \"content-encoding\": input.ContentEncoding })), (isSerializableHeaderValue(input.ContentLanguage) && { \"content-language\": input.ContentLanguage })), (isSerializableHeaderValue(input.ContentLength) && { \"content-length\": input.ContentLength.toString() })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ContentType) && { \"content-type\": input.ContentType })), (isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires).toString() })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n })), (isSerializableHeaderValue(input.StorageClass) && { \"x-amz-storage-class\": input.StorageClass })), (isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n })), (isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n })), (isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString(),\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Tagging) && { \"x-amz-tagging\": input.Tagging })), (isSerializableHeaderValue(input.ObjectLockMode) && { \"x-amz-object-lock-mode\": input.ObjectLockMode })), (isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a)));\n }, {})));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n \"x-id\": \"PutObject\",\n };\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWrite) && { \"x-amz-grant-write\": input.GrantWrite })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ acl: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectLegalHoldCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"legal-hold\": \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.LegalHold !== undefined) {\n contents = serializeAws_restXmlObjectLockLegalHold(input.LegalHold, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectLockConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Token) && { \"x-amz-bucket-object-lock-token\": input.Token })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n \"object-lock\": \"\",\n };\n if (input.ObjectLockConfiguration !== undefined) {\n contents = serializeAws_restXmlObjectLockConfiguration(input.ObjectLockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectRetentionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString(),\n })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ retention: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.Retention !== undefined) {\n contents = serializeAws_restXmlObjectLockRetention(input.Retention, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ tagging: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutPublicAccessBlockCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n publicAccessBlock: \"\",\n };\n if (input.PublicAccessBlockConfiguration !== undefined) {\n contents = serializeAws_restXmlPublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlRestoreObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ restore: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.RestoreRequest !== undefined) {\n contents = serializeAws_restXmlRestoreRequest(input.RestoreRequest, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\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 query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlSelectObjectContentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, bodyNode, node, node, node, node, node, node, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n select: \"\",\n \"select-type\": \"2\",\n };\n body = '';\n bodyNode = new __XmlNode(\"SelectObjectContentRequest\");\n bodyNode.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n if (input.Expression !== undefined) {\n node = new __XmlNode(\"Expression\").addChildNode(new __XmlText(input.Expression)).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType !== undefined) {\n node = new __XmlNode(\"ExpressionType\")\n .addChildNode(new __XmlText(input.ExpressionType))\n .withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.InputSerialization !== undefined) {\n node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization !== undefined) {\n node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.RequestProgress !== undefined) {\n node = serializeAws_restXmlRequestProgress(input.RequestProgress, context).withName(\"RequestProgress\");\n bodyNode.addChildNode(node);\n }\n if (input.ScanRange !== undefined) {\n node = serializeAws_restXmlScanRange(input.ScanRange, context).withName(\"ScanRange\");\n bodyNode.addChildNode(node);\n }\n body += bodyNode.toString();\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 query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlUploadPartCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/octet-stream\" }, (isSerializableHeaderValue(input.ContentLength) && { \"content-length\": input.ContentLength.toString() })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign({ \"x-id\": \"UploadPart\" }, (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() })), (input.UploadId !== undefined && { uploadId: input.UploadId }));\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlUploadPartCopyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.CopySource) && { \"x-amz-copy-source\": input.CopySource })), (isSerializableHeaderValue(input.CopySourceIfMatch) && {\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfModifiedSince) && {\n \"x-amz-copy-source-if-modified-since\": __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.CopySourceIfNoneMatch) && {\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince) && {\n \"x-amz-copy-source-if-unmodified-since\": __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.CopySourceRange) && { \"x-amz-copy-source-range\": input.CopySourceRange })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerAlgorithm) && {\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKey) && {\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKeyMD5) && {\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (isSerializableHeaderValue(input.ExpectedSourceBucketOwner) && {\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign({ \"x-id\": \"UploadPartCopy\" }, (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() })), (input.UploadId !== undefined && { uploadId: input.UploadId }));\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: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var deserializeAws_restXmlAbortMultipartUploadCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlAbortMultipartUploadCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\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_restXmlAbortMultipartUploadCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchUpload\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchUpload\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchUploadResponse(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_restXmlCompleteMultipartUploadCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlCompleteMultipartUploadCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Bucket: undefined,\n BucketKeyEnabled: undefined,\n ETag: undefined,\n Expiration: undefined,\n Key: undefined,\n Location: undefined,\n RequestCharged: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = data[\"ETag\"];\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = data[\"Key\"];\n }\n if (data[\"Location\"] !== undefined) {\n contents.Location = data[\"Location\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCompleteMultipartUploadCommandError = 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 = loadRestXmlErrorCode(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_restXmlCopyObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlCopyObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n CopyObjectResult: undefined,\n CopySourceVersionId: undefined,\n Expiration: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-copy-source-version-id\"] !== undefined) {\n contents.CopySourceVersionId = output.headers[\"x-amz-copy-source-version-id\"];\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.CopyObjectResult = deserializeAws_restXmlCopyObjectResult(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCopyObjectCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ObjectNotInActiveTierError\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#ObjectNotInActiveTierError\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlObjectNotInActiveTierErrorResponse(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_restXmlCreateBucketCommand = 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_restXmlCreateBucketCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Location: undefined,\n };\n if (output.headers[\"location\"] !== undefined) {\n contents.Location = output.headers[\"location\"];\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_restXmlCreateBucketCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"BucketAlreadyExists\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#BucketAlreadyExists\": return [3 /*break*/, 2];\n case \"BucketAlreadyOwnedByYou\": return [3 /*break*/, 4];\n case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\": return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlBucketAlreadyExistsResponse(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_restXmlBucketAlreadyOwnedByYouResponse(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_restXmlCreateMultipartUploadCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlCreateMultipartUploadCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AbortDate: undefined,\n AbortRuleId: undefined,\n Bucket: undefined,\n BucketKeyEnabled: undefined,\n Key: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n UploadId: undefined,\n };\n if (output.headers[\"x-amz-abort-date\"] !== undefined) {\n contents.AbortDate = new Date(output.headers[\"x-amz-abort-date\"]);\n }\n if (output.headers[\"x-amz-abort-rule-id\"] !== undefined) {\n contents.AbortRuleId = output.headers[\"x-amz-abort-rule-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = data[\"Key\"];\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = data[\"UploadId\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCreateMultipartUploadCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketCommandError(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_restXmlDeleteBucketCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketAnalyticsConfigurationCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError(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_restXmlDeleteBucketAnalyticsConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketCorsCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketCorsCommandError(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_restXmlDeleteBucketCorsCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketEncryptionCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketEncryptionCommandError(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_restXmlDeleteBucketEncryptionCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketIntelligentTieringConfigurationCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError(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_restXmlDeleteBucketIntelligentTieringConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketInventoryConfigurationCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError(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_restXmlDeleteBucketInventoryConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketLifecycleCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketLifecycleCommandError(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_restXmlDeleteBucketLifecycleCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketMetricsConfigurationCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError(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_restXmlDeleteBucketMetricsConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketOwnershipControlsCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError(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_restXmlDeleteBucketOwnershipControlsCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketPolicyCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketPolicyCommandError(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_restXmlDeleteBucketPolicyCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketReplicationCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketReplicationCommandError(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_restXmlDeleteBucketReplicationCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketTaggingCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketTaggingCommandError(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_restXmlDeleteBucketTaggingCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteBucketWebsiteCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketWebsiteCommandError(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_restXmlDeleteBucketWebsiteCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteObjectCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n DeleteMarker: undefined,\n RequestCharged: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = output.headers[\"x-amz-delete-marker\"] === \"true\";\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\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_restXmlDeleteObjectCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteObjectsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlDeleteObjectsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Deleted: undefined,\n Errors: undefined,\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.Deleted === \"\") {\n contents.Deleted = [];\n }\n if (data[\"Deleted\"] !== undefined) {\n contents.Deleted = deserializeAws_restXmlDeletedObjects(__getArrayIfSingleItem(data[\"Deleted\"]), context);\n }\n if (data.Error === \"\") {\n contents.Errors = [];\n }\n if (data[\"Error\"] !== undefined) {\n contents.Errors = deserializeAws_restXmlErrors(__getArrayIfSingleItem(data[\"Error\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteObjectsCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeleteObjectTaggingCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteObjectTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\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_restXmlDeleteObjectTaggingCommandError = 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 = loadRestXmlErrorCode(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_restXmlDeletePublicAccessBlockCommand = 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 !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeletePublicAccessBlockCommandError(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_restXmlDeletePublicAccessBlockCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketAccelerateConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketAccelerateConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Status: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Status\"] !== undefined) {\n contents.Status = data[\"Status\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Grants: undefined,\n Owner: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketAclCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketAnalyticsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketAnalyticsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AnalyticsConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.AnalyticsConfiguration = deserializeAws_restXmlAnalyticsConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketCorsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketCorsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CORSRules: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CORSRule === \"\") {\n contents.CORSRules = [];\n }\n if (data[\"CORSRule\"] !== undefined) {\n contents.CORSRules = deserializeAws_restXmlCORSRules(__getArrayIfSingleItem(data[\"CORSRule\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketCorsCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketEncryptionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketEncryptionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ServerSideEncryptionConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.ServerSideEncryptionConfiguration = deserializeAws_restXmlServerSideEncryptionConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketEncryptionCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketIntelligentTieringConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n IntelligentTieringConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.IntelligentTieringConfiguration = deserializeAws_restXmlIntelligentTieringConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketInventoryConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketInventoryConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n InventoryConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.InventoryConfiguration = deserializeAws_restXmlInventoryConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketInventoryConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketLifecycleConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketLifecycleConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Rules: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.Rule === \"\") {\n contents.Rules = [];\n }\n if (data[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlLifecycleRules(__getArrayIfSingleItem(data[\"Rule\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketLocationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketLocationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LocationConstraint: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"LocationConstraint\"] !== undefined) {\n contents.LocationConstraint = data[\"LocationConstraint\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketLocationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketLoggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketLoggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LoggingEnabled: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"LoggingEnabled\"] !== undefined) {\n contents.LoggingEnabled = deserializeAws_restXmlLoggingEnabled(data[\"LoggingEnabled\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketLoggingCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketMetricsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketMetricsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n MetricsConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.MetricsConfiguration = deserializeAws_restXmlMetricsConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketMetricsConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketNotificationConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketNotificationConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LambdaFunctionConfigurations: undefined,\n QueueConfigurations: undefined,\n TopicConfigurations: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CloudFunctionConfiguration === \"\") {\n contents.LambdaFunctionConfigurations = [];\n }\n if (data[\"CloudFunctionConfiguration\"] !== undefined) {\n contents.LambdaFunctionConfigurations = deserializeAws_restXmlLambdaFunctionConfigurationList(__getArrayIfSingleItem(data[\"CloudFunctionConfiguration\"]), context);\n }\n if (data.QueueConfiguration === \"\") {\n contents.QueueConfigurations = [];\n }\n if (data[\"QueueConfiguration\"] !== undefined) {\n contents.QueueConfigurations = deserializeAws_restXmlQueueConfigurationList(__getArrayIfSingleItem(data[\"QueueConfiguration\"]), context);\n }\n if (data.TopicConfiguration === \"\") {\n contents.TopicConfigurations = [];\n }\n if (data[\"TopicConfiguration\"] !== undefined) {\n contents.TopicConfigurations = deserializeAws_restXmlTopicConfigurationList(__getArrayIfSingleItem(data[\"TopicConfiguration\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketNotificationConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketOwnershipControlsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketOwnershipControlsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n OwnershipControls: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.OwnershipControls = deserializeAws_restXmlOwnershipControls(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketOwnershipControlsCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketPolicyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketPolicyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Policy: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Policy\"] !== undefined) {\n contents.Policy = data[\"Policy\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketPolicyCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketPolicyStatusCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketPolicyStatusCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n PolicyStatus: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.PolicyStatus = deserializeAws_restXmlPolicyStatus(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketPolicyStatusCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketReplicationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketReplicationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ReplicationConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.ReplicationConfiguration = deserializeAws_restXmlReplicationConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketReplicationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketRequestPaymentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketRequestPaymentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Payer: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Payer\"] !== undefined) {\n contents.Payer = data[\"Payer\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketRequestPaymentCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n TagSet: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketTaggingCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketVersioningCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketVersioningCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n MFADelete: undefined,\n Status: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"MfaDelete\"] !== undefined) {\n contents.MFADelete = data[\"MfaDelete\"];\n }\n if (data[\"Status\"] !== undefined) {\n contents.Status = data[\"Status\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketVersioningCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetBucketWebsiteCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetBucketWebsiteCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ErrorDocument: undefined,\n IndexDocument: undefined,\n RedirectAllRequestsTo: undefined,\n RoutingRules: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ErrorDocument\"] !== undefined) {\n contents.ErrorDocument = deserializeAws_restXmlErrorDocument(data[\"ErrorDocument\"], context);\n }\n if (data[\"IndexDocument\"] !== undefined) {\n contents.IndexDocument = deserializeAws_restXmlIndexDocument(data[\"IndexDocument\"], context);\n }\n if (data[\"RedirectAllRequestsTo\"] !== undefined) {\n contents.RedirectAllRequestsTo = deserializeAws_restXmlRedirectAllRequestsTo(data[\"RedirectAllRequestsTo\"], context);\n }\n if (data.RoutingRules === \"\") {\n contents.RoutingRules = [];\n }\n if (data[\"RoutingRules\"] !== undefined && data[\"RoutingRules\"][\"RoutingRule\"] !== undefined) {\n contents.RoutingRules = deserializeAws_restXmlRoutingRules(__getArrayIfSingleItem(data[\"RoutingRules\"][\"RoutingRule\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketWebsiteCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetObjectCommand = 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 /*return*/, deserializeAws_restXmlGetObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AcceptRanges: undefined,\n Body: undefined,\n BucketKeyEnabled: undefined,\n CacheControl: undefined,\n ContentDisposition: undefined,\n ContentEncoding: undefined,\n ContentLanguage: undefined,\n ContentLength: undefined,\n ContentRange: undefined,\n ContentType: undefined,\n DeleteMarker: undefined,\n ETag: undefined,\n Expiration: undefined,\n Expires: undefined,\n LastModified: undefined,\n Metadata: undefined,\n MissingMeta: undefined,\n ObjectLockLegalHoldStatus: undefined,\n ObjectLockMode: undefined,\n ObjectLockRetainUntilDate: undefined,\n PartsCount: undefined,\n ReplicationStatus: undefined,\n RequestCharged: undefined,\n Restore: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n StorageClass: undefined,\n TagCount: undefined,\n VersionId: undefined,\n WebsiteRedirectLocation: undefined,\n };\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = output.headers[\"x-amz-delete-marker\"] === \"true\";\n }\n if (output.headers[\"accept-ranges\"] !== undefined) {\n contents.AcceptRanges = output.headers[\"accept-ranges\"];\n }\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-restore\"] !== undefined) {\n contents.Restore = output.headers[\"x-amz-restore\"];\n }\n if (output.headers[\"last-modified\"] !== undefined) {\n contents.LastModified = new Date(output.headers[\"last-modified\"]);\n }\n if (output.headers[\"content-length\"] !== undefined) {\n contents.ContentLength = parseInt(output.headers[\"content-length\"], 10);\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-missing-meta\"] !== undefined) {\n contents.MissingMeta = parseInt(output.headers[\"x-amz-missing-meta\"], 10);\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"cache-control\"] !== undefined) {\n contents.CacheControl = output.headers[\"cache-control\"];\n }\n if (output.headers[\"content-disposition\"] !== undefined) {\n contents.ContentDisposition = output.headers[\"content-disposition\"];\n }\n if (output.headers[\"content-encoding\"] !== undefined) {\n contents.ContentEncoding = output.headers[\"content-encoding\"];\n }\n if (output.headers[\"content-language\"] !== undefined) {\n contents.ContentLanguage = output.headers[\"content-language\"];\n }\n if (output.headers[\"content-range\"] !== undefined) {\n contents.ContentRange = output.headers[\"content-range\"];\n }\n if (output.headers[\"content-type\"] !== undefined) {\n contents.ContentType = output.headers[\"content-type\"];\n }\n if (output.headers[\"expires\"] !== undefined) {\n contents.Expires = new Date(output.headers[\"expires\"]);\n }\n if (output.headers[\"x-amz-website-redirect-location\"] !== undefined) {\n contents.WebsiteRedirectLocation = output.headers[\"x-amz-website-redirect-location\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-storage-class\"] !== undefined) {\n contents.StorageClass = output.headers[\"x-amz-storage-class\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n if (output.headers[\"x-amz-replication-status\"] !== undefined) {\n contents.ReplicationStatus = output.headers[\"x-amz-replication-status\"];\n }\n if (output.headers[\"x-amz-mp-parts-count\"] !== undefined) {\n contents.PartsCount = parseInt(output.headers[\"x-amz-mp-parts-count\"], 10);\n }\n if (output.headers[\"x-amz-tagging-count\"] !== undefined) {\n contents.TagCount = parseInt(output.headers[\"x-amz-tagging-count\"], 10);\n }\n if (output.headers[\"x-amz-object-lock-mode\"] !== undefined) {\n contents.ObjectLockMode = output.headers[\"x-amz-object-lock-mode\"];\n }\n if (output.headers[\"x-amz-object-lock-retain-until-date\"] !== undefined) {\n contents.ObjectLockRetainUntilDate = new Date(output.headers[\"x-amz-object-lock-retain-until-date\"]);\n }\n if (output.headers[\"x-amz-object-lock-legal-hold\"] !== undefined) {\n contents.ObjectLockLegalHoldStatus = output.headers[\"x-amz-object-lock-legal-hold\"];\n }\n Object.keys(output.headers).forEach(function (header) {\n if (contents.Metadata === undefined) {\n contents.Metadata = {};\n }\n if (header.startsWith(\"x-amz-meta-\")) {\n contents.Metadata[header.substring(11)] = output.headers[header];\n }\n });\n data = output.body;\n contents.Body = data;\n return [2 /*return*/, Promise.resolve(contents)];\n });\n}); };\nvar deserializeAws_restXmlGetObjectCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidObjectState\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#InvalidObjectState\": return [3 /*break*/, 2];\n case \"NoSuchKey\": return [3 /*break*/, 4];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlInvalidObjectStateResponse(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_restXmlNoSuchKeyResponse(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_restXmlGetObjectAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetObjectAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Grants: undefined,\n Owner: undefined,\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectAclCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchKey\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(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_restXmlGetObjectLegalHoldCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetObjectLegalHoldCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LegalHold: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.LegalHold = deserializeAws_restXmlObjectLockLegalHold(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectLegalHoldCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetObjectLockConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetObjectLockConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ObjectLockConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.ObjectLockConfiguration = deserializeAws_restXmlObjectLockConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectLockConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetObjectRetentionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetObjectRetentionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Retention: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.Retention = deserializeAws_restXmlObjectLockRetention(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectRetentionCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetObjectTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetObjectTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n TagSet: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectTaggingCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetObjectTorrentCommand = 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 /*return*/, deserializeAws_restXmlGetObjectTorrentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Body: undefined,\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n data = output.body;\n contents.Body = data;\n return [2 /*return*/, Promise.resolve(contents)];\n });\n}); };\nvar deserializeAws_restXmlGetObjectTorrentCommandError = 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 = loadRestXmlErrorCode(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_restXmlGetPublicAccessBlockCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlGetPublicAccessBlockCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n PublicAccessBlockConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.PublicAccessBlockConfiguration = deserializeAws_restXmlPublicAccessBlockConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetPublicAccessBlockCommandError = 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 = loadRestXmlErrorCode(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_restXmlHeadBucketCommand = 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_restXmlHeadBucketCommandError(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_restXmlHeadBucketCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchBucket\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchBucket\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchBucketResponse(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_restXmlHeadObjectCommand = 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_restXmlHeadObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AcceptRanges: undefined,\n ArchiveStatus: undefined,\n BucketKeyEnabled: undefined,\n CacheControl: undefined,\n ContentDisposition: undefined,\n ContentEncoding: undefined,\n ContentLanguage: undefined,\n ContentLength: undefined,\n ContentType: undefined,\n DeleteMarker: undefined,\n ETag: undefined,\n Expiration: undefined,\n Expires: undefined,\n LastModified: undefined,\n Metadata: undefined,\n MissingMeta: undefined,\n ObjectLockLegalHoldStatus: undefined,\n ObjectLockMode: undefined,\n ObjectLockRetainUntilDate: undefined,\n PartsCount: undefined,\n ReplicationStatus: undefined,\n RequestCharged: undefined,\n Restore: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n StorageClass: undefined,\n VersionId: undefined,\n WebsiteRedirectLocation: undefined,\n };\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = output.headers[\"x-amz-delete-marker\"] === \"true\";\n }\n if (output.headers[\"accept-ranges\"] !== undefined) {\n contents.AcceptRanges = output.headers[\"accept-ranges\"];\n }\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-restore\"] !== undefined) {\n contents.Restore = output.headers[\"x-amz-restore\"];\n }\n if (output.headers[\"x-amz-archive-status\"] !== undefined) {\n contents.ArchiveStatus = output.headers[\"x-amz-archive-status\"];\n }\n if (output.headers[\"last-modified\"] !== undefined) {\n contents.LastModified = new Date(output.headers[\"last-modified\"]);\n }\n if (output.headers[\"content-length\"] !== undefined) {\n contents.ContentLength = parseInt(output.headers[\"content-length\"], 10);\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-missing-meta\"] !== undefined) {\n contents.MissingMeta = parseInt(output.headers[\"x-amz-missing-meta\"], 10);\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"cache-control\"] !== undefined) {\n contents.CacheControl = output.headers[\"cache-control\"];\n }\n if (output.headers[\"content-disposition\"] !== undefined) {\n contents.ContentDisposition = output.headers[\"content-disposition\"];\n }\n if (output.headers[\"content-encoding\"] !== undefined) {\n contents.ContentEncoding = output.headers[\"content-encoding\"];\n }\n if (output.headers[\"content-language\"] !== undefined) {\n contents.ContentLanguage = output.headers[\"content-language\"];\n }\n if (output.headers[\"content-type\"] !== undefined) {\n contents.ContentType = output.headers[\"content-type\"];\n }\n if (output.headers[\"expires\"] !== undefined) {\n contents.Expires = new Date(output.headers[\"expires\"]);\n }\n if (output.headers[\"x-amz-website-redirect-location\"] !== undefined) {\n contents.WebsiteRedirectLocation = output.headers[\"x-amz-website-redirect-location\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-storage-class\"] !== undefined) {\n contents.StorageClass = output.headers[\"x-amz-storage-class\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n if (output.headers[\"x-amz-replication-status\"] !== undefined) {\n contents.ReplicationStatus = output.headers[\"x-amz-replication-status\"];\n }\n if (output.headers[\"x-amz-mp-parts-count\"] !== undefined) {\n contents.PartsCount = parseInt(output.headers[\"x-amz-mp-parts-count\"], 10);\n }\n if (output.headers[\"x-amz-object-lock-mode\"] !== undefined) {\n contents.ObjectLockMode = output.headers[\"x-amz-object-lock-mode\"];\n }\n if (output.headers[\"x-amz-object-lock-retain-until-date\"] !== undefined) {\n contents.ObjectLockRetainUntilDate = new Date(output.headers[\"x-amz-object-lock-retain-until-date\"]);\n }\n if (output.headers[\"x-amz-object-lock-legal-hold\"] !== undefined) {\n contents.ObjectLockLegalHoldStatus = output.headers[\"x-amz-object-lock-legal-hold\"];\n }\n Object.keys(output.headers).forEach(function (header) {\n if (contents.Metadata === undefined) {\n contents.Metadata = {};\n }\n if (header.startsWith(\"x-amz-meta-\")) {\n contents.Metadata[header.substring(11)] = output.headers[header];\n }\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_restXmlHeadObjectCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchKey\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(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_restXmlListBucketAnalyticsConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListBucketAnalyticsConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AnalyticsConfigurationList: undefined,\n ContinuationToken: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.AnalyticsConfiguration === \"\") {\n contents.AnalyticsConfigurationList = [];\n }\n if (data[\"AnalyticsConfiguration\"] !== undefined) {\n contents.AnalyticsConfigurationList = deserializeAws_restXmlAnalyticsConfigurationList(__getArrayIfSingleItem(data[\"AnalyticsConfiguration\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError = 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 = loadRestXmlErrorCode(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_restXmlListBucketIntelligentTieringConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListBucketIntelligentTieringConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n IntelligentTieringConfigurationList: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data.IntelligentTieringConfiguration === \"\") {\n contents.IntelligentTieringConfigurationList = [];\n }\n if (data[\"IntelligentTieringConfiguration\"] !== undefined) {\n contents.IntelligentTieringConfigurationList = deserializeAws_restXmlIntelligentTieringConfigurationList(__getArrayIfSingleItem(data[\"IntelligentTieringConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError = 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 = loadRestXmlErrorCode(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_restXmlListBucketInventoryConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListBucketInventoryConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n InventoryConfigurationList: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data.InventoryConfiguration === \"\") {\n contents.InventoryConfigurationList = [];\n }\n if (data[\"InventoryConfiguration\"] !== undefined) {\n contents.InventoryConfigurationList = deserializeAws_restXmlInventoryConfigurationList(__getArrayIfSingleItem(data[\"InventoryConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketInventoryConfigurationsCommandError = 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 = loadRestXmlErrorCode(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_restXmlListBucketMetricsConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListBucketMetricsConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n IsTruncated: undefined,\n MetricsConfigurationList: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data.MetricsConfiguration === \"\") {\n contents.MetricsConfigurationList = [];\n }\n if (data[\"MetricsConfiguration\"] !== undefined) {\n contents.MetricsConfigurationList = deserializeAws_restXmlMetricsConfigurationList(__getArrayIfSingleItem(data[\"MetricsConfiguration\"]), context);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketMetricsConfigurationsCommandError = 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 = loadRestXmlErrorCode(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_restXmlListBucketsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListBucketsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Buckets: undefined,\n Owner: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.Buckets === \"\") {\n contents.Buckets = [];\n }\n if (data[\"Buckets\"] !== undefined && data[\"Buckets\"][\"Bucket\"] !== undefined) {\n contents.Buckets = deserializeAws_restXmlBuckets(__getArrayIfSingleItem(data[\"Buckets\"][\"Bucket\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketsCommandError = 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 = loadRestXmlErrorCode(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_restXmlListMultipartUploadsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListMultipartUploadsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Bucket: undefined,\n CommonPrefixes: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyMarker: undefined,\n MaxUploads: undefined,\n NextKeyMarker: undefined,\n NextUploadIdMarker: undefined,\n Prefix: undefined,\n UploadIdMarker: undefined,\n Uploads: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = data[\"KeyMarker\"];\n }\n if (data[\"MaxUploads\"] !== undefined) {\n contents.MaxUploads = parseInt(data[\"MaxUploads\"]);\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = data[\"NextKeyMarker\"];\n }\n if (data[\"NextUploadIdMarker\"] !== undefined) {\n contents.NextUploadIdMarker = data[\"NextUploadIdMarker\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n if (data[\"UploadIdMarker\"] !== undefined) {\n contents.UploadIdMarker = data[\"UploadIdMarker\"];\n }\n if (data.Upload === \"\") {\n contents.Uploads = [];\n }\n if (data[\"Upload\"] !== undefined) {\n contents.Uploads = deserializeAws_restXmlMultipartUploadList(__getArrayIfSingleItem(data[\"Upload\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListMultipartUploadsCommandError = 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 = loadRestXmlErrorCode(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_restXmlListObjectsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListObjectsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n Contents: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n Marker: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextMarker: undefined,\n Prefix: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"Marker\"] !== undefined) {\n contents.Marker = data[\"Marker\"];\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = data[\"Name\"];\n }\n if (data[\"NextMarker\"] !== undefined) {\n contents.NextMarker = data[\"NextMarker\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListObjectsCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchBucket\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchBucket\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchBucketResponse(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_restXmlListObjectsV2Command = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListObjectsV2CommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n Contents: undefined,\n ContinuationToken: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyCount: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextContinuationToken: undefined,\n Prefix: undefined,\n StartAfter: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"KeyCount\"] !== undefined) {\n contents.KeyCount = parseInt(data[\"KeyCount\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = data[\"Name\"];\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n if (data[\"StartAfter\"] !== undefined) {\n contents.StartAfter = data[\"StartAfter\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListObjectsV2CommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchBucket\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchBucket\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchBucketResponse(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_restXmlListObjectVersionsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListObjectVersionsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n DeleteMarkers: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyMarker: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextKeyMarker: undefined,\n NextVersionIdMarker: undefined,\n Prefix: undefined,\n VersionIdMarker: undefined,\n Versions: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.DeleteMarker === \"\") {\n contents.DeleteMarkers = [];\n }\n if (data[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarkers = deserializeAws_restXmlDeleteMarkers(__getArrayIfSingleItem(data[\"DeleteMarker\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = data[\"KeyMarker\"];\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = data[\"Name\"];\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = data[\"NextKeyMarker\"];\n }\n if (data[\"NextVersionIdMarker\"] !== undefined) {\n contents.NextVersionIdMarker = data[\"NextVersionIdMarker\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n if (data[\"VersionIdMarker\"] !== undefined) {\n contents.VersionIdMarker = data[\"VersionIdMarker\"];\n }\n if (data.Version === \"\") {\n contents.Versions = [];\n }\n if (data[\"Version\"] !== undefined) {\n contents.Versions = deserializeAws_restXmlObjectVersionList(__getArrayIfSingleItem(data[\"Version\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListObjectVersionsCommandError = 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 = loadRestXmlErrorCode(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_restXmlListPartsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlListPartsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AbortDate: undefined,\n AbortRuleId: undefined,\n Bucket: undefined,\n Initiator: undefined,\n IsTruncated: undefined,\n Key: undefined,\n MaxParts: undefined,\n NextPartNumberMarker: undefined,\n Owner: undefined,\n PartNumberMarker: undefined,\n Parts: undefined,\n RequestCharged: undefined,\n StorageClass: undefined,\n UploadId: undefined,\n };\n if (output.headers[\"x-amz-abort-date\"] !== undefined) {\n contents.AbortDate = new Date(output.headers[\"x-amz-abort-date\"]);\n }\n if (output.headers[\"x-amz-abort-rule-id\"] !== undefined) {\n contents.AbortRuleId = output.headers[\"x-amz-abort-rule-id\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(data[\"Initiator\"], context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = data[\"Key\"];\n }\n if (data[\"MaxParts\"] !== undefined) {\n contents.MaxParts = parseInt(data[\"MaxParts\"]);\n }\n if (data[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = data[\"NextPartNumberMarker\"];\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n if (data[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = data[\"PartNumberMarker\"];\n }\n if (data.Part === \"\") {\n contents.Parts = [];\n }\n if (data[\"Part\"] !== undefined) {\n contents.Parts = deserializeAws_restXmlParts(__getArrayIfSingleItem(data[\"Part\"]), context);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = data[\"StorageClass\"];\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = data[\"UploadId\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListPartsCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketAccelerateConfigurationCommand = 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_restXmlPutBucketAccelerateConfigurationCommandError(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_restXmlPutBucketAccelerateConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketAclCommand = 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_restXmlPutBucketAclCommandError(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_restXmlPutBucketAclCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketAnalyticsConfigurationCommand = 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_restXmlPutBucketAnalyticsConfigurationCommandError(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_restXmlPutBucketAnalyticsConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketCorsCommand = 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_restXmlPutBucketCorsCommandError(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_restXmlPutBucketCorsCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketEncryptionCommand = 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_restXmlPutBucketEncryptionCommandError(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_restXmlPutBucketEncryptionCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketIntelligentTieringConfigurationCommand = 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_restXmlPutBucketIntelligentTieringConfigurationCommandError(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_restXmlPutBucketIntelligentTieringConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketInventoryConfigurationCommand = 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_restXmlPutBucketInventoryConfigurationCommandError(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_restXmlPutBucketInventoryConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketLifecycleConfigurationCommand = 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_restXmlPutBucketLifecycleConfigurationCommandError(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_restXmlPutBucketLifecycleConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketLoggingCommand = 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_restXmlPutBucketLoggingCommandError(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_restXmlPutBucketLoggingCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketMetricsConfigurationCommand = 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_restXmlPutBucketMetricsConfigurationCommandError(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_restXmlPutBucketMetricsConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketNotificationConfigurationCommand = 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_restXmlPutBucketNotificationConfigurationCommandError(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_restXmlPutBucketNotificationConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketOwnershipControlsCommand = 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_restXmlPutBucketOwnershipControlsCommandError(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_restXmlPutBucketOwnershipControlsCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketPolicyCommand = 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_restXmlPutBucketPolicyCommandError(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_restXmlPutBucketPolicyCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketReplicationCommand = 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_restXmlPutBucketReplicationCommandError(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_restXmlPutBucketReplicationCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketRequestPaymentCommand = 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_restXmlPutBucketRequestPaymentCommandError(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_restXmlPutBucketRequestPaymentCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketTaggingCommand = 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_restXmlPutBucketTaggingCommandError(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_restXmlPutBucketTaggingCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketVersioningCommand = 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_restXmlPutBucketVersioningCommandError(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_restXmlPutBucketVersioningCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutBucketWebsiteCommand = 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_restXmlPutBucketWebsiteCommandError(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_restXmlPutBucketWebsiteCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutObjectCommand = 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_restXmlPutObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n ETag: undefined,\n Expiration: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\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_restXmlPutObjectCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutObjectAclCommand = 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_restXmlPutObjectAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\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_restXmlPutObjectAclCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchKey\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(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_restXmlPutObjectLegalHoldCommand = 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_restXmlPutObjectLegalHoldCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\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_restXmlPutObjectLegalHoldCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutObjectLockConfigurationCommand = 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_restXmlPutObjectLockConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\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_restXmlPutObjectLockConfigurationCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutObjectRetentionCommand = 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_restXmlPutObjectRetentionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\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_restXmlPutObjectRetentionCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutObjectTaggingCommand = 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_restXmlPutObjectTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\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_restXmlPutObjectTaggingCommandError = 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 = loadRestXmlErrorCode(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_restXmlPutPublicAccessBlockCommand = 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_restXmlPutPublicAccessBlockCommandError(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_restXmlPutPublicAccessBlockCommandError = 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 = loadRestXmlErrorCode(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_restXmlRestoreObjectCommand = 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_restXmlRestoreObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n RestoreOutputPath: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n if (output.headers[\"x-amz-restore-output-path\"] !== undefined) {\n contents.RestoreOutputPath = output.headers[\"x-amz-restore-output-path\"];\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_restXmlRestoreObjectCommandError = 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 = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ObjectAlreadyInActiveTierError\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse(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_restXmlSelectObjectContentCommand = 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 /*return*/, deserializeAws_restXmlSelectObjectContentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Payload: undefined,\n };\n data = context.eventStreamMarshaller.deserialize(output.body, function (event) { return __awaiter(void 0, void 0, void 0, function () {\n var eventName, eventHeaders, eventMessage, parsedEvent;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n eventName = Object.keys(event)[0];\n eventHeaders = Object.entries(event[eventName].headers).reduce(function (accummulator, curr) {\n accummulator[curr[0]] = curr[1].value;\n return accummulator;\n }, {});\n eventMessage = {\n headers: eventHeaders,\n body: event[eventName].body,\n };\n parsedEvent = (_a = {},\n _a[eventName] = eventMessage,\n _a);\n return [4 /*yield*/, deserializeAws_restXmlSelectObjectContentEventStream_event(parsedEvent, context)];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n }); });\n contents.Payload = data;\n return [2 /*return*/, Promise.resolve(contents)];\n });\n}); };\nvar deserializeAws_restXmlSelectObjectContentCommandError = 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 = loadRestXmlErrorCode(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_restXmlUploadPartCommand = 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_restXmlUploadPartCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n ETag: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n };\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\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_restXmlUploadPartCommandError = 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 = loadRestXmlErrorCode(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_restXmlUploadPartCopyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\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_restXmlUploadPartCopyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n CopyPartResult: undefined,\n CopySourceVersionId: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n };\n if (output.headers[\"x-amz-copy-source-version-id\"] !== undefined) {\n contents.CopySourceVersionId = output.headers[\"x-amz-copy-source-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.CopyPartResult = deserializeAws_restXmlCopyPartResult(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlUploadPartCopyCommandError = 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 = loadRestXmlErrorCode(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}); };\nvar deserializeAws_restXmlSelectObjectContentEventStream_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!(output[\"Records\"] !== undefined)) return [3 /*break*/, 2];\n _a = {};\n return [4 /*yield*/, deserializeAws_restXmlRecordsEvent_event(output[\"Records\"], context)];\n case 1: return [2 /*return*/, (_a.Records = _f.sent(),\n _a)];\n case 2:\n if (!(output[\"Stats\"] !== undefined)) return [3 /*break*/, 4];\n _b = {};\n return [4 /*yield*/, deserializeAws_restXmlStatsEvent_event(output[\"Stats\"], context)];\n case 3: return [2 /*return*/, (_b.Stats = _f.sent(),\n _b)];\n case 4:\n if (!(output[\"Progress\"] !== undefined)) return [3 /*break*/, 6];\n _c = {};\n return [4 /*yield*/, deserializeAws_restXmlProgressEvent_event(output[\"Progress\"], context)];\n case 5: return [2 /*return*/, (_c.Progress = _f.sent(),\n _c)];\n case 6:\n if (!(output[\"Cont\"] !== undefined)) return [3 /*break*/, 8];\n _d = {};\n return [4 /*yield*/, deserializeAws_restXmlContinuationEvent_event(output[\"Cont\"], context)];\n case 7: return [2 /*return*/, (_d.Cont = _f.sent(),\n _d)];\n case 8:\n if (!(output[\"End\"] !== undefined)) return [3 /*break*/, 10];\n _e = {};\n return [4 /*yield*/, deserializeAws_restXmlEndEvent_event(output[\"End\"], context)];\n case 9: return [2 /*return*/, (_e.End = _f.sent(),\n _e)];\n case 10: return [2 /*return*/, { $unknown: output }];\n }\n });\n}); };\nvar deserializeAws_restXmlContinuationEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlEndEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlProgressEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n contents = {};\n _a = contents;\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n _a.Details = _b.sent();\n return [2 /*return*/, contents];\n }\n });\n}); };\nvar deserializeAws_restXmlRecordsEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n contents.Payload = output.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlStatsEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n contents = {};\n _a = contents;\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n _a.Details = _b.sent();\n return [2 /*return*/, contents];\n }\n });\n}); };\nvar deserializeAws_restXmlBucketAlreadyExistsResponse = 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: \"BucketAlreadyExists\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlBucketAlreadyOwnedByYouResponse = 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: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlInvalidObjectStateResponse = 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: \"InvalidObjectState\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n AccessTier: undefined,\n StorageClass: undefined,\n };\n data = parsedOutput.body;\n if (data[\"AccessTier\"] !== undefined) {\n contents.AccessTier = data[\"AccessTier\"];\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = data[\"StorageClass\"];\n }\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlNoSuchBucketResponse = 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: \"NoSuchBucket\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlNoSuchKeyResponse = 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: \"NoSuchKey\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlNoSuchUploadResponse = 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: \"NoSuchUpload\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse = 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: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlObjectNotInActiveTierErrorResponse = 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: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar serializeAws_restXmlAbortIncompleteMultipartUpload = function (input, context) {\n var bodyNode = new __XmlNode(\"AbortIncompleteMultipartUpload\");\n if (input.DaysAfterInitiation !== undefined && input.DaysAfterInitiation !== null) {\n var node = new __XmlNode(\"DaysAfterInitiation\")\n .addChildNode(new __XmlText(String(input.DaysAfterInitiation)))\n .withName(\"DaysAfterInitiation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAccelerateConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"AccelerateConfiguration\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"BucketAccelerateStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAccessControlPolicy = function (input, context) {\n var bodyNode = new __XmlNode(\"AccessControlPolicy\");\n if (input.Grants !== undefined && input.Grants !== null) {\n var nodes = serializeAws_restXmlGrants(input.Grants, context);\n var containerNode_1 = new __XmlNode(\"AccessControlList\");\n nodes.map(function (node) {\n containerNode_1.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_1);\n }\n if (input.Owner !== undefined && input.Owner !== null) {\n var node = serializeAws_restXmlOwner(input.Owner, context).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAccessControlTranslation = function (input, context) {\n var bodyNode = new __XmlNode(\"AccessControlTranslation\");\n if (input.Owner !== undefined && input.Owner !== null) {\n var node = new __XmlNode(\"OwnerOverride\").addChildNode(new __XmlText(input.Owner)).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAllowedHeaders = 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 var node = new __XmlNode(\"AllowedHeader\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlAllowedMethods = 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 var node = new __XmlNode(\"AllowedMethod\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlAllowedOrigins = 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 var node = new __XmlNode(\"AllowedOrigin\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlAnalyticsAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"AnalyticsId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlAnalyticsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClassAnalysis !== undefined && input.StorageClassAnalysis !== null) {\n var node = serializeAws_restXmlStorageClassAnalysis(input.StorageClassAnalysis, context).withName(\"StorageClassAnalysis\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsExportDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsExportDestination\");\n if (input.S3BucketDestination !== undefined && input.S3BucketDestination !== null) {\n var node = serializeAws_restXmlAnalyticsS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsFilter\");\n AnalyticsFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlAnalyticsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsS3BucketDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsS3BucketDestination\");\n if (input.Format !== undefined && input.Format !== null) {\n var node = new __XmlNode(\"AnalyticsS3ExportFileFormat\")\n .addChildNode(new __XmlText(input.Format))\n .withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketAccountId !== undefined && input.BucketAccountId !== null) {\n var node = new __XmlNode(\"AccountId\")\n .addChildNode(new __XmlText(input.BucketAccountId))\n .withName(\"BucketAccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlBucketLifecycleConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"BucketLifecycleConfiguration\");\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlLifecycleRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlBucketLoggingStatus = function (input, context) {\n var bodyNode = new __XmlNode(\"BucketLoggingStatus\");\n if (input.LoggingEnabled !== undefined && input.LoggingEnabled !== null) {\n var node = serializeAws_restXmlLoggingEnabled(input.LoggingEnabled, context).withName(\"LoggingEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCompletedMultipartUpload = function (input, context) {\n var bodyNode = new __XmlNode(\"CompletedMultipartUpload\");\n if (input.Parts !== undefined && input.Parts !== null) {\n var nodes = serializeAws_restXmlCompletedPartList(input.Parts, context);\n nodes.map(function (node) {\n node = node.withName(\"Part\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCompletedPart = function (input, context) {\n var bodyNode = new __XmlNode(\"CompletedPart\");\n if (input.ETag !== undefined && input.ETag !== null) {\n var node = new __XmlNode(\"ETag\").addChildNode(new __XmlText(input.ETag)).withName(\"ETag\");\n bodyNode.addChildNode(node);\n }\n if (input.PartNumber !== undefined && input.PartNumber !== null) {\n var node = new __XmlNode(\"PartNumber\")\n .addChildNode(new __XmlText(String(input.PartNumber)))\n .withName(\"PartNumber\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCompletedPartList = 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 var node = serializeAws_restXmlCompletedPart(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlCondition = function (input, context) {\n var bodyNode = new __XmlNode(\"Condition\");\n if (input.HttpErrorCodeReturnedEquals !== undefined && input.HttpErrorCodeReturnedEquals !== null) {\n var node = new __XmlNode(\"HttpErrorCodeReturnedEquals\")\n .addChildNode(new __XmlText(input.HttpErrorCodeReturnedEquals))\n .withName(\"HttpErrorCodeReturnedEquals\");\n bodyNode.addChildNode(node);\n }\n if (input.KeyPrefixEquals !== undefined && input.KeyPrefixEquals !== null) {\n var node = new __XmlNode(\"KeyPrefixEquals\")\n .addChildNode(new __XmlText(input.KeyPrefixEquals))\n .withName(\"KeyPrefixEquals\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCORSConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"CORSConfiguration\");\n if (input.CORSRules !== undefined && input.CORSRules !== null) {\n var nodes = serializeAws_restXmlCORSRules(input.CORSRules, context);\n nodes.map(function (node) {\n node = node.withName(\"CORSRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCORSRule = function (input, context) {\n var bodyNode = new __XmlNode(\"CORSRule\");\n if (input.AllowedHeaders !== undefined && input.AllowedHeaders !== null) {\n var nodes = serializeAws_restXmlAllowedHeaders(input.AllowedHeaders, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedMethods !== undefined && input.AllowedMethods !== null) {\n var nodes = serializeAws_restXmlAllowedMethods(input.AllowedMethods, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedMethod\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedOrigins !== undefined && input.AllowedOrigins !== null) {\n var nodes = serializeAws_restXmlAllowedOrigins(input.AllowedOrigins, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedOrigin\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.ExposeHeaders !== undefined && input.ExposeHeaders !== null) {\n var nodes = serializeAws_restXmlExposeHeaders(input.ExposeHeaders, context);\n nodes.map(function (node) {\n node = node.withName(\"ExposeHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.MaxAgeSeconds !== undefined && input.MaxAgeSeconds !== null) {\n var node = new __XmlNode(\"MaxAgeSeconds\")\n .addChildNode(new __XmlText(String(input.MaxAgeSeconds)))\n .withName(\"MaxAgeSeconds\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCORSRules = 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 var node = serializeAws_restXmlCORSRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlCreateBucketConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"CreateBucketConfiguration\");\n if (input.LocationConstraint !== undefined && input.LocationConstraint !== null) {\n var node = new __XmlNode(\"BucketLocationConstraint\")\n .addChildNode(new __XmlText(input.LocationConstraint))\n .withName(\"LocationConstraint\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCSVInput = function (input, context) {\n var bodyNode = new __XmlNode(\"CSVInput\");\n if (input.FileHeaderInfo !== undefined && input.FileHeaderInfo !== null) {\n var node = new __XmlNode(\"FileHeaderInfo\")\n .addChildNode(new __XmlText(input.FileHeaderInfo))\n .withName(\"FileHeaderInfo\");\n bodyNode.addChildNode(node);\n }\n if (input.Comments !== undefined && input.Comments !== null) {\n var node = new __XmlNode(\"Comments\").addChildNode(new __XmlText(input.Comments)).withName(\"Comments\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter !== undefined && input.QuoteEscapeCharacter !== null) {\n var node = new __XmlNode(\"QuoteEscapeCharacter\")\n .addChildNode(new __XmlText(input.QuoteEscapeCharacter))\n .withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\")\n .addChildNode(new __XmlText(input.RecordDelimiter))\n .withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter !== undefined && input.FieldDelimiter !== null) {\n var node = new __XmlNode(\"FieldDelimiter\")\n .addChildNode(new __XmlText(input.FieldDelimiter))\n .withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter !== undefined && input.QuoteCharacter !== null) {\n var node = new __XmlNode(\"QuoteCharacter\")\n .addChildNode(new __XmlText(input.QuoteCharacter))\n .withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.AllowQuotedRecordDelimiter !== undefined && input.AllowQuotedRecordDelimiter !== null) {\n var node = new __XmlNode(\"AllowQuotedRecordDelimiter\")\n .addChildNode(new __XmlText(String(input.AllowQuotedRecordDelimiter)))\n .withName(\"AllowQuotedRecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCSVOutput = function (input, context) {\n var bodyNode = new __XmlNode(\"CSVOutput\");\n if (input.QuoteFields !== undefined && input.QuoteFields !== null) {\n var node = new __XmlNode(\"QuoteFields\").addChildNode(new __XmlText(input.QuoteFields)).withName(\"QuoteFields\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter !== undefined && input.QuoteEscapeCharacter !== null) {\n var node = new __XmlNode(\"QuoteEscapeCharacter\")\n .addChildNode(new __XmlText(input.QuoteEscapeCharacter))\n .withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\")\n .addChildNode(new __XmlText(input.RecordDelimiter))\n .withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter !== undefined && input.FieldDelimiter !== null) {\n var node = new __XmlNode(\"FieldDelimiter\")\n .addChildNode(new __XmlText(input.FieldDelimiter))\n .withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter !== undefined && input.QuoteCharacter !== null) {\n var node = new __XmlNode(\"QuoteCharacter\")\n .addChildNode(new __XmlText(input.QuoteCharacter))\n .withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDefaultRetention = function (input, context) {\n var bodyNode = new __XmlNode(\"DefaultRetention\");\n if (input.Mode !== undefined && input.Mode !== null) {\n var node = new __XmlNode(\"ObjectLockRetentionMode\").addChildNode(new __XmlText(input.Mode)).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.Years !== undefined && input.Years !== null) {\n var node = new __XmlNode(\"Years\").addChildNode(new __XmlText(String(input.Years))).withName(\"Years\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDelete = function (input, context) {\n var bodyNode = new __XmlNode(\"Delete\");\n if (input.Objects !== undefined && input.Objects !== null) {\n var nodes = serializeAws_restXmlObjectIdentifierList(input.Objects, context);\n nodes.map(function (node) {\n node = node.withName(\"Object\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Quiet !== undefined && input.Quiet !== null) {\n var node = new __XmlNode(\"Quiet\").addChildNode(new __XmlText(String(input.Quiet))).withName(\"Quiet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDeleteMarkerReplication = function (input, context) {\n var bodyNode = new __XmlNode(\"DeleteMarkerReplication\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"DeleteMarkerReplicationStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"Destination\");\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Account !== undefined && input.Account !== null) {\n var node = new __XmlNode(\"AccountId\").addChildNode(new __XmlText(input.Account)).withName(\"Account\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"StorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlTranslation !== undefined && input.AccessControlTranslation !== null) {\n var node = serializeAws_restXmlAccessControlTranslation(input.AccessControlTranslation, context).withName(\"AccessControlTranslation\");\n bodyNode.addChildNode(node);\n }\n if (input.EncryptionConfiguration !== undefined && input.EncryptionConfiguration !== null) {\n var node = serializeAws_restXmlEncryptionConfiguration(input.EncryptionConfiguration, context).withName(\"EncryptionConfiguration\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicationTime !== undefined && input.ReplicationTime !== null) {\n var node = serializeAws_restXmlReplicationTime(input.ReplicationTime, context).withName(\"ReplicationTime\");\n bodyNode.addChildNode(node);\n }\n if (input.Metrics !== undefined && input.Metrics !== null) {\n var node = serializeAws_restXmlMetrics(input.Metrics, context).withName(\"Metrics\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlEncryption = function (input, context) {\n var bodyNode = new __XmlNode(\"Encryption\");\n if (input.EncryptionType !== undefined && input.EncryptionType !== null) {\n var node = new __XmlNode(\"ServerSideEncryption\")\n .addChildNode(new __XmlText(input.EncryptionType))\n .withName(\"EncryptionType\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSKeyId !== undefined && input.KMSKeyId !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\").addChildNode(new __XmlText(input.KMSKeyId)).withName(\"KMSKeyId\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSContext !== undefined && input.KMSContext !== null) {\n var node = new __XmlNode(\"KMSContext\").addChildNode(new __XmlText(input.KMSContext)).withName(\"KMSContext\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlEncryptionConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"EncryptionConfiguration\");\n if (input.ReplicaKmsKeyID !== undefined && input.ReplicaKmsKeyID !== null) {\n var node = new __XmlNode(\"ReplicaKmsKeyID\")\n .addChildNode(new __XmlText(input.ReplicaKmsKeyID))\n .withName(\"ReplicaKmsKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlErrorDocument = function (input, context) {\n var bodyNode = new __XmlNode(\"ErrorDocument\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlEventList = 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 var node = new __XmlNode(\"Event\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlExistingObjectReplication = function (input, context) {\n var bodyNode = new __XmlNode(\"ExistingObjectReplication\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ExistingObjectReplicationStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlExposeHeaders = 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 var node = new __XmlNode(\"ExposeHeader\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlFilterRule = function (input, context) {\n var bodyNode = new __XmlNode(\"FilterRule\");\n if (input.Name !== undefined && input.Name !== null) {\n var node = new __XmlNode(\"FilterRuleName\").addChildNode(new __XmlText(input.Name)).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"FilterRuleValue\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlFilterRuleList = 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 var node = serializeAws_restXmlFilterRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlGlacierJobParameters = function (input, context) {\n var bodyNode = new __XmlNode(\"GlacierJobParameters\");\n if (input.Tier !== undefined && input.Tier !== null) {\n var node = new __XmlNode(\"Tier\").addChildNode(new __XmlText(input.Tier)).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlGrant = function (input, context) {\n var bodyNode = new __XmlNode(\"Grant\");\n if (input.Grantee !== undefined && input.Grantee !== null) {\n var node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission !== undefined && input.Permission !== null) {\n var node = new __XmlNode(\"Permission\").addChildNode(new __XmlText(input.Permission)).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlGrantee = function (input, context) {\n var bodyNode = new __XmlNode(\"Grantee\");\n if (input.DisplayName !== undefined && input.DisplayName !== null) {\n var node = new __XmlNode(\"DisplayName\").addChildNode(new __XmlText(input.DisplayName)).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.EmailAddress !== undefined && input.EmailAddress !== null) {\n var node = new __XmlNode(\"EmailAddress\").addChildNode(new __XmlText(input.EmailAddress)).withName(\"EmailAddress\");\n bodyNode.addChildNode(node);\n }\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.URI !== undefined && input.URI !== null) {\n var node = new __XmlNode(\"URI\").addChildNode(new __XmlText(input.URI)).withName(\"URI\");\n bodyNode.addChildNode(node);\n }\n if (input.Type !== undefined && input.Type !== null) {\n bodyNode.addAttribute(\"xsi:type\", input.Type);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlGrants = 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 var node = serializeAws_restXmlGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nvar serializeAws_restXmlIndexDocument = function (input, context) {\n var bodyNode = new __XmlNode(\"IndexDocument\");\n if (input.Suffix !== undefined && input.Suffix !== null) {\n var node = new __XmlNode(\"Suffix\").addChildNode(new __XmlText(input.Suffix)).withName(\"Suffix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInputSerialization = function (input, context) {\n var bodyNode = new __XmlNode(\"InputSerialization\");\n if (input.CSV !== undefined && input.CSV !== null) {\n var node = serializeAws_restXmlCSVInput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.CompressionType !== undefined && input.CompressionType !== null) {\n var node = new __XmlNode(\"CompressionType\")\n .addChildNode(new __XmlText(input.CompressionType))\n .withName(\"CompressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON !== undefined && input.JSON !== null) {\n var node = serializeAws_restXmlJSONInput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n if (input.Parquet !== undefined && input.Parquet !== null) {\n var node = serializeAws_restXmlParquetInput(input.Parquet, context).withName(\"Parquet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlIntelligentTieringAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlIntelligentTieringConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"IntelligentTieringId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlIntelligentTieringFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"IntelligentTieringStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Tierings !== undefined && input.Tierings !== null) {\n var nodes = serializeAws_restXmlTieringList(input.Tierings, context);\n nodes.map(function (node) {\n node = node.withName(\"Tiering\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlIntelligentTieringFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringFilter\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tag !== undefined && input.Tag !== null) {\n var node = serializeAws_restXmlTag(input.Tag, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n }\n if (input.And !== undefined && input.And !== null) {\n var node = serializeAws_restXmlIntelligentTieringAndOperator(input.And, context).withName(\"And\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryConfiguration\");\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlInventoryDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.IsEnabled !== undefined && input.IsEnabled !== null) {\n var node = new __XmlNode(\"IsEnabled\").addChildNode(new __XmlText(String(input.IsEnabled))).withName(\"IsEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlInventoryFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"InventoryId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.IncludedObjectVersions !== undefined && input.IncludedObjectVersions !== null) {\n var node = new __XmlNode(\"InventoryIncludedObjectVersions\")\n .addChildNode(new __XmlText(input.IncludedObjectVersions))\n .withName(\"IncludedObjectVersions\");\n bodyNode.addChildNode(node);\n }\n if (input.OptionalFields !== undefined && input.OptionalFields !== null) {\n var nodes = serializeAws_restXmlInventoryOptionalFields(input.OptionalFields, context);\n var containerNode_2 = new __XmlNode(\"OptionalFields\");\n nodes.map(function (node) {\n containerNode_2.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_2);\n }\n if (input.Schedule !== undefined && input.Schedule !== null) {\n var node = serializeAws_restXmlInventorySchedule(input.Schedule, context).withName(\"Schedule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryDestination\");\n if (input.S3BucketDestination !== undefined && input.S3BucketDestination !== null) {\n var node = serializeAws_restXmlInventoryS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryEncryption = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryEncryption\");\n if (input.SSES3 !== undefined && input.SSES3 !== null) {\n var node = serializeAws_restXmlSSES3(input.SSES3, context).withName(\"SSE-S3\");\n bodyNode.addChildNode(node);\n }\n if (input.SSEKMS !== undefined && input.SSEKMS !== null) {\n var node = serializeAws_restXmlSSEKMS(input.SSEKMS, context).withName(\"SSE-KMS\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryFilter\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryOptionalFields = 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 var node = new __XmlNode(\"InventoryOptionalField\").addChildNode(new __XmlText(entry));\n return node.withName(\"Field\");\n });\n};\nvar serializeAws_restXmlInventoryS3BucketDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryS3BucketDestination\");\n if (input.AccountId !== undefined && input.AccountId !== null) {\n var node = new __XmlNode(\"AccountId\").addChildNode(new __XmlText(input.AccountId)).withName(\"AccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Format !== undefined && input.Format !== null) {\n var node = new __XmlNode(\"InventoryFormat\").addChildNode(new __XmlText(input.Format)).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption !== undefined && input.Encryption !== null) {\n var node = serializeAws_restXmlInventoryEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventorySchedule = function (input, context) {\n var bodyNode = new __XmlNode(\"InventorySchedule\");\n if (input.Frequency !== undefined && input.Frequency !== null) {\n var node = new __XmlNode(\"InventoryFrequency\").addChildNode(new __XmlText(input.Frequency)).withName(\"Frequency\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlJSONInput = function (input, context) {\n var bodyNode = new __XmlNode(\"JSONInput\");\n if (input.Type !== undefined && input.Type !== null) {\n var node = new __XmlNode(\"JSONType\").addChildNode(new __XmlText(input.Type)).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlJSONOutput = function (input, context) {\n var bodyNode = new __XmlNode(\"JSONOutput\");\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\")\n .addChildNode(new __XmlText(input.RecordDelimiter))\n .withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLambdaFunctionConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"LambdaFunctionConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.LambdaFunctionArn !== undefined && input.LambdaFunctionArn !== null) {\n var node = new __XmlNode(\"LambdaFunctionArn\")\n .addChildNode(new __XmlText(input.LambdaFunctionArn))\n .withName(\"CloudFunction\");\n bodyNode.addChildNode(node);\n }\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLambdaFunctionConfigurationList = 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 var node = serializeAws_restXmlLambdaFunctionConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlLifecycleExpiration = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleExpiration\");\n if (input.Date !== undefined && input.Date !== null) {\n var node = new __XmlNode(\"Date\")\n .addChildNode(new __XmlText(input.Date.toISOString().split(\".\")[0] + \"Z\"))\n .withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpiredObjectDeleteMarker !== undefined && input.ExpiredObjectDeleteMarker !== null) {\n var node = new __XmlNode(\"ExpiredObjectDeleteMarker\")\n .addChildNode(new __XmlText(String(input.ExpiredObjectDeleteMarker)))\n .withName(\"ExpiredObjectDeleteMarker\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRule = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRule\");\n if (input.Expiration !== undefined && input.Expiration !== null) {\n var node = serializeAws_restXmlLifecycleExpiration(input.Expiration, context).withName(\"Expiration\");\n bodyNode.addChildNode(node);\n }\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlLifecycleRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ExpirationStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Transitions !== undefined && input.Transitions !== null) {\n var nodes = serializeAws_restXmlTransitionList(input.Transitions, context);\n nodes.map(function (node) {\n node = node.withName(\"Transition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionTransitions !== undefined && input.NoncurrentVersionTransitions !== null) {\n var nodes = serializeAws_restXmlNoncurrentVersionTransitionList(input.NoncurrentVersionTransitions, context);\n nodes.map(function (node) {\n node = node.withName(\"NoncurrentVersionTransition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionExpiration !== undefined && input.NoncurrentVersionExpiration !== null) {\n var node = serializeAws_restXmlNoncurrentVersionExpiration(input.NoncurrentVersionExpiration, context).withName(\"NoncurrentVersionExpiration\");\n bodyNode.addChildNode(node);\n }\n if (input.AbortIncompleteMultipartUpload !== undefined && input.AbortIncompleteMultipartUpload !== null) {\n var node = serializeAws_restXmlAbortIncompleteMultipartUpload(input.AbortIncompleteMultipartUpload, context).withName(\"AbortIncompleteMultipartUpload\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRuleAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRuleAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRuleFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRuleFilter\");\n LifecycleRuleFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlLifecycleRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRules = 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 var node = serializeAws_restXmlLifecycleRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlLoggingEnabled = function (input, context) {\n var bodyNode = new __XmlNode(\"LoggingEnabled\");\n if (input.TargetBucket !== undefined && input.TargetBucket !== null) {\n var node = new __XmlNode(\"TargetBucket\").addChildNode(new __XmlText(input.TargetBucket)).withName(\"TargetBucket\");\n bodyNode.addChildNode(node);\n }\n if (input.TargetGrants !== undefined && input.TargetGrants !== null) {\n var nodes = serializeAws_restXmlTargetGrants(input.TargetGrants, context);\n var containerNode_3 = new __XmlNode(\"TargetGrants\");\n nodes.map(function (node) {\n containerNode_3.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_3);\n }\n if (input.TargetPrefix !== undefined && input.TargetPrefix !== null) {\n var node = new __XmlNode(\"TargetPrefix\").addChildNode(new __XmlText(input.TargetPrefix)).withName(\"TargetPrefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetadataEntry = function (input, context) {\n var bodyNode = new __XmlNode(\"MetadataEntry\");\n if (input.Name !== undefined && input.Name !== null) {\n var node = new __XmlNode(\"MetadataKey\").addChildNode(new __XmlText(input.Name)).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"MetadataValue\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetrics = function (input, context) {\n var bodyNode = new __XmlNode(\"Metrics\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"MetricsStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.EventThreshold !== undefined && input.EventThreshold !== null) {\n var node = serializeAws_restXmlReplicationTimeValue(input.EventThreshold, context).withName(\"EventThreshold\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetricsAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"MetricsAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetricsConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"MetricsConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"MetricsId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlMetricsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetricsFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"MetricsFilter\");\n MetricsFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlMetricsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlNoncurrentVersionExpiration = function (input, context) {\n var bodyNode = new __XmlNode(\"NoncurrentVersionExpiration\");\n if (input.NoncurrentDays !== undefined && input.NoncurrentDays !== null) {\n var node = new __XmlNode(\"Days\")\n .addChildNode(new __XmlText(String(input.NoncurrentDays)))\n .withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlNoncurrentVersionTransition = function (input, context) {\n var bodyNode = new __XmlNode(\"NoncurrentVersionTransition\");\n if (input.NoncurrentDays !== undefined && input.NoncurrentDays !== null) {\n var node = new __XmlNode(\"Days\")\n .addChildNode(new __XmlText(String(input.NoncurrentDays)))\n .withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"TransitionStorageClass\")\n .addChildNode(new __XmlText(input.StorageClass))\n .withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlNoncurrentVersionTransitionList = 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 var node = serializeAws_restXmlNoncurrentVersionTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlNotificationConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"NotificationConfiguration\");\n if (input.TopicConfigurations !== undefined && input.TopicConfigurations !== null) {\n var nodes = serializeAws_restXmlTopicConfigurationList(input.TopicConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"TopicConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.QueueConfigurations !== undefined && input.QueueConfigurations !== null) {\n var nodes = serializeAws_restXmlQueueConfigurationList(input.QueueConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"QueueConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.LambdaFunctionConfigurations !== undefined && input.LambdaFunctionConfigurations !== null) {\n var nodes = serializeAws_restXmlLambdaFunctionConfigurationList(input.LambdaFunctionConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"CloudFunctionConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlNotificationConfigurationFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"NotificationConfigurationFilter\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = serializeAws_restXmlS3KeyFilter(input.Key, context).withName(\"S3Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectIdentifier = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectIdentifier\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.VersionId !== undefined && input.VersionId !== null) {\n var node = new __XmlNode(\"ObjectVersionId\").addChildNode(new __XmlText(input.VersionId)).withName(\"VersionId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectIdentifierList = 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 var node = serializeAws_restXmlObjectIdentifier(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlObjectLockConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockConfiguration\");\n if (input.ObjectLockEnabled !== undefined && input.ObjectLockEnabled !== null) {\n var node = new __XmlNode(\"ObjectLockEnabled\")\n .addChildNode(new __XmlText(input.ObjectLockEnabled))\n .withName(\"ObjectLockEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Rule !== undefined && input.Rule !== null) {\n var node = serializeAws_restXmlObjectLockRule(input.Rule, context).withName(\"Rule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectLockLegalHold = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockLegalHold\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ObjectLockLegalHoldStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectLockRetention = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockRetention\");\n if (input.Mode !== undefined && input.Mode !== null) {\n var node = new __XmlNode(\"ObjectLockRetentionMode\").addChildNode(new __XmlText(input.Mode)).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.RetainUntilDate !== undefined && input.RetainUntilDate !== null) {\n var node = new __XmlNode(\"Date\")\n .addChildNode(new __XmlText(input.RetainUntilDate.toISOString().split(\".\")[0] + \"Z\"))\n .withName(\"RetainUntilDate\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectLockRule = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockRule\");\n if (input.DefaultRetention !== undefined && input.DefaultRetention !== null) {\n var node = serializeAws_restXmlDefaultRetention(input.DefaultRetention, context).withName(\"DefaultRetention\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOutputLocation = function (input, context) {\n var bodyNode = new __XmlNode(\"OutputLocation\");\n if (input.S3 !== undefined && input.S3 !== null) {\n var node = serializeAws_restXmlS3Location(input.S3, context).withName(\"S3\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOutputSerialization = function (input, context) {\n var bodyNode = new __XmlNode(\"OutputSerialization\");\n if (input.CSV !== undefined && input.CSV !== null) {\n var node = serializeAws_restXmlCSVOutput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON !== undefined && input.JSON !== null) {\n var node = serializeAws_restXmlJSONOutput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwner = function (input, context) {\n var bodyNode = new __XmlNode(\"Owner\");\n if (input.DisplayName !== undefined && input.DisplayName !== null) {\n var node = new __XmlNode(\"DisplayName\").addChildNode(new __XmlText(input.DisplayName)).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwnershipControls = function (input, context) {\n var bodyNode = new __XmlNode(\"OwnershipControls\");\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlOwnershipControlsRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwnershipControlsRule = function (input, context) {\n var bodyNode = new __XmlNode(\"OwnershipControlsRule\");\n if (input.ObjectOwnership !== undefined && input.ObjectOwnership !== null) {\n var node = new __XmlNode(\"ObjectOwnership\")\n .addChildNode(new __XmlText(input.ObjectOwnership))\n .withName(\"ObjectOwnership\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwnershipControlsRules = 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 var node = serializeAws_restXmlOwnershipControlsRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlParquetInput = function (input, context) {\n var bodyNode = new __XmlNode(\"ParquetInput\");\n return bodyNode;\n};\nvar serializeAws_restXmlPublicAccessBlockConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"PublicAccessBlockConfiguration\");\n if (input.BlockPublicAcls !== undefined && input.BlockPublicAcls !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.BlockPublicAcls)))\n .withName(\"BlockPublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.IgnorePublicAcls !== undefined && input.IgnorePublicAcls !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.IgnorePublicAcls)))\n .withName(\"IgnorePublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.BlockPublicPolicy !== undefined && input.BlockPublicPolicy !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.BlockPublicPolicy)))\n .withName(\"BlockPublicPolicy\");\n bodyNode.addChildNode(node);\n }\n if (input.RestrictPublicBuckets !== undefined && input.RestrictPublicBuckets !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.RestrictPublicBuckets)))\n .withName(\"RestrictPublicBuckets\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlQueueConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"QueueConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.QueueArn !== undefined && input.QueueArn !== null) {\n var node = new __XmlNode(\"QueueArn\").addChildNode(new __XmlText(input.QueueArn)).withName(\"Queue\");\n bodyNode.addChildNode(node);\n }\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlQueueConfigurationList = 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 var node = serializeAws_restXmlQueueConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlRedirect = function (input, context) {\n var bodyNode = new __XmlNode(\"Redirect\");\n if (input.HostName !== undefined && input.HostName !== null) {\n var node = new __XmlNode(\"HostName\").addChildNode(new __XmlText(input.HostName)).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.HttpRedirectCode !== undefined && input.HttpRedirectCode !== null) {\n var node = new __XmlNode(\"HttpRedirectCode\")\n .addChildNode(new __XmlText(input.HttpRedirectCode))\n .withName(\"HttpRedirectCode\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol !== undefined && input.Protocol !== null) {\n var node = new __XmlNode(\"Protocol\").addChildNode(new __XmlText(input.Protocol)).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyPrefixWith !== undefined && input.ReplaceKeyPrefixWith !== null) {\n var node = new __XmlNode(\"ReplaceKeyPrefixWith\")\n .addChildNode(new __XmlText(input.ReplaceKeyPrefixWith))\n .withName(\"ReplaceKeyPrefixWith\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyWith !== undefined && input.ReplaceKeyWith !== null) {\n var node = new __XmlNode(\"ReplaceKeyWith\")\n .addChildNode(new __XmlText(input.ReplaceKeyWith))\n .withName(\"ReplaceKeyWith\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRedirectAllRequestsTo = function (input, context) {\n var bodyNode = new __XmlNode(\"RedirectAllRequestsTo\");\n if (input.HostName !== undefined && input.HostName !== null) {\n var node = new __XmlNode(\"HostName\").addChildNode(new __XmlText(input.HostName)).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol !== undefined && input.Protocol !== null) {\n var node = new __XmlNode(\"Protocol\").addChildNode(new __XmlText(input.Protocol)).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicaModifications = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicaModifications\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicaModificationsStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationConfiguration\");\n if (input.Role !== undefined && input.Role !== null) {\n var node = new __XmlNode(\"Role\").addChildNode(new __XmlText(input.Role)).withName(\"Role\");\n bodyNode.addChildNode(node);\n }\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlReplicationRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRule = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRule\");\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Priority !== undefined && input.Priority !== null) {\n var node = new __XmlNode(\"Priority\").addChildNode(new __XmlText(String(input.Priority))).withName(\"Priority\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlReplicationRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicationRuleStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.SourceSelectionCriteria !== undefined && input.SourceSelectionCriteria !== null) {\n var node = serializeAws_restXmlSourceSelectionCriteria(input.SourceSelectionCriteria, context).withName(\"SourceSelectionCriteria\");\n bodyNode.addChildNode(node);\n }\n if (input.ExistingObjectReplication !== undefined && input.ExistingObjectReplication !== null) {\n var node = serializeAws_restXmlExistingObjectReplication(input.ExistingObjectReplication, context).withName(\"ExistingObjectReplication\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.DeleteMarkerReplication !== undefined && input.DeleteMarkerReplication !== null) {\n var node = serializeAws_restXmlDeleteMarkerReplication(input.DeleteMarkerReplication, context).withName(\"DeleteMarkerReplication\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRuleAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRuleAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRuleFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRuleFilter\");\n ReplicationRuleFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlReplicationRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRules = 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 var node = serializeAws_restXmlReplicationRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlReplicationTime = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationTime\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicationTimeStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Time !== undefined && input.Time !== null) {\n var node = serializeAws_restXmlReplicationTimeValue(input.Time, context).withName(\"Time\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationTimeValue = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationTimeValue\");\n if (input.Minutes !== undefined && input.Minutes !== null) {\n var node = new __XmlNode(\"Minutes\").addChildNode(new __XmlText(String(input.Minutes))).withName(\"Minutes\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRequestPaymentConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"RequestPaymentConfiguration\");\n if (input.Payer !== undefined && input.Payer !== null) {\n var node = new __XmlNode(\"Payer\").addChildNode(new __XmlText(input.Payer)).withName(\"Payer\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRequestProgress = function (input, context) {\n var bodyNode = new __XmlNode(\"RequestProgress\");\n if (input.Enabled !== undefined && input.Enabled !== null) {\n var node = new __XmlNode(\"EnableRequestProgress\")\n .addChildNode(new __XmlText(String(input.Enabled)))\n .withName(\"Enabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRestoreRequest = function (input, context) {\n var bodyNode = new __XmlNode(\"RestoreRequest\");\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.GlacierJobParameters !== undefined && input.GlacierJobParameters !== null) {\n var node = serializeAws_restXmlGlacierJobParameters(input.GlacierJobParameters, context).withName(\"GlacierJobParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.Type !== undefined && input.Type !== null) {\n var node = new __XmlNode(\"RestoreRequestType\").addChildNode(new __XmlText(input.Type)).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n if (input.Tier !== undefined && input.Tier !== null) {\n var node = new __XmlNode(\"Tier\").addChildNode(new __XmlText(input.Tier)).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n if (input.Description !== undefined && input.Description !== null) {\n var node = new __XmlNode(\"Description\").addChildNode(new __XmlText(input.Description)).withName(\"Description\");\n bodyNode.addChildNode(node);\n }\n if (input.SelectParameters !== undefined && input.SelectParameters !== null) {\n var node = serializeAws_restXmlSelectParameters(input.SelectParameters, context).withName(\"SelectParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputLocation !== undefined && input.OutputLocation !== null) {\n var node = serializeAws_restXmlOutputLocation(input.OutputLocation, context).withName(\"OutputLocation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRoutingRule = function (input, context) {\n var bodyNode = new __XmlNode(\"RoutingRule\");\n if (input.Condition !== undefined && input.Condition !== null) {\n var node = serializeAws_restXmlCondition(input.Condition, context).withName(\"Condition\");\n bodyNode.addChildNode(node);\n }\n if (input.Redirect !== undefined && input.Redirect !== null) {\n var node = serializeAws_restXmlRedirect(input.Redirect, context).withName(\"Redirect\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRoutingRules = 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 var node = serializeAws_restXmlRoutingRule(entry, context);\n return node.withName(\"RoutingRule\");\n });\n};\nvar serializeAws_restXmlS3KeyFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"S3KeyFilter\");\n if (input.FilterRules !== undefined && input.FilterRules !== null) {\n var nodes = serializeAws_restXmlFilterRuleList(input.FilterRules, context);\n nodes.map(function (node) {\n node = node.withName(\"FilterRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlS3Location = function (input, context) {\n var bodyNode = new __XmlNode(\"S3Location\");\n if (input.BucketName !== undefined && input.BucketName !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.BucketName)).withName(\"BucketName\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"LocationPrefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption !== undefined && input.Encryption !== null) {\n var node = serializeAws_restXmlEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n if (input.CannedACL !== undefined && input.CannedACL !== null) {\n var node = new __XmlNode(\"ObjectCannedACL\").addChildNode(new __XmlText(input.CannedACL)).withName(\"CannedACL\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlList !== undefined && input.AccessControlList !== null) {\n var nodes = serializeAws_restXmlGrants(input.AccessControlList, context);\n var containerNode_4 = new __XmlNode(\"AccessControlList\");\n nodes.map(function (node) {\n containerNode_4.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_4);\n }\n if (input.Tagging !== undefined && input.Tagging !== null) {\n var node = serializeAws_restXmlTagging(input.Tagging, context).withName(\"Tagging\");\n bodyNode.addChildNode(node);\n }\n if (input.UserMetadata !== undefined && input.UserMetadata !== null) {\n var nodes = serializeAws_restXmlUserMetadata(input.UserMetadata, context);\n var containerNode_5 = new __XmlNode(\"UserMetadata\");\n nodes.map(function (node) {\n containerNode_5.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_5);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"StorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlScanRange = function (input, context) {\n var bodyNode = new __XmlNode(\"ScanRange\");\n if (input.Start !== undefined && input.Start !== null) {\n var node = new __XmlNode(\"Start\").addChildNode(new __XmlText(String(input.Start))).withName(\"Start\");\n bodyNode.addChildNode(node);\n }\n if (input.End !== undefined && input.End !== null) {\n var node = new __XmlNode(\"End\").addChildNode(new __XmlText(String(input.End))).withName(\"End\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSelectParameters = function (input, context) {\n var bodyNode = new __XmlNode(\"SelectParameters\");\n if (input.InputSerialization !== undefined && input.InputSerialization !== null) {\n var node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType !== undefined && input.ExpressionType !== null) {\n var node = new __XmlNode(\"ExpressionType\")\n .addChildNode(new __XmlText(input.ExpressionType))\n .withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.Expression !== undefined && input.Expression !== null) {\n var node = new __XmlNode(\"Expression\").addChildNode(new __XmlText(input.Expression)).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization !== undefined && input.OutputSerialization !== null) {\n var node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionByDefault = function (input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionByDefault\");\n if (input.SSEAlgorithm !== undefined && input.SSEAlgorithm !== null) {\n var node = new __XmlNode(\"ServerSideEncryption\")\n .addChildNode(new __XmlText(input.SSEAlgorithm))\n .withName(\"SSEAlgorithm\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSMasterKeyID !== undefined && input.KMSMasterKeyID !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\")\n .addChildNode(new __XmlText(input.KMSMasterKeyID))\n .withName(\"KMSMasterKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionConfiguration\");\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlServerSideEncryptionRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionRule = function (input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionRule\");\n if (input.ApplyServerSideEncryptionByDefault !== undefined && input.ApplyServerSideEncryptionByDefault !== null) {\n var node = serializeAws_restXmlServerSideEncryptionByDefault(input.ApplyServerSideEncryptionByDefault, context).withName(\"ApplyServerSideEncryptionByDefault\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketKeyEnabled !== undefined && input.BucketKeyEnabled !== null) {\n var node = new __XmlNode(\"BucketKeyEnabled\")\n .addChildNode(new __XmlText(String(input.BucketKeyEnabled)))\n .withName(\"BucketKeyEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionRules = 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 var node = serializeAws_restXmlServerSideEncryptionRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlSourceSelectionCriteria = function (input, context) {\n var bodyNode = new __XmlNode(\"SourceSelectionCriteria\");\n if (input.SseKmsEncryptedObjects !== undefined && input.SseKmsEncryptedObjects !== null) {\n var node = serializeAws_restXmlSseKmsEncryptedObjects(input.SseKmsEncryptedObjects, context).withName(\"SseKmsEncryptedObjects\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicaModifications !== undefined && input.ReplicaModifications !== null) {\n var node = serializeAws_restXmlReplicaModifications(input.ReplicaModifications, context).withName(\"ReplicaModifications\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSSEKMS = function (input, context) {\n var bodyNode = new __XmlNode(\"SSE-KMS\");\n if (input.KeyId !== undefined && input.KeyId !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\").addChildNode(new __XmlText(input.KeyId)).withName(\"KeyId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSseKmsEncryptedObjects = function (input, context) {\n var bodyNode = new __XmlNode(\"SseKmsEncryptedObjects\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"SseKmsEncryptedObjectsStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSSES3 = function (input, context) {\n var bodyNode = new __XmlNode(\"SSE-S3\");\n return bodyNode;\n};\nvar serializeAws_restXmlStorageClassAnalysis = function (input, context) {\n var bodyNode = new __XmlNode(\"StorageClassAnalysis\");\n if (input.DataExport !== undefined && input.DataExport !== null) {\n var node = serializeAws_restXmlStorageClassAnalysisDataExport(input.DataExport, context).withName(\"DataExport\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlStorageClassAnalysisDataExport = function (input, context) {\n var bodyNode = new __XmlNode(\"StorageClassAnalysisDataExport\");\n if (input.OutputSchemaVersion !== undefined && input.OutputSchemaVersion !== null) {\n var node = new __XmlNode(\"StorageClassAnalysisSchemaVersion\")\n .addChildNode(new __XmlText(input.OutputSchemaVersion))\n .withName(\"OutputSchemaVersion\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlAnalyticsExportDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTag = function (input, context) {\n var bodyNode = new __XmlNode(\"Tag\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"Value\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTagging = function (input, context) {\n var bodyNode = new __XmlNode(\"Tagging\");\n if (input.TagSet !== undefined && input.TagSet !== null) {\n var nodes = serializeAws_restXmlTagSet(input.TagSet, context);\n var containerNode_6 = new __XmlNode(\"TagSet\");\n nodes.map(function (node) {\n containerNode_6.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_6);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTagSet = 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 var node = serializeAws_restXmlTag(entry, context);\n return node.withName(\"Tag\");\n });\n};\nvar serializeAws_restXmlTargetGrant = function (input, context) {\n var bodyNode = new __XmlNode(\"TargetGrant\");\n if (input.Grantee !== undefined && input.Grantee !== null) {\n var node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission !== undefined && input.Permission !== null) {\n var node = new __XmlNode(\"BucketLogsPermission\")\n .addChildNode(new __XmlText(input.Permission))\n .withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTargetGrants = 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 var node = serializeAws_restXmlTargetGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nvar serializeAws_restXmlTiering = function (input, context) {\n var bodyNode = new __XmlNode(\"Tiering\");\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"IntelligentTieringDays\")\n .addChildNode(new __XmlText(String(input.Days)))\n .withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessTier !== undefined && input.AccessTier !== null) {\n var node = new __XmlNode(\"IntelligentTieringAccessTier\")\n .addChildNode(new __XmlText(input.AccessTier))\n .withName(\"AccessTier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTieringList = 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 var node = serializeAws_restXmlTiering(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlTopicConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"TopicConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.TopicArn !== undefined && input.TopicArn !== null) {\n var node = new __XmlNode(\"TopicArn\").addChildNode(new __XmlText(input.TopicArn)).withName(\"Topic\");\n bodyNode.addChildNode(node);\n }\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTopicConfigurationList = 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 var node = serializeAws_restXmlTopicConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlTransition = function (input, context) {\n var bodyNode = new __XmlNode(\"Transition\");\n if (input.Date !== undefined && input.Date !== null) {\n var node = new __XmlNode(\"Date\")\n .addChildNode(new __XmlText(input.Date.toISOString().split(\".\")[0] + \"Z\"))\n .withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"TransitionStorageClass\")\n .addChildNode(new __XmlText(input.StorageClass))\n .withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTransitionList = 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 var node = serializeAws_restXmlTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlUserMetadata = 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 var node = serializeAws_restXmlMetadataEntry(entry, context);\n return node.withName(\"MetadataEntry\");\n });\n};\nvar serializeAws_restXmlVersioningConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"VersioningConfiguration\");\n if (input.MFADelete !== undefined && input.MFADelete !== null) {\n var node = new __XmlNode(\"MFADelete\").addChildNode(new __XmlText(input.MFADelete)).withName(\"MfaDelete\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"BucketVersioningStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlWebsiteConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"WebsiteConfiguration\");\n if (input.ErrorDocument !== undefined && input.ErrorDocument !== null) {\n var node = serializeAws_restXmlErrorDocument(input.ErrorDocument, context).withName(\"ErrorDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.IndexDocument !== undefined && input.IndexDocument !== null) {\n var node = serializeAws_restXmlIndexDocument(input.IndexDocument, context).withName(\"IndexDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.RedirectAllRequestsTo !== undefined && input.RedirectAllRequestsTo !== null) {\n var node = serializeAws_restXmlRedirectAllRequestsTo(input.RedirectAllRequestsTo, context).withName(\"RedirectAllRequestsTo\");\n bodyNode.addChildNode(node);\n }\n if (input.RoutingRules !== undefined && input.RoutingRules !== null) {\n var nodes = serializeAws_restXmlRoutingRules(input.RoutingRules, context);\n var containerNode_7 = new __XmlNode(\"RoutingRules\");\n nodes.map(function (node) {\n containerNode_7.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_7);\n }\n return bodyNode;\n};\nvar deserializeAws_restXmlAbortIncompleteMultipartUpload = function (output, context) {\n var contents = {\n DaysAfterInitiation: undefined,\n };\n if (output[\"DaysAfterInitiation\"] !== undefined) {\n contents.DaysAfterInitiation = parseInt(output[\"DaysAfterInitiation\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlAccessControlTranslation = function (output, context) {\n var contents = {\n Owner: undefined,\n };\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = output[\"Owner\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlAllowedHeaders = 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_restXmlAllowedMethods = 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_restXmlAllowedOrigins = 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_restXmlAnalyticsAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlAnalyticsConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n StorageClassAnalysis: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlAnalyticsFilter(output[\"Filter\"], context);\n }\n if (output[\"StorageClassAnalysis\"] !== undefined) {\n contents.StorageClassAnalysis = deserializeAws_restXmlStorageClassAnalysis(output[\"StorageClassAnalysis\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlAnalyticsConfigurationList = 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_restXmlAnalyticsConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlAnalyticsExportDestination = function (output, context) {\n var contents = {\n S3BucketDestination: undefined,\n };\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlAnalyticsS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlAnalyticsFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlAnalyticsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlAnalyticsS3BucketDestination = function (output, context) {\n var contents = {\n Format: undefined,\n BucketAccountId: undefined,\n Bucket: undefined,\n Prefix: undefined,\n };\n if (output[\"Format\"] !== undefined) {\n contents.Format = output[\"Format\"];\n }\n if (output[\"BucketAccountId\"] !== undefined) {\n contents.BucketAccountId = output[\"BucketAccountId\"];\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = output[\"Bucket\"];\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlBucket = function (output, context) {\n var contents = {\n Name: undefined,\n CreationDate: undefined,\n };\n if (output[\"Name\"] !== undefined) {\n contents.Name = output[\"Name\"];\n }\n if (output[\"CreationDate\"] !== undefined) {\n contents.CreationDate = new Date(output[\"CreationDate\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlBuckets = 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_restXmlBucket(entry, context);\n });\n};\nvar deserializeAws_restXmlCommonPrefix = function (output, context) {\n var contents = {\n Prefix: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlCommonPrefixList = 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_restXmlCommonPrefix(entry, context);\n });\n};\nvar deserializeAws_restXmlCondition = function (output, context) {\n var contents = {\n HttpErrorCodeReturnedEquals: undefined,\n KeyPrefixEquals: undefined,\n };\n if (output[\"HttpErrorCodeReturnedEquals\"] !== undefined) {\n contents.HttpErrorCodeReturnedEquals = output[\"HttpErrorCodeReturnedEquals\"];\n }\n if (output[\"KeyPrefixEquals\"] !== undefined) {\n contents.KeyPrefixEquals = output[\"KeyPrefixEquals\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlCopyObjectResult = function (output, context) {\n var contents = {\n ETag: undefined,\n LastModified: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlCopyPartResult = function (output, context) {\n var contents = {\n ETag: undefined,\n LastModified: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlCORSRule = function (output, context) {\n var contents = {\n AllowedHeaders: undefined,\n AllowedMethods: undefined,\n AllowedOrigins: undefined,\n ExposeHeaders: undefined,\n MaxAgeSeconds: undefined,\n };\n if (output.AllowedHeader === \"\") {\n contents.AllowedHeaders = [];\n }\n if (output[\"AllowedHeader\"] !== undefined) {\n contents.AllowedHeaders = deserializeAws_restXmlAllowedHeaders(__getArrayIfSingleItem(output[\"AllowedHeader\"]), context);\n }\n if (output.AllowedMethod === \"\") {\n contents.AllowedMethods = [];\n }\n if (output[\"AllowedMethod\"] !== undefined) {\n contents.AllowedMethods = deserializeAws_restXmlAllowedMethods(__getArrayIfSingleItem(output[\"AllowedMethod\"]), context);\n }\n if (output.AllowedOrigin === \"\") {\n contents.AllowedOrigins = [];\n }\n if (output[\"AllowedOrigin\"] !== undefined) {\n contents.AllowedOrigins = deserializeAws_restXmlAllowedOrigins(__getArrayIfSingleItem(output[\"AllowedOrigin\"]), context);\n }\n if (output.ExposeHeader === \"\") {\n contents.ExposeHeaders = [];\n }\n if (output[\"ExposeHeader\"] !== undefined) {\n contents.ExposeHeaders = deserializeAws_restXmlExposeHeaders(__getArrayIfSingleItem(output[\"ExposeHeader\"]), context);\n }\n if (output[\"MaxAgeSeconds\"] !== undefined) {\n contents.MaxAgeSeconds = parseInt(output[\"MaxAgeSeconds\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlCORSRules = 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_restXmlCORSRule(entry, context);\n });\n};\nvar deserializeAws_restXmlDefaultRetention = function (output, context) {\n var contents = {\n Mode: undefined,\n Days: undefined,\n Years: undefined,\n };\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = output[\"Mode\"];\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"Years\"] !== undefined) {\n contents.Years = parseInt(output[\"Years\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlDeletedObject = function (output, context) {\n var contents = {\n Key: undefined,\n VersionId: undefined,\n DeleteMarker: undefined,\n DeleteMarkerVersionId: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarker = output[\"DeleteMarker\"] == \"true\";\n }\n if (output[\"DeleteMarkerVersionId\"] !== undefined) {\n contents.DeleteMarkerVersionId = output[\"DeleteMarkerVersionId\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlDeletedObjects = 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_restXmlDeletedObject(entry, context);\n });\n};\nvar deserializeAws_restXmlDeleteMarkerEntry = function (output, context) {\n var contents = {\n Owner: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined,\n };\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = output[\"IsLatest\"] == \"true\";\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlDeleteMarkerReplication = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlDeleteMarkers = 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_restXmlDeleteMarkerEntry(entry, context);\n });\n};\nvar deserializeAws_restXmlDestination = function (output, context) {\n var contents = {\n Bucket: undefined,\n Account: undefined,\n StorageClass: undefined,\n AccessControlTranslation: undefined,\n EncryptionConfiguration: undefined,\n ReplicationTime: undefined,\n Metrics: undefined,\n };\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = output[\"Bucket\"];\n }\n if (output[\"Account\"] !== undefined) {\n contents.Account = output[\"Account\"];\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"AccessControlTranslation\"] !== undefined) {\n contents.AccessControlTranslation = deserializeAws_restXmlAccessControlTranslation(output[\"AccessControlTranslation\"], context);\n }\n if (output[\"EncryptionConfiguration\"] !== undefined) {\n contents.EncryptionConfiguration = deserializeAws_restXmlEncryptionConfiguration(output[\"EncryptionConfiguration\"], context);\n }\n if (output[\"ReplicationTime\"] !== undefined) {\n contents.ReplicationTime = deserializeAws_restXmlReplicationTime(output[\"ReplicationTime\"], context);\n }\n if (output[\"Metrics\"] !== undefined) {\n contents.Metrics = deserializeAws_restXmlMetrics(output[\"Metrics\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlEncryptionConfiguration = function (output, context) {\n var contents = {\n ReplicaKmsKeyID: undefined,\n };\n if (output[\"ReplicaKmsKeyID\"] !== undefined) {\n contents.ReplicaKmsKeyID = output[\"ReplicaKmsKeyID\"];\n }\n return contents;\n};\nvar deserializeAws_restXml_Error = function (output, context) {\n var contents = {\n Key: undefined,\n VersionId: undefined,\n Code: undefined,\n Message: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"Code\"] !== undefined) {\n contents.Code = output[\"Code\"];\n }\n if (output[\"Message\"] !== undefined) {\n contents.Message = output[\"Message\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlErrorDocument = function (output, context) {\n var contents = {\n Key: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlErrors = 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_restXml_Error(entry, context);\n });\n};\nvar deserializeAws_restXmlEventList = 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_restXmlExistingObjectReplication = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlExposeHeaders = 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_restXmlFilterRule = function (output, context) {\n var contents = {\n Name: undefined,\n Value: undefined,\n };\n if (output[\"Name\"] !== undefined) {\n contents.Name = output[\"Name\"];\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = output[\"Value\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlFilterRuleList = 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_restXmlFilterRule(entry, context);\n });\n};\nvar deserializeAws_restXmlGrant = function (output, context) {\n var contents = {\n Grantee: undefined,\n Permission: undefined,\n };\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = output[\"Permission\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlGrantee = function (output, context) {\n var contents = {\n DisplayName: undefined,\n EmailAddress: undefined,\n ID: undefined,\n URI: undefined,\n Type: undefined,\n };\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = output[\"DisplayName\"];\n }\n if (output[\"EmailAddress\"] !== undefined) {\n contents.EmailAddress = output[\"EmailAddress\"];\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"URI\"] !== undefined) {\n contents.URI = output[\"URI\"];\n }\n if (output[\"xsi:type\"] !== undefined) {\n contents.Type = output[\"xsi:type\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlGrants = 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_restXmlGrant(entry, context);\n });\n};\nvar deserializeAws_restXmlIndexDocument = function (output, context) {\n var contents = {\n Suffix: undefined,\n };\n if (output[\"Suffix\"] !== undefined) {\n contents.Suffix = output[\"Suffix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlInitiator = function (output, context) {\n var contents = {\n ID: undefined,\n DisplayName: undefined,\n };\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = output[\"DisplayName\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlIntelligentTieringAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlIntelligentTieringConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n Status: undefined,\n Tierings: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlIntelligentTieringFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output.Tiering === \"\") {\n contents.Tierings = [];\n }\n if (output[\"Tiering\"] !== undefined) {\n contents.Tierings = deserializeAws_restXmlTieringList(__getArrayIfSingleItem(output[\"Tiering\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlIntelligentTieringConfigurationList = 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_restXmlIntelligentTieringConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlIntelligentTieringFilter = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tag: undefined,\n And: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tag = deserializeAws_restXmlTag(output[\"Tag\"], context);\n }\n if (output[\"And\"] !== undefined) {\n contents.And = deserializeAws_restXmlIntelligentTieringAndOperator(output[\"And\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryConfiguration = function (output, context) {\n var contents = {\n Destination: undefined,\n IsEnabled: undefined,\n Filter: undefined,\n Id: undefined,\n IncludedObjectVersions: undefined,\n OptionalFields: undefined,\n Schedule: undefined,\n };\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlInventoryDestination(output[\"Destination\"], context);\n }\n if (output[\"IsEnabled\"] !== undefined) {\n contents.IsEnabled = output[\"IsEnabled\"] == \"true\";\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlInventoryFilter(output[\"Filter\"], context);\n }\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"IncludedObjectVersions\"] !== undefined) {\n contents.IncludedObjectVersions = output[\"IncludedObjectVersions\"];\n }\n if (output.OptionalFields === \"\") {\n contents.OptionalFields = [];\n }\n if (output[\"OptionalFields\"] !== undefined && output[\"OptionalFields\"][\"Field\"] !== undefined) {\n contents.OptionalFields = deserializeAws_restXmlInventoryOptionalFields(__getArrayIfSingleItem(output[\"OptionalFields\"][\"Field\"]), context);\n }\n if (output[\"Schedule\"] !== undefined) {\n contents.Schedule = deserializeAws_restXmlInventorySchedule(output[\"Schedule\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryConfigurationList = 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_restXmlInventoryConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlInventoryDestination = function (output, context) {\n var contents = {\n S3BucketDestination: undefined,\n };\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlInventoryS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryEncryption = function (output, context) {\n var contents = {\n SSES3: undefined,\n SSEKMS: undefined,\n };\n if (output[\"SSE-S3\"] !== undefined) {\n contents.SSES3 = deserializeAws_restXmlSSES3(output[\"SSE-S3\"], context);\n }\n if (output[\"SSE-KMS\"] !== undefined) {\n contents.SSEKMS = deserializeAws_restXmlSSEKMS(output[\"SSE-KMS\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryFilter = function (output, context) {\n var contents = {\n Prefix: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryOptionalFields = 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_restXmlInventoryS3BucketDestination = function (output, context) {\n var contents = {\n AccountId: undefined,\n Bucket: undefined,\n Format: undefined,\n Prefix: undefined,\n Encryption: undefined,\n };\n if (output[\"AccountId\"] !== undefined) {\n contents.AccountId = output[\"AccountId\"];\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = output[\"Bucket\"];\n }\n if (output[\"Format\"] !== undefined) {\n contents.Format = output[\"Format\"];\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Encryption\"] !== undefined) {\n contents.Encryption = deserializeAws_restXmlInventoryEncryption(output[\"Encryption\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventorySchedule = function (output, context) {\n var contents = {\n Frequency: undefined,\n };\n if (output[\"Frequency\"] !== undefined) {\n contents.Frequency = output[\"Frequency\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlLambdaFunctionConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n LambdaFunctionArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"CloudFunction\"] !== undefined) {\n contents.LambdaFunctionArn = output[\"CloudFunction\"];\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlLambdaFunctionConfigurationList = 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_restXmlLambdaFunctionConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlLifecycleExpiration = function (output, context) {\n var contents = {\n Date: undefined,\n Days: undefined,\n ExpiredObjectDeleteMarker: undefined,\n };\n if (output[\"Date\"] !== undefined) {\n contents.Date = new Date(output[\"Date\"]);\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"ExpiredObjectDeleteMarker\"] !== undefined) {\n contents.ExpiredObjectDeleteMarker = output[\"ExpiredObjectDeleteMarker\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlLifecycleRule = function (output, context) {\n var contents = {\n Expiration: undefined,\n ID: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n Transitions: undefined,\n NoncurrentVersionTransitions: undefined,\n NoncurrentVersionExpiration: undefined,\n AbortIncompleteMultipartUpload: undefined,\n };\n if (output[\"Expiration\"] !== undefined) {\n contents.Expiration = deserializeAws_restXmlLifecycleExpiration(output[\"Expiration\"], context);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlLifecycleRuleFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output.Transition === \"\") {\n contents.Transitions = [];\n }\n if (output[\"Transition\"] !== undefined) {\n contents.Transitions = deserializeAws_restXmlTransitionList(__getArrayIfSingleItem(output[\"Transition\"]), context);\n }\n if (output.NoncurrentVersionTransition === \"\") {\n contents.NoncurrentVersionTransitions = [];\n }\n if (output[\"NoncurrentVersionTransition\"] !== undefined) {\n contents.NoncurrentVersionTransitions = deserializeAws_restXmlNoncurrentVersionTransitionList(__getArrayIfSingleItem(output[\"NoncurrentVersionTransition\"]), context);\n }\n if (output[\"NoncurrentVersionExpiration\"] !== undefined) {\n contents.NoncurrentVersionExpiration = deserializeAws_restXmlNoncurrentVersionExpiration(output[\"NoncurrentVersionExpiration\"], context);\n }\n if (output[\"AbortIncompleteMultipartUpload\"] !== undefined) {\n contents.AbortIncompleteMultipartUpload = deserializeAws_restXmlAbortIncompleteMultipartUpload(output[\"AbortIncompleteMultipartUpload\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlLifecycleRuleAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlLifecycleRuleFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlLifecycleRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlLifecycleRules = 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_restXmlLifecycleRule(entry, context);\n });\n};\nvar deserializeAws_restXmlLoggingEnabled = function (output, context) {\n var contents = {\n TargetBucket: undefined,\n TargetGrants: undefined,\n TargetPrefix: undefined,\n };\n if (output[\"TargetBucket\"] !== undefined) {\n contents.TargetBucket = output[\"TargetBucket\"];\n }\n if (output.TargetGrants === \"\") {\n contents.TargetGrants = [];\n }\n if (output[\"TargetGrants\"] !== undefined && output[\"TargetGrants\"][\"Grant\"] !== undefined) {\n contents.TargetGrants = deserializeAws_restXmlTargetGrants(__getArrayIfSingleItem(output[\"TargetGrants\"][\"Grant\"]), context);\n }\n if (output[\"TargetPrefix\"] !== undefined) {\n contents.TargetPrefix = output[\"TargetPrefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlMetrics = function (output, context) {\n var contents = {\n Status: undefined,\n EventThreshold: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output[\"EventThreshold\"] !== undefined) {\n contents.EventThreshold = deserializeAws_restXmlReplicationTimeValue(output[\"EventThreshold\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMetricsAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMetricsConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlMetricsFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMetricsConfigurationList = 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_restXmlMetricsConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlMetricsFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlMetricsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlMultipartUpload = function (output, context) {\n var contents = {\n UploadId: undefined,\n Key: undefined,\n Initiated: undefined,\n StorageClass: undefined,\n Owner: undefined,\n Initiator: undefined,\n };\n if (output[\"UploadId\"] !== undefined) {\n contents.UploadId = output[\"UploadId\"];\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"Initiated\"] !== undefined) {\n contents.Initiated = new Date(output[\"Initiated\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n if (output[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(output[\"Initiator\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMultipartUploadList = 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_restXmlMultipartUpload(entry, context);\n });\n};\nvar deserializeAws_restXmlNoncurrentVersionExpiration = function (output, context) {\n var contents = {\n NoncurrentDays: undefined,\n };\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = parseInt(output[\"NoncurrentDays\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlNoncurrentVersionTransition = function (output, context) {\n var contents = {\n NoncurrentDays: undefined,\n StorageClass: undefined,\n };\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = parseInt(output[\"NoncurrentDays\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlNoncurrentVersionTransitionList = 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_restXmlNoncurrentVersionTransition(entry, context);\n });\n};\nvar deserializeAws_restXmlNotificationConfigurationFilter = function (output, context) {\n var contents = {\n Key: undefined,\n };\n if (output[\"S3Key\"] !== undefined) {\n contents.Key = deserializeAws_restXmlS3KeyFilter(output[\"S3Key\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXml_Object = function (output, context) {\n var contents = {\n Key: undefined,\n LastModified: undefined,\n ETag: undefined,\n Size: undefined,\n StorageClass: undefined,\n Owner: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectList = 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_restXml_Object(entry, context);\n });\n};\nvar deserializeAws_restXmlObjectLockConfiguration = function (output, context) {\n var contents = {\n ObjectLockEnabled: undefined,\n Rule: undefined,\n };\n if (output[\"ObjectLockEnabled\"] !== undefined) {\n contents.ObjectLockEnabled = output[\"ObjectLockEnabled\"];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rule = deserializeAws_restXmlObjectLockRule(output[\"Rule\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectLockLegalHold = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectLockRetention = function (output, context) {\n var contents = {\n Mode: undefined,\n RetainUntilDate: undefined,\n };\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = output[\"Mode\"];\n }\n if (output[\"RetainUntilDate\"] !== undefined) {\n contents.RetainUntilDate = new Date(output[\"RetainUntilDate\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectLockRule = function (output, context) {\n var contents = {\n DefaultRetention: undefined,\n };\n if (output[\"DefaultRetention\"] !== undefined) {\n contents.DefaultRetention = deserializeAws_restXmlDefaultRetention(output[\"DefaultRetention\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectVersion = function (output, context) {\n var contents = {\n ETag: undefined,\n Size: undefined,\n StorageClass: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined,\n Owner: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = output[\"IsLatest\"] == \"true\";\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectVersionList = 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_restXmlObjectVersion(entry, context);\n });\n};\nvar deserializeAws_restXmlOwner = function (output, context) {\n var contents = {\n DisplayName: undefined,\n ID: undefined,\n };\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = output[\"DisplayName\"];\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlOwnershipControls = function (output, context) {\n var contents = {\n Rules: undefined,\n };\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlOwnershipControlsRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlOwnershipControlsRule = function (output, context) {\n var contents = {\n ObjectOwnership: undefined,\n };\n if (output[\"ObjectOwnership\"] !== undefined) {\n contents.ObjectOwnership = output[\"ObjectOwnership\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlOwnershipControlsRules = 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_restXmlOwnershipControlsRule(entry, context);\n });\n};\nvar deserializeAws_restXmlPart = function (output, context) {\n var contents = {\n PartNumber: undefined,\n LastModified: undefined,\n ETag: undefined,\n Size: undefined,\n };\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = parseInt(output[\"PartNumber\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlParts = 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_restXmlPart(entry, context);\n });\n};\nvar deserializeAws_restXmlPolicyStatus = function (output, context) {\n var contents = {\n IsPublic: undefined,\n };\n if (output[\"IsPublic\"] !== undefined) {\n contents.IsPublic = output[\"IsPublic\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlPublicAccessBlockConfiguration = function (output, context) {\n var contents = {\n BlockPublicAcls: undefined,\n IgnorePublicAcls: undefined,\n BlockPublicPolicy: undefined,\n RestrictPublicBuckets: undefined,\n };\n if (output[\"BlockPublicAcls\"] !== undefined) {\n contents.BlockPublicAcls = output[\"BlockPublicAcls\"] == \"true\";\n }\n if (output[\"IgnorePublicAcls\"] !== undefined) {\n contents.IgnorePublicAcls = output[\"IgnorePublicAcls\"] == \"true\";\n }\n if (output[\"BlockPublicPolicy\"] !== undefined) {\n contents.BlockPublicPolicy = output[\"BlockPublicPolicy\"] == \"true\";\n }\n if (output[\"RestrictPublicBuckets\"] !== undefined) {\n contents.RestrictPublicBuckets = output[\"RestrictPublicBuckets\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlQueueConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n QueueArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Queue\"] !== undefined) {\n contents.QueueArn = output[\"Queue\"];\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlQueueConfigurationList = 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_restXmlQueueConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlRedirect = function (output, context) {\n var contents = {\n HostName: undefined,\n HttpRedirectCode: undefined,\n Protocol: undefined,\n ReplaceKeyPrefixWith: undefined,\n ReplaceKeyWith: undefined,\n };\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = output[\"HostName\"];\n }\n if (output[\"HttpRedirectCode\"] !== undefined) {\n contents.HttpRedirectCode = output[\"HttpRedirectCode\"];\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = output[\"Protocol\"];\n }\n if (output[\"ReplaceKeyPrefixWith\"] !== undefined) {\n contents.ReplaceKeyPrefixWith = output[\"ReplaceKeyPrefixWith\"];\n }\n if (output[\"ReplaceKeyWith\"] !== undefined) {\n contents.ReplaceKeyWith = output[\"ReplaceKeyWith\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlRedirectAllRequestsTo = function (output, context) {\n var contents = {\n HostName: undefined,\n Protocol: undefined,\n };\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = output[\"HostName\"];\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = output[\"Protocol\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicaModifications = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationConfiguration = function (output, context) {\n var contents = {\n Role: undefined,\n Rules: undefined,\n };\n if (output[\"Role\"] !== undefined) {\n contents.Role = output[\"Role\"];\n }\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlReplicationRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationRule = function (output, context) {\n var contents = {\n ID: undefined,\n Priority: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n SourceSelectionCriteria: undefined,\n ExistingObjectReplication: undefined,\n Destination: undefined,\n DeleteMarkerReplication: undefined,\n };\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"Priority\"] !== undefined) {\n contents.Priority = parseInt(output[\"Priority\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlReplicationRuleFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output[\"SourceSelectionCriteria\"] !== undefined) {\n contents.SourceSelectionCriteria = deserializeAws_restXmlSourceSelectionCriteria(output[\"SourceSelectionCriteria\"], context);\n }\n if (output[\"ExistingObjectReplication\"] !== undefined) {\n contents.ExistingObjectReplication = deserializeAws_restXmlExistingObjectReplication(output[\"ExistingObjectReplication\"], context);\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlDestination(output[\"Destination\"], context);\n }\n if (output[\"DeleteMarkerReplication\"] !== undefined) {\n contents.DeleteMarkerReplication = deserializeAws_restXmlDeleteMarkerReplication(output[\"DeleteMarkerReplication\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationRuleAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationRuleFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlReplicationRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlReplicationRules = 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_restXmlReplicationRule(entry, context);\n });\n};\nvar deserializeAws_restXmlReplicationTime = function (output, context) {\n var contents = {\n Status: undefined,\n Time: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output[\"Time\"] !== undefined) {\n contents.Time = deserializeAws_restXmlReplicationTimeValue(output[\"Time\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationTimeValue = function (output, context) {\n var contents = {\n Minutes: undefined,\n };\n if (output[\"Minutes\"] !== undefined) {\n contents.Minutes = parseInt(output[\"Minutes\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlRoutingRule = function (output, context) {\n var contents = {\n Condition: undefined,\n Redirect: undefined,\n };\n if (output[\"Condition\"] !== undefined) {\n contents.Condition = deserializeAws_restXmlCondition(output[\"Condition\"], context);\n }\n if (output[\"Redirect\"] !== undefined) {\n contents.Redirect = deserializeAws_restXmlRedirect(output[\"Redirect\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlRoutingRules = 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_restXmlRoutingRule(entry, context);\n });\n};\nvar deserializeAws_restXmlS3KeyFilter = function (output, context) {\n var contents = {\n FilterRules: undefined,\n };\n if (output.FilterRule === \"\") {\n contents.FilterRules = [];\n }\n if (output[\"FilterRule\"] !== undefined) {\n contents.FilterRules = deserializeAws_restXmlFilterRuleList(__getArrayIfSingleItem(output[\"FilterRule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionByDefault = function (output, context) {\n var contents = {\n SSEAlgorithm: undefined,\n KMSMasterKeyID: undefined,\n };\n if (output[\"SSEAlgorithm\"] !== undefined) {\n contents.SSEAlgorithm = output[\"SSEAlgorithm\"];\n }\n if (output[\"KMSMasterKeyID\"] !== undefined) {\n contents.KMSMasterKeyID = output[\"KMSMasterKeyID\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionConfiguration = function (output, context) {\n var contents = {\n Rules: undefined,\n };\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlServerSideEncryptionRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionRule = function (output, context) {\n var contents = {\n ApplyServerSideEncryptionByDefault: undefined,\n BucketKeyEnabled: undefined,\n };\n if (output[\"ApplyServerSideEncryptionByDefault\"] !== undefined) {\n contents.ApplyServerSideEncryptionByDefault = deserializeAws_restXmlServerSideEncryptionByDefault(output[\"ApplyServerSideEncryptionByDefault\"], context);\n }\n if (output[\"BucketKeyEnabled\"] !== undefined) {\n contents.BucketKeyEnabled = output[\"BucketKeyEnabled\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionRules = 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_restXmlServerSideEncryptionRule(entry, context);\n });\n};\nvar deserializeAws_restXmlSourceSelectionCriteria = function (output, context) {\n var contents = {\n SseKmsEncryptedObjects: undefined,\n ReplicaModifications: undefined,\n };\n if (output[\"SseKmsEncryptedObjects\"] !== undefined) {\n contents.SseKmsEncryptedObjects = deserializeAws_restXmlSseKmsEncryptedObjects(output[\"SseKmsEncryptedObjects\"], context);\n }\n if (output[\"ReplicaModifications\"] !== undefined) {\n contents.ReplicaModifications = deserializeAws_restXmlReplicaModifications(output[\"ReplicaModifications\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlSSEKMS = function (output, context) {\n var contents = {\n KeyId: undefined,\n };\n if (output[\"KeyId\"] !== undefined) {\n contents.KeyId = output[\"KeyId\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlSseKmsEncryptedObjects = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlSSES3 = function (output, context) {\n var contents = {};\n return contents;\n};\nvar deserializeAws_restXmlStorageClassAnalysis = function (output, context) {\n var contents = {\n DataExport: undefined,\n };\n if (output[\"DataExport\"] !== undefined) {\n contents.DataExport = deserializeAws_restXmlStorageClassAnalysisDataExport(output[\"DataExport\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlStorageClassAnalysisDataExport = function (output, context) {\n var contents = {\n OutputSchemaVersion: undefined,\n Destination: undefined,\n };\n if (output[\"OutputSchemaVersion\"] !== undefined) {\n contents.OutputSchemaVersion = output[\"OutputSchemaVersion\"];\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlAnalyticsExportDestination(output[\"Destination\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlTag = function (output, context) {\n var contents = {\n Key: undefined,\n Value: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = output[\"Value\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTagSet = 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_restXmlTag(entry, context);\n });\n};\nvar deserializeAws_restXmlTargetGrant = function (output, context) {\n var contents = {\n Grantee: undefined,\n Permission: undefined,\n };\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = output[\"Permission\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTargetGrants = 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_restXmlTargetGrant(entry, context);\n });\n};\nvar deserializeAws_restXmlTiering = function (output, context) {\n var contents = {\n Days: undefined,\n AccessTier: undefined,\n };\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"AccessTier\"] !== undefined) {\n contents.AccessTier = output[\"AccessTier\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTieringList = 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_restXmlTiering(entry, context);\n });\n};\nvar deserializeAws_restXmlTopicConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n TopicArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Topic\"] !== undefined) {\n contents.TopicArn = output[\"Topic\"];\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlTopicConfigurationList = 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_restXmlTopicConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlTransition = function (output, context) {\n var contents = {\n Date: undefined,\n Days: undefined,\n StorageClass: undefined,\n };\n if (output[\"Date\"] !== undefined) {\n contents.Date = new Date(output[\"Date\"]);\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTransitionList = 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_restXmlTransition(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 decodeEscapedXML = function (str) {\n return str\n .replace(/&/g, \"&\")\n .replace(/'/g, \"'\")\n .replace(/"/g, '\"')\n .replace(/>/g, \">\")\n .replace(/</g, \"<\");\n};\nvar parseBody = function (streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n var parsedObj = xmlParse(encoded, {\n attributeNamePrefix: \"\",\n ignoreAttributes: false,\n parseNodeValue: false,\n tagValueProcessor: function (val, tagName) { return decodeEscapedXML(val); },\n });\n var textNodeName = \"#text\";\n var key = Object.keys(parsedObj)[0];\n var parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return __getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n });\n};\nvar loadRestXmlErrorCode = function (output, data) {\n if (data.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n return \"\";\n};\n//# sourceMappingURL=Aws_restXml.js.map","import { __read } from \"tslib\";\n/**\n * Validate whether a string is an ARN.\n */\nexport var validate = function (str) {\n return typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\n};\n/**\n * Parse an ARN string into structure with partition, service, region, accountId and resource values\n */\nexport var parse = function (arn) {\n var segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\")\n throw new Error(\"Malformed ARN\");\n var _a = __read(segments), \n //Skip \"arn\" literal\n partition = _a[1], service = _a[2], region = _a[3], accountId = _a[4], resource = _a.slice(5);\n return {\n partition: partition,\n service: service,\n region: region,\n accountId: accountId,\n resource: resource.join(\":\"),\n };\n};\n/**\n * Build an ARN with service, partition, region, accountId, and resources strings\n */\nexport var build = function (arnObject) {\n var _a = arnObject.partition, partition = _a === void 0 ? \"aws\" : _a, service = arnObject.service, region = arnObject.region, accountId = arnObject.accountId, resource = arnObject.resource;\n if ([service, region, accountId, resource].some(function (segment) { return typeof segment !== \"string\"; })) {\n throw new Error(\"Input ARN object is invalid\");\n }\n return \"arn:\" + partition + \":\" + service + \":\" + region + \":\" + accountId + \":\" + resource;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU9BOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFHLFVBQUMsR0FBUTtJQUMvQixPQUFBLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckY7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxLQUFLLEdBQUcsVUFBQyxHQUFXO0lBQy9CLElBQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0UsSUFBQSxLQUFBLE9BUUYsUUFBUSxDQUFBO0lBTlYsb0JBQW9CO0lBQ3BCLFNBQVMsUUFBQSxFQUNULE9BQU8sUUFBQSxFQUNQLE1BQU0sUUFBQSxFQUNOLFNBQVMsUUFBQSxFQUNOLFFBQVEsY0FDRCxDQUFDO0lBRWIsT0FBTztRQUNMLFNBQVMsV0FBQTtRQUNULE9BQU8sU0FBQTtRQUNQLE1BQU0sUUFBQTtRQUNOLFNBQVMsV0FBQTtRQUNULFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztLQUM3QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBSUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxLQUFLLEdBQUcsVUFBQyxTQUF1QjtJQUNuQyxJQUFBLEtBQTRELFNBQVMsVUFBcEQsRUFBakIsU0FBUyxtQkFBRyxLQUFLLEtBQUEsRUFBRSxPQUFPLEdBQWtDLFNBQVMsUUFBM0MsRUFBRSxNQUFNLEdBQTBCLFNBQVMsT0FBbkMsRUFBRSxTQUFTLEdBQWUsU0FBUyxVQUF4QixFQUFFLFFBQVEsR0FBSyxTQUFTLFNBQWQsQ0FBZTtJQUM5RSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxPQUFPLEtBQUssUUFBUSxFQUEzQixDQUEyQixDQUFDLEVBQUU7UUFDekYsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ2hEO0lBQ0QsT0FBTyxTQUFPLFNBQVMsU0FBSSxPQUFPLFNBQUksTUFBTSxTQUFJLFNBQVMsU0FBSSxRQUFVLENBQUM7QUFDMUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBUk4ge1xuICBwYXJ0aXRpb246IHN0cmluZztcbiAgc2VydmljZTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHJlc291cmNlOiBzdHJpbmc7XG59XG4vKipcbiAqIFZhbGlkYXRlIHdoZXRoZXIgYSBzdHJpbmcgaXMgYW4gQVJOLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSAoc3RyOiBhbnkpOiBib29sZWFuID0+XG4gIHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmluZGV4T2YoXCJhcm46XCIpID09PSAwICYmIHN0ci5zcGxpdChcIjpcIikubGVuZ3RoID49IDY7XG5cbi8qKlxuICogUGFyc2UgYW4gQVJOIHN0cmluZyBpbnRvIHN0cnVjdHVyZSB3aXRoIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQgYW5kIHJlc291cmNlIHZhbHVlc1xuICovXG5leHBvcnQgY29uc3QgcGFyc2UgPSAoYXJuOiBzdHJpbmcpOiBBUk4gPT4ge1xuICBjb25zdCBzZWdtZW50cyA9IGFybi5zcGxpdChcIjpcIik7XG4gIGlmIChzZWdtZW50cy5sZW5ndGggPCA2IHx8IHNlZ21lbnRzWzBdICE9PSBcImFyblwiKSB0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgQVJOXCIpO1xuICBjb25zdCBbXG4gICAgLFxuICAgIC8vU2tpcCBcImFyblwiIGxpdGVyYWxcbiAgICBwYXJ0aXRpb24sXG4gICAgc2VydmljZSxcbiAgICByZWdpb24sXG4gICAgYWNjb3VudElkLFxuICAgIC4uLnJlc291cmNlXG4gIF0gPSBzZWdtZW50cztcblxuICByZXR1cm4ge1xuICAgIHBhcnRpdGlvbixcbiAgICBzZXJ2aWNlLFxuICAgIHJlZ2lvbixcbiAgICBhY2NvdW50SWQsXG4gICAgcmVzb3VyY2U6IHJlc291cmNlLmpvaW4oXCI6XCIpLFxuICB9O1xufTtcblxudHlwZSBidWlsZE9wdGlvbnMgPSBPbWl0PEFSTiwgXCJwYXJ0aXRpb25cIj4gJiB7IHBhcnRpdGlvbj86IHN0cmluZyB9O1xuXG4vKipcbiAqIEJ1aWxkIGFuIEFSTiB3aXRoIHNlcnZpY2UsIHBhcnRpdGlvbiwgcmVnaW9uLCBhY2NvdW50SWQsIGFuZCByZXNvdXJjZXMgc3RyaW5nc1xuICovXG5leHBvcnQgY29uc3QgYnVpbGQgPSAoYXJuT2JqZWN0OiBidWlsZE9wdGlvbnMpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHBhcnRpdGlvbiA9IFwiYXdzXCIsIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZSB9ID0gYXJuT2JqZWN0O1xuICBpZiAoW3NlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZV0uc29tZSgoc2VnbWVudCkgPT4gdHlwZW9mIHNlZ21lbnQgIT09IFwic3RyaW5nXCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgQVJOIG9iamVjdCBpcyBpbnZhbGlkXCIpO1xuICB9XG4gIHJldHVybiBgYXJuOiR7cGFydGl0aW9ufToke3NlcnZpY2V9OiR7cmVnaW9ufToke2FjY291bnRJZH06JHtyZXNvdXJjZX1gO1xufTtcbiJdfQ==","import { __read } from \"tslib\";\nvar DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nvar IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nvar DOTS_PATTERN = /\\.\\./;\nexport var DOT_PATTERN = /\\./;\nexport var S3_HOSTNAME_PATTERN = /^(.+\\.)?s3[.-]([a-z0-9-]+)\\./;\nvar S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\\.amazonaws\\.com$/;\nvar AWS_PARTITION_SUFFIX = \"amazonaws.com\";\nexport var isBucketNameOptions = function (options) { return typeof options.bucketName === \"string\"; };\n/**\n * Get pseudo region from supplied region. For example, if supplied with `fips-us-west-2`, it returns `us-west-2`.\n * @internal\n */\nexport var getPseudoRegion = function (region) { return (isFipsRegion(region) ? region.replace(/fips-|-fips/, \"\") : region); };\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://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html\n */\nexport var isDnsCompatibleBucketName = function (bucketName) {\n return DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\n};\nvar getRegionalSuffix = function (hostname) {\n var parts = hostname.match(S3_HOSTNAME_PATTERN);\n return [parts[2], hostname.replace(new RegExp(\"^\" + parts[0]), \"\")];\n};\nexport var getSuffix = function (hostname) {\n return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [\"us-east-1\", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);\n};\n/**\n * Infer region and hostname suffix from a complete hostname\n * @internal\n * @param hostname - Hostname\n * @returns [Region, Hostname suffix]\n */\nexport var getSuffixForArnEndpoint = function (hostname) {\n return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname)\n ? [hostname.replace(\".\" + AWS_PARTITION_SUFFIX, \"\"), AWS_PARTITION_SUFFIX]\n : getRegionalSuffix(hostname);\n};\nexport var validateArnEndpointOptions = function (options) {\n if (options.pathStyleEndpoint) {\n throw new Error(\"Path-style S3 endpoint is not supported when bucket is an ARN\");\n }\n if (options.accelerateEndpoint) {\n throw new Error(\"Accelerate endpoint is not supported when bucket is an ARN\");\n }\n if (!options.tlsCompatible) {\n throw new Error(\"HTTPS is required when bucket is an ARN\");\n }\n};\nexport var validateService = function (service) {\n if (service !== \"s3\" && service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3' or 's3-outposts' in ARN service component\");\n }\n};\nexport var validateS3Service = function (service) {\n if (service !== \"s3\") {\n throw new Error(\"Expect 's3' in Accesspoint ARN service component\");\n }\n};\nexport var validateOutpostService = function (service) {\n if (service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3-posts' in Outpost ARN service component\");\n }\n};\n/**\n * Validate partition inferred from ARN is the same to `options.clientPartition`.\n * @internal\n */\nexport var validatePartition = function (partition, options) {\n if (partition !== options.clientPartition) {\n throw new Error(\"Partition in ARN is incompatible, got \\\"\" + partition + \"\\\" but expected \\\"\" + options.clientPartition + \"\\\"\");\n }\n};\n/**\n * validate region value inferred from ARN. If `options.useArnRegion` is set, it validates the region is not a FIPS\n * region. If `options.useArnRegion` is unset, it validates the region is equal to `options.clientRegion` or\n * `options.clientSigningRegion`.\n * @internal\n */\nexport var validateRegion = function (region, options) {\n if (region === \"\") {\n throw new Error(\"ARN region is empty\");\n }\n if (!options.useArnRegion &&\n !isEqualRegions(region, options.clientRegion) &&\n !isEqualRegions(region, options.clientSigningRegion)) {\n throw new Error(\"Region in ARN is incompatible, got \" + region + \" but expected \" + options.clientRegion);\n }\n if (options.useArnRegion && isFipsRegion(region)) {\n throw new Error(\"Endpoint does not support FIPS region\");\n }\n};\nvar isFipsRegion = function (region) { return region.startsWith(\"fips-\") || region.endsWith(\"-fips\"); };\nvar isEqualRegions = function (regionA, regionB) {\n return regionA === regionB || getPseudoRegion(regionA) === regionB || regionA === getPseudoRegion(regionB);\n};\n/**\n * Validate an account ID\n * @internal\n */\nexport var validateAccountId = function (accountId) {\n if (!/[0-9]{12}/.exec(accountId)) {\n throw new Error(\"Access point ARN accountID does not match regex '[0-9]{12}'\");\n }\n};\n/**\n * Validate a host label according to https://tools.ietf.org/html/rfc3986#section-3.2.2\n * @internal\n */\nexport var validateDNSHostLabel = function (label, options) {\n if (options === void 0) { options = { tlsCompatible: true }; }\n // reference: https://tools.ietf.org/html/rfc3986#section-3.2.2\n if (label.length >= 64 ||\n !/^[a-z0-9][a-z0-9.-]+[a-z0-9]$/.test(label) ||\n /(\\d+\\.){3}\\d+/.test(label) ||\n /[.-]{2}/.test(label) ||\n ((options === null || options === void 0 ? void 0 : options.tlsCompatible) && DOT_PATTERN.test(label))) {\n throw new Error(\"Invalid DNS label \" + label);\n }\n};\n/**\n * Validate and parse an Access Point ARN or Outposts ARN\n * @internal\n *\n * @param resource - The resource section of an ARN\n * @returns Access Point Name and optional Outpost ID.\n */\nexport var getArnResources = function (resource) {\n var delimiter = resource.includes(\":\") ? \":\" : \"/\";\n var _a = __read(resource.split(delimiter)), resourceType = _a[0], rest = _a.slice(1);\n if (resourceType === \"accesspoint\") {\n // Parse accesspoint ARN\n if (rest.length !== 1 || rest[0] === \"\") {\n throw new Error(\"Access Point ARN should have one resource accesspoint\" + delimiter + \"{accesspointname}\");\n }\n return { accesspointName: rest[0] };\n }\n else if (resourceType === \"outpost\") {\n // Parse outpost ARN\n if (!rest[0] || rest[1] !== \"accesspoint\" || !rest[2] || rest.length !== 3) {\n throw new Error(\"Outpost ARN should have resource outpost\" + delimiter + \"{outpostId}\" + delimiter + \"accesspoint\" + delimiter + \"{accesspointName}\");\n }\n var _b = __read(rest, 3), outpostId = _b[0], _ = _b[1], accesspointName = _b[2];\n return { outpostId: outpostId, accesspointName: accesspointName };\n }\n else {\n throw new Error(\"ARN resource should begin with 'accesspoint\" + delimiter + \"' or 'outpost\" + delimiter + \"'\");\n }\n};\n/**\n * Throw if dual stack configuration is set to true.\n * @internal\n */\nexport var validateNoDualstack = function (dualstackEndpoint) {\n if (dualstackEndpoint)\n throw new Error(\"Dualstack endpoint is not supported with Outpost\");\n};\n/**\n * Validate region is not appended or prepended with a `fips-`\n * @internal\n */\nexport var validateNoFIPS = function (region) {\n if (isFipsRegion(region !== null && region !== void 0 ? region : \"\"))\n throw new Error(\"FIPS region is not supported with Outpost, got \" + region);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWVVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXRIb3N0bmFtZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFNLGNBQWMsR0FBRyxzQ0FBc0MsQ0FBQztBQUM5RCxJQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FBQztBQUMzQyxJQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7QUFDNUIsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUNoQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyw4QkFBOEIsQ0FBQztBQUNsRSxJQUFNLDRCQUE0QixHQUFHLG9DQUFvQyxDQUFDO0FBQzFFLElBQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDO0FBd0I3QyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUNqQyxPQUFpRCxJQUNiLE9BQUEsT0FBTyxPQUFPLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBdEMsQ0FBc0MsQ0FBQztBQUU3RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsVUFBQyxNQUFjLElBQUssT0FBQSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFuRSxDQUFtRSxDQUFDO0FBRXZIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRyxVQUFDLFVBQWtCO0lBQzFELE9BQUEsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0FBQXpHLENBQXlHLENBQUM7QUFFNUcsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLFFB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QzFFLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkNBQTJDLFNBQVMsbUJBQWMsU0FBUyxtQkFBYyxTQUFTLHNCQUFtQixDQUN0SCxDQUFDO1NBQ0g7UUFDSyxJQUFBLEtBQUEsT0FBa0MsSUFBSSxJQUFBLEVBQXJDLFNBQVMsUUFBQSxFQUFFLENBQUMsUUFBQSxFQUFFLGVBQWUsUUFBUSxDQUFDO1FBQzdDLE9BQU8sRUFBRSxTQUFTLFdBQUEsRUFBRSxlQUFlLGlCQUFBLEVBQUUsQ0FBQztLQUN2QztTQUFNO1FBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBOEMsU0FBUyxxQkFBZ0IsU0FBUyxNQUFHLENBQUMsQ0FBQztLQUN0RztBQUNILENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLFVBQUMsaUJBQTBCO0lBQzVELElBQUksaUJBQWlCO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBQzdGLENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUFDLE1BQWM7SUFDM0MsSUFBSSxZQUFZLENBQUMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksRUFBRSxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBa0QsTUFBUSxDQUFDLENBQUM7QUFDOUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVJOIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5jb25zdCBET01BSU5fUEFUVEVSTiA9IC9eW2EtejAtOV1bYS16MC05XFwuXFwtXXsxLDYxfVthLXowLTldJC87XG5jb25zdCBJUF9BRERSRVNTX1BBVFRFUk4gPSAvKFxcZCtcXC4pezN9XFxkKy87XG5jb25zdCBET1RTX1BBVFRFUk4gPSAvXFwuXFwuLztcbmV4cG9ydCBjb25zdCBET1RfUEFUVEVSTiA9IC9cXC4vO1xuZXhwb3J0IGNvbnN0IFMzX0hPU1ROQU1FX1BBVFRFUk4gPSAvXiguK1xcLik/czNbLi1dKFthLXowLTktXSspXFwuLztcbmNvbnN0IFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4gPSAvXnMzKC1leHRlcm5hbC0xKT9cXC5hbWF6b25hd3NcXC5jb20kLztcbmNvbnN0IEFXU19QQVJUSVRJT05fU1VGRklYID0gXCJhbWF6b25hd3MuY29tXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzUG9pbnRBcm4gZXh0ZW5kcyBBUk4ge1xuICBhY2Nlc3NQb2ludE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRIb3N0bmFtZVBhcmFtcyB7XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG4gIGJhc2VIb3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICBhY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICBkdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIHBhdGhTdHlsZUVuZHBvaW50PzogYm9vbGVhbjtcbiAgdGxzQ29tcGF0aWJsZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJuSG9zdG5hbWVQYXJhbXMgZXh0ZW5kcyBPbWl0PEJ1Y2tldEhvc3RuYW1lUGFyYW1zLCBcImJ1Y2tldE5hbWVcIj4ge1xuICBidWNrZXROYW1lOiBBUk47XG4gIGNsaWVudFNpZ25pbmdSZWdpb24/OiBzdHJpbmc7XG4gIGNsaWVudFBhcnRpdGlvbj86IHN0cmluZztcbiAgdXNlQXJuUmVnaW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGlzQnVja2V0TmFtZU9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IEJ1Y2tldEhvc3RuYW1lUGFyYW1zIHwgQXJuSG9zdG5hbWVQYXJhbXNcbik6IG9wdGlvbnMgaXMgQnVja2V0SG9zdG5hbWVQYXJhbXMgPT4gdHlwZW9mIG9wdGlvbnMuYnVja2V0TmFtZSA9PT0gXCJzdHJpbmdcIjtcblxuLyoqXG4gKiBHZXQgcHNldWRvIHJlZ2lvbiBmcm9tIHN1cHBsaWVkIHJlZ2lvbi4gRm9yIGV4YW1wbGUsIGlmIHN1cHBsaWVkIHdpdGggYGZpcHMtdXMtd2VzdC0yYCwgaXQgcmV0dXJucyBgdXMtd2VzdC0yYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgZ2V0UHNldWRvUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiAoaXNGaXBzUmVnaW9uKHJlZ2lvbikgPyByZWdpb24ucmVwbGFjZSgvZmlwcy18LWZpcHMvLCBcIlwiKSA6IHJlZ2lvbik7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gc3RyaW5nIGlzIEROUyBjb21wbGlhbnQgcGVyIHRoZSBydWxlcyBvdXRsaW5lZCBieVxuICogUzMuIExlbmd0aCwgY2FwaXRhaXphdGlvbiwgYW5kIGxlYWRpbmcgZG90IHJlc3RyaWN0aW9ucyBhcmUgZW5mb3JjZWQgYnkgdGhlXG4gKiBET01BSU5fUEFUVEVSTiByZWd1bGFyIGV4cHJlc3Npb24uXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvZGV2L0J1Y2tldFJlc3RyaWN0aW9ucy5odG1sXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lID0gKGJ1Y2tldE5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgRE9NQUlOX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSAmJiAhSVBfQUREUkVTU19QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkgJiYgIURPVFNfUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpO1xuXG5jb25zdCBnZXRSZWdpb25hbFN1ZmZpeCA9IChob3N0bmFtZTogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSA9PiB7XG4gIGNvbnN0IHBhcnRzID0gaG9zdG5hbWUubWF0Y2goUzNfSE9TVE5BTUVfUEFUVEVSTikhO1xuICByZXR1cm4gW3BhcnRzWzJdLCBob3N0bmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcnRzWzBdfWApLCBcIlwiKV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3VmZml4ID0gKGhvc3RuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddID0+XG4gIFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4udGVzdChob3N0bmFtZSkgPyBbXCJ1cy1lYXN0LTFcIiwgQVdTX1BBUlRJVElPTl9TVUZGSVhdIDogZ2V0UmVnaW9uYWxTdWZmaXgoaG9zdG5hbWUpO1xuXG4vKipcbiAqIEluZmVyIHJlZ2lvbiBhbmQgaG9zdG5hbWUgc3VmZml4IGZyb20gYSBjb21wbGV0ZSBob3N0bmFtZVxuICogQGludGVybmFsXG4gKiBAcGFyYW0gaG9zdG5hbWUgLSBIb3N0bmFtZVxuICogQHJldHVybnMgW1JlZ2lvbiwgSG9zdG5hbWUgc3VmZml4XVxuICovXG5leHBvcnQgY29uc3QgZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQgPSAoaG9zdG5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gPT5cbiAgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTi50ZXN0KGhvc3RuYW1lKVxuICAgID8gW2hvc3RuYW1lLnJlcGxhY2UoYC4ke0FXU19QQVJUSVRJT05fU1VGRklYfWAsIFwiXCIpLCBBV1NfUEFSVElUSU9OX1NVRkZJWF1cbiAgICA6IGdldFJlZ2lvbmFsU3VmZml4KGhvc3RuYW1lKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zID0gKG9wdGlvbnM6IHtcbiAgYWNjZWxlcmF0ZUVuZHBvaW50PzogYm9vbGVhbjtcbiAgdGxzQ29tcGF0aWJsZT86IGJvb2xlYW47XG4gIHBhdGhTdHlsZUVuZHBvaW50PzogYm9vbGVhbjtcbn0pID0+IHtcbiAgaWYgKG9wdGlvbnMucGF0aFN0eWxlRW5kcG9pbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoLXN0eWxlIFMzIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBidWNrZXQgaXMgYW4gQVJOXCIpO1xuICB9XG4gIGlmIChvcHRpb25zLmFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFjY2VsZXJhdGUgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbiAgaWYgKCFvcHRpb25zLnRsc0NvbXBhdGlibGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJIVFRQUyBpcyByZXF1aXJlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzXCIgJiYgc2VydmljZSAhPT0gXCJzMy1vdXRwb3N0c1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ICdzMycgb3IgJ3MzLW91dHBvc3RzJyBpbiBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVMzU2VydmljZSA9IChzZXJ2aWNlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlcnZpY2UgIT09IFwiczNcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdCAnczMnIGluIEFjY2Vzc3BvaW50IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzLXBvc3RzJyBpbiBPdXRwb3N0IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBwYXJ0aXRpb24gaW5mZXJyZWQgZnJvbSBBUk4gaXMgdGhlIHNhbWUgdG8gYG9wdGlvbnMuY2xpZW50UGFydGl0aW9uYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYXJ0aXRpb24gPSAocGFydGl0aW9uOiBzdHJpbmcsIG9wdGlvbnM6IHsgY2xpZW50UGFydGl0aW9uOiBzdHJpbmcgfSkgPT4ge1xuICBpZiAocGFydGl0aW9uICE9PSBvcHRpb25zLmNsaWVudFBhcnRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGFydGl0aW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCBcIiR7cGFydGl0aW9ufVwiIGJ1dCBleHBlY3RlZCBcIiR7b3B0aW9ucy5jbGllbnRQYXJ0aXRpb259XCJgKTtcbiAgfVxufTtcblxuLyoqXG4gKiB2YWxpZGF0ZSByZWdpb24gdmFsdWUgaW5mZXJyZWQgZnJvbSBBUk4uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgc2V0LCBpdCB2YWxpZGF0ZXMgdGhlIHJlZ2lvbiBpcyBub3QgYSBGSVBTXG4gKiByZWdpb24uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgdW5zZXQsIGl0IHZhbGlkYXRlcyB0aGUgcmVnaW9uIGlzIGVxdWFsIHRvIGBvcHRpb25zLmNsaWVudFJlZ2lvbmAgb3JcbiAqIGBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb25gLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlZ2lvbiA9IChcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICB1c2VBcm5SZWdpb24/OiBib29sZWFuO1xuICAgIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHN0cmluZztcbiAgfVxuKSA9PiB7XG4gIGlmIChyZWdpb24gPT09IFwiXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBUk4gcmVnaW9uIGlzIGVtcHR5XCIpO1xuICB9XG4gIGlmIChcbiAgICAhb3B0aW9ucy51c2VBcm5SZWdpb24gJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFJlZ2lvbikgJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb24pXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVnaW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCAke3JlZ2lvbn0gYnV0IGV4cGVjdGVkICR7b3B0aW9ucy5jbGllbnRSZWdpb259YCk7XG4gIH1cbiAgaWYgKG9wdGlvbnMudXNlQXJuUmVnaW9uICYmIGlzRmlwc1JlZ2lvbihyZWdpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBGSVBTIHJlZ2lvblwiKTtcbiAgfVxufTtcblxuY29uc3QgaXNGaXBzUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiByZWdpb24uc3RhcnRzV2l0aChcImZpcHMtXCIpIHx8IHJlZ2lvbi5lbmRzV2l0aChcIi1maXBzXCIpO1xuXG5jb25zdCBpc0VxdWFsUmVnaW9ucyA9IChyZWdpb25BOiBzdHJpbmcsIHJlZ2lvbkI6IHN0cmluZykgPT5cbiAgcmVnaW9uQSA9PT0gcmVnaW9uQiB8fCBnZXRQc2V1ZG9SZWdpb24ocmVnaW9uQSkgPT09IHJlZ2lvbkIgfHwgcmVnaW9uQSA9PT0gZ2V0UHNldWRvUmVnaW9uKHJlZ2lvbkIpO1xuXG4vKipcbiAqIFZhbGlkYXRlIGFuIGFjY291bnQgSURcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBY2NvdW50SWQgPSAoYWNjb3VudElkOiBzdHJpbmcpID0+IHtcbiAgaWYgKCEvWzAtOV17MTJ9Ly5leGVjKGFjY291bnRJZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2Nlc3MgcG9pbnQgQVJOIGFjY291bnRJRCBkb2VzIG5vdCBtYXRjaCByZWdleCAnWzAtOV17MTJ9J1wiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGhvc3QgbGFiZWwgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4yLjJcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVETlNIb3N0TGFiZWwgPSAobGFiZWw6IHN0cmluZywgb3B0aW9uczogeyB0bHNDb21wYXRpYmxlPzogYm9vbGVhbiB9ID0geyB0bHNDb21wYXRpYmxlOiB0cnVlIH0pID0+IHtcbiAgLy8gcmVmZXJlbmNlOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMi4yXG4gIGlmIChcbiAgICBsYWJlbC5sZW5ndGggPj0gNjQgfHxcbiAgICAhL15bYS16MC05XVthLXowLTkuLV0rW2EtejAtOV0kLy50ZXN0KGxhYmVsKSB8fFxuICAgIC8oXFxkK1xcLil7M31cXGQrLy50ZXN0KGxhYmVsKSB8fFxuICAgIC9bLi1dezJ9Ly50ZXN0KGxhYmVsKSB8fFxuICAgIChvcHRpb25zPy50bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QobGFiZWwpKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRE5TIGxhYmVsICR7bGFiZWx9YCk7XG4gIH1cbn07XG5cbi8qKlxuICogVmFsaWRhdGUgYW5kIHBhcnNlIGFuIEFjY2VzcyBQb2ludCBBUk4gb3IgT3V0cG9zdHMgQVJOXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAcGFyYW0gcmVzb3VyY2UgLSBUaGUgcmVzb3VyY2Ugc2VjdGlvbiBvZiBhbiBBUk5cbiAqIEByZXR1cm5zIEFjY2VzcyBQb2ludCBOYW1lIGFuZCBvcHRpb25hbCBPdXRwb3N0IElELlxuICovXG5leHBvcnQgY29uc3QgZ2V0QXJuUmVzb3VyY2VzID0gKFxuICByZXNvdXJjZTogc3RyaW5nXG4pOiB7XG4gIGFjY2Vzc3BvaW50TmFtZTogc3RyaW5nO1xuICBvdXRwb3N0SWQ/OiBzdHJpbmc7XG59ID0+IHtcbiAgY29uc3QgZGVsaW1pdGVyID0gcmVzb3VyY2UuaW5jbHVkZXMoXCI6XCIpID8gXCI6XCIgOiBcIi9cIjtcbiAgY29uc3QgW3Jlc291cmNlVHlwZSwgLi4ucmVzdF0gPSByZXNvdXJjZS5zcGxpdChkZWxpbWl0ZXIpO1xuICBpZiAocmVzb3VyY2VUeXBlID09PSBcImFjY2Vzc3BvaW50XCIpIHtcbiAgICAvLyBQYXJzZSBhY2Nlc3Nwb2ludCBBUk5cbiAgICBpZiAocmVzdC5sZW5ndGggIT09IDEgfHwgcmVzdFswXSA9PT0gXCJcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBY2Nlc3MgUG9pbnQgQVJOIHNob3VsZCBoYXZlIG9uZSByZXNvdXJjZSBhY2Nlc3Nwb2ludCR7ZGVsaW1pdGVyfXthY2Nlc3Nwb2ludG5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IGFjY2Vzc3BvaW50TmFtZTogcmVzdFswXSB9O1xuICB9IGVsc2UgaWYgKHJlc291cmNlVHlwZSA9PT0gXCJvdXRwb3N0XCIpIHtcbiAgICAvLyBQYXJzZSBvdXRwb3N0IEFSTlxuICAgIGlmICghcmVzdFswXSB8fCByZXN0WzFdICE9PSBcImFjY2Vzc3BvaW50XCIgfHwgIXJlc3RbMl0gfHwgcmVzdC5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE91dHBvc3QgQVJOIHNob3VsZCBoYXZlIHJlc291cmNlIG91dHBvc3Qke2RlbGltaXRlcn17b3V0cG9zdElkfSR7ZGVsaW1pdGVyfWFjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9e2FjY2Vzc3BvaW50TmFtZX1gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBbb3V0cG9zdElkLCBfLCBhY2Nlc3Nwb2ludE5hbWVdID0gcmVzdDtcbiAgICByZXR1cm4geyBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQVJOIHJlc291cmNlIHNob3VsZCBiZWdpbiB3aXRoICdhY2Nlc3Nwb2ludCR7ZGVsaW1pdGVyfScgb3IgJ291dHBvc3Qke2RlbGltaXRlcn0nYCk7XG4gIH1cbn07XG5cbi8qKlxuICogVGhyb3cgaWYgZHVhbCBzdGFjayBjb25maWd1cmF0aW9uIGlzIHNldCB0byB0cnVlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRHVhbHN0YWNrID0gKGR1YWxzdGFja0VuZHBvaW50OiBib29sZWFuKSA9PiB7XG4gIGlmIChkdWFsc3RhY2tFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiRHVhbHN0YWNrIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBPdXRwb3N0XCIpO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSByZWdpb24gaXMgbm90IGFwcGVuZGVkIG9yIHByZXBlbmRlZCB3aXRoIGEgYGZpcHMtYFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRklQUyA9IChyZWdpb246IHN0cmluZykgPT4ge1xuICBpZiAoaXNGaXBzUmVnaW9uKHJlZ2lvbiA/PyBcIlwiKSkgdGhyb3cgbmV3IEVycm9yKGBGSVBTIHJlZ2lvbiBpcyBub3Qgc3VwcG9ydGVkIHdpdGggT3V0cG9zdCwgZ290ICR7cmVnaW9ufWApO1xufTtcbiJdfQ==","import { __assign, __read } from \"tslib\";\nimport { DOT_PATTERN, getArnResources, getSuffix, getSuffixForArnEndpoint, isBucketNameOptions, isDnsCompatibleBucketName, validateAccountId, validateArnEndpointOptions, validateDNSHostLabel, validateNoDualstack, validateNoFIPS, validateOutpostService, validatePartition, validateRegion, validateS3Service, validateService, } from \"./bucketHostnameUtils\";\nexport var bucketHostname = function (options) {\n var isCustomEndpoint = options.isCustomEndpoint, baseHostname = options.baseHostname, dualstackEndpoint = options.dualstackEndpoint, accelerateEndpoint = options.accelerateEndpoint;\n if (isCustomEndpoint) {\n if (dualstackEndpoint)\n throw new Error(\"Dualstack endpoint is not supported with custom endpoint\");\n if (accelerateEndpoint)\n throw new Error(\"Accelerate endpoint is not supported with custom endpoint\");\n }\n return isBucketNameOptions(options)\n ? // Construct endpoint when bucketName is a string referring to a bucket name\n getEndpointFromBucketName(__assign(__assign({}, options), { isCustomEndpoint: isCustomEndpoint }))\n : // Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point\n getEndpointFromArn(__assign(__assign({}, options), { isCustomEndpoint: isCustomEndpoint }));\n};\nvar getEndpointFromArn = function (options) {\n var isCustomEndpoint = options.isCustomEndpoint, baseHostname = options.baseHostname;\n var _a = __read(isCustomEndpoint\n ? [options.clientRegion, baseHostname]\n : // Infer client region and hostname suffix from hostname from endpoints.json, like `s3.us-west-2.amazonaws.com`\n getSuffixForArnEndpoint(baseHostname), 2), clientRegion = _a[0], hostnameSuffix = _a[1];\n var pathStyleEndpoint = options.pathStyleEndpoint, _b = options.dualstackEndpoint, dualstackEndpoint = _b === void 0 ? false : _b, _c = options.accelerateEndpoint, accelerateEndpoint = _c === void 0 ? false : _c, _d = options.tlsCompatible, tlsCompatible = _d === void 0 ? true : _d, useArnRegion = options.useArnRegion, bucketName = options.bucketName, _e = options.clientPartition, clientPartition = _e === void 0 ? \"aws\" : _e, _f = options.clientSigningRegion, clientSigningRegion = _f === void 0 ? clientRegion : _f;\n validateArnEndpointOptions({ pathStyleEndpoint: pathStyleEndpoint, accelerateEndpoint: accelerateEndpoint, tlsCompatible: tlsCompatible });\n // Validate and parse the ARN supplied as a bucket name\n var service = bucketName.service, partition = bucketName.partition, accountId = bucketName.accountId, region = bucketName.region, resource = bucketName.resource;\n validateService(service);\n validatePartition(partition, { clientPartition: clientPartition });\n validateAccountId(accountId);\n validateRegion(region, { useArnRegion: useArnRegion, clientRegion: clientRegion, clientSigningRegion: clientSigningRegion });\n var _g = getArnResources(resource), accesspointName = _g.accesspointName, outpostId = _g.outpostId;\n validateDNSHostLabel(accesspointName + \"-\" + accountId, { tlsCompatible: tlsCompatible });\n var endpointRegion = useArnRegion ? region : clientRegion;\n var signingRegion = useArnRegion ? region : clientSigningRegion;\n if (outpostId) {\n // if this is an Outpost ARN\n validateOutpostService(service);\n validateDNSHostLabel(outpostId, { tlsCompatible: tlsCompatible });\n validateNoDualstack(dualstackEndpoint);\n validateNoFIPS(endpointRegion);\n var hostnamePrefix_1 = accesspointName + \"-\" + accountId + \".\" + outpostId;\n return {\n bucketEndpoint: true,\n hostname: \"\" + hostnamePrefix_1 + (isCustomEndpoint ? \"\" : \".s3-outposts.\" + endpointRegion) + \".\" + hostnameSuffix,\n signingRegion: signingRegion,\n signingService: \"s3-outposts\",\n };\n }\n // construct endpoint from Accesspoint ARN\n validateS3Service(service);\n var hostnamePrefix = accesspointName + \"-\" + accountId;\n return {\n bucketEndpoint: true,\n hostname: \"\" + hostnamePrefix + (isCustomEndpoint ? \"\" : \".s3-accesspoint\" + (dualstackEndpoint ? \".dualstack\" : \"\") + \".\" + endpointRegion) + \".\" + hostnameSuffix,\n signingRegion: signingRegion,\n };\n};\nvar getEndpointFromBucketName = function (_a) {\n var _b = _a.accelerateEndpoint, accelerateEndpoint = _b === void 0 ? false : _b, region = _a.clientRegion, baseHostname = _a.baseHostname, bucketName = _a.bucketName, _c = _a.dualstackEndpoint, dualstackEndpoint = _c === void 0 ? false : _c, _d = _a.pathStyleEndpoint, pathStyleEndpoint = _d === void 0 ? false : _d, _e = _a.tlsCompatible, tlsCompatible = _e === void 0 ? true : _e, _f = _a.isCustomEndpoint, isCustomEndpoint = _f === void 0 ? false : _f;\n var _g = __read(isCustomEndpoint ? [region, baseHostname] : getSuffix(baseHostname), 2), clientRegion = _g[0], hostnameSuffix = _g[1];\n if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || (tlsCompatible && DOT_PATTERN.test(bucketName))) {\n return {\n bucketEndpoint: false,\n hostname: dualstackEndpoint ? \"s3.dualstack.\" + clientRegion + \".\" + hostnameSuffix : baseHostname,\n };\n }\n if (accelerateEndpoint) {\n baseHostname = \"s3-accelerate\" + (dualstackEndpoint ? \".dualstack\" : \"\") + \".\" + hostnameSuffix;\n }\n else if (dualstackEndpoint) {\n baseHostname = \"s3.dualstack.\" + clientRegion + \".\" + hostnameSuffix;\n }\n return {\n bucketEndpoint: true,\n hostname: bucketName + \".\" + baseHostname,\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFHTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sdUJBQXVCLENBQUM7QUFTL0IsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLFVBQUMsT0FBaUQ7SUFDdEUsSUFBQSxnQkFBZ0IsR0FBMEQsT0FBTyxpQkFBakUsRUFBRSxZQUFZLEdBQTRDLE9BQU8sYUFBbkQsRUFBRSxpQkFBaUIsR0FBeUIsT0FBTyxrQkFBaEMsRUFBRSxrQkFBa0IsR0FBSyxPQUFPLG1CQUFaLENBQWE7SUFFMUYsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixJQUFJLGlCQUFpQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUNuRyxJQUFJLGtCQUFrQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztLQUN0RztJQUVELE9BQU8sbUJBQW1CLENBQUMsT0FBTyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyw0RUFBNEU7WUFDNUUseUJBQXlCLHVCQUFNLE9BQU8sS0FBRSxnQkFBZ0Isa0JBQUEsSUFBRztRQUM3RCxDQUFDLENBQUMsNkZBQTZGO1lBQzdGLGtCQUFrQix1QkFBTSxPQUFPLEtBQUUsZ0JBQWdCLGtCQUFBLElBQUcsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixJQUFNLGtCQUFrQixHQUFHLFVBQUMsT0FBMEQ7SUFDNUUsSUFBQSxn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OUYsQ0FBQztLQUNIO0lBRUQsSUFBSSxrQkFBa0IsRUFBRTtRQUN0QixZQUFZLEdBQUcsbUJBQWdCLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBSSxjQUFnQixDQUFDO0tBQzFGO1NBQU0sSUFBSSxpQkFBaUIsRUFBRTtRQUM1QixZQUFZLEdBQUcsa0JBQWdCLFlBQVksU0FBSSxjQUFnQixDQUFDO0tBQ2pFO0lBRUQsT0FBTztRQUNMLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBSyxVQUFVLFNBQUksWUFBYztLQUMxQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXJuSG9zdG5hbWVQYXJhbXMsXG4gIEJ1Y2tldEhvc3RuYW1lUGFyYW1zLFxuICBET1RfUEFUVEVSTixcbiAgZ2V0QXJuUmVzb3VyY2VzLFxuICBnZXRTdWZmaXgsXG4gIGdldFN1ZmZpeEZvckFybkVuZHBvaW50LFxuICBpc0J1Y2tldE5hbWVPcHRpb25zLFxuICBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lLFxuICB2YWxpZGF0ZUFjY291bnRJZCxcbiAgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMsXG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsLFxuICB2YWxpZGF0ZU5vRHVhbHN0YWNrLFxuICB2YWxpZGF0ZU5vRklQUyxcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZSxcbiAgdmFsaWRhdGVQYXJ0aXRpb24sXG4gIHZhbGlkYXRlUmVnaW9uLFxuICB2YWxpZGF0ZVMzU2VydmljZSxcbiAgdmFsaWRhdGVTZXJ2aWNlLFxufSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0SG9zdG5hbWUge1xuICBob3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgc2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbiAgc2lnbmluZ1NlcnZpY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRIb3N0bmFtZSA9IChvcHRpb25zOiBCdWNrZXRIb3N0bmFtZVBhcmFtcyB8IEFybkhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCB7IGlzQ3VzdG9tRW5kcG9pbnQsIGJhc2VIb3N0bmFtZSwgZHVhbHN0YWNrRW5kcG9pbnQsIGFjY2VsZXJhdGVFbmRwb2ludCB9ID0gb3B0aW9ucztcblxuICBpZiAoaXNDdXN0b21FbmRwb2ludCkge1xuICAgIGlmIChkdWFsc3RhY2tFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiRHVhbHN0YWNrIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBjdXN0b20gZW5kcG9pbnRcIik7XG4gICAgaWYgKGFjY2VsZXJhdGVFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiQWNjZWxlcmF0ZSBlbmRwb2ludCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggY3VzdG9tIGVuZHBvaW50XCIpO1xuICB9XG5cbiAgcmV0dXJuIGlzQnVja2V0TmFtZU9wdGlvbnMob3B0aW9ucylcbiAgICA/IC8vIENvbnN0cnVjdCBlbmRwb2ludCB3aGVuIGJ1Y2tldE5hbWUgaXMgYSBzdHJpbmcgcmVmZXJyaW5nIHRvIGEgYnVja2V0IG5hbWVcbiAgICAgIGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUoeyAuLi5vcHRpb25zLCBpc0N1c3RvbUVuZHBvaW50IH0pXG4gICAgOiAvLyBDb25zdHJ1Y3QgZW5kcG9pbnQgd2hlbiBidWNrZXROYW1lIGlzIGFuIEFSTiByZWZlcnJpbmcgdG8gYW4gUzMgcmVzb3VyY2UgbGlrZSBBY2Nlc3MgUG9pbnRcbiAgICAgIGdldEVuZHBvaW50RnJvbUFybih7IC4uLm9wdGlvbnMsIGlzQ3VzdG9tRW5kcG9pbnQgfSk7XG59O1xuXG5jb25zdCBnZXRFbmRwb2ludEZyb21Bcm4gPSAob3B0aW9uczogQXJuSG9zdG5hbWVQYXJhbXMgJiB7IGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW4gfSk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgY29uc3QgeyBpc0N1c3RvbUVuZHBvaW50LCBiYXNlSG9zdG5hbWUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGlzQ3VzdG9tRW5kcG9pbnRcbiAgICA/IFtvcHRpb25zLmNsaWVudFJlZ2lvbiwgYmFzZUhvc3RuYW1lXVxuICAgIDogLy8gSW5mZXIgY2xpZW50IHJlZ2lvbiBhbmQgaG9zdG5hbWUgc3VmZml4IGZyb20gaG9zdG5hbWUgZnJvbSBlbmRwb2ludHMuanNvbiwgbGlrZSBgczMudXMtd2VzdC0yLmFtYXpvbmF3cy5jb21gXG4gICAgICBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludChiYXNlSG9zdG5hbWUpO1xuXG4gIGNvbnN0IHtcbiAgICBwYXRoU3R5bGVFbmRwb2ludCxcbiAgICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICAgIGFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICAgIHVzZUFyblJlZ2lvbixcbiAgICBidWNrZXROYW1lLFxuICAgIGNsaWVudFBhcnRpdGlvbiA9IFwiYXdzXCIsXG4gICAgY2xpZW50U2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbixcbiAgfSA9IG9wdGlvbnM7XG5cbiAgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMoeyBwYXRoU3R5bGVFbmRwb2ludCwgYWNjZWxlcmF0ZUVuZHBvaW50LCB0bHNDb21wYXRpYmxlIH0pO1xuXG4gIC8vIFZhbGlkYXRlIGFuZCBwYXJzZSB0aGUgQVJOIHN1cHBsaWVkIGFzIGEgYnVja2V0IG5hbWVcbiAgY29uc3QgeyBzZXJ2aWNlLCBwYXJ0aXRpb24sIGFjY291bnRJZCwgcmVnaW9uLCByZXNvdXJjZSB9ID0gYnVja2V0TmFtZTtcbiAgdmFsaWRhdGVTZXJ2aWNlKHNlcnZpY2UpO1xuICB2YWxpZGF0ZVBhcnRpdGlvbihwYXJ0aXRpb24sIHsgY2xpZW50UGFydGl0aW9uIH0pO1xuICB2YWxpZGF0ZUFjY291bnRJZChhY2NvdW50SWQpO1xuICB2YWxpZGF0ZVJlZ2lvbihyZWdpb24sIHsgdXNlQXJuUmVnaW9uLCBjbGllbnRSZWdpb24sIGNsaWVudFNpZ25pbmdSZWdpb24gfSk7XG4gIGNvbnN0IHsgYWNjZXNzcG9pbnROYW1lLCBvdXRwb3N0SWQgfSA9IGdldEFyblJlc291cmNlcyhyZXNvdXJjZSk7XG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsKGAke2FjY2Vzc3BvaW50TmFtZX0tJHthY2NvdW50SWR9YCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuXG4gIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50UmVnaW9uO1xuICBjb25zdCBzaWduaW5nUmVnaW9uID0gdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50U2lnbmluZ1JlZ2lvbjtcbiAgaWYgKG91dHBvc3RJZCkge1xuICAgIC8vIGlmIHRoaXMgaXMgYW4gT3V0cG9zdCBBUk5cbiAgICB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlKHNlcnZpY2UpO1xuICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKG91dHBvc3RJZCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuICAgIHZhbGlkYXRlTm9EdWFsc3RhY2soZHVhbHN0YWNrRW5kcG9pbnQpO1xuICAgIHZhbGlkYXRlTm9GSVBTKGVuZHBvaW50UmVnaW9uKTtcbiAgICBjb25zdCBob3N0bmFtZVByZWZpeCA9IGAke2FjY2Vzc3BvaW50TmFtZX0tJHthY2NvdW50SWR9LiR7b3V0cG9zdElkfWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgaG9zdG5hbWU6IGAke2hvc3RuYW1lUHJlZml4fSR7aXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLnMzLW91dHBvc3RzLiR7ZW5kcG9pbnRSZWdpb259YH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlOiBcInMzLW91dHBvc3RzXCIsXG4gICAgfTtcbiAgfVxuICAvLyBjb25zdHJ1Y3QgZW5kcG9pbnQgZnJvbSBBY2Nlc3Nwb2ludCBBUk5cbiAgdmFsaWRhdGVTM1NlcnZpY2Uoc2VydmljZSk7XG4gIGNvbnN0IGhvc3RuYW1lUHJlZml4ID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2FjY291bnRJZH1gO1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtob3N0bmFtZVByZWZpeH0ke1xuICAgICAgaXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLnMzLWFjY2Vzc3BvaW50JHtkdWFsc3RhY2tFbmRwb2ludCA/IFwiLmR1YWxzdGFja1wiIDogXCJcIn0uJHtlbmRwb2ludFJlZ2lvbn1gXG4gICAgfS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgc2lnbmluZ1JlZ2lvbixcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUgPSAoe1xuICBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgY2xpZW50UmVnaW9uOiByZWdpb24sXG4gIGJhc2VIb3N0bmFtZSxcbiAgYnVja2V0TmFtZSxcbiAgZHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSxcbiAgcGF0aFN0eWxlRW5kcG9pbnQgPSBmYWxzZSxcbiAgdGxzQ29tcGF0aWJsZSA9IHRydWUsXG4gIGlzQ3VzdG9tRW5kcG9pbnQgPSBmYWxzZSxcbn06IEJ1Y2tldEhvc3RuYW1lUGFyYW1zICYgeyBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuIH0pOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGlzQ3VzdG9tRW5kcG9pbnQgPyBbcmVnaW9uLCBiYXNlSG9zdG5hbWVdIDogZ2V0U3VmZml4KGJhc2VIb3N0bmFtZSk7XG4gIGlmIChwYXRoU3R5bGVFbmRwb2ludCB8fCAhaXNEbnNDb21wYXRpYmxlQnVja2V0TmFtZShidWNrZXROYW1lKSB8fCAodGxzQ29tcGF0aWJsZSAmJiBET1RfUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpKSkge1xuICAgIHJldHVybiB7XG4gICAgICBidWNrZXRFbmRwb2ludDogZmFsc2UsXG4gICAgICBob3N0bmFtZTogZHVhbHN0YWNrRW5kcG9pbnQgPyBgczMuZHVhbHN0YWNrLiR7Y2xpZW50UmVnaW9ufS4ke2hvc3RuYW1lU3VmZml4fWAgOiBiYXNlSG9zdG5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChhY2NlbGVyYXRlRW5kcG9pbnQpIHtcbiAgICBiYXNlSG9zdG5hbWUgPSBgczMtYWNjZWxlcmF0ZSR7ZHVhbHN0YWNrRW5kcG9pbnQgPyBcIi5kdWFsc3RhY2tcIiA6IFwiXCJ9LiR7aG9zdG5hbWVTdWZmaXh9YDtcbiAgfSBlbHNlIGlmIChkdWFsc3RhY2tFbmRwb2ludCkge1xuICAgIGJhc2VIb3N0bmFtZSA9IGBzMy5kdWFsc3RhY2suJHtjbGllbnRSZWdpb259LiR7aG9zdG5hbWVTdWZmaXh9YDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgaG9zdG5hbWU6IGAke2J1Y2tldE5hbWV9LiR7YmFzZUhvc3RuYW1lfWAsXG4gIH07XG59O1xuIl19","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { parse as parseArn, validate as validateArn } from \"@aws-sdk/util-arn-parser\";\nimport { bucketHostname } from \"./bucketHostname\";\nimport { getPseudoRegion } from \"./bucketHostnameUtils\";\nexport var bucketEndpointMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var bucketName, replaceBucketInPath, request, bucketArn, clientRegion, _a, _b, partition, _c, signingRegion, useArnRegion, _d, hostname, bucketEndpoint, modifiedSigningRegion, signingService, clientRegion, _e, _f, hostname, bucketEndpoint;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n bucketName = args.input.Bucket;\n replaceBucketInPath = options.bucketEndpoint;\n request = args.request;\n if (!HttpRequest.isInstance(request)) return [3 /*break*/, 8];\n if (!options.bucketEndpoint) return [3 /*break*/, 1];\n request.hostname = bucketName;\n return [3 /*break*/, 7];\n case 1:\n if (!validateArn(bucketName)) return [3 /*break*/, 5];\n bucketArn = parseArn(bucketName);\n _a = getPseudoRegion;\n return [4 /*yield*/, options.region()];\n case 2:\n clientRegion = _a.apply(void 0, [_g.sent()]);\n return [4 /*yield*/, options.regionInfoProvider(clientRegion)];\n case 3:\n _b = (_g.sent()) || {}, partition = _b.partition, _c = _b.signingRegion, signingRegion = _c === void 0 ? clientRegion : _c;\n return [4 /*yield*/, options.useArnRegion()];\n case 4:\n useArnRegion = _g.sent();\n _d = bucketHostname({\n bucketName: bucketArn,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: options.useDualstackEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n useArnRegion: useArnRegion,\n clientPartition: partition,\n clientSigningRegion: signingRegion,\n clientRegion: clientRegion,\n isCustomEndpoint: options.isCustomEndpoint,\n }), hostname = _d.hostname, bucketEndpoint = _d.bucketEndpoint, modifiedSigningRegion = _d.signingRegion, signingService = _d.signingService;\n // If the request needs to use a region or service name inferred from ARN that different from client region, we\n // need to set them in the handler context so the signer will use them\n if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {\n context[\"signing_region\"] = modifiedSigningRegion;\n }\n if (signingService && signingService !== \"s3\") {\n context[\"signing_service\"] = signingService;\n }\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n return [3 /*break*/, 7];\n case 5:\n _e = getPseudoRegion;\n return [4 /*yield*/, options.region()];\n case 6:\n clientRegion = _e.apply(void 0, [_g.sent()]);\n _f = bucketHostname({\n bucketName: bucketName,\n clientRegion: clientRegion,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: options.useDualstackEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n isCustomEndpoint: options.isCustomEndpoint,\n }), hostname = _f.hostname, bucketEndpoint = _f.bucketEndpoint;\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n _g.label = 7;\n case 7:\n if (replaceBucketInPath) {\n request.path = request.path.replace(/^(\\/)?[^\\/]+/, \"\");\n if (request.path === \"\") {\n request.path = \"/\";\n }\n }\n _g.label = 8;\n case 8: return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\nexport var bucketEndpointMiddlewareOptions = {\n tags: [\"BUCKET_ENDPOINT\"],\n name: \"bucketEndpointMiddleware\",\n relation: \"before\",\n toMiddleware: \"hostHeaderMiddleware\",\n override: true,\n};\nexport var getBucketEndpointPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBV3JELE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLFFBQVEsSUFBSSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUMsT0FBcUMsSUFBZ0MsT0FBQSxVQUc1RyxJQUErQixFQUMvQixPQUFnQyxJQUNGLE9BQUEsVUFBTyxJQUFnQzs7Ozs7Z0JBQ3JELFVBQVUsR0FBSyxJQUFJLENBQUMsS0FBMkIsT0FBckMsQ0FBc0M7Z0JBQzVELG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO3FCQUN6QixXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUEvQix3QkFBK0I7cUJBQzdCLE9BQU8sQ0FBQyxjQUFjLEVBQXRCLHdCQUFzQjtnQkFDeEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7OztxQkFDckIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUF2Qix3QkFBdUI7Z0JBQzFCLFNBQVMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2xCLEtBQUEsZUFBZSxDQUFBO2dCQUFDLHFCQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBQTs7Z0JBQXJELFlBQVksR0FBRyxrQkFBZ0IsU0FBc0IsRUFBQztnQkFDUCxxQkFBTSxPQUFPLENBQUMsa0JBQWtCLENB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cEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxPQUFxQyxJQUEwQixPQUFBLENBQUM7SUFDdEcsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLCtCQUErQixDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNGLENBQUMsRUFKcUcsQ0FJckcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgSGFuZGxlckV4ZWN1dGlvbkNvbnRleHQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VBcm4sIHZhbGlkYXRlIGFzIHZhbGlkYXRlQXJuIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5pbXBvcnQgeyBidWNrZXRIb3N0bmFtZSB9IGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lXCI7XG5pbXBvcnQgeyBnZXRQc2V1ZG9SZWdpb24gfSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG5pbXBvcnQgeyBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZSA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiA9PiA8XG4gIE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyXG4+KFxuICBuZXh0OiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+LFxuICBjb250ZXh0OiBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dFxuKTogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0PiA9PiBhc3luYyAoYXJnczogQnVpbGRIYW5kbGVyQXJndW1lbnRzPGFueT4pOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gIGNvbnN0IHsgQnVja2V0OiBidWNrZXROYW1lIH0gPSBhcmdzLmlucHV0IGFzIHsgQnVja2V0OiBzdHJpbmcgfTtcbiAgbGV0IHJlcGxhY2VCdWNrZXRJblBhdGggPSBvcHRpb25zLmJ1Y2tldEVuZHBvaW50O1xuICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgIGlmIChvcHRpb25zLmJ1Y2tldEVuZHBvaW50KSB7XG4gICAgICByZXF1ZXN0Lmhvc3RuYW1lID0gYnVja2V0TmFtZTtcbiAgICB9IGVsc2UgaWYgKHZhbGlkYXRlQXJuKGJ1Y2tldE5hbWUpKSB7XG4gICAgICBjb25zdCBidWNrZXRBcm4gPSBwYXJzZUFybihidWNrZXROYW1lKTtcbiAgICAgIGNvbnN0IGNsaWVudFJlZ2lvbiA9IGdldFBzZXVkb1JlZ2lvbihhd2FpdCBvcHRpb25zLnJlZ2lvbigpKTtcbiAgICAgIGNvbnN0IHsgcGFydGl0aW9uLCBzaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uIH0gPSAoYXdhaXQgb3B0aW9ucy5yZWdpb25JbmZvUHJvdmlkZXIoY2xpZW50UmVnaW9uKSkgfHwge307XG4gICAgICBjb25zdCB1c2VBcm5SZWdpb24gPSBhd2FpdCBvcHRpb25zLnVzZUFyblJlZ2lvbigpO1xuICAgICAgY29uc3QgeyBob3N0bmFtZSwgYnVja2V0RW5kcG9pbnQsIHNpZ25pbmdSZWdpb246IG1vZGlmaWVkU2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSA9IGJ1Y2tldEhvc3RuYW1lKHtcbiAgICAgICAgYnVja2V0TmFtZTogYnVja2V0QXJuLFxuICAgICAgICBiYXNlSG9zdG5hbWU6IHJlcXVlc3QuaG9zdG5hbWUsXG4gICAgICAgIGFjY2VsZXJhdGVFbmRwb2ludDogb3B0aW9ucy51c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgICAgIGR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICBwYXRoU3R5bGVFbmRwb2ludDogb3B0aW9ucy5mb3JjZVBhdGhTdHlsZSxcbiAgICAgICAgdGxzQ29tcGF0aWJsZTogcmVxdWVzdC5wcm90b2NvbCA9PT0gXCJodHRwczpcIixcbiAgICAgICAgdXNlQXJuUmVnaW9uLFxuICAgICAgICBjbGllbnRQYXJ0aXRpb246IHBhcnRpdGlvbixcbiAgICAgICAgY2xpZW50U2lnbmluZ1JlZ2lvbjogc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgY2xpZW50UmVnaW9uOiBjbGllbnRSZWdpb24sXG4gICAgICAgIGlzQ3VzdG9tRW5kcG9pbnQ6IG9wdGlvbnMuaXNDdXN0b21FbmRwb2ludCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBJZiB0aGUgcmVxdWVzdCBuZWVkcyB0byB1c2UgYSByZWdpb24gb3Igc2VydmljZSBuYW1lIGluZmVycmVkIGZyb20gQVJOIHRoYXQgZGlmZmVyZW50IGZyb20gY2xpZW50IHJlZ2lvbiwgd2VcbiAgICAgIC8vIG5lZWQgdG8gc2V0IHRoZW0gaW4gdGhlIGhhbmRsZXIgY29udGV4dCBzbyB0aGUgc2lnbmVyIHdpbGwgdXNlIHRoZW1cbiAgICAgIGlmIChtb2RpZmllZFNpZ25pbmdSZWdpb24gJiYgbW9kaWZpZWRTaWduaW5nUmVnaW9uICE9PSBzaWduaW5nUmVnaW9uKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSA9IG1vZGlmaWVkU2lnbmluZ1JlZ2lvbjtcbiAgICAgIH1cbiAgICAgIGlmIChzaWduaW5nU2VydmljZSAmJiBzaWduaW5nU2VydmljZSAhPT0gXCJzM1wiKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3NlcnZpY2VcIl0gPSBzaWduaW5nU2VydmljZTtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICBjbGllbnRSZWdpb24sXG4gICAgICAgIGJhc2VIb3N0bmFtZTogcmVxdWVzdC5ob3N0bmFtZSxcbiAgICAgICAgYWNjZWxlcmF0ZUVuZHBvaW50OiBvcHRpb25zLnVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgIHBhdGhTdHlsZUVuZHBvaW50OiBvcHRpb25zLmZvcmNlUGF0aFN0eWxlLFxuICAgICAgICB0bHNDb21wYXRpYmxlOiByZXF1ZXN0LnByb3RvY29sID09PSBcImh0dHBzOlwiLFxuICAgICAgICBpc0N1c3RvbUVuZHBvaW50OiBvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQsXG4gICAgICB9KTtcblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH1cblxuICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICByZXF1ZXN0LnBhdGggPSByZXF1ZXN0LnBhdGgucmVwbGFjZSgvXihcXC8pP1teXFwvXSsvLCBcIlwiKTtcbiAgICAgIGlmIChyZXF1ZXN0LnBhdGggPT09IFwiXCIpIHtcbiAgICAgICAgcmVxdWVzdC5wYXRoID0gXCIvXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHQoeyAuLi5hcmdzLCByZXF1ZXN0IH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM6IFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gIHRhZ3M6IFtcIkJVQ0tFVF9FTkRQT0lOVFwiXSxcbiAgbmFtZTogXCJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gIHRvTWlkZGxld2FyZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","import { __assign } from \"tslib\";\nexport function resolveBucketEndpointConfig(input) {\n var _a = input.bucketEndpoint, bucketEndpoint = _a === void 0 ? false : _a, _b = input.forcePathStyle, forcePathStyle = _b === void 0 ? false : _b, _c = input.useAccelerateEndpoint, useAccelerateEndpoint = _c === void 0 ? false : _c, _d = input.useDualstackEndpoint, useDualstackEndpoint = _d === void 0 ? false : _d, _e = input.useArnRegion, useArnRegion = _e === void 0 ? false : _e;\n return __assign(__assign({}, input), { bucketEndpoint: bucketEndpoint,\n forcePathStyle: forcePathStyle,\n useAccelerateEndpoint: useAccelerateEndpoint,\n useDualstackEndpoint: useDualstackEndpoint, useArnRegion: typeof useArnRegion === \"function\" ? useArnRegion : function () { return Promise.resolve(useArnRegion); } });\n}\nexport var NODE_USE_ARN_REGION_ENV_NAME = \"AWS_S3_USE_ARN_REGION\";\nexport var NODE_USE_ARN_REGION_INI_NAME = \"s3_use_arn_region\";\n/**\n * Config to load useArnRegion from environment variables and shared INI files\n *\n * @api private\n */\nexport var NODE_USE_ARN_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n if (!Object.prototype.hasOwnProperty.call(env, NODE_USE_ARN_REGION_ENV_NAME))\n return undefined;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"true\")\n return true;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"false\")\n return false;\n throw new Error(\"Cannot load env \" + NODE_USE_ARN_REGION_ENV_NAME + \". Expected \\\"true\\\" or \\\"false\\\", got \" + env[NODE_USE_ARN_REGION_ENV_NAME] + \".\");\n },\n configFileSelector: function (profile) {\n if (!Object.prototype.hasOwnProperty.call(profile, NODE_USE_ARN_REGION_INI_NAME))\n return undefined;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"true\")\n return true;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"false\")\n return false;\n throw new Error(\"Cannot load shared config entry \" + NODE_USE_ARN_REGION_INI_NAME + \". Expected \\\"true\\\" or \\\"false\\\", got \" + profile[NODE_USE_ARN_REGION_INI_NAME] + \".\");\n },\n default: false,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQTJDQSxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLEtBQXlEO0lBR3ZELElBQUEsS0FLRSxLQUFLLGVBTGUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FJRSxLQUFLLGVBSmUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FHRSxLQUFLLHNCQUhzQixFQUE3QixxQkFBcUIsbUJBQUcsS0FBSyxLQUFBLEVBQzdCLEtBRUUsS0FBSyxxQkFGcUIsRUFBNUIsb0JBQW9CLG1CQUFHLEtBQUssS0FBQSxFQUM1QixLQUNFLEtBQUssYUFEYSxFQUFwQixZQUFZLG1CQUFHLEtBQUssS0FBQSxDQUNaO0lBQ1YsNkJBQ0ssS0FBSyxLQUNSLGNBQWMsZ0JBQUE7UUFDZCxjQUFjLGdCQUFBO1FBQ2QscUJBQXFCLHVCQUFBO1FBQ3JCLG9CQUFvQixzQkFBQSxFQUNwQixZQUFZLEVBQUUsT0FBTyxZQUFZLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUE3QixDQUE2QixJQUNyRztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyx1QkFBdUIsQ0FBQztBQUNwRSxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sa0NBQWtDLEdBQW1DO0lBQ2hGLDJCQUEyQixFQUFFLFVBQUMsR0FBc0I7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMvRixJQUFJLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5RCxJQUFJLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUNiLHFCQUFtQiw0QkFBNEIsOENBQXFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFHLENBQ3pILENBQUM7SUFDSixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxPQUFPO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDRCQUE0QixDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDbkcsSUFBSSxPQUFPLENBQUMsNEJBQTRCLENBQUMsS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbEUsSUFBSSxPQUFPLENBQUMsNEJBQTRCLENBQUMsS0FBSyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FDYixxQ0FBbUMsNEJBQTRCLDhDQUFxQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsTUFBRyxDQUM3SSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvYWRlZENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gXCJAYXdzLXNkay9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgYWRkcmVzc2VzIGFuIGluZGl2aWR1YWwgYnVja2V0LlxuICAgKi9cbiAgYnVja2V0RW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBmb3JjZSBwYXRoIHN0eWxlIFVSTHMgZm9yIFMzIG9iamVjdHMgKGUuZy4sIGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS88YnVja2V0TmFtZT4vPGtleT4gaW5zdGVhZCBvZiBodHRwczovLzxidWNrZXROYW1lPi5zMy5hbWF6b25hd3MuY29tLzxrZXk+XG4gICAqL1xuICBmb3JjZVBhdGhTdHlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgUzMgVHJhbnNmZXIgQWNjZWxlcmF0aW9uIGVuZHBvaW50IGJ5IGRlZmF1bHRcbiAgICovXG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGVzIElQdjYvSVB2NCBkdWFsc3RhY2sgZW5kcG9pbnQuIFdoZW4gYSBETlMgbG9va3VwIGlzIHBlcmZvcm1lZCBvbiBhbiBlbmRwb2ludCBvZiB0aGlzIHR5cGUsIGl0IHJldHVybnMgYW4g4oCcQeKAnSByZWNvcmQgd2l0aCBhbiBJUHY0IGFkZHJlc3MgYW5kIGFuIOKAnEFBQUHigJ0gcmVjb3JkIHdpdGggYW4gSVB2NiBhZGRyZXNzLiBJbiBtb3N0IGNhc2VzIHRoZSBuZXR3b3JrIHN0YWNrIGluIHRoZSBjbGllbnQgZW52aXJvbm1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHByZWZlciB0aGUgQUFBQSByZWNvcmQgYW5kIG1ha2UgYSBjb25uZWN0aW9uIHVzaW5nIHRoZSBJUHY2IGFkZHJlc3MuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgY3VycmVudGx5IG9uIFdpbmRvd3MsIHRoZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBwcmVmZXJyZWQuXG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG92ZXJyaWRlIHRoZSByZXF1ZXN0IHJlZ2lvbiB3aXRoIHRoZSByZWdpb24gaW5mZXJyZWQgZnJvbSByZXF1ZXN0ZWQgcmVzb3VyY2UncyBBUk4uIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICB1c2VBcm5SZWdpb24/OiBib29sZWFuIHwgUHJvdmlkZXI8Ym9vbGVhbj47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgZm9yY2VQYXRoU3R5bGU6IGJvb2xlYW47XG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludDogYm9vbGVhbjtcbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGJvb2xlYW47XG4gIHVzZUFyblJlZ2lvbjogUHJvdmlkZXI8Ym9vbGVhbj47XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQnVja2V0RW5kcG9pbnRDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZ1xuKTogVCAmIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBjb25zdCB7XG4gICAgYnVja2V0RW5kcG9pbnQgPSBmYWxzZSxcbiAgICBmb3JjZVBhdGhTdHlsZSA9IGZhbHNlLFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHVzZUR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gICAgdXNlQXJuUmVnaW9uID0gZmFsc2UsXG4gIH0gPSBpbnB1dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBidWNrZXRFbmRwb2ludCxcbiAgICBmb3JjZVBhdGhTdHlsZSxcbiAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgdXNlQXJuUmVnaW9uOiB0eXBlb2YgdXNlQXJuUmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyB1c2VBcm5SZWdpb24gOiAoKSA9PiBQcm9taXNlLnJlc29sdmUodXNlQXJuUmVnaW9uKSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUgPSBcIkFXU19TM19VU0VfQVJOX1JFR0lPTlwiO1xuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUgPSBcInMzX3VzZV9hcm5fcmVnaW9uXCI7XG5cbi8qKlxuICogQ29uZmlnIHRvIGxvYWQgdXNlQXJuUmVnaW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBzaGFyZWQgSU5JIGZpbGVzXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TOiBMb2FkZWRDb25maWdTZWxlY3RvcnM8Ym9vbGVhbj4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudjogTm9kZUpTLlByb2Nlc3NFbnYpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnYsIE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChlbnZbTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgZW52ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7ZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb2ZpbGUsIE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9maWxlW05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHByb2ZpbGVbTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRV0gPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDYW5ub3QgbG9hZCBzaGFyZWQgY29uZmlnIGVudHJ5ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7cHJvZmlsZVtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGRlZmF1bHQ6IGZhbHNlLFxufTtcbiJdfQ==","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { validate as validateArn } from \"@aws-sdk/util-arn-parser\";\n/**\n * @internal\n */\nexport function validateBucketNameMiddleware() {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var Bucket, err;\n return __generator(this, function (_a) {\n Bucket = args.input.Bucket;\n if (typeof Bucket === \"string\" && !validateArn(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n err = new Error(\"Bucket name shouldn't contain '/', received '\" + Bucket + \"'\");\n err.name = \"InvalidBucketName\";\n throw err;\n }\n return [2 /*return*/, next(__assign({}, args))];\n });\n }); }; };\n}\n/**\n * @internal\n */\nexport var validateBucketNameMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"VALIDATE_BUCKET_NAME\"],\n name: \"validateBucketNameMiddleware\",\n override: true,\n};\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport var getValidateBucketNamePlugin = function (unused) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYnVja2V0LW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGUtYnVja2V0LW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVNBLE9BQU8sRUFBRSxRQUFRLElBQUksV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCO0lBQTVDLGlCQWdCQztJQWZDLE9BQU8sVUFDTCxJQUFvQyxJQUNELE9BQUEsVUFDbkMsSUFBcUM7OztZQUcxQixNQUFNLEdBQ2IsSUFBSSxhQURTLENBQ1I7WUFDVCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDNUUsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLGtEQUFnRCxNQUFNLE1BQUcsQ0FBQyxDQUFDO2dCQUNqRixHQUFHLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDO2dCQUMvQixNQUFNLEdBQUcsQ0FBQzthQUNYO1lBQ0Qsc0JBQU8sSUFBSSxjQUFNLElBQUksRUFBRyxFQUFDOztTQUMxQixFQVpvQyxDQVlwQyxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUNBQW1DLEdBQTZCO0lBQzNFLElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO0lBQzlCLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUY7O0dBRUc7QUFDSCw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLElBQU0sMkJBQTJCLEdBQUcsVUFBQyxNQUFXLElBQTBCLE9BQUEsQ0FBQztJQUNoRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7Q0FDRixDQUFDLEVBSitFLENBSS9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbml0aWFsaXplSGFuZGxlcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEluaXRpYWxpemVNaWRkbGV3YXJlLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHZhbGlkYXRlIGFzIHZhbGlkYXRlQXJuIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZSgpOiBJbml0aWFsaXplTWlkZGxld2FyZTxhbnksIGFueT4ge1xuICByZXR1cm4gPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihcbiAgICBuZXh0OiBJbml0aWFsaXplSGFuZGxlcjxhbnksIE91dHB1dD5cbiAgKTogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50czxhbnk+XG4gICk6IFByb21pc2U8SW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGlucHV0OiB7IEJ1Y2tldCB9LFxuICAgIH0gPSBhcmdzO1xuICAgIGlmICh0eXBlb2YgQnVja2V0ID09PSBcInN0cmluZ1wiICYmICF2YWxpZGF0ZUFybihCdWNrZXQpICYmIEJ1Y2tldC5pbmRleE9mKFwiL1wiKSA+PSAwKSB7XG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYEJ1Y2tldCBuYW1lIHNob3VsZG4ndCBjb250YWluICcvJywgcmVjZWl2ZWQgJyR7QnVja2V0fSdgKTtcbiAgICAgIGVyci5uYW1lID0gXCJJbnZhbGlkQnVja2V0TmFtZVwiO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MgfSk7XG4gIH07XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlT3B0aW9uczogSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgdGFnczogW1wiVkFMSURBVEVfQlVDS0VUX05BTUVcIl0sXG4gIG5hbWU6IFwidmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjb25zdCBnZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4gPSAodW51c2VkOiBhbnkpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUoKSwgdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\n/**\n * @internal\n */\nexport var useRegionalEndpointMiddleware = function (config) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request) || config.isCustomEndpoint)\n return [2 /*return*/, next(__assign({}, args))];\n if (!(request.hostname === \"s3.amazonaws.com\")) return [3 /*break*/, 1];\n request.hostname = \"s3.us-east-1.amazonaws.com\";\n return [3 /*break*/, 3];\n case 1:\n _a = \"aws-global\";\n return [4 /*yield*/, config.region()];\n case 2:\n if (_a === (_b.sent())) {\n request.hostname = \"s3.amazonaws.com\";\n }\n _b.label = 3;\n case 3: return [2 /*return*/, next(__assign({}, args))];\n }\n });\n}); }; }; };\n/**\n * @internal\n */\nexport var useRegionalEndpointMiddlewareOptions = {\n step: \"build\",\n tags: [\"USE_REGIONAL_ENDPOINT\", \"S3\"],\n name: \"useRegionalEndpointMiddleware\",\n override: true,\n};\n/**\n * @internal\n */\nexport var getUseRegionalEndpointPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(useRegionalEndpointMiddleware(config), useRegionalEndpointMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlZ2lvbmFsLWVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZS1yZWdpb25hbC1lbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBaUJyRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLDZCQUE2QixHQUFHLFVBQUMsTUFBMEIsSUFBZ0MsT0FBQSxVQUd0RyxJQUErQixJQUNELE9BQUEsVUFBTyxJQUFnQzs7Ozs7Z0JBQzdELE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBVTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLGdCQUFnQjtvQkFBRSxzQkFBTyxJQUFJLGNBQU0sSUFBSSxFQUFHLEVBQUM7cUJBQ3RGLENBQUEsT0FBTyxDQUFDLFFBQVEsS0FBSyxrQkFBa0IsQ0FBQSxFQUF2Qyx3QkFBdUM7Z0JBQ3pDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsNEJBQTRCLENBQUM7OztnQkFDdkMsS0FBQSxZQUFZLENBQUE7Z0JBQU0scUJBQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFBOztnQkFBM0MsSUFBSSxPQUFpQixDQUFDLFNBQXFCLENBQUMsRUFBRTtvQkFDbkQsT0FBTyxDQUFDLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQztpQkFDdkM7O29CQUNELHNCQUFPLElBQUksY0FBTSxJQUFJLEVBQUcsRUFBQzs7O0tBQzFCLEVBVCtCLENBUy9CLEVBYnVHLENBYXZHLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLG9DQUFvQyxHQUF3QjtJQUN2RSxJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQztJQUNyQyxJQUFJLEVBQUUsK0JBQStCO0lBQ3JDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsVUFBQyxNQUEwQixJQUEwQixPQUFBLENBQUM7SUFDaEcsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxFQUFFLG9DQUFvQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztDQUNGLENBQUMsRUFKK0YsQ0FJL0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPcHRpb25zLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgUHJvdmlkZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG50eXBlIFByZXZpb3VzbHlSZXNvbHZlZCA9IHtcbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVJlZ2lvbmFsRW5kcG9pbnRNaWRkbGV3YXJlID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiA9PiA8XG4gIE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyXG4+KFxuICBuZXh0OiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+XG4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55Pik6IFByb21pc2U8QnVpbGRIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkgfHwgY29uZmlnLmlzQ3VzdG9tRW5kcG9pbnQpIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgaWYgKHJlcXVlc3QuaG9zdG5hbWUgPT09IFwiczMuYW1hem9uYXdzLmNvbVwiKSB7XG4gICAgcmVxdWVzdC5ob3N0bmFtZSA9IFwiczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cIjtcbiAgfSBlbHNlIGlmIChcImF3cy1nbG9iYWxcIiA9PT0gKGF3YWl0IGNvbmZpZy5yZWdpb24oKSkpIHtcbiAgICByZXF1ZXN0Lmhvc3RuYW1lID0gXCJzMy5hbWF6b25hd3MuY29tXCI7XG4gIH1cbiAgcmV0dXJuIG5leHQoeyAuLi5hcmdzIH0pO1xufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVJlZ2lvbmFsRW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9uczogQnVpbGRIYW5kbGVyT3B0aW9ucyA9IHtcbiAgc3RlcDogXCJidWlsZFwiLFxuICB0YWdzOiBbXCJVU0VfUkVHSU9OQUxfRU5EUE9JTlRcIiwgXCJTM1wiXSxcbiAgbmFtZTogXCJ1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRVc2VSZWdpb25hbEVuZHBvaW50UGx1Z2luID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZCh1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZShjb25maWcpLCB1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\n/**\n * In case of an internal error/terminated connection, S3 operations may return 200 errors. CopyObject, UploadPartCopy,\n * CompleteMultipartUpload may return empty payload or payload with only xml Preamble.\n * @internal\n */\nexport var throw200ExceptionsMiddleware = function (config) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var result, response, statusCode, body, bodyBytes, bodyString, err;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, next(args)];\n case 1:\n result = _a.sent();\n response = result.response;\n if (!HttpResponse.isInstance(response))\n return [2 /*return*/, result];\n statusCode = response.statusCode, body = response.body;\n if (statusCode < 200 && statusCode >= 300)\n return [2 /*return*/, result];\n return [4 /*yield*/, collectBody(body, config)];\n case 2:\n bodyBytes = _a.sent();\n return [4 /*yield*/, collectBodyString(bodyBytes, config)];\n case 3:\n bodyString = _a.sent();\n if (bodyBytes.length === 0) {\n err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\n if (bodyString && bodyString.match(\"\")) {\n // Set the error code to 4XX so that error deserializer can parse them\n response.statusCode = 400;\n }\n // Body stream is consumed and paused at this point. So replace the response.body to the collected bytes.\n // So that the deserializer can consume the body as normal.\n response.body = bodyBytes;\n return [2 /*return*/, result];\n }\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};\n/**\n * @internal\n */\nexport var throw200ExceptionsMiddlewareOptions = {\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n name: \"throw200ExceptionsMiddleware\",\n override: true,\n};\n/**\n *\n * @internal\n */\nexport var getThrow200ExceptionsPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3ctMjAwLWV4Y2VwdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGhyb3ctMjAwLWV4Y2VwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVF0RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsVUFBQyxNQUEwQixJQUFzQyxPQUFBLFVBQzNHLElBQUksSUFDRCxPQUFBLFVBQU8sSUFBSTs7OztvQkFDQyxxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUE7O2dCQUF6QixNQUFNLEdBQUcsU0FBZ0I7Z0JBQ3ZCLFFBQVEsR0FBSyxNQUFNLFNBQVgsQ0FBWTtnQkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO29CQUFFLHNCQUFPLE1BQU0sRUFBQztnQkFDOUMsVUFBVSxHQUFXLFFBQVEsV0FBbkIsRUFBRSxJQUFJLEdBQUssUUFBUSxLQUFiLENBQWM7Z0JBQ3RDLElBQUksVUFBVSxHQUFHLEdBQUcsSUFBSSxVQUFVLElBQUksR0FBRztvQkFBRSxzQkFBTyxNQUFNLEVBQUM7Z0JBR3ZDLHFCQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUE7O2dCQUEzQyxTQUFTLEdBQUcsU0FBK0I7Z0JBQzlCLHFCQUFNLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBQTs7Z0JBQXZELFVBQVUsR0FBRyxTQUEwQztnQkFDN0QsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDcEIsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQzVDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO29CQUMzQixNQUFNLEdBQUcsQ0FBQztpQkFDWDtnQkFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUM3QyxzRUFBc0U7b0JBQ3RFLFFBQVEsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO2lCQUMzQjtnQkFFRCx5R0FBeUc7Z0JBQ3pHLDJEQUEyRDtnQkFDM0QsUUFBUSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7Z0JBQzFCLHNCQUFPLE1BQU0sRUFBQzs7O0tBQ2YsRUF4QkksQ0F3QkosRUExQjRHLENBMEI1RyxDQUFDO0FBRUYsd0RBQXdEO0FBQ3hELElBQU0sV0FBVyxHQUFHLFVBQUMsVUFBa0MsRUFBRSxPQUEyQjtJQUEvRCwyQkFBQSxFQUFBLGlCQUFzQixVQUFVLEVBQUU7SUFDckQsSUFBSSxVQUFVLFlBQVksVUFBVSxFQUFFO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNwQztJQUNELE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUM7QUFFRixpREFBaUQ7QUFDakQsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLFVBQWUsRUFBRSxPQUEyQjtJQUNyRSxPQUFBLFdBQVcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBekIsQ0FBeUIsQ0FBQztBQUExRSxDQUEwRSxDQUFDO0FBRTdFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUNBQW1DLEdBQThCO0lBQzVFLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLFlBQVksRUFBRSx3QkFBd0I7SUFDdEMsSUFBSSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDO0lBQ3BDLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sMkJBQTJCLEdBQUcsVUFBQyxNQUEwQixJQUEwQixPQUFBLENBQUM7SUFDL0YsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxFQUFFLG1DQUFtQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztDQUNGLENBQUMsRUFKOEYsQ0FJOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBEZXNlcmlhbGl6ZU1pZGRsZXdhcmUsIEVuY29kZXIsIFBsdWdnYWJsZSwgUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucywgU3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbnR5cGUgUHJldmlvdXNseVJlc29sdmVkID0ge1xuICBzdHJlYW1Db2xsZWN0b3I6IFN0cmVhbUNvbGxlY3RvcjtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG59O1xuXG4vKipcbiAqIEluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgZXJyb3IvdGVybWluYXRlZCBjb25uZWN0aW9uLCBTMyBvcGVyYXRpb25zIG1heSByZXR1cm4gMjAwIGVycm9ycy4gQ29weU9iamVjdCwgVXBsb2FkUGFydENvcHksXG4gKiBDb21wbGV0ZU11bHRpcGFydFVwbG9hZCBtYXkgcmV0dXJuIGVtcHR5IHBheWxvYWQgb3IgcGF5bG9hZCB3aXRoIG9ubHkgeG1sIFByZWFtYmxlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogRGVzZXJpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiA9PiAoXG4gIG5leHRcbikgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzdWx0O1xuICBpZiAoIUh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkgcmV0dXJuIHJlc3VsdDtcbiAgY29uc3QgeyBzdGF0dXNDb2RlLCBib2R5IH0gPSByZXNwb25zZTtcbiAgaWYgKHN0YXR1c0NvZGUgPCAyMDAgJiYgc3RhdHVzQ29kZSA+PSAzMDApIHJldHVybiByZXN1bHQ7XG5cbiAgLy8gVGhyb3cgMlhYIHJlc3BvbnNlIHRoYXQncyBlaXRoZXIgYW4gZXJyb3Igb3IgaGFzIGVtcHR5IGJvZHkuXG4gIGNvbnN0IGJvZHlCeXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KGJvZHksIGNvbmZpZyk7XG4gIGNvbnN0IGJvZHlTdHJpbmcgPSBhd2FpdCBjb2xsZWN0Qm9keVN0cmluZyhib2R5Qnl0ZXMsIGNvbmZpZyk7XG4gIGlmIChib2R5Qnl0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgY29uc3QgZXJyID0gbmV3IEVycm9yKFwiUzMgYWJvcnRlZCByZXF1ZXN0XCIpO1xuICAgIGVyci5uYW1lID0gXCJJbnRlcm5hbEVycm9yXCI7XG4gICAgdGhyb3cgZXJyO1xuICB9XG4gIGlmIChib2R5U3RyaW5nICYmIGJvZHlTdHJpbmcubWF0Y2goXCI8RXJyb3I+XCIpKSB7XG4gICAgLy8gU2V0IHRoZSBlcnJvciBjb2RlIHRvIDRYWCBzbyB0aGF0IGVycm9yIGRlc2VyaWFsaXplciBjYW4gcGFyc2UgdGhlbVxuICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUgPSA0MDA7XG4gIH1cblxuICAvLyBCb2R5IHN0cmVhbSBpcyBjb25zdW1lZCBhbmQgcGF1c2VkIGF0IHRoaXMgcG9pbnQuIFNvIHJlcGxhY2UgdGhlIHJlc3BvbnNlLmJvZHkgdG8gdGhlIGNvbGxlY3RlZCBieXRlcy5cbiAgLy8gU28gdGhhdCB0aGUgZGVzZXJpYWxpemVyIGNhbiBjb25zdW1lIHRoZSBib2R5IGFzIG5vcm1hbC5cbiAgcmVzcG9uc2UuYm9keSA9IGJvZHlCeXRlcztcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIENvbGxlY3QgbG93LWxldmVsIHJlc3BvbnNlIGJvZHkgc3RyZWFtIHRvIFVpbnQ4QXJyYXkuXG5jb25zdCBjb2xsZWN0Qm9keSA9IChzdHJlYW1Cb2R5OiBhbnkgPSBuZXcgVWludDhBcnJheSgpLCBjb250ZXh0OiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQcm9taXNlPFVpbnQ4QXJyYXk+ID0+IHtcbiAgaWYgKHN0cmVhbUJvZHkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdHJlYW1Cb2R5KTtcbiAgfVxuICByZXR1cm4gY29udGV4dC5zdHJlYW1Db2xsZWN0b3Ioc3RyZWFtQm9keSkgfHwgUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KCkpO1xufTtcblxuLy8gRW5jb2RlIFVpbnQ4QXJyYXkgZGF0YSBpbnRvIHN0cmluZyB3aXRoIHV0Zi04LlxuY29uc3QgY29sbGVjdEJvZHlTdHJpbmcgPSAoc3RyZWFtQm9keTogYW55LCBjb250ZXh0OiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQcm9taXNlPHN0cmluZz4gPT5cbiAgY29sbGVjdEJvZHkoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoYm9keSkgPT4gY29udGV4dC51dGY4RW5jb2Rlcihib2R5KSk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9uczogUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgcmVsYXRpb246IFwiYWZ0ZXJcIixcbiAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiVEhST1dfMjAwX0VYQ0VQVElPTlNcIiwgXCJTM1wiXSxcbiAgbmFtZTogXCJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuLyoqXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4gPSAoY29uZmlnOiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyh0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlKGNvbmZpZyksIHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","import { __assign, __awaiter, __generator, __values } from \"tslib\";\nexport function ssecMiddleware(options) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var input, properties, properties_1, properties_1_1, prop, value, valueView, encoded, hash, _a, _b, _c, _d, e_1_1;\n var e_1, _e, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n input = __assign({}, args.input);\n properties = [\n {\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\",\n },\n {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\",\n },\n ];\n _g.label = 1;\n case 1:\n _g.trys.push([1, 6, 7, 8]);\n properties_1 = __values(properties), properties_1_1 = properties_1.next();\n _g.label = 2;\n case 2:\n if (!!properties_1_1.done) return [3 /*break*/, 5];\n prop = properties_1_1.value;\n value = input[prop.target];\n if (!value) return [3 /*break*/, 4];\n valueView = ArrayBuffer.isView(value)\n ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n : typeof value === \"string\"\n ? options.utf8Decoder(value)\n : new Uint8Array(value);\n encoded = options.base64Encoder(valueView);\n hash = new options.md5();\n hash.update(valueView);\n _a = [__assign({}, input)];\n _f = {}, _f[prop.target] = encoded;\n _b = prop.hash;\n _d = (_c = options).base64Encoder;\n return [4 /*yield*/, hash.digest()];\n case 3:\n input = __assign.apply(void 0, _a.concat([(_f[_b] = _d.apply(_c, [_g.sent()]), _f)]));\n _g.label = 4;\n case 4:\n properties_1_1 = properties_1.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_1_1 = _g.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (properties_1_1 && !properties_1_1.done && (_e = properties_1.return)) _e.call(properties_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/, next(__assign(__assign({}, args), { input: input }))];\n }\n });\n }); }; };\n}\nexport var ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true,\n};\nexport var getSsecPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWFBLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBcUM7SUFBcEUsaUJBMENDO0lBekNDLE9BQU8sVUFDTCxJQUFvQyxJQUNELE9BQUEsVUFDbkMsSUFBcUM7Ozs7OztvQkFFakMsS0FBSyxnQkFBUSxJQUFJLENBQUMsS0FBSyxDQUFFLENBQUM7b0JBQ3hCLFVBQVUsR0FBRzt3QkFDakI7NEJBQ0UsTUFBTSxFQUFFLGdCQUFnQjs0QkFDeEIsSUFBSSxFQUFFLG1CQUFtQjt5QkFDMUI7d0JBQ0Q7NEJBQ0UsTUFBTSxFQUFFLDBCQUEwQjs0QkFDbEMsSUFBSSxFQUFFLDZCQUE2Qjt5QkFDcEM7cUJBQ0YsQ0FBQzs7OztvQkFFaUIsZUFBQSxTQUFBLFVBQVUsQ0FBQTs7OztvQkFBbEIsSUFBSTtvQkFDUCxLQUFLLEdBQTRCLEtBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQzlELEtBQUssRUFBTCx3QkFBSztvQkFDRCxTQUFTLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7d0JBQ3pDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQzt3QkFDbEUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVE7NEJBQzNCLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDNUIsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQixPQUFPLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDM0MsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3VDQUVqQixLQUFhO2dDQUNoQixJQUFJLENBQUMsTUFBTSxJQUFHLE9BQU87b0JBQ3JCLEtBQUEsSUFBSSxDQUFDLElBQUksQ0FBQTtvQkFBRyxLQUFBLENBQUEsS0FBQSxPQUFPLENBQUEsQ0FBQyxhQUFhLENBQUE7b0JBQUMscUJBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFBOztvQkFIeEQsS0FBSywrQ0FHVSxjQUFzQixTQUFtQixFQUFDLFFBQ3hELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7d0JBSU4sc0JBQU8sSUFBSSx1QkFDTixJQUFJLEtBQ1AsS0FBSyxPQUFBLElBQ0wsRUFBQzs7O1NBQ0osRUF0Q29DLENBc0NwQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUE2QjtJQUM3RCxJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztJQUNiLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxVQUFDLE1BQW9DLElBQTBCLE9BQUEsQ0FBQztJQUMzRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGLENBQUMsRUFKMEYsQ0FJMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluaXRpYWxpemVIYW5kbGVyLFxuICBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zLFxuICBJbml0aWFsaXplSGFuZGxlck91dHB1dCxcbiAgSW5pdGlhbGl6ZU1pZGRsZXdhcmUsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFNvdXJjZURhdGEsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBSZXNvbHZlZFNzZWNNaWRkbGV3YXJlQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc3NlY01pZGRsZXdhcmUob3B0aW9uczogUmVzb2x2ZWRTc2VjTWlkZGxld2FyZUNvbmZpZyk6IEluaXRpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KFxuICAgIG5leHQ6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PlxuICApOiBJbml0aWFsaXplSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKFxuICAgIGFyZ3M6IEluaXRpYWxpemVIYW5kbGVyQXJndW1lbnRzPGFueT5cbiAgKTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgbGV0IGlucHV0ID0geyAuLi5hcmdzLmlucHV0IH07XG4gICAgY29uc3QgcHJvcGVydGllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdGFyZ2V0OiBcIlNTRUN1c3RvbWVyS2V5XCIsXG4gICAgICAgIGhhc2g6IFwiU1NFQ3VzdG9tZXJLZXlNRDVcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRhcmdldDogXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlcIixcbiAgICAgICAgaGFzaDogXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlNRDVcIixcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICBjb25zdCB2YWx1ZTogU291cmNlRGF0YSB8IHVuZGVmaW5lZCA9IChpbnB1dCBhcyBhbnkpW3Byb3AudGFyZ2V0XTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBjb25zdCB2YWx1ZVZpZXcgPSBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsdWUpXG4gICAgICAgICAgPyBuZXcgVWludDhBcnJheSh2YWx1ZS5idWZmZXIsIHZhbHVlLmJ5dGVPZmZzZXQsIHZhbHVlLmJ5dGVMZW5ndGgpXG4gICAgICAgICAgOiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IG9wdGlvbnMudXRmOERlY29kZXIodmFsdWUpXG4gICAgICAgICAgOiBuZXcgVWludDhBcnJheSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGVuY29kZWQgPSBvcHRpb25zLmJhc2U2NEVuY29kZXIodmFsdWVWaWV3KTtcbiAgICAgICAgY29uc3QgaGFzaCA9IG5ldyBvcHRpb25zLm1kNSgpO1xuICAgICAgICBoYXNoLnVwZGF0ZSh2YWx1ZVZpZXcpO1xuICAgICAgICBpbnB1dCA9IHtcbiAgICAgICAgICAuLi4oaW5wdXQgYXMgYW55KSxcbiAgICAgICAgICBbcHJvcC50YXJnZXRdOiBlbmNvZGVkLFxuICAgICAgICAgIFtwcm9wLmhhc2hdOiBvcHRpb25zLmJhc2U2NEVuY29kZXIoYXdhaXQgaGFzaC5kaWdlc3QoKSksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgLi4uYXJncyxcbiAgICAgIGlucHV0LFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc3NlY01pZGRsZXdhcmVPcHRpb25zOiBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMgPSB7XG4gIG5hbWU6IFwic3NlY01pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gIHRhZ3M6IFtcIlNTRVwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3NlY1BsdWdpbiA9IChjb25maWc6IFJlc29sdmVkU3NlY01pZGRsZXdhcmVDb25maWcpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHNzZWNNaWRkbGV3YXJlKGNvbmZpZyksIHNzZWNNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __extends } from \"tslib\";\nimport { CopyObjectOutput, CopyObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlCopyObjectCommand, serializeAws_restXmlCopyObjectCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Creates a copy of an object that is already stored in Amazon S3.

\n * \n *

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your\n * object up to 5 GB in size in a single atomic operation using this API. However, to copy\n * an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API.\n * For more information, see Copy Object Using the REST Multipart Upload API.

\n *
\n *

All copy requests must be authenticated. Additionally, you must have\n * read access to the source object and write\n * access to the destination bucket. For more information, see REST Authentication. Both the Region\n * that you want to copy the object from and the Region that you want to copy the object to\n * must be enabled for your account.

\n *

A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3\n * is copying the files. If the error occurs before the copy operation starts, you receive a\n * standard Amazon S3 error. If the error occurs during the copy operation, the error response is\n * embedded in the 200 OK response. This means that a 200 OK\n * response can contain either a success or an error. Design your application to parse the\n * contents of the response and handle it appropriately.

\n *

If the copy is successful, you receive a response with information about the copied\n * object.

\n * \n *

If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not,\n * it would not contain the content-length, and you would need to read the entire\n * body.

\n *
\n *

The copy request charge is based on the storage class and Region that you specify for\n * the destination object. For pricing information, see Amazon S3 pricing.

\n * \n *

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a\n * cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad\n * Request error. For more information, see Transfer Acceleration.

\n *
\n *

\n * Metadata\n *

\n *

When copying an object, you can preserve all metadata (default) or specify new metadata.\n * However, the ACL is not preserved and is set to private for the user making the request. To\n * override the default ACL setting, specify a new ACL when generating a copy request. For\n * more information, see Using ACLs.

\n *

To specify whether you want the object metadata copied from the source object or\n * replaced with metadata provided in the request, you can optionally add the\n * x-amz-metadata-directive header. When you grant permissions, you can use\n * the s3:x-amz-metadata-directive condition key to enforce certain metadata\n * behavior when objects are uploaded. For more information, see Specifying Conditions in a\n * Policy in the Amazon S3 Developer Guide. For a complete list of\n * Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for\n * Amazon S3.

\n *

\n * \n * x-amz-copy-source-if Headers\n *

\n *

To only copy an object under certain conditions, such as whether the Etag\n * matches or whether the object was modified before or after a specified date, use the\n * following request parameters:

\n *
    \n *
  • \n *

    \n * x-amz-copy-source-if-match\n *

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-none-match\n *

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-unmodified-since\n *

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-modified-since\n *

    \n *
  • \n *
\n *

If both the x-amz-copy-source-if-match and\n * x-amz-copy-source-if-unmodified-since headers are present in the request\n * and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

\n *
    \n *
  • \n *

    \n * x-amz-copy-source-if-match condition evaluates to true

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-unmodified-since condition evaluates to\n * false

    \n *
  • \n *
\n *\n *

If both the x-amz-copy-source-if-none-match and\n * x-amz-copy-source-if-modified-since headers are present in the request and\n * evaluate as follows, Amazon S3 returns the 412 Precondition Failed response\n * code:

\n *
    \n *
  • \n *

    \n * x-amz-copy-source-if-none-match condition evaluates to false

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-modified-since condition evaluates to\n * true

    \n *
  • \n *
\n *\n * \n *

All headers with the x-amz- prefix, including\n * x-amz-copy-source, must be signed.

\n *
\n *

\n * Server-side encryption\n *

\n *

When you perform a CopyObject operation, you can optionally use the appropriate encryption-related headers to encrypt the object using server-side encryption with AWS managed encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. For more information about server-side encryption, see Using\n * Server-Side Encryption.

\n *

If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. For more\n * information, see Amazon S3 Bucket Keys in the Amazon Simple Storage Service Developer Guide.

\n *

\n * Access Control List (ACL)-Specific Request\n * Headers\n *

\n *

When copying an object, you can optionally use headers to grant ACL-based permissions.\n * By default, all objects are private. Only the owner has full access control. When adding a\n * new object, you can grant permissions to individual AWS accounts or to predefined groups\n * defined by Amazon S3. These permissions are then added to the ACL on the object. For more\n * information, see Access Control List (ACL) Overview and Managing ACLs Using the REST\n * API.

\n *\n *

\n * Storage Class Options\n *

\n *

You can use the CopyObject operation to change the storage class of an\n * object that is already stored in Amazon S3 using the StorageClass parameter. For\n * more information, see Storage\n * Classes in the Amazon S3 Service Developer Guide.

\n *

\n * Versioning\n *

\n *

By default, x-amz-copy-source identifies the current version of an object\n * to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was\n * deleted. To copy a different version, use the versionId subresource.

\n *

If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for\n * the object being copied. This version ID is different from the version ID of the source\n * object. Amazon S3 returns the version ID of the copied object in the\n * x-amz-version-id response header in the response.

\n *

If you do not enable versioning or suspend it on the target bucket, the version ID that\n * Amazon S3 generates is always null.

\n *

If the source object's storage class is GLACIER, you must restore a copy of this object\n * before you can use it as a source object for the copy operation. For more information, see\n * RestoreObject.

\n *

The following operations are related to CopyObject:

\n * \n *

For more information, see Copying\n * Objects.

\n */\nvar CopyObjectCommand = /** @class */ (function (_super) {\n __extends(CopyObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CopyObjectCommand(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 CopyObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"CopyObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CopyObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: CopyObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CopyObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCopyObjectCommand(input, context);\n };\n CopyObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCopyObjectCommand(output, context);\n };\n return CopyObjectCommand;\n}($Command));\nexport { CopyObjectCommand };\n//# sourceMappingURL=CopyObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { GetObjectOutput, GetObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlGetObjectCommand, serializeAws_restXmlGetObjectCommand } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Retrieves objects from Amazon S3. To use GET, you must have READ\n * access to the object. If you grant READ access to the anonymous user, you can\n * return the object without using an authorization header.

\n *\n *

An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer\n * file system. You can, however, create a logical hierarchy by using object key names that\n * imply a folder structure. For example, instead of naming an object sample.jpg,\n * you can name it photos/2006/February/sample.jpg.

\n *\n *

To get an object from such a logical hierarchy, specify the full key name for the object\n * in the GET operation. For a virtual hosted-style request example, if you have\n * the object photos/2006/February/sample.jpg, specify the resource as\n * /photos/2006/February/sample.jpg. For a path-style request example, if you\n * have the object photos/2006/February/sample.jpg in the bucket named\n * examplebucket, specify the resource as\n * /examplebucket/photos/2006/February/sample.jpg. For more information about\n * request types, see HTTP Host Header Bucket Specification.

\n *\n *

To distribute large files to many people, you can save bandwidth costs by using\n * BitTorrent. For more information, see Amazon S3\n * Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

\n *\n *

If the object you are retrieving is stored in the S3 Glacier or\n * S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or\n * S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you must first restore a\n * copy using RestoreObject. Otherwise, this operation returns an\n * InvalidObjectStateError error. For information about restoring archived\n * objects, see Restoring Archived\n * Objects.

\n *\n *

Encryption request headers, like x-amz-server-side-encryption, should not\n * be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS\n * KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your\n * object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

\n *

If you encrypt an object by using server-side encryption with customer-provided\n * encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n * you must use the following headers:

\n *
    \n *
  • \n *

    x-amz-server-side-encryption-customer-algorithm

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key-MD5

    \n *
  • \n *
\n *

For more information about SSE-C, see Server-Side Encryption (Using\n * Customer-Provided Encryption Keys).

\n *\n *

Assuming you have permission to read object tags (permission for the\n * s3:GetObjectVersionTagging action), the response also returns the\n * x-amz-tagging-count header that provides the count of number of tags\n * associated with the object. You can use GetObjectTagging to retrieve\n * the tag set associated with an object.

\n *\n *

\n * Permissions\n *

\n *

You need the s3:GetObject permission for this operation. For more\n * information, see Specifying Permissions\n * in a Policy. If the object you request does not exist, the error Amazon S3 returns\n * depends on whether you also have the s3:ListBucket permission.

\n *
    \n *
  • \n *

    If you have the s3:ListBucket permission on the bucket, Amazon S3 will\n * return an HTTP status code 404 (\"no such key\") error.

    \n *
  • \n *
  • \n *

    If you don’t have the s3:ListBucket permission, Amazon S3 will return an\n * HTTP status code 403 (\"access denied\") error.

    \n *
  • \n *
\n *\n *\n *

\n * Versioning\n *

\n *

By default, the GET operation returns the current version of an object. To return a\n * different version, use the versionId subresource.

\n *\n * \n *

If the current version of the object is a delete marker, Amazon S3 behaves as if the\n * object was deleted and includes x-amz-delete-marker: true in the\n * response.

\n *
\n *\n *\n *

For more information about versioning, see PutBucketVersioning.

\n *\n *

\n * Overriding Response Header Values\n *

\n *

There are times when you want to override certain response header values in a GET\n * response. For example, you might override the Content-Disposition response header value in\n * your GET request.

\n *\n *

You can override values for a set of response headers using the following query\n * parameters. These response header values are sent only on a successful request, that is,\n * when status code 200 OK is returned. The set of headers you can override using these\n * parameters is a subset of the headers that Amazon S3 accepts when you create an object. The\n * response headers that you can override for the GET response are Content-Type,\n * Content-Language, Expires, Cache-Control,\n * Content-Disposition, and Content-Encoding. To override these\n * header values in the GET response, you use the following request parameters.

\n *\n * \n *

You must sign the request, either using an Authorization header or a presigned URL,\n * when using these parameters. They cannot be used with an unsigned (anonymous)\n * request.

\n *
\n *
    \n *
  • \n *

    \n * response-content-type\n *

    \n *
  • \n *
  • \n *

    \n * response-content-language\n *

    \n *
  • \n *
  • \n *

    \n * response-expires\n *

    \n *
  • \n *
  • \n *

    \n * response-cache-control\n *

    \n *
  • \n *
  • \n *

    \n * response-content-disposition\n *

    \n *
  • \n *
  • \n *

    \n * response-content-encoding\n *

    \n *
  • \n *
\n *\n *

\n * Additional Considerations about Request Headers\n *

\n *\n *

If both of the If-Match and If-Unmodified-Since headers are\n * present in the request as follows: If-Match condition evaluates to\n * true, and; If-Unmodified-Since condition evaluates to\n * false; then, S3 returns 200 OK and the data requested.

\n *\n *

If both of the If-None-Match and If-Modified-Since headers are\n * present in the request as follows: If-None-Match condition evaluates to\n * false, and; If-Modified-Since condition evaluates to\n * true; then, S3 returns 304 Not Modified response code.

\n *\n *

For more information about conditional requests, see RFC 7232.

\n *\n *

The following operations are related to GetObject:

\n * \n */\nvar GetObjectCommand = /** @class */ (function (_super) {\n __extends(GetObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetObjectCommand(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 GetObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"GetObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: GetObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlGetObjectCommand(input, context);\n };\n GetObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlGetObjectCommand(output, context);\n };\n return GetObjectCommand;\n}($Command));\nexport { GetObjectCommand };\n//# sourceMappingURL=GetObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { DeleteObjectOutput, DeleteObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlDeleteObjectCommand, serializeAws_restXmlDeleteObjectCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Removes the null version (if there is one) of an object and inserts a delete marker,\n * which becomes the latest version of the object. If there isn't a null version, Amazon S3 does\n * not remove any objects.

\n *\n *

To remove a specific version, you must be the bucket owner and you must use the version\n * Id subresource. Using this subresource permanently deletes the version. If the object\n * deleted is a delete marker, Amazon S3 sets the response header,\n * x-amz-delete-marker, to true.

\n *\n *

If the object you want to delete is in a bucket where the bucket versioning\n * configuration is MFA Delete enabled, you must include the x-amz-mfa request\n * header in the DELETE versionId request. Requests that include\n * x-amz-mfa must use HTTPS.

\n *\n *

For more information about MFA Delete, see Using MFA Delete. To see sample requests that use versioning, see Sample Request.

\n *\n *

You can delete objects by explicitly calling the DELETE Object API or configure its\n * lifecycle (PutBucketLifecycle) to\n * enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or\n * deleting objects from your bucket, you must deny them the s3:DeleteObject,\n * s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration\n * actions.

\n *\n *

The following operation is related to DeleteObject:

\n * \n */\nvar DeleteObjectCommand = /** @class */ (function (_super) {\n __extends(DeleteObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function DeleteObjectCommand(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 DeleteObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"DeleteObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: DeleteObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: DeleteObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n DeleteObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlDeleteObjectCommand(input, context);\n };\n DeleteObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlDeleteObjectCommand(output, context);\n };\n return DeleteObjectCommand;\n}($Command));\nexport { DeleteObjectCommand };\n//# sourceMappingURL=DeleteObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { ListObjectsV2Output, ListObjectsV2Request } from \"../models/models_0\";\nimport { deserializeAws_restXmlListObjectsV2Command, serializeAws_restXmlListObjectsV2Command, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request\n * parameters as selection criteria to return a subset of the objects in a bucket. A 200\n * OK response can contain valid or invalid XML. Make sure to design your\n * application to parse the contents of the response and handle it appropriately.

\n *\n *

To use this operation, you must have READ access to the bucket.

\n *\n *

To use this operation in an AWS Identity and Access Management (IAM) policy, you must\n * have permissions to perform the s3:ListBucket action. The bucket owner has\n * this permission by default and can grant this permission to others. For more information\n * about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n * Resources.

\n * \n *

This section describes the latest revision of the API. We recommend that you use this\n * revised API for application development. For backward compatibility, Amazon S3 continues to\n * support the prior version of this API, ListObjects.

\n *
\n *\n *

To get a list of your buckets, see ListBuckets.

\n *\n *

The following operations are related to ListObjectsV2:

\n * \n */\nvar ListObjectsV2Command = /** @class */ (function (_super) {\n __extends(ListObjectsV2Command, _super);\n // Start section: command_properties\n // End section: command_properties\n function ListObjectsV2Command(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 ListObjectsV2Command.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"ListObjectsV2Command\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: ListObjectsV2Request.filterSensitiveLog,\n outputFilterSensitiveLog: ListObjectsV2Output.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n ListObjectsV2Command.prototype.serialize = function (input, context) {\n return serializeAws_restXmlListObjectsV2Command(input, context);\n };\n ListObjectsV2Command.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlListObjectsV2Command(output, context);\n };\n return ListObjectsV2Command;\n}($Command));\nexport { ListObjectsV2Command };\n//# sourceMappingURL=ListObjectsV2Command.js.map","import { buildQueryString } from \"@aws-sdk/querystring-builder\";\nexport function formatUrl(request) {\n var port = request.port, query = request.query;\n var protocol = request.protocol, path = request.path, hostname = request.hostname;\n if (protocol && protocol.substr(-1) !== \":\") {\n protocol += \":\";\n }\n if (port) {\n hostname += \":\" + port;\n }\n if (path && path.charAt(0) !== \"/\") {\n path = \"/\" + path;\n }\n var queryString = query ? buildQueryString(query) : \"\";\n if (queryString && queryString[0] !== \"?\") {\n queryString = \"?\" + queryString;\n }\n return protocol + \"//\" + hostname + path + queryString;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHaEUsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFnRDtJQUNoRSxJQUFBLElBQUksR0FBWSxPQUFPLEtBQW5CLEVBQUUsS0FBSyxHQUFLLE9BQU8sTUFBWixDQUFhO0lBQzFCLElBQUEsUUFBUSxHQUFxQixPQUFPLFNBQTVCLEVBQUUsSUFBSSxHQUFlLE9BQU8sS0FBdEIsRUFBRSxRQUFRLEdBQUssT0FBTyxTQUFaLENBQWE7SUFDM0MsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUMzQyxRQUFRLElBQUksR0FBRyxDQUFDO0tBQ2pCO0lBQ0QsSUFBSSxJQUFJLEVBQUU7UUFDUixRQUFRLElBQUksTUFBSSxJQUFNLENBQUM7S0FDeEI7SUFDRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUNsQyxJQUFJLEdBQUcsTUFBSSxJQUFNLENBQUM7S0FDbkI7SUFDRCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkQsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUN6QyxXQUFXLEdBQUcsTUFBSSxXQUFhLENBQUM7S0FDakM7SUFDRCxPQUFVLFFBQVEsVUFBSyxRQUFRLEdBQUcsSUFBSSxHQUFHLFdBQWEsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRRdWVyeVN0cmluZyB9IGZyb20gXCJAYXdzLXNkay9xdWVyeXN0cmluZy1idWlsZGVyXCI7XG5pbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHJlcXVlc3Q6IE9taXQ8SHR0cFJlcXVlc3QsIFwiaGVhZGVyc1wiIHwgXCJtZXRob2RcIj4pOiBzdHJpbmcge1xuICBjb25zdCB7IHBvcnQsIHF1ZXJ5IH0gPSByZXF1ZXN0O1xuICBsZXQgeyBwcm90b2NvbCwgcGF0aCwgaG9zdG5hbWUgfSA9IHJlcXVlc3Q7XG4gIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbC5zdWJzdHIoLTEpICE9PSBcIjpcIikge1xuICAgIHByb3RvY29sICs9IFwiOlwiO1xuICB9XG4gIGlmIChwb3J0KSB7XG4gICAgaG9zdG5hbWUgKz0gYDoke3BvcnR9YDtcbiAgfVxuICBpZiAocGF0aCAmJiBwYXRoLmNoYXJBdCgwKSAhPT0gXCIvXCIpIHtcbiAgICBwYXRoID0gYC8ke3BhdGh9YDtcbiAgfVxuICBsZXQgcXVlcnlTdHJpbmcgPSBxdWVyeSA/IGJ1aWxkUXVlcnlTdHJpbmcocXVlcnkpIDogXCJcIjtcbiAgaWYgKHF1ZXJ5U3RyaW5nICYmIHF1ZXJ5U3RyaW5nWzBdICE9PSBcIj9cIikge1xuICAgIHF1ZXJ5U3RyaW5nID0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gIH1cbiAgcmV0dXJuIGAke3Byb3RvY29sfS8vJHtob3N0bmFtZX0ke3BhdGh9JHtxdWVyeVN0cmluZ31gO1xufVxuIl19","import { __awaiter, __generator } from \"tslib\";\nexport function createRequest(client, command) {\n return __awaiter(this, void 0, void 0, function () {\n var interceptMiddleware, clientStack, handler;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n interceptMiddleware = function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, { output: { request: args.request }, response: undefined }];\n });\n }); }; };\n clientStack = client.middlewareStack.clone();\n // @ts-ignore: add middleware to the last of 'build' step\n clientStack.add(interceptMiddleware, {\n step: \"build\",\n priority: \"low\",\n });\n handler = command.resolveMiddleware(clientStack, client.config, undefined);\n return [4 /*yield*/, handler(command).then(function (output) { return output.output.request; })];\n case 1: \n // @ts-ignore\n return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE1BQU0sVUFBZ0IsYUFBYSxDQUtqQyxNQUF5RCxFQUN6RCxPQUE2RTs7Ozs7OztvQkFHdkUsbUJBQW1CLEdBQTJDLFVBQUMsSUFBSSxJQUFLLE9BQUEsVUFBTyxJQUFJOzs0QkFDdkYsc0JBQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBQzs7eUJBQzFFLEVBRjZFLENBRTdFLENBQUM7b0JBQ0ksV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBRW5ELHlEQUF5RDtvQkFDekQsV0FBVyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRTt3QkFDbkMsSUFBSSxFQUFFLE9BQU87d0JBQ2IsUUFBUSxFQUFFLEtBQUs7cUJBQ2hCLENBQUMsQ0FBQztvQkFFRyxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUcxRSxxQkFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQXJCLENBQXFCLENBQUMsRUFBQTs7Z0JBRHJFLGFBQWE7Z0JBQ2Isc0JBQU8sU0FBOEQsRUFBQzs7OztDQUN2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWVudCwgQ29tbWFuZCB9IGZyb20gXCJAYXdzLXNkay9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBCdWlsZE1pZGRsZXdhcmUsIEh0dHBSZXF1ZXN0LCBNZXRhZGF0YUJlYXJlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVxdWVzdDxcbiAgSW5wdXRUeXBlc1VuaW9uIGV4dGVuZHMgb2JqZWN0LFxuICBJbnB1dFR5cGUgZXh0ZW5kcyBJbnB1dFR5cGVzVW5pb24sXG4gIE91dHB1dFR5cGUgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyXG4+KFxuICBjbGllbnQ6IENsaWVudDxhbnksIElucHV0VHlwZXNVbmlvbiwgTWV0YWRhdGFCZWFyZXIsIGFueT4sXG4gIGNvbW1hbmQ6IENvbW1hbmQ8SW5wdXRUeXBlLCBPdXRwdXRUeXBlLCBhbnksIElucHV0VHlwZXNVbmlvbiwgTWV0YWRhdGFCZWFyZXI+XG4pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgY29uc3QgaW50ZXJjZXB0TWlkZGxld2FyZTogQnVpbGRNaWRkbGV3YXJlPElucHV0VHlwZSwgT3V0cHV0VHlwZT4gPSAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICByZXR1cm4geyBvdXRwdXQ6IHsgcmVxdWVzdDogYXJncy5yZXF1ZXN0IH0gYXMgYW55LCByZXNwb25zZTogdW5kZWZpbmVkIH07XG4gIH07XG4gIGNvbnN0IGNsaWVudFN0YWNrID0gY2xpZW50Lm1pZGRsZXdhcmVTdGFjay5jbG9uZSgpO1xuXG4gIC8vIEB0cy1pZ25vcmU6IGFkZCBtaWRkbGV3YXJlIHRvIHRoZSBsYXN0IG9mICdidWlsZCcgc3RlcFxuICBjbGllbnRTdGFjay5hZGQoaW50ZXJjZXB0TWlkZGxld2FyZSwge1xuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgfSk7XG5cbiAgY29uc3QgaGFuZGxlciA9IGNvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNsaWVudC5jb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gYXdhaXQgaGFuZGxlcihjb21tYW5kKS50aGVuKChvdXRwdXQpID0+IG91dHB1dC5vdXRwdXQucmVxdWVzdCk7XG59XG4iXX0=","export 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//# sourceMappingURL=StorageErrorStrings.js.map","export var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var SHA256_HEADER = \"X-Amz-Content-Sha256\";\nexport 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 HOST_HEADER = \"host\";\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsc0JBQXNCLENBQUM7QUFFcEQsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUcsaUJBQWlCLENBQUM7QUFDdkQsTUFBTSxDQUFDLElBQU0sc0JBQXNCLEdBQUcsa0JBQWtCLENBQUM7QUFDekQsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUFHLHFCQUFxQixDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQztBQUNuRCxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJYLUFtei1Db250ZW50LVNoYTI1NlwiO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBIT1NUX0hFQURFUiA9IFwiaG9zdFwiO1xuZXhwb3J0IGNvbnN0IEFMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2XCI7XG4iXX0=","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nvar S3RequestPresigner = /** @class */ (function () {\n function S3RequestPresigner(options) {\n var resolvedOptions = __assign({ \n // Allow `signingName` because we want to support usecase of supply client's resolved config\n // directly. Where service equals signingName.\n service: options.signingName || options.service || \"s3\", uriEscapePath: options.uriEscapePath || false }, options);\n this.signer = new SignatureV4(resolvedOptions);\n }\n S3RequestPresigner.prototype.presign = function (requestToSign, _a) {\n if (_a === void 0) { _a = {}; }\n var _b = _a.unsignableHeaders, unsignableHeaders = _b === void 0 ? new Set() : _b, _c = _a.unhoistableHeaders, unhoistableHeaders = _c === void 0 ? new Set() : _c, options = __rest(_a, [\"unsignableHeaders\", \"unhoistableHeaders\"]);\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_d) {\n unsignableHeaders.add(\"content-type\");\n // S3 requires SSE headers to be signed in headers instead of query\n // See: https://github.com/aws/aws-sdk-js-v3/issues/1576\n Object.keys(requestToSign.headers)\n .map(function (header) { return header.toLowerCase(); })\n .filter(function (header) { return header.startsWith(\"x-amz-server-side-encryption\"); })\n .forEach(function (header) {\n unhoistableHeaders.add(header);\n });\n requestToSign.headers[SHA256_HEADER] = UNSIGNED_PAYLOAD;\n if (!requestToSign.headers[\"host\"]) {\n requestToSign.headers.host = requestToSign.hostname;\n }\n return [2 /*return*/, this.signer.presign(requestToSign, __assign({ expiresIn: 900, unsignableHeaders: unsignableHeaders,\n unhoistableHeaders: unhoistableHeaders }, options))];\n });\n });\n };\n return S3RequestPresigner;\n}());\nexport { S3RequestPresigner };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByZXNpZ25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBMEMsTUFBTSx1QkFBdUIsQ0FBQztBQUk1RixPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBYzlEO0lBRUUsNEJBQVksT0FBa0M7UUFDNUMsSUFBTSxlQUFlO1lBQ25CLDRGQUE0RjtZQUM1Riw4Q0FBOEM7WUFDOUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQ3ZELGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLEtBQUssSUFDMUMsT0FBTyxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFWSxvQ0FBTyxHQUFwQixVQUNFLGFBQTJCLEVBQzNCLEVBQThHO1FBQTlHLG1CQUFBLEVBQUEsT0FBOEc7UUFBNUcsSUFBQSx5QkFBNkIsRUFBN0IsaUJBQWlCLG1CQUFHLElBQUksR0FBRyxFQUFFLEtBQUEsRUFBRSwwQkFBOEIsRUFBOUIsa0JBQWtCLG1CQUFHLElBQUksR0FBRyxFQUFFLEtBQUEsRUFBSyxPQUFPLGNBQTNFLDJDQUE2RSxDQUFGOzs7Z0JBRTNFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdEMsbUVBQW1FO2dCQUNuRSx3REFBd0Q7Z0JBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztxQkFDL0IsR0FBRyxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFwQixDQUFvQixDQUFDO3FCQUNyQyxNQUFNLENBQUMsVUFBQyxNQUFNLElBQUssT0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLEVBQWpELENBQWlELENBQUM7cUJBQ3JFLE9BQU8sQ0FBQyxVQUFDLE1BQU07b0JBQ2Qsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsQ0FBQztnQkFDTCxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO2dCQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDbEMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztpQkFDckQ7Z0JBQ0Qsc0JBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxhQUN0QyxTQUFTLEVBQUUsR0FBRyxFQUNkLGlCQUFpQixtQkFBQTt3QkFDakIsa0JBQWtCLG9CQUFBLElBQ2YsT0FBTyxFQUNWLEVBQUM7OztLQUNKO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBckNELElBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmF0dXJlVjQsIFNpZ25hdHVyZVY0Q3J5cHRvSW5pdCwgU2lnbmF0dXJlVjRJbml0IH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NFwiO1xuaW1wb3J0IHsgUmVxdWVzdFByZXNpZ25lciwgUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IEh0dHBSZXF1ZXN0IGFzIElIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogUGFydGlhbEJ5PFQsIEs+IG1ha2VzIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIEsgb3B0aW9uYWwgaW4gaW50ZXJmYWNlIFRcbiAqIHNlZTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDMxNTk4ODcvbWFrZS1hLXNpbmdsZS1wcm9wZXJ0eS1vcHRpb25hbC1pbi10eXBlc2NyaXB0XG4gKiAqL1xudHlwZSBPbWl0PFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IFBpY2s8VCwgRXhjbHVkZTxrZXlvZiBULCBLPj47XG50eXBlIFBhcnRpYWxCeTxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBPbWl0PFQsIEs+ICYgUGFydGlhbDxQaWNrPFQsIEs+PjtcblxuZXhwb3J0IHR5cGUgUzNSZXF1ZXN0UHJlc2lnbmVyT3B0aW9ucyA9IFBhcnRpYWxCeTxcbiAgU2lnbmF0dXJlVjRJbml0ICYgU2lnbmF0dXJlVjRDcnlwdG9Jbml0LFxuICBcInNlcnZpY2VcIiB8IFwidXJpRXNjYXBlUGF0aFwiXG4+ICYgeyBzaWduaW5nTmFtZT86IHN0cmluZyB9O1xuXG5leHBvcnQgY2xhc3MgUzNSZXF1ZXN0UHJlc2lnbmVyIGltcGxlbWVudHMgUmVxdWVzdFByZXNpZ25lciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2lnbmVyOiBTaWduYXR1cmVWNDtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogUzNSZXF1ZXN0UHJlc2lnbmVyT3B0aW9ucykge1xuICAgIGNvbnN0IHJlc29sdmVkT3B0aW9ucyA9IHtcbiAgICAgIC8vIEFsbG93IGBzaWduaW5nTmFtZWAgYmVjYXVzZSB3ZSB3YW50IHRvIHN1cHBvcnQgdXNlY2FzZSBvZiBzdXBwbHkgY2xpZW50J3MgcmVzb2x2ZWQgY29uZmlnXG4gICAgICAvLyBkaXJlY3RseS4gV2hlcmUgc2VydmljZSBlcXVhbHMgc2lnbmluZ05hbWUuXG4gICAgICBzZXJ2aWNlOiBvcHRpb25zLnNpZ25pbmdOYW1lIHx8IG9wdGlvbnMuc2VydmljZSB8fCBcInMzXCIsXG4gICAgICB1cmlFc2NhcGVQYXRoOiBvcHRpb25zLnVyaUVzY2FwZVBhdGggfHwgZmFsc2UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gICAgdGhpcy5zaWduZXIgPSBuZXcgU2lnbmF0dXJlVjQocmVzb2x2ZWRPcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKFxuICAgIHJlcXVlc3RUb1NpZ246IElIdHRwUmVxdWVzdCxcbiAgICB7IHVuc2lnbmFibGVIZWFkZXJzID0gbmV3IFNldCgpLCB1bmhvaXN0YWJsZUhlYWRlcnMgPSBuZXcgU2V0KCksIC4uLm9wdGlvbnMgfTogUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPElIdHRwUmVxdWVzdD4ge1xuICAgIHVuc2lnbmFibGVIZWFkZXJzLmFkZChcImNvbnRlbnQtdHlwZVwiKTtcbiAgICAvLyBTMyByZXF1aXJlcyBTU0UgaGVhZGVycyB0byBiZSBzaWduZWQgaW4gaGVhZGVycyBpbnN0ZWFkIG9mIHF1ZXJ5XG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvaXNzdWVzLzE1NzZcbiAgICBPYmplY3Qua2V5cyhyZXF1ZXN0VG9TaWduLmhlYWRlcnMpXG4gICAgICAubWFwKChoZWFkZXIpID0+IGhlYWRlci50b0xvd2VyQ2FzZSgpKVxuICAgICAgLmZpbHRlcigoaGVhZGVyKSA9PiBoZWFkZXIuc3RhcnRzV2l0aChcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIikpXG4gICAgICAuZm9yRWFjaCgoaGVhZGVyKSA9PiB7XG4gICAgICAgIHVuaG9pc3RhYmxlSGVhZGVycy5hZGQoaGVhZGVyKTtcbiAgICAgIH0pO1xuICAgIHJlcXVlc3RUb1NpZ24uaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IFVOU0lHTkVEX1BBWUxPQUQ7XG4gICAgaWYgKCFyZXF1ZXN0VG9TaWduLmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgICByZXF1ZXN0VG9TaWduLmhlYWRlcnMuaG9zdCA9IHJlcXVlc3RUb1NpZ24uaG9zdG5hbWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNpZ25lci5wcmVzaWduKHJlcXVlc3RUb1NpZ24sIHtcbiAgICAgIGV4cGlyZXNJbjogOTAwLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICB1bmhvaXN0YWJsZUhlYWRlcnMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","/*\n * Copyright 2017-2022 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 */\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};\nimport { HttpResponse } from '@aws-sdk/protocol-http';\nimport { buildQueryString } from '@aws-sdk/querystring-builder';\nimport axios from 'axios';\nimport { ConsoleLogger as Logger, Platform } from '@aws-amplify/core';\nimport { AWSS3ProviderUploadErrorStrings } from '../common/StorageErrorStrings';\nvar logger = new Logger('axios-http-handler');\nexport var SEND_UPLOAD_PROGRESS_EVENT = 'sendUploadProgress';\nexport var SEND_DOWNLOAD_PROGRESS_EVENT = 'sendDownloadProgress';\nfunction isBlob(body) {\n return typeof Blob !== 'undefined' && body instanceof Blob;\n}\nfunction hasErrorResponse(error) {\n return (typeof error !== 'undefined' &&\n Object.prototype.hasOwnProperty.call(error, 'response') &&\n typeof error.response !== 'undefined' &&\n Object.prototype.hasOwnProperty.call(error.response, 'status') &&\n typeof error.response.status === 'number');\n}\nvar normalizeHeaders = function (headers, normalizedName) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.entries(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), k = _d[0], v = _d[1];\n if (k !== normalizedName &&\n k.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = v;\n delete headers[k];\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};\nexport var reactNativeRequestTransformer = [\n function (data, headers) {\n if (isBlob(data)) {\n normalizeHeaders(headers, 'Content-Type');\n normalizeHeaders(headers, 'Accept');\n return data;\n }\n // Axios' default transformRequest is an array\n return axios.defaults.transformRequest[0].call(null, data, headers);\n },\n];\nvar AxiosHttpHandler = /** @class */ (function () {\n function AxiosHttpHandler(httpOptions, emitter, cancelTokenSource) {\n if (httpOptions === void 0) { httpOptions = {}; }\n this.httpOptions = httpOptions;\n this.emitter = emitter;\n this.cancelTokenSource = cancelTokenSource;\n }\n AxiosHttpHandler.prototype.destroy = function () {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the\n // browser.\n };\n AxiosHttpHandler.prototype.handle = function (request, options) {\n var requestTimeoutInMs = this.httpOptions.requestTimeout;\n // prioritize the call specific event emitter, this is useful for multipart upload as each individual parts has\n // their own event emitter, without having to create s3client for every individual calls.\n var emitter = options.emitter || this.emitter;\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;\n var url = request.protocol + \"//\" + request.hostname + (port ? \":\" + port : '') + path;\n var axiosRequest = {};\n axiosRequest.url = url;\n axiosRequest.method = request.method;\n axiosRequest.headers = request.headers;\n // The host header is automatically added by the browser and adding it explicitly in the\n // axios request throws an error https://github.com/aws-amplify/amplify-js/issues/5376\n // This is because the host header is a forbidden header for the http client to set\n // see https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name and\n // https://fetch.spec.whatwg.org/#forbidden-header-name\n // The reason we are removing this header here instead of in the aws-sdk's client\n // middleware is that the host header is required to be in the request signature and if\n // we remove it from the middlewares, then the request fails because the header is added\n // by the browser but is absent from the signature.\n delete axiosRequest.headers['host'];\n if (request.body) {\n axiosRequest.data = request.body;\n }\n else {\n // Fix for https://github.com/aws-amplify/amplify-js/issues/5432\n // If the POST request body is empty but content-type header is set, axios is forcibly removing it\n // See https://github.com/axios/axios/issues/1535 and refusing to fix it https://github.com/axios/axios/issues/755\n // This change is a workaround to set the data as null (instead of undefined) to prevent axios from\n // removing the content-type header. Link for the source code\n // https://github.com/axios/axios/blob/dc4bc49673943e35280e5df831f5c3d0347a9393/lib/adapters/xhr.js#L121-L123\n if (axiosRequest.headers[Object.keys(axiosRequest.headers).find(function (key) { return key.toLowerCase() === 'content-type'; })]) {\n axiosRequest.data = null;\n }\n }\n if (emitter) {\n // TODO: Unify linting rules across JS repo\n axiosRequest.onUploadProgress = function (event) {\n emitter.emit(SEND_UPLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n };\n // TODO: Unify linting rules across JS repo\n axiosRequest.onDownloadProgress = function (event) {\n emitter.emit(SEND_DOWNLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n };\n }\n // If a cancel token source is passed down from the provider, allows cancellation of in-flight requests\n if (this.cancelTokenSource) {\n axiosRequest.cancelToken = this.cancelTokenSource.token;\n }\n if (options.cancelTokenSource) {\n axiosRequest.cancelToken = options.cancelTokenSource.token;\n }\n // From gamma release, aws-sdk now expects all response type to be of blob or streams\n axiosRequest.responseType = 'blob';\n // In Axios, Blobs are identified by calling Object.prototype.toString on the object. However, on React Native,\n // calling Object.prototype.toString on a Blob returns '[object Object]' instead of '[object Blob]', which causes\n // Axios to treat Blobs as generic Javascript objects. Therefore we need a to use a custom request transformer\n // to correctly handle Blob in React Native.\n if (Platform.isReactNative) {\n axiosRequest.transformRequest = reactNativeRequestTransformer;\n }\n var raceOfPromises = [\n axios\n .request(axiosRequest)\n .then(function (response) {\n return {\n response: new HttpResponse({\n headers: response.headers,\n statusCode: response.status,\n body: response.data,\n }),\n };\n })\n .catch(function (error) {\n var _a, _b;\n // Error\n if (error.message !==\n AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE) {\n logger.error(error.message);\n }\n // for axios' cancel error, we should re-throw it back so it's not considered an s3client error\n // if we return empty, or an abitrary error HttpResponse, it will be hard to debug down the line.\n //\n // for errors that does not have a 'response' object, it's very likely that it is an unexpected error for\n // example a disconnect. Without it we cannot meaningfully reconstruct a HttpResponse, and the AWS SDK might\n // consider the request successful by mistake. In this case we should also re-throw the error.\n if (axios.isCancel(error) || !hasErrorResponse(error)) {\n throw error;\n }\n // otherwise, we should re-construct an HttpResponse from the error, so that it can be passed down to other\n // aws sdk middleware (e.g retry, clock skew correction, error message serializing)\n return {\n response: new HttpResponse({\n statusCode: error.response.status,\n body: (_a = error.response) === null || _a === void 0 ? void 0 : _a.data,\n headers: (_b = error.response) === null || _b === void 0 ? void 0 : _b.headers,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n return Promise.race(raceOfPromises);\n };\n return AxiosHttpHandler;\n}());\nexport { AxiosHttpHandler };\nfunction 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=axios-http-handler.js.map","export var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nexport var SET_CONTENT_LENGTH_HEADER = 'contentLengthMiddleware';\nexport var localTestingStorageEndpoint = 'http://localhost:20005';\nexport var UPLOADS_STORAGE_KEY = '__uploadInProgress';\n//# sourceMappingURL=StorageConstants.js.map","import { 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//# sourceMappingURL=StorageUtils.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\";\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","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 { __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\";\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=","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, __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=","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","export function blobReader(blob, onChunk, chunkSize) {\n if (chunkSize === void 0) { chunkSize = 1024 * 1024; }\n return new Promise(function (resolve, reject) {\n var fileReader = new FileReader();\n fileReader.addEventListener(\"error\", reject);\n fileReader.addEventListener(\"abort\", reject);\n var size = blob.size;\n var totalBytesRead = 0;\n function read() {\n if (totalBytesRead >= size) {\n resolve();\n return;\n }\n fileReader.readAsArrayBuffer(blob.slice(totalBytesRead, Math.min(size, totalBytesRead + chunkSize)));\n }\n fileReader.addEventListener(\"load\", function (event) {\n var result = event.target.result;\n onChunk(new Uint8Array(result));\n totalBytesRead += result.byteLength;\n // read the next block\n read();\n });\n // kick off the read\n read();\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsSUFBVSxFQUNWLE9BQW9DLEVBQ3BDLFNBQStCO0lBQS9CLDBCQUFBLEVBQUEsWUFBb0IsSUFBSSxHQUFHLElBQUk7SUFFL0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ2pDLElBQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFcEMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLFNBQVMsSUFBSTtZQUNYLElBQUksY0FBYyxJQUFJLElBQUksRUFBRTtnQkFDMUIsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FBTzthQUNSO1lBQ0QsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUVELFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBQyxLQUFLO1lBQ3hDLElBQU0sTUFBTSxHQUFpQixLQUFLLENBQUMsTUFBYyxDQUFDLE1BQU0sQ0FBQztZQUN6RCxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNoQyxjQUFjLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNwQyxzQkFBc0I7WUFDdEIsSUFBSSxFQUFFLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztRQUVILG9CQUFvQjtRQUNwQixJQUFJLEVBQUUsQ0FBQztJQUNULENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBibG9iUmVhZGVyKFxuICBibG9iOiBCbG9iLFxuICBvbkNodW5rOiAoY2h1bms6IFVpbnQ4QXJyYXkpID0+IHZvaWQsXG4gIGNodW5rU2l6ZTogbnVtYmVyID0gMTAyNCAqIDEwMjRcbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgZmlsZVJlYWRlci5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICBmaWxlUmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCByZWplY3QpO1xuXG4gICAgY29uc3Qgc2l6ZSA9IGJsb2Iuc2l6ZTtcbiAgICBsZXQgdG90YWxCeXRlc1JlYWQgPSAwO1xuXG4gICAgZnVuY3Rpb24gcmVhZCgpIHtcbiAgICAgIGlmICh0b3RhbEJ5dGVzUmVhZCA+PSBzaXplKSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZmlsZVJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iLnNsaWNlKHRvdGFsQnl0ZXNSZWFkLCBNYXRoLm1pbihzaXplLCB0b3RhbEJ5dGVzUmVhZCArIGNodW5rU2l6ZSkpKTtcbiAgICB9XG5cbiAgICBmaWxlUmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIChldmVudCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gPEFycmF5QnVmZmVyPihldmVudC50YXJnZXQgYXMgYW55KS5yZXN1bHQ7XG4gICAgICBvbkNodW5rKG5ldyBVaW50OEFycmF5KHJlc3VsdCkpO1xuICAgICAgdG90YWxCeXRlc1JlYWQgKz0gcmVzdWx0LmJ5dGVMZW5ndGg7XG4gICAgICAvLyByZWFkIHRoZSBuZXh0IGJsb2NrXG4gICAgICByZWFkKCk7XG4gICAgfSk7XG5cbiAgICAvLyBraWNrIG9mZiB0aGUgcmVhZFxuICAgIHJlYWQoKTtcbiAgfSk7XG59XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { blobReader } from \"@aws-sdk/chunked-blob-reader\";\nexport var blobHasher = function blobHasher(hashCtor, blob) {\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 hash = new hashCtor();\n return [4 /*yield*/, blobReader(blob, function (chunk) {\n hash.update(chunk);\n })];\n case 1:\n _a.sent();\n return [2 /*return*/, hash.digest()];\n }\n });\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUcxRCxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQXVCLFNBQWUsVUFBVSxDQUNyRSxRQUF5QixFQUN6QixJQUFVOzs7Ozs7b0JBRUosSUFBSSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7b0JBRTVCLHFCQUFNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBQyxLQUFLOzRCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNyQixDQUFDLENBQUMsRUFBQTs7b0JBRkYsU0FFRSxDQUFDO29CQUVILHNCQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQzs7OztDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmxvYlJlYWRlciB9IGZyb20gXCJAYXdzLXNkay9jaHVua2VkLWJsb2ItcmVhZGVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIFN0cmVhbUhhc2hlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgYmxvYkhhc2hlcjogU3RyZWFtSGFzaGVyPEJsb2I+ID0gYXN5bmMgZnVuY3Rpb24gYmxvYkhhc2hlcihcbiAgaGFzaEN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgYmxvYjogQmxvYlxuKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gIGNvbnN0IGhhc2ggPSBuZXcgaGFzaEN0b3IoKTtcblxuICBhd2FpdCBibG9iUmVhZGVyKGJsb2IsIChjaHVuaykgPT4ge1xuICAgIGhhc2gudXBkYXRlKGNodW5rKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGhhc2guZGlnZXN0KCk7XG59O1xuIl19","/**\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","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"s3.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"s3.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"s3.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"s3.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"s3.{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: \"s3.af-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-east-1\":\n regionInfo = {\n hostname: \"s3.ap-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"s3.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"s3.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"s3.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"s3.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"s3.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"aws-global\":\n regionInfo = {\n hostname: \"s3.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"s3.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"s3.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"cn-northwest-1\":\n regionInfo = {\n hostname: \"s3.cn-northwest-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"s3.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"s3.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-south-1\":\n regionInfo = {\n hostname: \"s3.eu-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"s3.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"s3.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"s3.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"s3-fips.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"me-south-1\":\n regionInfo = {\n hostname: \"s3.me-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"s3-external-1\":\n regionInfo = {\n hostname: \"s3-external-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"s3.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"s3.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"s3.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-east-1\":\n regionInfo = {\n hostname: \"s3.us-gov-east-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"s3.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-iso-east-1\":\n regionInfo = {\n hostname: \"s3.us-iso-east-1.c2s.ic.gov\",\n partition: \"aws-iso\",\n };\n break;\n case \"us-isob-east-1\":\n regionInfo = {\n hostname: \"s3.us-isob-east-1.sc2s.sgov.gov\",\n partition: \"aws-iso-b\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"s3.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"s3.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: \"s3\" }, 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: \"2006-03-01\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"S3\",\n signingEscapePath: false,\n urlParser: parseUrl,\n useArnRegion: false,\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 { blobHasher as streamHasher } from \"@aws-sdk/hash-blob-browser\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { Md5 } from \"@aws-sdk/md5-js\";\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, md5: Md5, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector,\n streamHasher: streamHasher, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.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==","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function addExpectContinueMiddleware(options) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var request;\n return __generator(this, function (_a) {\n request = args.request;\n if (HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n request.headers = __assign(__assign({}, request.headers), { Expect: \"100-continue\" });\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n });\n }); }; };\n}\nexport var addExpectContinueMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n name: \"addExpectContinueMiddleware\",\n override: true,\n};\nexport var getAddExpectContinuePlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWVyRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsT0FBMkI7SUFBdkUsaUJBZ0JDO0lBZkMsT0FBTyxVQUFnQyxJQUErQixJQUFnQyxPQUFBLFVBQ3BHLElBQWdDOzs7WUFFeEIsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO1lBQ3pCLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO2dCQUNqRixPQUFPLENBQUMsT0FBTyx5QkFDVixPQUFPLENBQUMsT0FBTyxLQUNsQixNQUFNLEVBQUUsY0FBYyxHQUN2QixDQUFDO2FBQ0g7WUFDRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOztTQUNKLEVBZHFHLENBY3JHLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sa0NBQWtDLEdBQXdCO0lBQ3JFLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDO0lBQzVDLElBQUksRUFBRSw2QkFBNkI7SUFDbkMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcsVUFBQyxPQUEyQixJQUEwQixPQUFBLENBQUM7SUFDL0YsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztDQUNGLENBQUMsRUFKOEYsQ0FJOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPcHRpb25zLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBydW50aW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9uczogUHJldmlvdXNseVJlc29sdmVkKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55PlxuICApOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmIChIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpICYmIHJlcXVlc3QuYm9keSAmJiBvcHRpb25zLnJ1bnRpbWUgPT09IFwibm9kZVwiKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgIC4uLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgRXhwZWN0OiBcIjEwMC1jb250aW51ZVwiLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgLi4uYXJncyxcbiAgICAgIHJlcXVlc3QsXG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIlNFVF9FWFBFQ1RfSEVBREVSXCIsIFwiRVhQRUNUX0hFQURFUlwiXSxcbiAgbmFtZTogXCJhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWRkRXhwZWN0Q29udGludWVQbHVnaW4gPSAob3B0aW9uczogUHJldmlvdXNseVJlc29sdmVkKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9ucyksIGFkZEV4cGVjdENvbnRpbnVlTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=","import { __assign } from \"tslib\";\nimport { Encryption, } from \"./models_0\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var MetadataEntry;\n(function (MetadataEntry) {\n MetadataEntry.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MetadataEntry || (MetadataEntry = {}));\nexport var S3Location;\n(function (S3Location) {\n S3Location.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Encryption && { Encryption: Encryption.filterSensitiveLog(obj.Encryption) }))); };\n})(S3Location || (S3Location = {}));\nexport var OutputLocation;\n(function (OutputLocation) {\n OutputLocation.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.S3 && { S3: S3Location.filterSensitiveLog(obj.S3) }))); };\n})(OutputLocation || (OutputLocation = {}));\nexport var FileHeaderInfo;\n(function (FileHeaderInfo) {\n FileHeaderInfo[\"IGNORE\"] = \"IGNORE\";\n FileHeaderInfo[\"NONE\"] = \"NONE\";\n FileHeaderInfo[\"USE\"] = \"USE\";\n})(FileHeaderInfo || (FileHeaderInfo = {}));\nexport var CSVInput;\n(function (CSVInput) {\n CSVInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CSVInput || (CSVInput = {}));\nexport var JSONType;\n(function (JSONType) {\n JSONType[\"DOCUMENT\"] = \"DOCUMENT\";\n JSONType[\"LINES\"] = \"LINES\";\n})(JSONType || (JSONType = {}));\nexport var JSONInput;\n(function (JSONInput) {\n JSONInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(JSONInput || (JSONInput = {}));\nexport var ParquetInput;\n(function (ParquetInput) {\n ParquetInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ParquetInput || (ParquetInput = {}));\nexport var InputSerialization;\n(function (InputSerialization) {\n InputSerialization.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InputSerialization || (InputSerialization = {}));\nexport var QuoteFields;\n(function (QuoteFields) {\n QuoteFields[\"ALWAYS\"] = \"ALWAYS\";\n QuoteFields[\"ASNEEDED\"] = \"ASNEEDED\";\n})(QuoteFields || (QuoteFields = {}));\nexport var CSVOutput;\n(function (CSVOutput) {\n CSVOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CSVOutput || (CSVOutput = {}));\nexport var JSONOutput;\n(function (JSONOutput) {\n JSONOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(JSONOutput || (JSONOutput = {}));\nexport var OutputSerialization;\n(function (OutputSerialization) {\n OutputSerialization.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OutputSerialization || (OutputSerialization = {}));\nexport var SelectParameters;\n(function (SelectParameters) {\n SelectParameters.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SelectParameters || (SelectParameters = {}));\nexport var RestoreRequestType;\n(function (RestoreRequestType) {\n RestoreRequestType[\"SELECT\"] = \"SELECT\";\n})(RestoreRequestType || (RestoreRequestType = {}));\nexport var RestoreRequest;\n(function (RestoreRequest) {\n RestoreRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.OutputLocation && { OutputLocation: OutputLocation.filterSensitiveLog(obj.OutputLocation) }))); };\n})(RestoreRequest || (RestoreRequest = {}));\nexport var RestoreObjectRequest;\n(function (RestoreObjectRequest) {\n RestoreObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.RestoreRequest && { RestoreRequest: RestoreRequest.filterSensitiveLog(obj.RestoreRequest) }))); };\n})(RestoreObjectRequest || (RestoreObjectRequest = {}));\nexport var ContinuationEvent;\n(function (ContinuationEvent) {\n ContinuationEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ContinuationEvent || (ContinuationEvent = {}));\nexport var EndEvent;\n(function (EndEvent) {\n EndEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EndEvent || (EndEvent = {}));\nexport var Progress;\n(function (Progress) {\n Progress.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Progress || (Progress = {}));\nexport var ProgressEvent;\n(function (ProgressEvent) {\n ProgressEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ProgressEvent || (ProgressEvent = {}));\nexport var RecordsEvent;\n(function (RecordsEvent) {\n RecordsEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RecordsEvent || (RecordsEvent = {}));\nexport var Stats;\n(function (Stats) {\n Stats.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Stats || (Stats = {}));\nexport var StatsEvent;\n(function (StatsEvent) {\n StatsEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StatsEvent || (StatsEvent = {}));\nexport var SelectObjectContentEventStream;\n(function (SelectObjectContentEventStream) {\n SelectObjectContentEventStream.visit = function (value, visitor) {\n if (value.Records !== undefined)\n return visitor.Records(value.Records);\n if (value.Stats !== undefined)\n return visitor.Stats(value.Stats);\n if (value.Progress !== undefined)\n return visitor.Progress(value.Progress);\n if (value.Cont !== undefined)\n return visitor.Cont(value.Cont);\n if (value.End !== undefined)\n return visitor.End(value.End);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n SelectObjectContentEventStream.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Records !== undefined)\n return { Records: RecordsEvent.filterSensitiveLog(obj.Records) };\n if (obj.Stats !== undefined)\n return { Stats: StatsEvent.filterSensitiveLog(obj.Stats) };\n if (obj.Progress !== undefined)\n return { Progress: ProgressEvent.filterSensitiveLog(obj.Progress) };\n if (obj.Cont !== undefined)\n return { Cont: ContinuationEvent.filterSensitiveLog(obj.Cont) };\n if (obj.End !== undefined)\n return { End: EndEvent.filterSensitiveLog(obj.End) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(SelectObjectContentEventStream || (SelectObjectContentEventStream = {}));\nexport var SelectObjectContentOutput;\n(function (SelectObjectContentOutput) {\n SelectObjectContentOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Payload && { Payload: \"STREAMING_CONTENT\" }))); };\n})(SelectObjectContentOutput || (SelectObjectContentOutput = {}));\nexport var RequestProgress;\n(function (RequestProgress) {\n RequestProgress.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RequestProgress || (RequestProgress = {}));\nexport var ScanRange;\n(function (ScanRange) {\n ScanRange.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ScanRange || (ScanRange = {}));\nexport var SelectObjectContentRequest;\n(function (SelectObjectContentRequest) {\n SelectObjectContentRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(SelectObjectContentRequest || (SelectObjectContentRequest = {}));\nexport var UploadPartOutput;\n(function (UploadPartOutput) {\n UploadPartOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(UploadPartOutput || (UploadPartOutput = {}));\nexport var UploadPartRequest;\n(function (UploadPartRequest) {\n UploadPartRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(UploadPartRequest || (UploadPartRequest = {}));\nexport var CopyPartResult;\n(function (CopyPartResult) {\n CopyPartResult.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CopyPartResult || (CopyPartResult = {}));\nexport var UploadPartCopyOutput;\n(function (UploadPartCopyOutput) {\n UploadPartCopyOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(UploadPartCopyOutput || (UploadPartCopyOutput = {}));\nexport var UploadPartCopyRequest;\n(function (UploadPartCopyRequest) {\n UploadPartCopyRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }))); };\n})(UploadPartCopyRequest || (UploadPartCopyRequest = {}));\n//# sourceMappingURL=models_1.js.map","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 { resolveBucketEndpointConfig, } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getAddExpectContinuePlugin } from \"@aws-sdk/middleware-expect-continue\";\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 { getUseRegionalEndpointPlugin, getValidateBucketNamePlugin } from \"@aws-sdk/middleware-sdk-s3\";\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 *

\n */\nvar S3Client = /** @class */ (function (_super) {\n __extends(S3Client, _super);\n function S3Client(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 = resolveBucketEndpointConfig(_config_5);\n var _config_7 = resolveUserAgentConfig(_config_6);\n var _config_8 = resolveEventStreamSerdeConfig(_config_7);\n _this = _super.call(this, _config_8) || this;\n _this.config = _config_8;\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(getValidateBucketNamePlugin(_this.config));\n _this.middlewareStack.use(getUseRegionalEndpointPlugin(_this.config));\n _this.middlewareStack.use(getAddExpectContinuePlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n S3Client.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return S3Client;\n}(__Client));\nexport { S3Client };\n//# sourceMappingURL=S3Client.js.map","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 (_) 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 { Credentials, Logger, getAmplifyUserAgent, } from '@aws-amplify/core';\nimport { S3Client } from '@aws-sdk/client-s3';\nimport { AxiosHttpHandler } from '../providers/axios-http-handler';\nimport { localTestingStorageEndpoint, SET_CONTENT_LENGTH_HEADER, } 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 createPrefixMiddleware = function (opt, key) { return function (next, _context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var credentials, cred, prefix, clonedInput, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n cred = Credentials.shear(credentials);\n prefix = getPrefix(__assign(__assign({}, opt), { credentials: cred }));\n clonedInput = Object.assign({}, args.input);\n if (Object.prototype.hasOwnProperty.call(args.input, 'Key')) {\n clonedInput.Key = prefix + key;\n args.input = clonedInput;\n }\n else if (Object.prototype.hasOwnProperty.call(args.input, 'Prefix')) {\n clonedInput.Prefix = prefix + key;\n args.input = clonedInput;\n }\n result = next(args);\n return [2 /*return*/, result];\n }\n });\n}); }; }; };\nvar isTimeSkewedError = function (err) {\n return err.ServerTime &&\n typeof err.Code === 'string' &&\n err.Code === 'RequestTimeTooSkewed';\n};\n// we want to take the S3Client config in parameter so we can modify it's systemClockOffset\nexport var autoAdjustClockskewMiddleware = function (config) { return function (next, _context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var err_1, serverDate;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, next(args)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n err_1 = _a.sent();\n if (isTimeSkewedError(err_1)) {\n serverDate = new Date(err_1.ServerTime);\n config.systemClockOffset = serverDate.getTime() - Date.now();\n }\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n}); }; }; };\nexport var autoAdjustClockskewMiddlewareOptions = {\n step: 'finalizeRequest',\n name: 'autoAdjustClockskewMiddleware',\n};\nexport var prefixMiddlewareOptions = {\n step: 'initialize',\n name: 'addPrefixMiddleware',\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}); };\nexport var createS3Client = function (config, emitter) {\n var region = config.region, cancelTokenSource = config.cancelTokenSource, dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting, useAccelerateEndpoint = config.useAccelerateEndpoint;\n var localTestingConfig = {};\n if (dangerouslyConnectToHttpEndpointForTesting) {\n localTestingConfig = {\n endpoint: localTestingStorageEndpoint,\n tls: false,\n bucketEndpoint: false,\n forcePathStyle: true,\n };\n }\n var s3client = new S3Client(__assign(__assign({ region: region, \n // Using provider instead of a static credentials, so that if an upload task was in progress, but credentials gets\n // changed or invalidated (e.g user signed out), the subsequent requests will fail.\n credentials: credentialsProvider, customUserAgent: getAmplifyUserAgent() }, localTestingConfig), { requestHandler: new AxiosHttpHandler({}, emitter, cancelTokenSource), useAccelerateEndpoint: useAccelerateEndpoint }));\n s3client.middlewareStack.remove(SET_CONTENT_LENGTH_HEADER);\n return s3client;\n};\n//# sourceMappingURL=S3ClientUtils.js.map","import { __extends } from \"tslib\";\nimport { PutObjectOutput, PutObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlPutObjectCommand, serializeAws_restXmlPutObjectCommand } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object\n * to it.

\n *\n *\n *

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the\n * entire object to the bucket.

\n *\n *

Amazon S3 is a distributed system. If it receives multiple write requests for the same object\n * simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object\n * locking; if you need this, make sure to build it into your application layer or use\n * versioning instead.

\n *\n *

To ensure that data is not corrupted traversing the network, use the\n * Content-MD5 header. When you use this header, Amazon S3 checks the object\n * against the provided MD5 value and, if they do not match, returns an error. Additionally,\n * you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to\n * the calculated MD5 value.

\n * \n *

The Content-MD5 header is required for any request to upload an object\n * with a retention period configured using Amazon S3 Object Lock. For more information about\n * Amazon S3 Object Lock, see Amazon S3 Object Lock Overview\n * in the Amazon Simple Storage Service Developer Guide.

\n *
\n *\n *\n *

\n * Server-side Encryption\n *

\n *

You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data\n * when you access it. You have the option to provide your own encryption key or use AWS\n * managed encryption keys (SSE-S3 or SSE-KMS). For more information, see Using Server-Side\n * Encryption.

\n *

If you request server-side encryption using AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the object-level. For more information, see Amazon S3 Bucket Keys in the Amazon Simple Storage Service Developer Guide.

\n *

\n * Access Control List (ACL)-Specific Request\n * Headers\n *

\n *

You can use headers to grant ACL- based permissions. By default, all objects are\n * private. Only the owner has full access control. When adding a new object, you can grant\n * permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These\n * permissions are then added to the ACL on the object. For more information, see Access Control List\n * (ACL) Overview and Managing ACLs Using the REST\n * API.

\n *\n *

\n * Storage Class Options\n *

\n *

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The\n * STANDARD storage class provides high durability and high availability. Depending on\n * performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses\n * the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3\n * Service Developer Guide.

\n *\n *\n *

\n * Versioning\n *

\n *

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID\n * for the object being stored. Amazon S3 returns this ID in the response. When you enable\n * versioning for a bucket, if Amazon S3 receives multiple write requests for the same object\n * simultaneously, it stores all of the objects.

\n *

For more information about versioning, see Adding Objects to\n * Versioning Enabled Buckets. For information about returning the versioning state\n * of a bucket, see GetBucketVersioning.

\n *\n *\n *

\n * Related Resources\n *

\n * \n */\nvar PutObjectCommand = /** @class */ (function (_super) {\n __extends(PutObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function PutObjectCommand(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 PutObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"PutObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PutObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: PutObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n PutObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlPutObjectCommand(input, context);\n };\n PutObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlPutObjectCommand(output, context);\n };\n return PutObjectCommand;\n}($Command));\nexport { PutObjectCommand };\n//# sourceMappingURL=PutObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { CreateMultipartUploadOutput, CreateMultipartUploadRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlCreateMultipartUploadCommand, serializeAws_restXmlCreateMultipartUploadCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

This operation initiates a multipart upload and returns an upload ID. This upload ID is\n * used to associate all of the parts in the specific multipart upload. You specify this\n * upload ID in each of your subsequent upload part requests (see UploadPart). You also include this\n * upload ID in the final request to either complete or abort the multipart upload\n * request.

\n *\n *

For more information about multipart uploads, see Multipart Upload Overview.

\n *\n *

If you have configured a lifecycle rule to abort incomplete multipart uploads, the\n * upload must complete within the number of days specified in the bucket lifecycle\n * configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort\n * operation and Amazon S3 aborts the multipart upload. For more information, see Aborting\n * Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

\n *\n *

For information about the permissions required to use the multipart upload API, see\n * Multipart Upload API and\n * Permissions.

\n *\n *

For request signing, multipart upload is just a series of regular requests. You initiate\n * a multipart upload, send one or more requests to upload parts, and then complete the\n * multipart upload process. You sign each request individually. There is nothing special\n * about signing multipart upload requests. For more information about signing, see Authenticating\n * Requests (AWS Signature Version 4).

\n *\n * \n *

After you initiate a multipart upload and upload one or more parts, to stop being\n * charged for storing the uploaded parts, you must either complete or abort the multipart\n * upload. Amazon S3 frees up the space used to store the parts and stop charging you for\n * storing them only after you either complete or abort a multipart upload.

\n *
\n *\n *

You can optionally request server-side encryption. For server-side encryption, Amazon S3\n * encrypts your data as it writes it to disks in its data centers and decrypts it when you\n * access it. You can provide your own encryption key, or use AWS Key Management Service (AWS\n * KMS) customer master keys (CMKs) or Amazon S3-managed encryption keys. If you choose to provide\n * your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to\n * initiate the upload by using CreateMultipartUpload.

\n *

To perform a multipart upload with encryption using an AWS KMS CMK, the requester must\n * have permission to the kms:Encrypt, kms:Decrypt,\n * kms:ReEncrypt*, kms:GenerateDataKey*, and\n * kms:DescribeKey actions on the key. These permissions are required because\n * Amazon S3 must decrypt and read data from the encrypted file parts before it completes the\n * multipart upload.

\n *\n *

If your AWS Identity and Access Management (IAM) user or role is in the same AWS account\n * as the AWS KMS CMK, then you must have these permissions on the key policy. If your IAM\n * user or role belongs to a different account than the key, then you must have the\n * permissions on both the key policy and your IAM user or role.

\n *\n *\n *

For more information, see Protecting\n * Data Using Server-Side Encryption.

\n *\n *
\n *
Access Permissions
\n *
\n *

When copying an object, you can optionally specify the accounts or groups that\n * should be granted specific permissions on the new object. There are two ways to\n * grant the permissions using the request headers:

\n *
    \n *
  • \n *

    Specify a canned ACL with the x-amz-acl request header. For\n * more information, see Canned ACL.

    \n *
  • \n *
  • \n *

    Specify access permissions explicitly with the\n * x-amz-grant-read, x-amz-grant-read-acp,\n * x-amz-grant-write-acp, and\n * x-amz-grant-full-control headers. These parameters map to\n * the set of permissions that Amazon S3 supports in an ACL. For more information,\n * see Access Control List (ACL)\n * Overview.

    \n *
  • \n *
\n *

You can use either a canned ACL or specify access permissions explicitly. You\n * cannot do both.

\n *
\n *
Server-Side- Encryption-Specific Request Headers
\n *
\n *

You can optionally tell Amazon S3 to encrypt data at rest using server-side\n * encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts\n * your data as it writes it to disks in its data centers and decrypts it when you\n * access it. The option you use depends on whether you want to use AWS managed\n * encryption keys or provide your own encryption key.

\n *
    \n *
  • \n *

    Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored\n * in AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys\n * used to encrypt data, specify the following headers in the request.

    \n *
      \n *
    • \n *

      x-amz-server-side-encryption

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-aws-kms-key-id

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-context

      \n *
    • \n *
    \n * \n *

    If you specify x-amz-server-side-encryption:aws:kms, but\n * don't provide x-amz-server-side-encryption-aws-kms-key-id,\n * Amazon S3 uses the AWS managed CMK in AWS KMS to protect the data.

    \n *
    \n * \n *

    All GET and PUT requests for an object protected by AWS KMS fail if\n * you don't make them with SSL or by using SigV4.

    \n *
    \n *

    For more information about server-side encryption with CMKs stored in AWS\n * KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS\n * KMS.

    \n *
  • \n *
  • \n *

    Use customer-provided encryption keys – If you want to manage your own\n * encryption keys, provide all the following headers in the request.

    \n *
      \n *
    • \n *

      x-amz-server-side-encryption-customer-algorithm

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-customer-key

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-customer-key-MD5

      \n *
    • \n *
    \n *

    For more information about server-side encryption with CMKs stored in AWS\n * KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS\n * KMS.

    \n *
  • \n *
\n *
\n *
Access-Control-List (ACL)-Specific Request Headers
\n *
\n *

You also can use the following access control–related headers with this\n * operation. By default, all objects are private. Only the owner has full access\n * control. When adding a new object, you can grant permissions to individual AWS\n * accounts or to predefined groups defined by Amazon S3. These permissions are then added\n * to the access control list (ACL) on the object. For more information, see Using ACLs. With this\n * operation, you can grant access permissions using one of the following two\n * methods:

\n *
    \n *
  • \n *

    Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of\n * predefined ACLs, known as canned ACLs. Each canned ACL\n * has a predefined set of grantees and permissions. For more information, see\n * Canned\n * ACL.

    \n *
  • \n *
  • \n *

    Specify access permissions explicitly — To explicitly grant access\n * permissions to specific AWS accounts or groups, use the following headers.\n * Each header maps to specific permissions that Amazon S3 supports in an ACL. For\n * more information, see Access\n * Control List (ACL) Overview. In the header, you specify a list of\n * grantees who get the specific permission. To grant permissions explicitly,\n * use:

    \n *
      \n *
    • \n *

      x-amz-grant-read

      \n *
    • \n *
    • \n *

      x-amz-grant-write

      \n *
    • \n *
    • \n *

      x-amz-grant-read-acp

      \n *
    • \n *
    • \n *

      x-amz-grant-write-acp

      \n *
    • \n *
    • \n *

      x-amz-grant-full-control

      \n *
    • \n *
    \n *

    You specify each grantee as a type=value pair, where the type is one of\n * the following:

    \n *
      \n *
    • \n *

      \n * id – if the value specified is the canonical user ID\n * of an AWS account

      \n *
    • \n *
    • \n *

      \n * uri – if you are granting permissions to a predefined\n * group

      \n *
    • \n *
    • \n *

      \n * emailAddress – if the value specified is the email\n * address of an AWS account

      \n * \n *

      Using email addresses to specify a grantee is only supported in the following AWS Regions:

      \n *
        \n *
      • \n *

        US East (N. Virginia)

        \n *
      • \n *
      • \n *

        US West (N. California)

        \n *
      • \n *
      • \n *

        US West (Oregon)

        \n *
      • \n *
      • \n *

        Asia Pacific (Singapore)

        \n *
      • \n *
      • \n *

        Asia Pacific (Sydney)

        \n *
      • \n *
      • \n *

        Asia Pacific (Tokyo)

        \n *
      • \n *
      • \n *

        Europe (Ireland)

        \n *
      • \n *
      • \n *

        South America (São Paulo)

        \n *
      • \n *
      \n *

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the AWS General Reference.

      \n *
      \n *
    • \n *
    \n *

    For example, the following x-amz-grant-read header grants the AWS accounts identified by account IDs permissions to read object data and its metadata:

    \n *

    \n * x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n *

    \n *
  • \n *
\n *\n *
\n *
\n *\n *

The following operations are related to CreateMultipartUpload:

\n * \n */\nvar CreateMultipartUploadCommand = /** @class */ (function (_super) {\n __extends(CreateMultipartUploadCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CreateMultipartUploadCommand(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 CreateMultipartUploadCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"CreateMultipartUploadCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CreateMultipartUploadRequest.filterSensitiveLog,\n outputFilterSensitiveLog: CreateMultipartUploadOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CreateMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCreateMultipartUploadCommand(input, context);\n };\n CreateMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCreateMultipartUploadCommand(output, context);\n };\n return CreateMultipartUploadCommand;\n}($Command));\nexport { CreateMultipartUploadCommand };\n//# sourceMappingURL=CreateMultipartUploadCommand.js.map","import { __extends } from \"tslib\";\nimport { UploadPartOutput, UploadPartRequest } from \"../models/models_1\";\nimport { deserializeAws_restXmlUploadPartCommand, serializeAws_restXmlUploadPartCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Uploads a part in a multipart upload.

\n * \n *

In this operation, you provide part data in your request. However, you have an option\n * to specify your existing Amazon S3 object as a data source for the part you are uploading. To\n * upload a part from an existing object, you use the UploadPartCopy operation.\n *

\n *
\n *\n *

You must initiate a multipart upload (see CreateMultipartUpload)\n * before you can upload any part. In response to your initiate request, Amazon S3 returns an\n * upload ID, a unique identifier, that you must include in your upload part request.

\n *

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely\n * identifies a part and also defines its position within the object being created. If you\n * upload a new part using the same part number that was used with a previous part, the\n * previously uploaded part is overwritten. Each part must be at least 5 MB in size, except\n * the last part. There is no size limit on the last part of your multipart upload.

\n *

To ensure that data is not corrupted when traversing the network, specify the\n * Content-MD5 header in the upload part request. Amazon S3 checks the part data\n * against the provided MD5 value. If they do not match, Amazon S3 returns an error.

\n *\n *

If the upload request is signed with Signature Version 4, then AWS S3 uses the\n * x-amz-content-sha256 header as a checksum instead of\n * Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (AWS Signature Version\n * 4).

\n *\n *\n *\n *

\n * Note: After you initiate multipart upload and upload\n * one or more parts, you must either complete or abort multipart upload in order to stop\n * getting charged for storage of the uploaded parts. Only after you either complete or abort\n * multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts\n * storage.

\n *\n *

For more information on multipart uploads, go to Multipart Upload Overview in the\n * Amazon Simple Storage Service Developer Guide .

\n *

For information on the permissions required to use the multipart upload API, go to\n * Multipart Upload API and\n * Permissions in the Amazon Simple Storage Service Developer Guide.

\n *\n *

You can optionally request server-side encryption where Amazon S3 encrypts your data as it\n * writes it to disks in its data centers and decrypts it for you when you access it. You have\n * the option of providing your own encryption key, or you can use the AWS managed encryption\n * keys. If you choose to provide your own encryption key, the request headers you provide in\n * the request must match the headers you used in the request to initiate the upload by using\n * CreateMultipartUpload. For more information, go to Using Server-Side Encryption in\n * the Amazon Simple Storage Service Developer Guide.

\n *\n *

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are\n * using a customer-provided encryption key, you don't need to specify the encryption\n * parameters in each UploadPart request. Instead, you only need to specify the server-side\n * encryption parameters in the initial Initiate Multipart request. For more information, see\n * CreateMultipartUpload.

\n *\n *

If you requested server-side encryption using a customer-provided encryption key in your\n * initiate multipart upload request, you must provide identical encryption information in\n * each part upload using the following headers.

\n *\n *\n *
    \n *
  • \n *

    x-amz-server-side-encryption-customer-algorithm

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key-MD5

    \n *
  • \n *
\n *\n *

\n * Special Errors\n *

\n *
    \n *
  • \n *
      \n *
    • \n *

      \n * Code: NoSuchUpload\n *

      \n *
    • \n *
    • \n *

      \n * Cause: The specified multipart upload does not exist. The upload\n * ID might be invalid, or the multipart upload might have been aborted or\n * completed.\n *

      \n *
    • \n *
    • \n *

      \n * HTTP Status Code: 404 Not Found \n *

      \n *
    • \n *
    • \n *

      \n * SOAP Fault Code Prefix: Client\n *

      \n *
    • \n *
    \n *
  • \n *
\n *\n *\n *\n *\n *\n *\n *

\n * Related Resources\n *

\n * \n */\nvar UploadPartCommand = /** @class */ (function (_super) {\n __extends(UploadPartCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function UploadPartCommand(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 UploadPartCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"UploadPartCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: UploadPartRequest.filterSensitiveLog,\n outputFilterSensitiveLog: UploadPartOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n UploadPartCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlUploadPartCommand(input, context);\n };\n UploadPartCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlUploadPartCommand(output, context);\n };\n return UploadPartCommand;\n}($Command));\nexport { UploadPartCommand };\n//# sourceMappingURL=UploadPartCommand.js.map","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 (_) 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 __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { UploadPartCommand, CompleteMultipartUploadCommand, AbortMultipartUploadCommand, ListPartsCommand, CreateMultipartUploadCommand, ListObjectsV2Command, } from '@aws-sdk/client-s3';\nimport axios from 'axios';\nimport { Logger } from '@aws-amplify/core';\nimport { byteLength, isFile } from '../common/StorageUtils';\nimport { AWSS3ProviderUploadErrorStrings } from '../common/StorageErrorStrings';\nimport { SET_CONTENT_LENGTH_HEADER, 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 = {}));\n// maximum number of parts per upload request according the S3 spec,\n// see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html\nvar MAX_PARTS = 10000;\n// 5MB in bytes\nvar PART_SIZE = 5 * 1024 * 1024;\nvar DEFAULT_QUEUE_SIZE = 4;\nfunction comparePartNumber(a, b) {\n return a.PartNumber - b.PartNumber;\n}\nvar AWSS3UploadTask = /** @class */ (function () {\n function AWSS3UploadTask(_a) {\n var s3Client = _a.s3Client, file = _a.file, emitter = _a.emitter, storage = _a.storage, params = _a.params, level = _a.level, prefixPromise = _a.prefixPromise;\n this.partSize = PART_SIZE;\n this.queueSize = DEFAULT_QUEUE_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.s3client = s3Client;\n this.s3client.middlewareStack.remove(SET_CONTENT_LENGTH_HEADER);\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: true,\n configurable: true\n });\n Object.defineProperty(AWSS3UploadTask.prototype, \"isInProgress\", {\n get: function () {\n return this.state === AWSS3UploadTaskState.IN_PROGRESS;\n },\n enumerable: true,\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 listObjectRes, _b, Contents, prefix, obj;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this.s3client.send(new ListObjectsV2Command({\n Bucket: bucket,\n Prefix: key,\n }))];\n case 1:\n listObjectRes = _c.sent();\n _b = listObjectRes.Contents, Contents = _b === void 0 ? [] : _b;\n return [4 /*yield*/, this.prefixPromise];\n case 2:\n prefix = _c.sent();\n obj = Contents.find(function (o) { return o.Key === \"\" + prefix + 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, listPartsOutput;\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 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 return [4 /*yield*/, this.s3client.send(new ListPartsCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: cachedUploadFileData.uploadId,\n }))];\n case 2:\n listPartsOutput = _a.sent();\n return [2 /*return*/, {\n parts: listPartsOutput.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.file.size / this.partSize > MAX_PARTS) {\n throw new Error(\"Too many parts. Number of parts is \" + this.file.size /\n this.partSize + \", maximum is \" + MAX_PARTS + \".\");\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(),\n 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 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*/, this.s3client.send(new CompleteMultipartUploadCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: this.uploadId,\n MultipartUpload: {\n // Parts are not always completed in order, we need to manually sort them\n Parts: this.completedParts.sort(comparePartNumber),\n },\n }))];\n case 1:\n _a.sent();\n this._verifyFileSize();\n this._emitEvent(TaskEvents.UPLOAD_COMPLETE, {\n key: this.params.Bucket + \"/\" + this.params.Key,\n });\n this._removeFromCache();\n this.state = AWSS3UploadTaskState.COMPLETED;\n return [3 /*break*/, 3];\n case 2:\n err_1 = _a.sent();\n logger.error('error completing upload', err_1);\n this._emitEvent(TaskEvents.ERROR, err_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._makeUploadPartRequest = function (input, cancelTokenSource) {\n return __awaiter(this, void 0, void 0, function () {\n var res, err_2;\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.s3client.send(new UploadPartCommand(input), {\n cancelTokenSource: cancelTokenSource,\n })];\n case 1:\n res = _a.sent();\n return [4 /*yield*/, this._onPartUploadCompletion({\n eTag: res.ETag,\n partNumber: input.PartNumber,\n chunk: input.Body,\n })];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n err_2 = _a.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 // axios' 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 (!axios.isCancel(err_2) &&\n err_2.message !== AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE) {\n this._emitEvent(TaskEvents.ERROR, err_2);\n this.pause();\n }\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._startNextPart = function () {\n if (this.queued.length > 0 && this.state !== AWSS3UploadTaskState.PAUSED) {\n var cancelTokenSource = axios.CancelToken.source();\n var nextPart = this.queued.shift();\n this.inProgress.push({\n uploadPartInput: nextPart,\n s3Request: this._makeUploadPartRequest(nextPart, cancelTokenSource),\n cancel: cancelTokenSource.cancel,\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 obj, valid;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: 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 if (!valid) {\n throw new Error('File size does not match between local file and file on s3');\n }\n return [2 /*return*/, valid];\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;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.s3client.send(new CreateMultipartUploadCommand(this.params))];\n case 1:\n res = _a.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 _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 this._startUpload();\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 (!axios.isCancel(err_3)) {\n logger.error('Error initializing the upload task', 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 err_4;\n return __generator(this, function (_a) {\n switch (_a.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 _a.label = 3;\n case 3:\n _a.trys.push([3, 6, , 7]);\n return [4 /*yield*/, this.s3client.send(new AbortMultipartUploadCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: this.uploadId,\n }))];\n case 4:\n _a.sent();\n return [4 /*yield*/, this._removeFromCache()];\n case 5:\n _a.sent();\n return [2 /*return*/, true];\n case 6:\n err_4 = _a.sent();\n logger.error('Error cancelling upload task', err_4);\n return [2 /*return*/, false];\n case 7: 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 // Use axios cancel token to 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.cancel(AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE);\n });\n // Put all removed in progress parts back into the queue\n (_a = this.queued).unshift.apply(_a, __spread(removedInProgressReq.map(function (req) { return req.uploadPartInput; })));\n };\n return AWSS3UploadTask;\n}());\nexport { AWSS3UploadTask };\n//# sourceMappingURL=AWSS3UploadTask.js.map","import { __extends } from \"tslib\";\nimport { CompleteMultipartUploadOutput, CompleteMultipartUploadRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlCompleteMultipartUploadCommand, serializeAws_restXmlCompleteMultipartUploadCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Completes a multipart upload by assembling previously uploaded parts.

\n *

You first initiate the multipart upload and then upload all parts using the UploadPart\n * operation. After successfully uploading all relevant parts of an upload, you call this\n * operation to complete the upload. Upon receiving this request, Amazon S3 concatenates all\n * the parts in ascending order by part number to create a new object. In the Complete\n * Multipart Upload request, you must provide the parts list. You must ensure that the parts\n * list is complete. This operation concatenates the parts that you provide in the list. For\n * each part in the list, you must provide the part number and the ETag value,\n * returned after that part was uploaded.

\n *

Processing of a Complete Multipart Upload request could take several minutes to\n * complete. After Amazon S3 begins processing the request, it sends an HTTP response header that\n * specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white\n * space characters to keep the connection from timing out. Because a request could fail after\n * the initial 200 OK response has been sent, it is important that you check the response body\n * to determine whether the request succeeded.

\n *

Note that if CompleteMultipartUpload fails, applications should be prepared\n * to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

\n *

For more information about multipart uploads, see Uploading Objects Using Multipart\n * Upload.

\n *

For information about permissions required to use the multipart upload API, see Multipart Upload API and\n * Permissions.

\n *\n *\n *

\n * CompleteMultipartUpload has the following special errors:

\n *
    \n *
  • \n *

    Error code: EntityTooSmall\n *

    \n *
      \n *
    • \n *

      Description: Your proposed upload is smaller than the minimum allowed object\n * size. Each part must be at least 5 MB in size, except the last part.

      \n *
    • \n *
    • \n *

      400 Bad Request

      \n *
    • \n *
    \n *
  • \n *
  • \n *

    Error code: InvalidPart\n *

    \n *
      \n *
    • \n *

      Description: One or more of the specified parts could not be found. The part\n * might not have been uploaded, or the specified entity tag might not have\n * matched the part's entity tag.

      \n *
    • \n *
    • \n *

      400 Bad Request

      \n *
    • \n *
    \n *
  • \n *
  • \n *

    Error code: InvalidPartOrder\n *

    \n *
      \n *
    • \n *

      Description: The list of parts was not in ascending order. The parts list\n * must be specified in order by part number.

      \n *
    • \n *
    • \n *

      400 Bad Request

      \n *
    • \n *
    \n *
  • \n *
  • \n *

    Error code: NoSuchUpload\n *

    \n *
      \n *
    • \n *

      Description: The specified multipart upload does not exist. The upload ID\n * might be invalid, or the multipart upload might have been aborted or\n * completed.

      \n *
    • \n *
    • \n *

      404 Not Found

      \n *
    • \n *
    \n *
  • \n *
\n *\n *

The following operations are related to CompleteMultipartUpload:

\n * \n */\nvar CompleteMultipartUploadCommand = /** @class */ (function (_super) {\n __extends(CompleteMultipartUploadCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CompleteMultipartUploadCommand(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 CompleteMultipartUploadCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"CompleteMultipartUploadCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CompleteMultipartUploadRequest.filterSensitiveLog,\n outputFilterSensitiveLog: CompleteMultipartUploadOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CompleteMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCompleteMultipartUploadCommand(input, context);\n };\n CompleteMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCompleteMultipartUploadCommand(output, context);\n };\n return CompleteMultipartUploadCommand;\n}($Command));\nexport { CompleteMultipartUploadCommand };\n//# sourceMappingURL=CompleteMultipartUploadCommand.js.map","import { __extends } from \"tslib\";\nimport { AbortMultipartUploadOutput, AbortMultipartUploadRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlAbortMultipartUploadCommand, serializeAws_restXmlAbortMultipartUploadCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

This operation aborts a multipart upload. After a multipart upload is aborted, no\n * additional parts can be uploaded using that upload ID. The storage consumed by any\n * previously uploaded parts will be freed. However, if any part uploads are currently in\n * progress, those part uploads might or might not succeed. As a result, it might be necessary\n * to abort a given multipart upload multiple times in order to completely free all storage\n * consumed by all parts.

\n *

To verify that all parts have been removed, so you don't get charged for the part\n * storage, you should call the ListParts operation and ensure that\n * the parts list is empty.

\n *

For information about permissions required to use the multipart upload API, see Multipart Upload API and\n * Permissions.

\n *

The following operations are related to AbortMultipartUpload:

\n * \n */\nvar AbortMultipartUploadCommand = /** @class */ (function (_super) {\n __extends(AbortMultipartUploadCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function AbortMultipartUploadCommand(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 AbortMultipartUploadCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"AbortMultipartUploadCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: AbortMultipartUploadRequest.filterSensitiveLog,\n outputFilterSensitiveLog: AbortMultipartUploadOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n AbortMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlAbortMultipartUploadCommand(input, context);\n };\n AbortMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlAbortMultipartUploadCommand(output, context);\n };\n return AbortMultipartUploadCommand;\n}($Command));\nexport { AbortMultipartUploadCommand };\n//# sourceMappingURL=AbortMultipartUploadCommand.js.map","import { __extends } from \"tslib\";\nimport { ListPartsOutput, ListPartsRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlListPartsCommand, serializeAws_restXmlListPartsCommand } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Lists the parts that have been uploaded for a specific multipart upload. This operation\n * must include the upload ID, which you obtain by sending the initiate multipart upload\n * request (see CreateMultipartUpload).\n * This request returns a maximum of 1,000 uploaded parts. The default number of parts\n * returned is 1,000 parts. You can restrict the number of parts returned by specifying the\n * max-parts request parameter. If your multipart upload consists of more than\n * 1,000 parts, the response returns an IsTruncated field with the value of true,\n * and a NextPartNumberMarker element. In subsequent ListParts\n * requests you can include the part-number-marker query string parameter and set its value to\n * the NextPartNumberMarker field value from the previous response.

\n *\n *

For more information on multipart uploads, see Uploading Objects Using Multipart\n * Upload.

\n *\n *

For information on permissions required to use the multipart upload API, see Multipart Upload API and\n * Permissions.

\n *\n *

The following operations are related to ListParts:

\n * \n */\nvar ListPartsCommand = /** @class */ (function (_super) {\n __extends(ListPartsCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function ListPartsCommand(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 ListPartsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"ListPartsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: ListPartsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: ListPartsOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n ListPartsCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlListPartsCommand(input, context);\n };\n ListPartsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlListPartsCommand(output, context);\n };\n return ListPartsCommand;\n}($Command));\nexport { ListPartsCommand };\n//# sourceMappingURL=ListPartsCommand.js.map","/*\n * Copyright 2017-2019 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 */\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 (_) 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 } from '@aws-amplify/core';\nimport { PutObjectCommand, CreateMultipartUploadCommand, UploadPartCommand, CompleteMultipartUploadCommand, ListPartsCommand, AbortMultipartUploadCommand, } from '@aws-sdk/client-s3';\nimport { SEND_UPLOAD_PROGRESS_EVENT, SEND_DOWNLOAD_PROGRESS_EVENT, } from './axios-http-handler';\nimport * as events from 'events';\nimport { createPrefixMiddleware, prefixMiddlewareOptions, autoAdjustClockskewMiddleware, autoAdjustClockskewMiddlewareOptions, createS3Client, } from '../common/S3ClientUtils';\nvar logger = new Logger('AWSS3ProviderManagedUpload');\nvar AWSS3ProviderManagedUpload = /** @class */ (function () {\n function AWSS3ProviderManagedUpload(params, opts, emitter) {\n // Defaults\n this.minPartSize = 5 * 1024 * 1024; // in MB\n this.queueSize = 4;\n // Data for current upload\n this.body = null;\n this.params = null;\n this.opts = null;\n this.completedParts = [];\n this.uploadId = null;\n // Progress reporting\n this.bytesUploaded = 0;\n this.totalBytesToUpload = 0;\n this.emitter = null;\n this.params = params;\n this.opts = opts;\n this.emitter = emitter;\n this.s3client = this._createNewS3Client(opts, emitter);\n }\n AWSS3ProviderManagedUpload.prototype.upload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, putObjectCommand, _b, numberOfPartsToUpload, parts, start, error_1;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 10, , 12]);\n _a = this;\n return [4 /*yield*/, this.validateAndSanitizeBody(this.params.Body)];\n case 1:\n _a.body = _c.sent();\n this.totalBytesToUpload = this.byteLength(this.body);\n if (!(this.totalBytesToUpload <= this.minPartSize)) return [3 /*break*/, 2];\n // Multipart upload is not required. Upload the sanitized body as is\n this.params.Body = this.body;\n putObjectCommand = new PutObjectCommand(this.params);\n return [2 /*return*/, this.s3client.send(putObjectCommand)];\n case 2:\n // Step 1: Initiate the multi part upload\n _b = this;\n return [4 /*yield*/, this.createMultiPartUpload()];\n case 3:\n // Step 1: Initiate the multi part upload\n _b.uploadId = _c.sent();\n numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.minPartSize);\n parts = this.createParts();\n start = 0;\n _c.label = 4;\n case 4:\n if (!(start < numberOfPartsToUpload)) return [3 /*break*/, 7];\n // Upload as many as `queueSize` parts simultaneously\n return [4 /*yield*/, this.uploadParts(this.uploadId, parts.slice(start, start + this.queueSize))];\n case 5:\n // Upload as many as `queueSize` parts simultaneously\n _c.sent();\n _c.label = 6;\n case 6:\n start += this.queueSize;\n return [3 /*break*/, 4];\n case 7:\n parts.map(function (part) {\n _this.removeEventListener(part);\n });\n return [4 /*yield*/, this.finishMultiPartUpload(this.uploadId)];\n case 8: \n // Step 3: Finalize the upload such that S3 can recreate the file\n return [2 /*return*/, _c.sent()];\n case 9: return [3 /*break*/, 12];\n case 10:\n error_1 = _c.sent();\n // if any error is thrown, call cleanup\n return [4 /*yield*/, this.cleanup(this.uploadId)];\n case 11:\n // if any error is thrown, call cleanup\n _c.sent();\n logger.error('Error. Cancelling the multipart upload.');\n throw error_1;\n case 12: 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.minPartSize, this.totalBytesToUpload);\n parts.push({\n bodyPart: this.body.slice(bodyStart, bodyEnd),\n partNumber: parts.length + 1,\n emitter: new events.EventEmitter(),\n _lastUploadedBytes: 0,\n });\n bodyStart += this.minPartSize;\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 createMultiPartUploadCommand, response, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n createMultiPartUploadCommand = new CreateMultipartUploadCommand(this.params);\n return [4 /*yield*/, this.s3client.send(createMultiPartUploadCommand)];\n case 1:\n response = _a.sent();\n logger.debug(response.UploadId);\n return [2 /*return*/, response.UploadId];\n case 2:\n error_2 = _a.sent();\n logger.error(error_2);\n throw error_2;\n case 3: 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 options, _a, Key, Bucket, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, res;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.setupEventListener(part);\n options = { emitter: part.emitter };\n _a = this.params, Key = _a.Key, Bucket = _a.Bucket, SSECustomerAlgorithm = _a.SSECustomerAlgorithm, SSECustomerKey = _a.SSECustomerKey, SSECustomerKeyMD5 = _a.SSECustomerKeyMD5;\n return [4 /*yield*/, this.s3client.send(new UploadPartCommand(__assign(__assign(__assign({ PartNumber: part.partNumber, Body: part.bodyPart, UploadId: uploadId, Key: Key,\n Bucket: Bucket }, (SSECustomerAlgorithm && { SSECustomerAlgorithm: SSECustomerAlgorithm })), (SSECustomerKey && { SSECustomerKey: SSECustomerKey })), (SSECustomerKeyMD5 && { SSECustomerKeyMD5: SSECustomerKeyMD5 }))), options)];\n case 1:\n res = _b.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, completeUploadCommand, data, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n input = {\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: uploadId,\n MultipartUpload: { Parts: this.completedParts },\n };\n completeUploadCommand = new CompleteMultipartUploadCommand(input);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.s3client.send(completeUploadCommand)];\n case 2:\n data = _a.sent();\n return [2 /*return*/, data.Key];\n case 3:\n error_4 = _a.sent();\n logger.error('Error happened while finishing the upload.');\n throw error_4;\n case 4: 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 return __generator(this, function (_a) {\n switch (_a.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 input = {\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: uploadId,\n };\n return [4 /*yield*/, this.s3client.send(new AbortMultipartUploadCommand(input))];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.s3client.send(new ListPartsCommand(input))];\n case 2:\n data = _a.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 return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.isGenericObject(body)) {\n // Any javascript object\n return [2 /*return*/, JSON.stringify(body)];\n }\n else {\n // Files, arrayBuffer etc\n return [2 /*return*/, body];\n }\n return [2 /*return*/];\n });\n });\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._createNewS3Client = function (config, emitter) {\n var s3client = createS3Client(config, emitter);\n s3client.middlewareStack.add(createPrefixMiddleware(this.opts, this.params.Key), prefixMiddlewareOptions);\n s3client.middlewareStack.add(autoAdjustClockskewMiddleware(s3client.config), autoAdjustClockskewMiddlewareOptions);\n return s3client;\n };\n return AWSS3ProviderManagedUpload;\n}());\nexport { AWSS3ProviderManagedUpload };\n//# sourceMappingURL=AWSS3ProviderManagedUpload.js.map","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 (_) 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 __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\n/*\n * Copyright 2017-2019 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, Credentials, Parser, StorageHelper, Hub, } from '@aws-amplify/core';\nimport { GetObjectCommand, DeleteObjectCommand, ListObjectsV2Command, CopyObjectCommand, } from '@aws-sdk/client-s3';\nimport { formatUrl } from '@aws-sdk/util-format-url';\nimport { createRequest } from '@aws-sdk/util-create-request';\nimport { S3RequestPresigner } from '@aws-sdk/s3-request-presigner';\nimport { SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT, } from './axios-http-handler';\nimport { StorageErrorStrings } from '../common/StorageErrorStrings';\nimport { dispatchStorageEvent } from '../common/StorageUtils';\nimport { createPrefixMiddleware, prefixMiddlewareOptions, getPrefix, autoAdjustClockskewMiddleware, autoAdjustClockskewMiddlewareOptions, createS3Client, } 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 */\nvar 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 = Parser.parseMobilehubConfig(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 s3Client = addTaskInput.s3Client, emitter = addTaskInput.emitter, key = addTaskInput.key, file = addTaskInput.file, params = addTaskInput.params;\n var progressCallback = config.progressCallback, completeCallback = config.completeCallback, errorCallback = config.errorCallback, _a = config.track, 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), { credentials: cred }));\n });\n var task = new AWSS3UploadTask({\n s3Client: s3Client,\n file: file,\n emitter: emitter,\n level: config.level,\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 \" + 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, _a, srcLevel, srcIdentityId, srcKey, _b, destLevel, destKey, srcPrefix, destPrefix, finalSrcKey, finalDestKey, params, s3, error_1;\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 _a = src.level, srcLevel = _a === void 0 ? DEFAULT_STORAGE_LEVEL : _a, srcIdentityId = src.identityId, srcKey = src.key;\n _b = dest.level, destLevel = _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 \" + 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 = bucket + \"/\" + srcPrefix + srcKey;\n finalDestKey = \"\" + destPrefix + destKey;\n logger.debug(\"copying \" + finalSrcKey + \" to \" + 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 s3 = this._createNewS3Client(opt);\n _c.label = 2;\n case 2:\n _c.trys.push([2, 4, , 5]);\n return [4 /*yield*/, s3.send(new CopyObjectCommand(params))];\n case 3:\n _c.sent();\n dispatchStorageEvent(track, 'copy', {\n method: 'copy',\n result: 'success',\n }, null, \"Copy success from \" + srcKey + \" to \" + 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 \" + srcKey + \" to \" + destKey);\n throw error_1;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype.get = function (key, config) {\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, prefix, final_key, emitter, s3, params, getObjectCommand, response, error_2, signer, request, url, _a, error_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _b.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;\n prefix = this._prefix(opt);\n final_key = prefix + key;\n emitter = new events.EventEmitter();\n s3 = this._createNewS3Client(opt, emitter);\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 getObjectCommand = new GetObjectCommand(params);\n _b.label = 2;\n case 2:\n _b.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*/, s3.send(getObjectCommand)];\n case 3:\n response = _b.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 \" + key);\n return [2 /*return*/, response];\n case 4:\n error_2 = _b.sent();\n dispatchStorageEvent(track, 'download', {\n method: 'get',\n result: 'failed',\n }, null, \"Download failed with \" + error_2.message);\n throw error_2;\n case 5:\n _b.trys.push([5, 8, , 9]);\n signer = new S3RequestPresigner(__assign({}, s3.config));\n return [4 /*yield*/, createRequest(s3, new GetObjectCommand(params))];\n case 6:\n request = _b.sent();\n _a = formatUrl;\n return [4 /*yield*/, signer.presign(request, {\n expiresIn: expires || DEFAULT_PRESIGN_EXPIRATION,\n })];\n case 7:\n url = _a.apply(void 0, [_b.sent()]);\n dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'success' }, null, \"Signed URL: \" + url);\n return [2 /*return*/, url];\n case 8:\n error_3 = _b.sent();\n logger.warn('get signed url error', error_3);\n dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'failed' }, null, \"Could not get a signed URL for \" + key);\n throw error_3;\n case 9: 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 s3Client = this._createNewS3Client(opt);\n // we are using aws sdk middleware to inject the prefix to key, this way we don't have to call\n // this._ensureCredentials() which allows us to make this function sync so we can return non-Promise like UploadTask\n s3Client.middlewareStack.add(createPrefixMiddleware(opt, key), prefixMiddlewareOptions);\n var addTaskInput = {\n bucket: bucket,\n key: key,\n s3Client: s3Client,\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 \" + 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 \" + 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, s3, params, deleteObjectCommand, response, error_4;\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 s3 = this._createNewS3Client(opt);\n logger.debug('remove ' + key + ' from ' + final_key);\n params = {\n Bucket: bucket,\n Key: final_key,\n };\n deleteObjectCommand = new DeleteObjectCommand(params);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, s3.send(deleteObjectCommand)];\n case 3:\n response = _a.sent();\n dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'success' }, null, \"Deleted \" + key + \" successfully\");\n return [2 /*return*/, response];\n case 4:\n error_4 = _a.sent();\n dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'failed' }, null, \"Deletion of \" + key + \" failed with \" + error_4);\n throw error_4;\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 result, s3, listObjectsV2Command, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = {\n contents: [],\n nextToken: '',\n };\n s3 = this._createNewS3Client(opt);\n listObjectsV2Command = new ListObjectsV2Command(__assign({}, params));\n return [4 /*yield*/, s3.send(listObjectsV2Command)];\n case 1:\n response = _a.sent();\n if (response && response.Contents) {\n result.contents = 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 result.nextToken = response.NextContinuationToken;\n }\n return [2 /*return*/, result];\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 and file size for\n * 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, maxKeys, prefix, final_path, list, token, listResult, params, error_5;\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, maxKeys = opt.maxKeys;\n prefix = this._prefix(opt);\n final_path = prefix + path;\n logger.debug('list ' + path + ' from ' + final_path);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 10, , 11]);\n list = [];\n token = void 0;\n listResult = void 0;\n params = {\n Bucket: bucket,\n Prefix: final_path,\n MaxKeys: 1000,\n };\n if (!(maxKeys === 'ALL')) return [3 /*break*/, 7];\n _a.label = 3;\n case 3:\n params.ContinuationToken = token;\n params.MaxKeys = 1000;\n return [4 /*yield*/, this._list(params, opt, prefix)];\n case 4:\n listResult = _a.sent();\n list.push.apply(list, __spread(listResult.contents));\n if (listResult.nextToken)\n token = listResult.nextToken;\n _a.label = 5;\n case 5:\n if (listResult.nextToken) return [3 /*break*/, 3];\n _a.label = 6;\n case 6: return [3 /*break*/, 9];\n case 7:\n maxKeys < 1000 || typeof maxKeys === 'string'\n ? (params.MaxKeys = maxKeys)\n : (params.MaxKeys = 1000);\n return [4 /*yield*/, this._list(params, opt, prefix)];\n case 8:\n listResult = _a.sent();\n list.push.apply(list, __spread(listResult.contents));\n if (maxKeys > 1000)\n logger.warn(\"maxkeys can be from 0 - 1000 or 'ALL'. To list all files you can set maxKeys to 'ALL'.\");\n _a.label = 9;\n case 9:\n dispatchStorageEvent(track, 'list', { method: 'list', result: 'success' }, null, list.length + \" items returned from list operation\");\n logger.debug('list', list);\n return [2 /*return*/, list];\n case 10:\n error_5 = _a.sent();\n logger.warn('list error', error_5);\n dispatchStorageEvent(track, 'list', { method: 'list', result: 'failed' }, null, \"Listing items failed: \" + error_5.message);\n throw error_5;\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_6;\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_6 = _a.sent();\n logger.warn('ensure credentials error', error_6);\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 /**\n * Creates an S3 client with new V3 aws sdk\n */\n AWSS3Provider.prototype._createNewS3Client = function (config, emitter) {\n var s3client = createS3Client(config, emitter);\n s3client.middlewareStack.add(autoAdjustClockskewMiddleware(s3client.config), autoAdjustClockskewMiddlewareOptions);\n return s3client;\n };\n AWSS3Provider.CATEGORY = 'Storage';\n AWSS3Provider.PROVIDER_NAME = 'AWSS3';\n return AWSS3Provider;\n}());\nexport { AWSS3Provider };\n/**\n * @deprecated use named import\n */\nexport default AWSS3Provider;\n//# sourceMappingURL=AWSS3Provider.js.map","/*\n * Copyright 2017-2017 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 */\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 { ConsoleLogger as Logger, Parser } from '@aws-amplify/core';\nimport { AWSS3Provider } from './providers';\nimport axios from 'axios';\nimport { AWSS3UploadTask } from './providers/AWSS3UploadTask';\nvar logger = new Logger('StorageClass');\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._cancelTokenSourceMap = 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 logger.debug('configure Storage');\n if (!config)\n return this._config;\n var amplifyConfig = Parser.parseMobilehubConfig(config);\n var storageKeysFromConfig = Object.keys(amplifyConfig.Storage);\n var storageArrayKeys = [\n 'bucket',\n 'region',\n 'level',\n 'track',\n 'customPrefix',\n 'serverSideEncryption',\n 'SSECustomerAlgorithm',\n 'SSECustomerKey',\n 'SSECustomerKeyMD5',\n 'SSEKMSKeyId',\n ];\n var isInStorageArrayKeys = function (k) {\n return storageArrayKeys.some(function (x) { return x === k; });\n };\n var checkConfigKeysFromArray = function (k) {\n return k.find(function (k) { return isInStorageArrayKeys(k); });\n };\n if (storageKeysFromConfig &&\n checkConfigKeysFromArray(storageKeysFromConfig) &&\n !amplifyConfig.Storage[DEFAULT_PROVIDER]) {\n amplifyConfig.Storage[DEFAULT_PROVIDER] = {};\n }\n Object.entries(amplifyConfig.Storage).map(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n if (key && isInStorageArrayKeys(key) && value !== undefined) {\n amplifyConfig.Storage[DEFAULT_PROVIDER][key] = value;\n delete amplifyConfig.Storage[key];\n }\n });\n // only update new values for each provider\n Object.keys(amplifyConfig.Storage).forEach(function (providerName) {\n if (typeof amplifyConfig.Storage[providerName] !== 'string') {\n _this._config[providerName] = __assign(__assign({}, _this._config[providerName]), amplifyConfig.Storage[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.getCancellableTokenSource = function () {\n return axios.CancelToken.source();\n };\n Storage.prototype.updateRequestToBeCancellable = function (request, cancelTokenSource) {\n this._cancelTokenSourceMap.set(request, cancelTokenSource);\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 cancelTokenSource = this._cancelTokenSourceMap.get(request);\n if (cancelTokenSource) {\n cancelTokenSource.cancel(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 prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === 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 cancelTokenSource = this.getCancellableTokenSource();\n if (typeof prov.copy !== 'function') {\n return Promise.reject(\".copy is not implemented on provider \" + prov.getProviderName());\n }\n var responsePromise = prov.copy(src, dest, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));\n this.updateRequestToBeCancellable(responsePromise, cancelTokenSource);\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 prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === 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 cancelTokenSource = this.getCancellableTokenSource();\n var responsePromise = prov.get(key, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));\n this.updateRequestToBeCancellable(responsePromise, cancelTokenSource);\n return responsePromise;\n };\n Storage.prototype.isCancelError = function (error) {\n return axios.isCancel(error);\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 prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === 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 cancelTokenSource = this.getCancellableTokenSource();\n var response = prov.put(key, object, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));\n if (!this.isUploadTask(response)) {\n this.updateRequestToBeCancellable(response, cancelTokenSource);\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 prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === 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 prov.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 prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === 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 prov.list(path, config);\n };\n return Storage;\n}());\nexport { Storage };\n/**\n * @deprecated use named import\n */\nexport default Storage;\n//# sourceMappingURL=Storage.js.map","/*\n * Copyright 2017-2017 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 */\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 { Storage as StorageClass } from './Storage';\nimport { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('Storage');\nvar _instance = null;\nvar getInstance = function () {\n if (_instance) {\n return _instance;\n }\n logger.debug('Create Storage Instance, debug');\n _instance = new StorageClass();\n _instance.vault = new StorageClass();\n var old_configure = _instance.configure;\n _instance.configure = function (options) {\n logger.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 logger.debug('storage vault configure called');\n _instance.vault.configure(vaultConfig);\n };\n return _instance;\n};\nexport var Storage = getInstance();\nAmplify.register(Storage);\n/**\n * @deprecated use named import\n */\nexport default Storage;\nexport { StorageClass };\nexport * from './providers';\n//# sourceMappingURL=index.js.map","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","import { AuthErrorStrings } from '@aws-amplify/auth';\nvar AuthStrings;\n(function (AuthStrings) {\n AuthStrings[\"BACK_TO_SIGN_IN\"] = \"Back to Sign In\";\n AuthStrings[\"CHANGE_PASSWORD_ACTION\"] = \"Change\";\n AuthStrings[\"CHANGE_PASSWORD\"] = \"Change Password\";\n AuthStrings[\"CODE_LABEL\"] = \"Verification code\";\n AuthStrings[\"CODE_PLACEHOLDER\"] = \"Enter code\";\n AuthStrings[\"CONFIRM_SIGN_UP_CODE_LABEL\"] = \"Confirmation Code\";\n AuthStrings[\"CONFIRM_SIGN_UP_CODE_PLACEHOLDER\"] = \"Enter your code\";\n AuthStrings[\"CONFIRM_SIGN_UP_HEADER_TEXT\"] = \"Confirm Sign up\";\n AuthStrings[\"CONFIRM_SIGN_UP_LOST_CODE\"] = \"Lost your code?\";\n AuthStrings[\"CONFIRM_SIGN_UP_RESEND_CODE\"] = \"Resend Code\";\n AuthStrings[\"CONFIRM_SIGN_UP_SUBMIT_BUTTON_TEXT\"] = \"Confirm\";\n AuthStrings[\"CONFIRM_SMS_CODE\"] = \"Confirm SMS Code\";\n AuthStrings[\"CONFIRM_TOTP_CODE\"] = \"Confirm TOTP Code\";\n AuthStrings[\"CONFIRM\"] = \"Confirm\";\n AuthStrings[\"CREATE_ACCOUNT_TEXT\"] = \"Create account\";\n AuthStrings[\"EMAIL_LABEL\"] = \"Email Address *\";\n AuthStrings[\"EMAIL_PLACEHOLDER\"] = \"Enter your email address\";\n AuthStrings[\"FORGOT_PASSWORD_TEXT\"] = \"Forgot your password?\";\n AuthStrings[\"LESS_THAN_TWO_MFA_VALUES_MESSAGE\"] = \"Less than two MFA types available\";\n AuthStrings[\"NEW_PASSWORD_LABEL\"] = \"New password\";\n AuthStrings[\"NEW_PASSWORD_PLACEHOLDER\"] = \"Enter your new password\";\n AuthStrings[\"NO_ACCOUNT_TEXT\"] = \"No account?\";\n AuthStrings[\"USERNAME_REMOVE_WHITESPACE\"] = \"Username cannot contain whitespace\";\n AuthStrings[\"PASSWORD_REMOVE_WHITESPACE\"] = \"Password cannot start or end with whitespace\";\n AuthStrings[\"PASSWORD_LABEL\"] = \"Password *\";\n AuthStrings[\"PASSWORD_PLACEHOLDER\"] = \"Enter your password\";\n AuthStrings[\"PHONE_LABEL\"] = \"Phone Number *\";\n AuthStrings[\"PHONE_PLACEHOLDER\"] = \"(555) 555-1212\";\n AuthStrings[\"QR_CODE_ALT\"] = \"qrcode\";\n AuthStrings[\"RESET_PASSWORD_TEXT\"] = \"Reset password\";\n AuthStrings[\"RESET_YOUR_PASSWORD\"] = \"Reset your password\";\n AuthStrings[\"SELECT_MFA_TYPE_HEADER_TEXT\"] = \"Select MFA Type\";\n AuthStrings[\"SELECT_MFA_TYPE_SUBMIT_BUTTON_TEXT\"] = \"Verify\";\n AuthStrings[\"SEND_CODE\"] = \"Send Code\";\n AuthStrings[\"SUBMIT\"] = \"Submit\";\n AuthStrings[\"SETUP_TOTP_REQUIRED\"] = \"TOTP needs to be configured\";\n AuthStrings[\"SIGN_IN_ACTION\"] = \"Sign In\";\n AuthStrings[\"SIGN_IN_HEADER_TEXT\"] = \"Sign in to your account\";\n AuthStrings[\"SIGN_IN_TEXT\"] = \"Sign in\";\n AuthStrings[\"SIGN_IN_WITH_AMAZON\"] = \"Sign in with Amazon\";\n AuthStrings[\"SIGN_IN_WITH_AUTH0\"] = \"Sign in with Auth0\";\n AuthStrings[\"SIGN_IN_WITH_AWS\"] = \"Sign in with AWS\";\n AuthStrings[\"SIGN_IN_WITH_FACEBOOK\"] = \"Sign in with Facebook\";\n AuthStrings[\"SIGN_IN_WITH_GOOGLE\"] = \"Sign in with Google\";\n AuthStrings[\"SIGN_OUT\"] = \"Sign Out\";\n AuthStrings[\"SIGN_UP_EMAIL_PLACEHOLDER\"] = \"Email\";\n AuthStrings[\"SIGN_UP_HAVE_ACCOUNT_TEXT\"] = \"Have an account?\";\n AuthStrings[\"SIGN_UP_HEADER_TEXT\"] = \"Create a new account\";\n AuthStrings[\"SIGN_UP_PASSWORD_PLACEHOLDER\"] = \"Password\";\n AuthStrings[\"SIGN_UP_SUBMIT_BUTTON_TEXT\"] = \"Create Account\";\n AuthStrings[\"SIGN_UP_USERNAME_PLACEHOLDER\"] = \"Username\";\n AuthStrings[\"SKIP\"] = \"Skip\";\n AuthStrings[\"SUCCESS_MFA_TYPE\"] = \"Success! Your MFA Type is now:\";\n AuthStrings[\"TOTP_HEADER_TEXT\"] = \"Scan then enter verification code\";\n AuthStrings[\"TOTP_LABEL\"] = \"Enter Security Code:\";\n AuthStrings[\"TOTP_ISSUER\"] = \"AWSCognito\";\n AuthStrings[\"TOTP_SETUP_FAILURE\"] = \"TOTP Setup has failed\";\n AuthStrings[\"TOTP_SUBMIT_BUTTON_TEXT\"] = \"Verify Security Token\";\n AuthStrings[\"TOTP_SUCCESS_MESSAGE\"] = \"Setup TOTP successfully!\";\n AuthStrings[\"UNABLE_TO_SETUP_MFA_AT_THIS_TIME\"] = \"Failed! Unable to configure MFA at this time\";\n AuthStrings[\"USERNAME_LABEL\"] = \"Username *\";\n AuthStrings[\"USERNAME_PLACEHOLDER\"] = \"Enter your username\";\n AuthStrings[\"VERIFY_CONTACT_EMAIL_LABEL\"] = \"Email\";\n AuthStrings[\"VERIFY_CONTACT_HEADER_TEXT\"] = \"Account recovery requires verified contact information\";\n AuthStrings[\"VERIFY_CONTACT_PHONE_LABEL\"] = \"Phone Number\";\n AuthStrings[\"VERIFY_CONTACT_SUBMIT_LABEL\"] = \"Submit\";\n AuthStrings[\"VERIFY_CONTACT_VERIFY_LABEL\"] = \"Verify\";\n AuthStrings[\"ADDRESS_LABEL\"] = \"Address\";\n AuthStrings[\"ADDRESS_PLACEHOLDER\"] = \"Enter your address\";\n AuthStrings[\"NICKNAME_LABEL\"] = \"Nickname\";\n AuthStrings[\"NICKNAME_PLACEHOLDER\"] = \"Enter your nickname\";\n AuthStrings[\"BIRTHDATE_LABEL\"] = \"Birthday\";\n AuthStrings[\"BIRTHDATE_PLACEHOLDER\"] = \"Enter your birthday\";\n AuthStrings[\"PICTURE_LABEL\"] = \"Picture URL\";\n AuthStrings[\"PICTURE_PLACEHOLDER\"] = \"Enter your picture URL\";\n AuthStrings[\"FAMILY_NAME_LABEL\"] = \"Family Name\";\n AuthStrings[\"FAMILY_NAME_PLACEHOLDER\"] = \"Enter your family name\";\n AuthStrings[\"PREFERRED_USERNAME_LABEL\"] = \"Preferred Username\";\n AuthStrings[\"PREFERRED_USERNAME_PLACEHOLDER\"] = \"Enter your preferred username\";\n AuthStrings[\"GENDER_LABEL\"] = \"Gender\";\n AuthStrings[\"GENDER_PLACEHOLDER\"] = \"Enter your gender\";\n AuthStrings[\"PROFILE_LABEL\"] = \"Profile URL\";\n AuthStrings[\"PROFILE_PLACEHOLDER\"] = \"Enter your profile URL\";\n AuthStrings[\"GIVEN_NAME_LABEL\"] = \"First Name\";\n AuthStrings[\"GIVEN_NAME_PLACEHOLDER\"] = \"Enter your first name\";\n AuthStrings[\"ZONEINFO_LABEL\"] = \"Time zone\";\n AuthStrings[\"ZONEINFO_PLACEHOLDER\"] = \"Enter your time zone\";\n AuthStrings[\"LOCALE_LABEL\"] = \"Locale\";\n AuthStrings[\"LOCALE_PLACEHOLDER\"] = \"Enter your locale\";\n AuthStrings[\"UPDATED_AT_LABEL\"] = \"Updated At\";\n AuthStrings[\"UPDATED_AT_PLACEHOLDER\"] = \"Enter the time the information was last updated\";\n AuthStrings[\"MIDDLE_NAME_LABEL\"] = \"Middle Name\";\n AuthStrings[\"MIDDLE_NAME_PLACEHOLDER\"] = \"Enter your middle name\";\n AuthStrings[\"WEBSITE_LABEL\"] = \"Website\";\n AuthStrings[\"WEBSITE_PLACEHOLDER\"] = \"Enter your website\";\n AuthStrings[\"NAME_LABEL\"] = \"Full Name\";\n AuthStrings[\"NAME_PLACEHOLDER\"] = \"Enter your full name\";\n AuthStrings[\"PHOTO_PICKER_TITLE\"] = \"Picker Title\";\n AuthStrings[\"PHOTO_PICKER_HINT\"] = \"Ancillary text or content may occupy this space here\";\n AuthStrings[\"PHOTO_PICKER_PLACEHOLDER_HINT\"] = \"Placeholder hint\";\n AuthStrings[\"PHOTO_PICKER_BUTTON_TEXT\"] = \"Button\";\n AuthStrings[\"IMAGE_PICKER_TITLE\"] = \"Add Profile Photo\";\n AuthStrings[\"IMAGE_PICKER_HINT\"] = \"Preview the image before upload\";\n AuthStrings[\"IMAGE_PICKER_PLACEHOLDER_HINT\"] = \"Tap to image select\";\n AuthStrings[\"IMAGE_PICKER_BUTTON_TEXT\"] = \"Upload\";\n AuthStrings[\"PICKER_TEXT\"] = \"Pick a file\";\n AuthStrings[\"TEXT_FALLBACK_CONTENT\"] = \"Fallback Content\";\n AuthStrings[\"CONFIRM_SIGN_UP_FAILED\"] = \"Confirm Sign Up Failed\";\n AuthStrings[\"SIGN_UP_FAILED\"] = \"Sign Up Failed\";\n})(AuthStrings || (AuthStrings = {}));\nvar InteractionsStrings;\n(function (InteractionsStrings) {\n InteractionsStrings[\"CHATBOT_TITLE\"] = \"ChatBot Lex\";\n InteractionsStrings[\"TEXT_INPUT_PLACEHOLDER\"] = \"Write a message\";\n InteractionsStrings[\"VOICE_INPUT_PLACEHOLDER\"] = \"Click mic to speak\";\n InteractionsStrings[\"CHAT_DISABLED_ERROR\"] = \"Error: Either voice or text must be enabled for the chatbot\";\n InteractionsStrings[\"NO_BOT_NAME_ERROR\"] = \"Error: Bot name must be provided to ChatBot\";\n})(InteractionsStrings || (InteractionsStrings = {}));\nvar Translations = Object.assign(Object.assign(Object.assign({}, AuthStrings), AuthErrorStrings), InteractionsStrings);\nexport { Translations as T };\n","// TODO: Move these values to or extract them from the Cognito Provider in the Auth category for Auth V2\nvar AuthState;\n(function (AuthState) {\n AuthState[\"SignUp\"] = \"signup\";\n AuthState[\"SignOut\"] = \"signout\";\n AuthState[\"SignIn\"] = \"signin\";\n AuthState[\"Loading\"] = \"loading\";\n AuthState[\"SignedOut\"] = \"signedout\";\n AuthState[\"SignedIn\"] = \"signedin\";\n AuthState[\"SigningUp\"] = \"signingup\";\n AuthState[\"ConfirmSignUp\"] = \"confirmSignUp\";\n AuthState[\"confirmingSignUpCustomFlow\"] = \"confirmsignupcustomflow\";\n AuthState[\"ConfirmSignIn\"] = \"confirmSignIn\";\n AuthState[\"confirmingSignInCustomFlow\"] = \"confirmingsignincustomflow\";\n AuthState[\"VerifyingAttributes\"] = \"verifyingattributes\";\n AuthState[\"ForgotPassword\"] = \"forgotpassword\";\n AuthState[\"ResetPassword\"] = \"resettingpassword\";\n AuthState[\"SettingMFA\"] = \"settingMFA\";\n AuthState[\"TOTPSetup\"] = \"TOTPSetup\";\n AuthState[\"CustomConfirmSignIn\"] = \"customConfirmSignIn\";\n AuthState[\"VerifyContact\"] = \"verifyContact\";\n})(AuthState || (AuthState = {}));\nvar MfaOption;\n(function (MfaOption) {\n MfaOption[\"TOTP\"] = \"TOTP\";\n MfaOption[\"SMS\"] = \"SMS\";\n MfaOption[\"NOMFA\"] = \"NOMFA\";\n})(MfaOption || (MfaOption = {}));\nvar ChallengeName;\n(function (ChallengeName) {\n ChallengeName[\"SoftwareTokenMFA\"] = \"SOFTWARE_TOKEN_MFA\";\n ChallengeName[\"SMSMFA\"] = \"SMS_MFA\";\n ChallengeName[\"NewPasswordRequired\"] = \"NEW_PASSWORD_REQUIRED\";\n ChallengeName[\"MFASetup\"] = \"MFA_SETUP\";\n ChallengeName[\"CustomChallenge\"] = \"CUSTOM_CHALLENGE\";\n})(ChallengeName || (ChallengeName = {}));\nvar AuthFormField;\n(function (AuthFormField) {\n AuthFormField[\"Password\"] = \"password\";\n})(AuthFormField || (AuthFormField = {}));\nvar UsernameAlias;\n(function (UsernameAlias) {\n UsernameAlias[\"username\"] = \"username\";\n UsernameAlias[\"email\"] = \"email\";\n UsernameAlias[\"phone_number\"] = \"phone_number\";\n})(UsernameAlias || (UsernameAlias = {}));\nexport { AuthState as A, ChallengeName as C, MfaOption as M, UsernameAlias as U, AuthFormField as a };\n","// Dictionaries\n// fieldId constants\nvar USERNAME_SUFFIX = 'username';\nvar EMAIL_SUFFIX = 'email';\nvar CODE_SUFFIX = 'code';\nvar PHONE_SUFFIX = 'phone';\nvar PASSWORD_SUFFIX = 'password';\n// Country Dial Code common constants\nvar COUNTRY_DIAL_CODE_SUFFIX = 'country-dial-code-select';\nvar COUNTRY_DIAL_CODE_DEFAULT = '+1';\n// Auth Keys\nvar AUTH_SOURCE_KEY = 'amplify-auth-source';\n// Error message Common Constants\nvar PHONE_EMPTY_ERROR_MESSAGE = 'Phone number can not be empty';\nvar NO_AUTH_MODULE_FOUND = 'No Auth module found, please ensure @aws-amplify/auth is imported';\nvar NO_STORAGE_MODULE_FOUND = 'No Storage module found, please ensure @aws-amplify/storage is imported';\nvar NO_INTERACTIONS_MODULE_FOUND = 'No Interactions module found, please ensure @aws-amplify/interactions is imported';\n// Select MFA Types Messages\nvar USER_NOT_SETUP_SOFTWARE_TOKEN_MFA = 'User has not set up software token mfa';\nvar USER_NOT_VERIFIED_SOFTWARE_TOKEN_MFA = 'User has not verified software token mfa';\n// Hub Events and Channels\nvar AUTH_CHANNEL = 'auth';\nvar UI_AUTH_CHANNEL = 'UI Auth';\nvar TOAST_AUTH_ERROR_EVENT = 'ToastAuthError';\nvar AUTH_STATE_CHANGE_EVENT = 'AuthStateChange';\nexport { AUTH_CHANNEL as A, COUNTRY_DIAL_CODE_SUFFIX as C, EMAIL_SUFFIX as E, NO_AUTH_MODULE_FOUND as N, PHONE_EMPTY_ERROR_MESSAGE as P, TOAST_AUTH_ERROR_EVENT as T, UI_AUTH_CHANNEL as U, AUTH_STATE_CHANGE_EVENT as a, PHONE_SUFFIX as b, NO_INTERACTIONS_MODULE_FOUND as c, NO_STORAGE_MODULE_FOUND as d, USER_NOT_SETUP_SOFTWARE_TOKEN_MFA as e, USER_NOT_VERIFIED_SOFTWARE_TOKEN_MFA as f, COUNTRY_DIAL_CODE_DEFAULT as g, AUTH_SOURCE_KEY as h, CODE_SUFFIX as i, PASSWORD_SUFFIX as j, USERNAME_SUFFIX as k };\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 (_) 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 { Logger, Hub, I18n } from '@aws-amplify/core';\nimport { U as UsernameAlias, A as AuthState } from './auth-types-78df304e.js';\nimport Auth from '@aws-amplify/auth';\nimport { T as Translations } from './Translations-108d469f.js';\nimport { U as UI_AUTH_CHANNEL, T as TOAST_AUTH_ERROR_EVENT, a as AUTH_STATE_CHANGE_EVENT, P as PHONE_EMPTY_ERROR_MESSAGE, C as COUNTRY_DIAL_CODE_SUFFIX, b as PHONE_SUFFIX } from './constants-c8ecaa24.js';\nvar logger = new Logger('helpers');\n/**\n * Finds closest element that matches the selector from the ancestor tree.\n * Trasverses through shadow DOM and slots.\n *\n * Adpated from: https://stackoverflow.com/a/56105394\n */\nvar closestElement = function (selector, base) {\n function _closestFrom(el) {\n if (!el || el === document || el === window)\n return null;\n if (el.matches(selector))\n return base; // return if current element matches the selector\n if (el.assignedSlot)\n el = el.assignedSlot; // traverse up slots if slotted\n var found = el.closest(selector);\n return found ? found : _closestFrom(el.getRootNode().host); // try to traverse up shadows\n }\n return _closestFrom(base);\n};\nvar dispatchToastHubEvent = function (error) {\n Hub.dispatch(UI_AUTH_CHANNEL, {\n event: TOAST_AUTH_ERROR_EVENT,\n message: I18n.get(error.message),\n });\n};\nvar dispatchAuthStateChangeEvent = function (nextAuthState, data) {\n Hub.dispatch(UI_AUTH_CHANNEL, {\n event: AUTH_STATE_CHANGE_EVENT,\n message: nextAuthState,\n data: data,\n });\n};\nvar composePhoneNumberInput = function (phoneNumber) {\n if (!phoneNumber.phoneNumberValue) {\n throw new Error(PHONE_EMPTY_ERROR_MESSAGE);\n }\n var sanitizedPhoneNumberValue = phoneNumber.phoneNumberValue.replace(/[-()\\s]/g, '');\n return \"\" + phoneNumber.countryDialCodeValue + sanitizedPhoneNumberValue;\n};\nvar checkUsernameAlias = function (usernameAlias) {\n if (!(usernameAlias in UsernameAlias)) {\n throw new Error(\"Invalid username Alias - \" + usernameAlias + \". Instead use \" + Object.values(UsernameAlias));\n }\n};\nvar onAuthUIStateChange = function (authStateHandler) {\n var authUIStateHandler = function (data) { return __awaiter(void 0, void 0, void 0, function () {\n var payload, _a, user, e_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n payload = data.payload;\n _a = payload.event;\n switch (_a) {\n case AUTH_STATE_CHANGE_EVENT: return [3 /*break*/, 1];\n }\n return [3 /*break*/, 8];\n case 1:\n if (!payload.message) return [3 /*break*/, 7];\n if (!(payload.message === AuthState.SignedIn)) return [3 /*break*/, 6];\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, Auth.currentAuthenticatedUser()];\n case 3:\n user = _b.sent();\n authStateHandler(payload.message, user);\n return [3 /*break*/, 5];\n case 4:\n e_1 = _b.sent();\n logger.error('User is not authenticated');\n return [3 /*break*/, 5];\n case 5: return [3 /*break*/, 7];\n case 6:\n authStateHandler(payload.message, payload.data);\n _b.label = 7;\n case 7: return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n }); };\n Hub.listen(UI_AUTH_CHANNEL, authUIStateHandler);\n var unsubscribe = function () {\n // Replace user's `authStateHandler` with a noop so that we don't trigger side-effects during the async `authUIStateHandler` when unsubscribed\n authStateHandler = function () { };\n Hub.remove(UI_AUTH_CHANNEL, authUIStateHandler);\n };\n return unsubscribe;\n};\nvar isHintValid = function (field) {\n return !(field['hint'] === null || typeof field['hint'] === 'string');\n};\n// Required attributes come from https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims\nvar getRequiredAttributesMap = function () { return ({\n address: {\n label: I18n.get(Translations.ADDRESS_LABEL),\n placeholder: I18n.get(Translations.ADDRESS_PLACEHOLDER),\n },\n nickname: {\n label: I18n.get(Translations.NICKNAME_LABEL),\n placeholder: I18n.get(Translations.NICKNAME_PLACEHOLDER),\n },\n birthdate: {\n label: I18n.get(Translations.BIRTHDATE_LABEL),\n placeholder: I18n.get(Translations.BIRTHDATE_PLACEHOLDER),\n },\n phone_number: {\n label: I18n.get(Translations.PHONE_LABEL),\n placeholder: I18n.get(Translations.PHONE_PLACEHOLDER),\n },\n email: {\n lable: I18n.get(Translations.EMAIL_LABEL),\n placeholder: I18n.get(Translations.EMAIL_PLACEHOLDER),\n },\n picture: {\n label: I18n.get(Translations.PICTURE_LABEL),\n placeholder: I18n.get(Translations.PICTURE_PLACEHOLDER),\n },\n family_name: {\n label: I18n.get(Translations.FAMILY_NAME_LABEL),\n placeholder: I18n.get(Translations.FAMILY_NAME_PLACEHOLDER),\n },\n preferred_username: {\n label: I18n.get(Translations.PREFERRED_USERNAME_LABEL),\n placeholder: I18n.get(Translations.PREFERRED_USERNAME_PLACEHOLDER),\n },\n gender: {\n label: I18n.get(Translations.GENDER_LABEL),\n placeholder: I18n.get(Translations.GENDER_PLACEHOLDER),\n },\n profile: {\n label: I18n.get(Translations.PROFILE_LABEL),\n placeholder: I18n.get(Translations.PROFILE_PLACEHOLDER),\n },\n given_name: {\n label: I18n.get(Translations.GIVEN_NAME_LABEL),\n placeholder: I18n.get(Translations.GIVEN_NAME_PLACEHOLDER),\n },\n zoneinfo: {\n label: I18n.get(Translations.ZONEINFO_LABEL),\n placeholder: I18n.get(Translations.ZONEINFO_PLACEHOLDER),\n },\n locale: {\n label: I18n.get(Translations.LOCALE_LABEL),\n placeholder: I18n.get(Translations.LOCALE_PLACEHOLDER),\n },\n updated_at: {\n label: I18n.get(Translations.UPDATED_AT_LABEL),\n placeholder: I18n.get(Translations.UPDATED_AT_PLACEHOLDER),\n },\n middle_name: {\n label: I18n.get(Translations.MIDDLE_NAME_LABEL),\n placeholder: I18n.get(Translations.MIDDLE_NAME_PLACEHOLDER),\n },\n website: {\n label: I18n.get(Translations.WEBSITE_LABEL),\n placeholder: I18n.get(Translations.WEBSITE_PLACEHOLDER),\n },\n name: {\n label: I18n.get(Translations.NAME_LABEL),\n placeholder: I18n.get(Translations.NAME_PLACEHOLDER),\n },\n}); };\nfunction handlePhoneNumberChange(event, phoneNumber) {\n var name = event.target.name;\n var value = event.target.value;\n /** Cognito expects to have a string be passed when signing up. Since the Select input is separate\n * input from the phone number input, we need to first capture both components values and combined\n * them together.\n */\n if (name === COUNTRY_DIAL_CODE_SUFFIX) {\n phoneNumber.countryDialCodeValue = value;\n }\n if (name === PHONE_SUFFIX) {\n phoneNumber.phoneNumberValue = value;\n }\n}\nexport { dispatchToastHubEvent as a, composePhoneNumberInput as b, checkUsernameAlias as c, dispatchAuthStateChangeEvent as d, closestElement as e, getRequiredAttributesMap as g, handlePhoneNumberChange as h, isHintValid as i, onAuthUIStateChange as o };\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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 (_) 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 __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar NAMESPACE = 'amplify-ui-components';\nvar scopeId;\nvar contentRef;\nvar hostTagName;\nvar useNativeShadowDom = false;\nvar checkSlotFallbackVisibility = false;\nvar checkSlotRelocate = false;\nvar isSvgMode = false;\nvar queueCongestion = 0;\nvar queuePending = false;\nvar win = typeof window !== 'undefined' ? window : {};\nvar CSS = win.CSS;\nvar doc = win.document || { head: {} };\nvar plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: function (h) { return h(); },\n raf: function (h) { return requestAnimationFrame(h); },\n ael: function (el, eventName, listener, opts) { return el.addEventListener(eventName, listener, opts); },\n rel: function (el, eventName, listener, opts) { return el.removeEventListener(eventName, listener, opts); },\n};\nvar supportsShadow = /*@__PURE__*/ (function () { return (doc.head.attachShadow + '').indexOf('[native') > -1; })();\nvar promiseResolve = function (v) { return Promise.resolve(v); };\nvar supportsConstructibleStylesheets = /*@__PURE__*/ (function () {\n try {\n new CSSStyleSheet();\n return true;\n }\n catch (e) { }\n return false;\n})();\nvar addHostEventListeners = function (elm, hostRef, listeners, attachParentListeners) {\n if (listeners) {\n listeners.map(function (_a) {\n var flags = _a[0], name = _a[1], method = _a[2];\n var target = elm;\n var handler = hostListenerProxy(hostRef, method);\n var opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(function () { return plt.rel(target, name, handler, opts); });\n });\n }\n};\nvar hostListenerProxy = function (hostRef, methodName) { return function (ev) {\n {\n if (hostRef.$flags$ & 256 /* isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n}; };\n// prettier-ignore\nvar hostListenerOpts = function (flags) { return (flags & 2 /* Capture */) !== 0; };\nvar HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nvar XLINK_NS = 'http://www.w3.org/1999/xlink';\nvar createTime = function (fnName, tagName) {\n if (tagName === void 0) { tagName = ''; }\n {\n return function () {\n return;\n };\n }\n};\nvar uniqueTime = function (key, measureText) {\n {\n return function () {\n return;\n };\n }\n};\nvar rootAppliedStyles = new WeakMap();\nvar registerStyle = function (scopeId, cssText, allowCS) {\n var style = styles.get(scopeId);\n if (supportsConstructibleStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n style.replace(cssText);\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nvar addStyle = function (styleContainerNode, cmpMeta, mode, hostElm) {\n var scopeId = getScopeId(cmpMeta);\n var style = styles.get(scopeId);\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n var appliedStyles = rootAppliedStyles.get(styleContainerNode);\n var styleElm = void 0;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n {\n if (plt.$cssShim$) {\n styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, !!(cmpMeta.$flags$ & 10 /* needsScopedEncapsulation */));\n var newScopeId = styleElm['s-sc'];\n if (newScopeId) {\n scopeId = newScopeId;\n // we don't want to add this styleID to the appliedStyles Set\n // since the cssVarShim might need to apply several different\n // stylesheets for the same component\n appliedStyles = null;\n }\n }\n else {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = __spreadArrays(styleContainerNode.adoptedStyleSheets, [style]);\n }\n }\n return scopeId;\n};\nvar attachStyles = function (hostRef) {\n var cmpMeta = hostRef.$cmpMeta$;\n var elm = hostRef.$hostElement$;\n var flags = cmpMeta.$flags$;\n var endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n var scopeId = addStyle(supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm);\n if (flags & 10 /* needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (flags & 2 /* scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nvar getScopeId = function (cmp, mode) { return 'sc-' + (cmp.$tagName$); };\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nvar EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nvar SVG_NS = 'http://www.w3.org/2000/svg';\nvar HTML_NS = 'http://www.w3.org/1999/xhtml';\nvar isDef = function (v) { return v != null; };\nvar isComplexType = function (o) {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// const stack: any[] = [];\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nvar h = function (nodeName, vnodeData) {\n var children = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n children[_i - 2] = arguments[_i];\n }\n var child = null;\n var key = null;\n var slotName = null;\n var simple = false;\n var lastSimple = false;\n var vNodeChildren = [];\n var walk = function (c) {\n for (var i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n // normalize class / classname attributes\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\n var classData_1 = vnodeData.className || vnodeData.class;\n if (classData_1) {\n vnodeData.class =\n typeof classData_1 !== 'object'\n ? classData_1\n : Object.keys(classData_1)\n .filter(function (k) { return classData_1[k]; })\n .join(' ');\n }\n }\n }\n var vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nvar newVNode = function (tag, text) {\n var vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\n vnode.$name$ = null;\n }\n return vnode;\n};\nvar Host = {};\nvar isHost = function (node) { return node && node.$tag$ === Host; };\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nvar setAccessor = function (elm, memberName, oldValue, newValue, isSvg, flags) {\n if (oldValue !== newValue) {\n var isProp = isMemberInElement(elm, memberName);\n var ln = memberName.toLowerCase();\n if (memberName === 'class') {\n var classList = elm.classList;\n var oldClasses_1 = parseClassList(oldValue);\n var newClasses_1 = parseClassList(newValue);\n classList.remove.apply(classList, oldClasses_1.filter(function (c) { return c && !newClasses_1.includes(c); }));\n classList.add.apply(classList, newClasses_1.filter(function (c) { return c && !oldClasses_1.includes(c); }));\n }\n else if (memberName === 'style') {\n // update style attribute, css properties and values\n {\n for (var prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (var prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (memberName === 'key')\n ;\n else if (memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if ((!isProp) && memberName[0] === 'o' && memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // // listens for \"click\"\n // // listens for \"Click\"\n // // listens for \"ionChange\"\n // // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else {\n // Set property if it exists and it's not a SVG\n var isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n var n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n // tslint:disable-next-line: triple-equals\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in \n * - if the newValue is null/undefined or 'false'.\n */\n var xlink = false;\n {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nvar parseClassListRegex = /\\s/;\nvar parseClassList = function (value) { return (!value ? [] : value.split(parseClassListRegex)); };\nvar updateElement = function (oldVnode, newVnode, isSvgMode, memberName) {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n var elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n var oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n var newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\nvar createElm = function (oldParentVNode, newParentVNode, childIndex, parentElm) {\n // tslint:disable-next-line: prefer-const\n var newVNode = newParentVNode.$children$[childIndex];\n var i = 0;\n var elm;\n var childNode;\n var oldVNode;\n if (!useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* isSlotFallback */\n : // slot element does not have fallback content\n 1 /* isSlotReference */;\n }\n }\n if (newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (newVNode.$flags$ & 1 /* isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ = doc.createTextNode('');\n }\n else {\n if (!isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */ ? 'slot-fb' : newVNode.$tag$));\n if (isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n {\n updateElement(null, newVNode, isSvgMode);\n }\n if (isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting element\n isSvgMode = true;\n }\n }\n }\n {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nvar putBackInOriginalLocation = function (parentElm, recursive) {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n var oldSlotChildNodes = parentElm.childNodes;\n for (var i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n var childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n};\nvar addVnodes = function (parentElm, before, parentVNode, vnodes, startIdx, endIdx) {\n var containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n var childNode;\n if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, referenceNode(before));\n }\n }\n }\n};\nvar removeVnodes = function (vnodes, startIdx, endIdx, vnode, elm) {\n for (; startIdx <= endIdx; ++startIdx) {\n if ((vnode = vnodes[startIdx])) {\n elm = vnode.$elm$;\n callNodeRefs(vnode);\n {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n};\nvar updateChildren = function (parentElm, oldCh, newVNode, newCh) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var idxInOld = 0;\n var i = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var node;\n var elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // Vnode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // Vnode moved right\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // Vnode moved left\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // createKeyToOldIdx\n idxInOld = -1;\n {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (idxInOld >= 0) {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // new element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = function (vnode1, vnode2) {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (vnode1.$tag$ === vnode2.$tag$) {\n if (vnode1.$tag$ === 'slot') {\n return vnode1.$name$ === vnode2.$name$;\n }\n {\n return vnode1.$key$ === vnode2.$key$;\n }\n }\n return false;\n};\nvar referenceNode = function (node) {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nvar parentReferenceNode = function (node) { return (node['s-ol'] ? node['s-ol'] : node).parentNode; };\nvar patch = function (oldVNode, newVNode) {\n var elm = (newVNode.$elm$ = oldVNode.$elm$);\n var oldChildren = oldVNode.$children$;\n var newChildren = newVNode.$children$;\n var tag = newVNode.$tag$;\n var text = newVNode.$text$;\n var defaultHolder;\n if (text === null) {\n {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n // element node\n {\n if (tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if ((defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nvar updateFallbackSlotVisibility = function (elm) {\n // tslint:disable-next-line: prefer-const\n var childNodes = elm.childNodes;\n var childNode;\n var i;\n var ilen;\n var j;\n var slotNameAttr;\n var nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n if (childNodes[j]['s-hn'] !== childNode['s-hn']) {\n // this sibling node is from a different component\n nodeType = childNodes[j].nodeType;\n if (slotNameAttr !== '') {\n // this is a named fallback slot node\n if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* ElementNode */ || (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nvar relocateNodes = [];\nvar relocateSlotContent = function (elm) {\n // tslint:disable-next-line: prefer-const\n var childNode;\n var node;\n var hostContentNodes;\n var slotNameAttr;\n var relocateNodeData;\n var j;\n var i = 0;\n var childNodes = elm.childNodes;\n var ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr'])) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find(function (r) { return r.$nodeToRelocate$ === node; });\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map(function (relocateNode) {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find(function (r) { return r.$nodeToRelocate$ === node; });\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some(function (r) { return r.$nodeToRelocate$ === node; })) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nvar isNodeLocatedInSlot = function (nodeToRelocate, slotNameAttr) {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\nvar callNodeRefs = function (vNode) {\n {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(callNodeRefs);\n }\n};\nvar renderVdom = function (hostRef, renderFnResults) {\n var hostElm = hostRef.$hostElement$;\n var cmpMeta = hostRef.$cmpMeta$;\n var oldVNode = hostRef.$vnode$ || newVNode(null, null);\n var rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (hostElm.shadowRoot || hostElm);\n {\n scopeId = hostElm['s-sc'];\n }\n {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n var relocateData = void 0;\n var nodeToRelocate = void 0;\n var orgLocationNode = void 0;\n var parentNodeRef = void 0;\n var insertBeforeNode = void 0;\n var refNode = void 0;\n var i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode = doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) || nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\nvar getElement = function (ref) { return (getHostRef(ref).$hostElement$); };\nvar createEvent = function (ref, name, flags) {\n var elm = getElement(ref);\n return {\n emit: function (detail) {\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* Bubbles */),\n composed: !!(flags & 2 /* Composed */),\n cancelable: !!(flags & 1 /* Cancellable */),\n detail: detail,\n });\n },\n };\n};\nvar emitEvent = function (elm, name, opts) {\n var ev = new (CustomEvent)(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nvar attachToAncestor = function (hostRef, ancestorComponent) {\n if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise(function (r) { return (hostRef.$onRenderResolve$ = r); }));\n }\n};\nvar scheduleUpdate = function (hostRef, isInitialLoad) {\n {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestorc omponent or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n var dispatch = function () { return dispatchHooks(hostRef, isInitialLoad); };\n return writeTask(dispatch);\n};\nvar dispatchHooks = function (hostRef, isInitialLoad) {\n var endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n var instance = hostRef.$lazyInstance$;\n var promise;\n if (isInitialLoad) {\n {\n hostRef.$flags$ |= 256 /* isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(function (_a) {\n var methodName = _a[0], event = _a[1];\n return safeCall(instance, methodName, event);\n });\n hostRef.$queuedListeners$ = null;\n }\n }\n {\n promise = safeCall(instance, 'componentWillLoad');\n }\n }\n endSchedule();\n return then(promise, function () { return updateComponent(hostRef, instance, isInitialLoad); });\n};\nvar updateComponent = function (hostRef, instance, isInitialLoad) {\n // updateComponent\n var elm = hostRef.$hostElement$;\n var endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n var rc = elm['s-rc'];\n if (isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n var endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n {\n {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n renderVdom(hostRef, callRender(hostRef, instance));\n }\n }\n if (plt.$cssShim$) {\n plt.$cssShim$.updateHost(elm);\n }\n if (rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map(function (cb) { return cb(); });\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n {\n var childrenPromises = elm['s-p'];\n var postUpdate = function () { return postUpdateComponent(hostRef); };\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n};\nvar callRender = function (hostRef, instance) {\n try {\n instance = instance.render();\n {\n hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n }\n catch (e) {\n consoleError(e);\n }\n return instance;\n};\nvar postUpdateComponent = function (hostRef) {\n var tagName = hostRef.$cmpMeta$.$tagName$;\n var elm = hostRef.$hostElement$;\n var endPostUpdate = createTime('postUpdate', tagName);\n var instance = hostRef.$lazyInstance$;\n var ancestorComponent = hostRef.$ancestorComponent$;\n {\n safeCall(instance, 'componentDidRender');\n }\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n {\n safeCall(instance, 'componentDidLoad');\n }\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n }\n else {\n endPostUpdate();\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* needsRerender */) {\n nextTick(function () { return scheduleUpdate(hostRef, false); });\n }\n hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nvar forceUpdate = function (ref) {\n {\n var hostRef = getHostRef(ref);\n var isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n};\nvar appDidLoad = function (who) {\n // on appload\n // we have finish the first big initial render\n {\n addHydratedFlag(doc.documentElement);\n }\n {\n plt.$flags$ |= 2 /* appLoaded */;\n }\n nextTick(function () { return emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }); });\n};\nvar safeCall = function (instance, method, arg) {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nvar then = function (promise, thenFn) {\n return promise && promise.then ? promise.then(thenFn) : thenFn();\n};\nvar addHydratedFlag = function (elm) { return (elm.classList.add('hydrated')); };\nvar parsePropertyValue = function (propValue, propType) {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (propType & 2 /* Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (propType & 1 /* String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nvar getValue = function (ref, propName) { return getHostRef(ref).$instanceValues$.get(propName); };\nvar setValue = function (ref, propName, newVal, cmpMeta) {\n // check our new property value against our internal value\n var hostRef = getHostRef(ref);\n var oldVal = hostRef.$instanceValues$.get(propName);\n var flags = hostRef.$flags$;\n var instance = hostRef.$lazyInstance$;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n if ((!(flags & 8 /* isConstructingInstance */) || oldVal === undefined) && newVal !== oldVal) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (instance) {\n // get an array of method names of watch functions to call\n if (cmpMeta.$watchers$) {\n if (flags & 128 /* isWatchReady */) {\n var watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map(function (watchMethodName) {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e);\n }\n });\n }\n }\n }\n if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\nvar proxyComponent = function (Cstr, cmpMeta, flags) {\n if (cmpMeta.$members$) {\n if (Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n var members = Object.entries(cmpMeta.$members$);\n var prototype_1 = Cstr.prototype;\n members.map(function (_a) {\n var memberName = _a[0], memberFlags = _a[1][0];\n if ((memberFlags & 31 /* Prop */ || ((flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype_1, memberName, {\n get: function () {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set: function (newValue) {\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n });\n if ((flags & 1 /* isElementConstructor */)) {\n var attrNameToPropName_1 = new Map();\n prototype_1.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n var _this = this;\n plt.jmp(function () {\n var propName = attrNameToPropName_1.get(attrName);\n _this[propName] = newValue === null && typeof _this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(function (_a) {\n var _ = _a[0], m = _a[1];\n return m[0] & 15;\n } /* HasAttribute */) // filter to only keep props that should match attributes\n .map(function (_a) {\n var propName = _a[0], m = _a[1];\n var attrName = m[1] || propName;\n attrNameToPropName_1.set(attrName, propName);\n return attrName;\n });\n }\n }\n return Cstr;\n};\nvar initializeComponent = function (elm, hostRef, cmpMeta, hmrVersionId, Cstr) { return __awaiter(void 0, void 0, void 0, function () {\n var endLoad, endNewInstance, style_1, scopeId_1, endRegisterStyles, ancestorComponent, schedule;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0)) return [3 /*break*/, 5];\n // we haven't initialized this element yet\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta);\n if (!Cstr.then) return [3 /*break*/, 2];\n endLoad = uniqueTime();\n return [4 /*yield*/, Cstr];\n case 1:\n Cstr = _a.sent();\n endLoad();\n _a.label = 2;\n case 2:\n if (!Cstr.isProxied) {\n // we'eve never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);\n Cstr.isProxied = true;\n }\n endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n {\n hostRef.$flags$ |= 8 /* isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n {\n hostRef.$flags$ &= ~8 /* isConstructingInstance */;\n }\n {\n hostRef.$flags$ |= 128 /* isWatchReady */;\n }\n endNewInstance();\n if (!Cstr.style) return [3 /*break*/, 5];\n style_1 = Cstr.style;\n scopeId_1 = getScopeId(cmpMeta);\n if (!!styles.has(scopeId_1)) return [3 /*break*/, 5];\n endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n if (!(cmpMeta.$flags$ & 8) /* needsShadowDomShim */) return [3 /*break*/, 4]; /* needsShadowDomShim */\n return [4 /*yield*/, import('./shadow-css-360bb6da.js').then(function (m) { return m.scopeCss(style_1, scopeId_1, false); })];\n case 3:\n style_1 = _a.sent();\n _a.label = 4;\n case 4:\n registerStyle(scopeId_1, style_1, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));\n endRegisterStyles();\n _a.label = 5;\n case 5:\n ancestorComponent = hostRef.$ancestorComponent$;\n schedule = function () { return scheduleUpdate(hostRef, true); };\n if (ancestorComponent && ancestorComponent['s-rc']) {\n // this is the intial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n return [2 /*return*/];\n }\n });\n}); };\nvar connectedCallback = function (elm) {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n var hostRef = getHostRef(elm);\n var cmpMeta = hostRef.$cmpMeta$;\n var endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* hasConnected */;\n {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if ((cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n var ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if (ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(function (_a) {\n var memberName = _a[0], memberFlags = _a[1][0];\n if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {\n var value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n }\n endConnected();\n }\n};\nvar setContentReference = function (elm) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n var contentRefElm = (elm['s-cr'] = doc.createComment(''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nvar disconnectedCallback = function (elm) {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n var hostRef = getHostRef(elm);\n var instance = hostRef.$lazyInstance$;\n {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map(function (rmListener) { return rmListener(); });\n hostRef.$rmListeners$ = undefined;\n }\n }\n // clear CSS var-shim tracking\n if (plt.$cssShim$) {\n plt.$cssShim$.removeHost(elm);\n }\n {\n safeCall(instance, 'disconnectedCallback');\n }\n }\n};\nvar bootstrapLazy = function (lazyBundles, options) {\n if (options === void 0) { options = {}; }\n var endBootstrap = createTime();\n var cmpTags = [];\n var exclude = options.exclude || [];\n var customElements = win.customElements;\n var head = doc.head;\n var metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n var visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n var deferredConnectedCallbacks = [];\n var appLoadFallback;\n var isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* queueSync */;\n }\n }\n lazyBundles.map(function (lazyBundle) { return lazyBundle[1].map(function (compactMeta) {\n var cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n {\n cmpMeta.$watchers$ = {};\n }\n if (!supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;\n }\n var tagName = cmpMeta.$tagName$;\n var HostElement = /** @class */ (function (_super) {\n __extends(HostElement, _super);\n // StencilLazyHost\n function HostElement(self) {\n var _this = \n // @ts-ignore\n _super.call(this, self) || this;\n self = _this;\n registerHost(self, cmpMeta);\n if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n if (supportsShadow) {\n {\n self.attachShadow({ mode: 'open' });\n }\n }\n else if (!('shadowRoot' in self)) {\n self.shadowRoot = self;\n }\n }\n return _this;\n }\n HostElement.prototype.connectedCallback = function () {\n var _this = this;\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(function () { return connectedCallback(_this); });\n }\n };\n HostElement.prototype.disconnectedCallback = function () {\n var _this = this;\n plt.jmp(function () { return disconnectedCallback(_this); });\n };\n HostElement.prototype.forceUpdate = function () {\n forceUpdate(this);\n };\n HostElement.prototype.componentOnReady = function () {\n return getHostRef(this).$onReadyPromise$;\n };\n return HostElement;\n }(HTMLElement));\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */));\n }\n }); });\n {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map(function (host) { return host.connectedCallback(); });\n }\n else {\n {\n plt.jmp(function () { return (appLoadFallback = setTimeout(appDidLoad, 30)); });\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nvar hostRefs = new WeakMap();\nvar getHostRef = function (ref) { return hostRefs.get(ref); };\nvar registerInstance = function (lazyInstance, hostRef) { return hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef); };\nvar registerHost = function (elm, cmpMeta) {\n var hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n {\n hostRef.$onReadyPromise$ = new Promise(function (r) { return (hostRef.$onReadyResolve$ = r); });\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n return hostRefs.set(elm, hostRef);\n};\nvar isMemberInElement = function (elm, memberName) { return memberName in elm; };\nvar consoleError = function (e) { return console.error(e); };\nvar cmpModules = /*@__PURE__*/ new Map();\nvar loadModule = function (cmpMeta, hostRef, hmrVersionId) {\n // loadModuleImport\n var exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n var bundleId = cmpMeta.$lazyBundleId$;\n var module = cmpModules.get(bundleId);\n if (module) {\n return module[exportName];\n }\n return import(\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n \"./\" + bundleId + \".entry.js\" + '').then(function (importedModule) {\n {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nvar styles = new Map();\nvar queueDomReads = [];\nvar queueDomWrites = [];\nvar queueDomWritesLow = [];\nvar queueTask = function (queue, write) { return function (cb) {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n}; };\nvar consume = function (queue) {\n for (var i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nvar consumeTimeout = function (queue, timeout) {\n var i = 0;\n var ts = 0;\n while (i < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i++](ts);\n }\n catch (e) {\n consoleError(e);\n }\n }\n if (i === queue.length) {\n queue.length = 0;\n }\n else if (i !== 0) {\n queue.splice(0, i);\n }\n};\nvar flush = function () {\n {\n queueCongestion++;\n }\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n {\n var timeout = (plt.$flags$ & 6 /* queueMask */) === 2 /* appLoaded */ ? performance.now() + 14 * Math.ceil(queueCongestion * (1.0 / 10.0)) : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push.apply(queueDomWritesLow, queueDomWrites);\n queueDomWrites.length = 0;\n }\n if ((queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n else {\n queueCongestion = 0;\n }\n }\n};\nvar nextTick = /*@__PURE__*/ function (cb) { return promiseResolve().then(cb); };\nvar writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\nexport { CSS as C, Host as H, NAMESPACE as N, promiseResolve as a, bootstrapLazy as b, createEvent as c, doc as d, getElement as g, h, plt as p, registerInstance as r, win as w };\n","var AccessLevel;\n(function (AccessLevel) {\n AccessLevel[\"Public\"] = \"public\";\n AccessLevel[\"Private\"] = \"private\";\n AccessLevel[\"Protected\"] = \"protected\";\n})(AccessLevel || (AccessLevel = {}));\nexport { AccessLevel as A };\n","export function applyPolyfills() {\n var promises = [];\n if (typeof window !== 'undefined') {\n var win = window;\n\n if (!win.customElements ||\n (win.Element && (!win.Element.prototype.closest || !win.Element.prototype.matches || !win.Element.prototype.remove || !win.Element.prototype.getRootNode))) {\n promises.push(import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js'));\n }\n\n function checkIfURLIsSupported() {\n try {\n var u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n return (u.href === 'http://a/c%20d') && u.searchParams;\n } catch (e) {\n return false;\n }\n }\n\n if (\n 'function' !== typeof Object.assign || !Object.entries ||\n !Array.prototype.find || !Array.prototype.includes ||\n !String.prototype.startsWith || !String.prototype.endsWith ||\n (win.NodeList && !win.NodeList.prototype.forEach) ||\n !win.fetch ||\n !checkIfURLIsSupported() ||\n typeof WeakMap == 'undefined'\n ) {\n promises.push(import(/* webpackChunkName: \"polyfills-core-js\" */ './core-js.js'));\n }\n }\n return Promise.all(promises);\n}\n","import { C as CSS, p as plt, w as win, a as promiseResolve, d as doc, N as NAMESPACE } from './index-83f2275b.js';\nimport { browserOrNode } from '@aws-amplify/core';\n/*\n Stencil Client Patch v1.15.0 | MIT Licensed | https://stenciljs.com\n */\nvar getDynamicImportFunction = function (namespace) { return \"__sc_import_\" + namespace.replace(/\\s|-/g, '_'); };\nvar patchEsm = function () {\n // NOTE!! This fn cannot use async/await!\n // @ts-ignore\n if (!(CSS && CSS.supports && CSS.supports('color', 'var(--c)'))) {\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-css-shim\" */ './css-shim-3b0ed064.js').then(function () {\n if ((plt.$cssShim$ = win.__cssshim)) {\n return plt.$cssShim$.i();\n }\n else {\n // for better minification\n return 0;\n }\n });\n }\n return promiseResolve();\n};\nvar patchBrowser = function () {\n {\n // shim css vars\n plt.$cssShim$ = win.__cssshim;\n }\n // @ts-ignore\n var scriptElm = Array.from(doc.querySelectorAll('script')).find(function (s) { return new RegExp(\"/\" + NAMESPACE + \"(\\\\.esm)?\\\\.js($|\\\\?|#)\").test(s.src) || s.getAttribute('data-stencil-namespace') === NAMESPACE; });\n var opts = scriptElm['data-opts'] || {};\n if ('onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then: function () {\n /* promise noop */\n },\n };\n }\n {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n if (!win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom-3fa9e65e.js').then(function () { return opts; });\n }\n }\n return promiseResolve(opts);\n};\nvar patchDynamicImport = function (base, orgScriptElm) {\n var importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', \"return import(w);//\" + Math.random());\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n var moduleMap_1 = new Map();\n win[importFunctionName] = function (src) {\n var url = new URL(src, base).href;\n var mod = moduleMap_1.get(url);\n if (!mod) {\n var script_1 = doc.createElement('script');\n script_1.type = 'module';\n script_1.crossOrigin = orgScriptElm.crossOrigin;\n script_1.src = URL.createObjectURL(new Blob([\"import * as m from '\" + url + \"'; window.\" + importFunctionName + \".m = m;\"], { type: 'application/javascript' }));\n mod = new Promise(function (resolve) {\n script_1.onload = function () {\n resolve(win[importFunctionName].m);\n script_1.remove();\n };\n });\n moduleMap_1.set(url, mod);\n doc.head.appendChild(script_1);\n }\n return mod;\n };\n }\n};\n/* eslint-disable */\nif (browserOrNode().isBrowser) {\n var customStyles = document.createElement('style');\n customStyles.appendChild(document.createTextNode(\"\\n :root {\\n /* Typography */\\n --amplify-font-family: 'Amazon Ember', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\\n\\n --amplify-text-xxs: 0.75rem;\\n --amplify-text-xs: 0.81rem;\\n --amplify-text-sm: 0.875rem;\\n --amplify-text-md: 1rem;\\n --amplify-text-md-sub: 1.15rem;\\n --amplify-text-lg: 1.5rem;\\n --amplify-text-xl: 2rem;\\n --amplify-text-xxl: 2.5rem;\\n\\n /* Colors */\\n --amplify-primary-color: #ff9900;\\n --amplify-primary-contrast: var(--amplify-white);\\n --amplify-primary-tint: #ffac31;\\n --amplify-primary-shade: #e88b01;\\n\\n --amplify-secondary-color: #152939;\\n --amplify-secondary-contrast: var(--amplify-white);\\n --amplify-secondary-tint: #31465f;\\n --amplify-secondary-shade: #1F2A37;\\n\\n --amplify-tertiary-color: #5d8aff;\\n --amplify-tertiary-contrast: var(--amplify-white);\\n --amplify-tertiary-tint: #7da1ff;\\n --amplify-tertiary-shade: #537BE5;\\n\\n --amplify-background-color: var(--amplify-white);\\n\\n /* Neutral */\\n --amplify-grey: #828282;\\n --amplify-light-grey: #c4c4c4;\\n --amplify-white: #ffffff;\\n --amplify-smoke-white: #f5f5f5;\\n --amplify-red: #dd3f5b;\\n --amplify-blue: #099ac8;\\n }\\n \"));\n var parentElement = document.getElementsByTagName('head')[0];\n var firstChild = parentElement.firstChild;\n parentElement.insertBefore(customStyles, firstChild);\n}\nexport { patchEsm as a, patchBrowser as p };\n","import { b as bootstrapLazy } from './index-83f2275b.js';\nimport { a as patchEsm } from './theme-19a9209a.js';\nimport '@aws-amplify/core';\nvar defineCustomElements = function (win, options) {\n if (typeof window === 'undefined')\n return Promise.resolve();\n return patchEsm().then(function () {\n return bootstrapLazy([[\"amplify-icon\", [[2, \"amplify-icon\", { \"name\": [1] }]]], [\"amplify-authenticator\", [[1, \"amplify-authenticator\", { \"initialAuthState\": [1, \"initial-auth-state\"], \"federated\": [16], \"usernameAlias\": [1, \"username-alias\"], \"handleAuthStateChange\": [16], \"hideToast\": [4, \"hide-toast\"], \"authState\": [32], \"authData\": [32], \"toastMessage\": [32] }]]], [\"amplify-federated-sign-in\", [[1, \"amplify-federated-sign-in\", { \"authState\": [1, \"auth-state\"], \"federated\": [8] }]]], [\"amplify-select-mfa-type\", [[1, \"amplify-select-mfa-type\", { \"MFATypes\": [16], \"authData\": [16], \"handleSubmit\": [16], \"TOTPSetup\": [32], \"selectMessage\": [32], \"MFAMethod\": [32], \"isTOTP\": [32], \"isNoMFA\": [32], \"isSMS\": [32], \"loading\": [32], \"isToastVisible\": [32] }]]], [\"amplify-s3-image-picker\", [[4, \"amplify-s3-image-picker\", { \"path\": [1], \"contentType\": [1, \"content-type\"], \"level\": [1], \"track\": [4], \"identityId\": [1, \"identity-id\"], \"fileToKey\": [16], \"headerTitle\": [1, \"header-title\"], \"headerHint\": [1, \"header-hint\"], \"placeholderHint\": [1, \"placeholder-hint\"], \"buttonText\": [1, \"button-text\"], \"src\": [32] }]]], [\"amplify-chatbot\", [[1, \"amplify-chatbot\", { \"botName\": [1, \"bot-name\"], \"clearOnComplete\": [4, \"clear-on-complete\"], \"conversationModeOn\": [4, \"conversation-mode-on\"], \"welcomeMessage\": [1, \"welcome-message\"], \"botTitle\": [1, \"bot-title\"], \"voiceEnabled\": [4, \"voice-enabled\"], \"textEnabled\": [4, \"text-enabled\"], \"silenceTime\": [2, \"silence-time\"], \"silenceThreshold\": [2, \"silence-threshold\"], \"messages\": [32], \"text\": [32], \"chatState\": [32], \"error\": [32] }, [[0, \"formSubmit\", \"submitHandler\"]]]]], [\"amplify-greetings\", [[1, \"amplify-greetings\", { \"username\": [1], \"logo\": [16], \"handleAuthStateChange\": [16] }]]], [\"amplify-s3-album\", [[1, \"amplify-s3-album\", { \"path\": [1], \"contentType\": [1, \"content-type\"], \"level\": [1], \"track\": [4], \"identityId\": [1, \"identity-id\"], \"fileToKey\": [16], \"filter\": [16], \"sort\": [16], \"picker\": [4], \"handleOnLoad\": [16], \"handleOnError\": [16], \"pickerText\": [1, \"picker-text\"], \"albumItems\": [32] }]]], [\"amplify-s3-text-picker\", [[1, \"amplify-s3-text-picker\", { \"path\": [1], \"contentType\": [1, \"content-type\"], \"level\": [1], \"track\": [4], \"identityId\": [1, \"identity-id\"], \"fileToKey\": [16], \"fallbackText\": [1, \"fallback-text\"], \"src\": [32] }]]], [\"amplify-icon-button\", [[1, \"amplify-icon-button\", { \"name\": [1], \"tooltip\": [1], \"autoShowTooltip\": [4, \"auto-show-tooltip\"] }]]], [\"amplify-checkbox\", [[1, \"amplify-checkbox\", { \"name\": [1], \"value\": [1], \"fieldId\": [1, \"field-id\"], \"label\": [1], \"checked\": [4], \"disabled\": [4] }]]], [\"amplify-auth-container\", [[4, \"amplify-auth-container\"]]], [\"amplify-container\", [[4, \"amplify-container\"]]], [\"amplify-link\", [[1, \"amplify-link\", { \"role\": [1] }]]], [\"amplify-photo-picker\", [[1, \"amplify-photo-picker\", { \"headerTitle\": [1, \"header-title\"], \"headerHint\": [1, \"header-hint\"], \"placeholderHint\": [1, \"placeholder-hint\"], \"buttonText\": [1, \"button-text\"], \"previewSrc\": [1, \"preview-src\"], \"handleClick\": [16], \"previewState\": [32], \"file\": [32] }]]], [\"amplify-s3-image\", [[1, \"amplify-s3-image\", { \"imgKey\": [1, \"img-key\"], \"path\": [1], \"alt\": [1], \"body\": [16], \"contentType\": [1, \"content-type\"], \"level\": [1], \"track\": [4], \"identityId\": [1, \"identity-id\"], \"handleOnLoad\": [16], \"handleOnError\": [16], \"imgProps\": [16], \"src\": [32] }]]], [\"amplify-s3-text\", [[1, \"amplify-s3-text\", { \"textKey\": [1, \"text-key\"], \"path\": [1], \"body\": [16], \"contentType\": [1, \"content-type\"], \"level\": [1], \"track\": [4], \"identityId\": [1, \"identity-id\"], \"fallbackText\": [1, \"fallback-text\"], \"src\": [32] }]]], [\"amplify-tooltip\", [[1, \"amplify-tooltip\", { \"text\": [1], \"shouldAutoShow\": [4, \"should-auto-show\"] }]]], [\"amplify-nav_2\", [[1, \"amplify-sign-out\", { \"handleAuthStateChange\": [16], \"buttonText\": [1, \"button-text\"] }], [1, \"amplify-nav\"]]], [\"amplify-picker\", [[1, \"amplify-picker\", { \"pickerText\": [1, \"picker-text\"], \"acceptValue\": [1, \"accept-value\"], \"inputHandler\": [16] }]]], [\"amplify-federated-buttons_2\", [[6, \"amplify-strike\"], [1, \"amplify-federated-buttons\", { \"authState\": [1, \"auth-state\"], \"federated\": [16], \"handleAuthStateChange\": [16] }]]], [\"amplify-form-field_4\", [[4, \"amplify-form-field\", { \"fieldId\": [1, \"field-id\"], \"label\": [1], \"description\": [1], \"hint\": [1], \"type\": [1], \"required\": [4], \"handleInputChange\": [16], \"placeholder\": [1], \"name\": [1], \"value\": [1], \"inputProps\": [16], \"disabled\": [4] }], [1, \"amplify-hint\"], [0, \"amplify-input\", { \"fieldId\": [1, \"field-id\"], \"description\": [1], \"type\": [1], \"handleInputChange\": [16], \"placeholder\": [1], \"name\": [1], \"value\": [1], \"inputProps\": [16], \"disabled\": [4], \"required\": [4], \"autoCompleted\": [32] }], [4, \"amplify-label\", { \"htmlFor\": [1, \"html-for\"] }]]], [\"amplify-auth-fields_9\", [[0, \"amplify-auth-fields\", { \"formFields\": [16] }], [0, \"amplify-phone-field\", { \"fieldId\": [1, \"field-id\"], \"label\": [1], \"placeholder\": [1], \"hint\": [1], \"required\": [4], \"handleInputChange\": [16], \"value\": [1], \"inputProps\": [16], \"disabled\": [4], \"dialCode\": [8, \"dial-code\"] }], [0, \"amplify-code-field\", { \"fieldId\": [1, \"field-id\"], \"label\": [1], \"placeholder\": [1], \"hint\": [1], \"required\": [4], \"handleInputChange\": [16], \"value\": [1], \"inputProps\": [16], \"disabled\": [4] }], [0, \"amplify-email-field\", { \"fieldId\": [1, \"field-id\"], \"label\": [1], \"placeholder\": [1], \"required\": [4], \"handleInputChange\": [16], \"value\": [1], \"inputProps\": [16], \"disabled\": [4], \"hint\": [1] }], [0, \"amplify-password-field\", { \"fieldId\": [1, \"field-id\"], \"label\": [1], \"placeholder\": [1], \"hint\": [1], \"required\": [4], \"handleInputChange\": [16], \"value\": [1], \"inputProps\": [16], \"disabled\": [4] }], [0, \"amplify-username-field\", { \"fieldId\": [1, \"field-id\"], \"label\": [1], \"placeholder\": [1], \"required\": [4], \"handleInputChange\": [16], \"value\": [1], \"inputProps\": [16], \"disabled\": [4], \"hint\": [1] }], [1, \"amplify-country-dial-code\", { \"fieldId\": [1, \"field-id\"], \"options\": [16], \"handleInputChange\": [16], \"dialCode\": [8, \"dial-code\"] }], [1, \"amplify-select\", { \"options\": [16], \"fieldId\": [1, \"field-id\"], \"handleInputChange\": [16], \"selected\": [8] }], [4, \"amplify-form-section\", { \"handleSubmit\": [16], \"submitButtonText\": [1, \"submit-button-text\"], \"headerText\": [1, \"header-text\"], \"testDataPrefix\": [1, \"test-data-prefix\"], \"loading\": [4], \"secondaryFooterContent\": [1, \"secondary-footer-content\"] }, [[0, \"formSubmit\", \"handleFormSubmit\"]]]]], [\"amplify-radio-button_3\", [[1, \"amplify-totp-setup\", { \"user\": [16], \"handleAuthStateChange\": [16], \"headerText\": [1, \"header-text\"], \"issuer\": [1], \"handleComplete\": [16], \"standalone\": [4], \"code\": [32], \"setupMessage\": [32], \"qrCodeImageSource\": [32], \"qrCodeInput\": [32], \"loading\": [32] }], [0, \"amplify-radio-button\", { \"handleInputChange\": [16], \"name\": [1], \"value\": [1], \"placeholder\": [1], \"fieldId\": [1, \"field-id\"], \"label\": [1], \"checked\": [4], \"disabled\": [4], \"inputProps\": [16] }], [1, \"amplify-toast\", { \"handleClose\": [16], \"message\": [1] }]]], [\"amplify-sign-in-button\", [[6, \"amplify-sign-in-button\", { \"provider\": [1] }]]], [\"amplify-amazon-button_5\", [[1, \"amplify-amazon-button\", { \"clientId\": [1, \"client-id\"], \"handleAuthStateChange\": [16] }], [1, \"amplify-auth0-button\", { \"config\": [16], \"handleAuthStateChange\": [16] }], [1, \"amplify-facebook-button\", { \"appId\": [1, \"app-id\"], \"handleAuthStateChange\": [16] }], [1, \"amplify-google-button\", { \"handleAuthStateChange\": [16], \"clientId\": [1, \"client-id\"] }], [1, \"amplify-oauth-button\", { \"config\": [16] }]]], [\"amplify-button_3\", [[1, \"amplify-loading-spinner\"], [4, \"amplify-section\", { \"role\": [1] }], [4, \"amplify-button\", { \"type\": [1], \"variant\": [1], \"handleButtonClick\": [16], \"disabled\": [4], \"icon\": [1] }]]], [\"amplify-confirm-sign-in_7\", [[1, \"amplify-sign-in\", { \"handleSubmit\": [16], \"headerText\": [1, \"header-text\"], \"submitButtonText\": [1, \"submit-button-text\"], \"federated\": [16], \"handleAuthStateChange\": [16], \"usernameAlias\": [1, \"username-alias\"], \"formFields\": [16], \"hideSignUp\": [4, \"hide-sign-up\"], \"loading\": [32], \"signInAttributes\": [32] }], [1, \"amplify-confirm-sign-in\", { \"handleSubmit\": [16], \"headerText\": [1, \"header-text\"], \"submitButtonText\": [1, \"submit-button-text\"], \"handleAuthStateChange\": [16], \"formFields\": [16], \"user\": [16], \"mfaOption\": [32], \"loading\": [32], \"code\": [32] }], [1, \"amplify-confirm-sign-up\", { \"handleSubmit\": [16], \"headerText\": [1, \"header-text\"], \"submitButtonText\": [1, \"submit-button-text\"], \"formFields\": [16], \"handleAuthStateChange\": [16], \"user\": [16], \"usernameAlias\": [1, \"username-alias\"], \"code\": [32], \"loading\": [32], \"userInput\": [32] }], [1, \"amplify-forgot-password\", { \"headerText\": [1, \"header-text\"], \"sendButtonText\": [1, \"send-button-text\"], \"submitButtonText\": [1, \"submit-button-text\"], \"formFields\": [16], \"handleSend\": [16], \"handleSubmit\": [16], \"handleAuthStateChange\": [16], \"usernameAlias\": [1, \"username-alias\"], \"delivery\": [32], \"loading\": [32], \"forgotPasswordAttrs\": [32] }], [1, \"amplify-require-new-password\", { \"headerText\": [1, \"header-text\"], \"submitButtonText\": [1, \"submit-button-text\"], \"handleSubmit\": [16], \"handleAuthStateChange\": [16], \"user\": [16], \"formFields\": [16], \"password\": [32], \"loading\": [32] }], [1, \"amplify-sign-up\", { \"handleSubmit\": [16], \"handleSignUp\": [16], \"validationErrors\": [1, \"validation-errors\"], \"headerText\": [1, \"header-text\"], \"submitButtonText\": [1, \"submit-button-text\"], \"haveAccountText\": [1, \"have-account-text\"], \"signInText\": [1, \"sign-in-text\"], \"formFields\": [16], \"handleAuthStateChange\": [16], \"usernameAlias\": [1, \"username-alias\"], \"loading\": [32], \"signUpAttributes\": [32] }], [1, \"amplify-verify-contact\", { \"handleAuthStateChange\": [16], \"user\": [16], \"verifyAttr\": [32], \"loading\": [32], \"code\": [32], \"contact\": [32] }]]]], options);\n });\n};\nexport { defineCustomElements };\n","\n(function(){if(\"undefined\"!==typeof window&&void 0!==window.Reflect&&void 0!==window.customElements){var a=HTMLElement;window.HTMLElement=function(){return Reflect.construct(a,[],this.constructor)};HTMLElement.prototype=a.prototype;HTMLElement.prototype.constructor=HTMLElement;Object.setPrototypeOf(HTMLElement,a)}})();\nexport * from '../esm/polyfills/index.js';\nexport * from '../esm-es5/loader.mjs';\n","import { applyPolyfills, defineCustomElements, } from '@aws-amplify/ui-components/loader';\nimport Vue from 'vue';\n// Tell Vue to ignore all components defined in the @aws-amplify/ui-components\n// package. The regex assumes all components names are prefixed\n// 'amplify-'\nif (Vue) {\n Vue.config.ignoredElements = [/amplify-\\w*/];\n}\nelse {\n throw new Error('No Vue 2 export was found. For later versions of Vue, please use `@aws-amplify/ui-components` ' +\n 'according to this guide: https://docs.amplify.aws/start/getting-started/setup/q/integration/vue.');\n}\n// Bind the custom elements to the window object\napplyPolyfills().then(() => {\n defineCustomElements(window);\n});\n//# sourceMappingURL=index.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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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 (_) 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 __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar NAMESPACE = 'amplify-ui-components';\nvar scopeId;\nvar contentRef;\nvar hostTagName;\nvar useNativeShadowDom = false;\nvar checkSlotFallbackVisibility = false;\nvar checkSlotRelocate = false;\nvar isSvgMode = false;\nvar queueCongestion = 0;\nvar queuePending = false;\nvar win = typeof window !== 'undefined' ? window : {};\nvar CSS = win.CSS;\nvar doc = win.document || { head: {} };\nvar plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: function (h) { return h(); },\n raf: function (h) { return requestAnimationFrame(h); },\n ael: function (el, eventName, listener, opts) { return el.addEventListener(eventName, listener, opts); },\n rel: function (el, eventName, listener, opts) { return el.removeEventListener(eventName, listener, opts); },\n};\nvar supportsShadow = /*@__PURE__*/ (function () { return (doc.head.attachShadow + '').indexOf('[native') > -1; })();\nvar promiseResolve = function (v) { return Promise.resolve(v); };\nvar supportsConstructibleStylesheets = /*@__PURE__*/ (function () {\n try {\n new CSSStyleSheet();\n return true;\n }\n catch (e) { }\n return false;\n})();\nvar addHostEventListeners = function (elm, hostRef, listeners, attachParentListeners) {\n if (listeners) {\n listeners.map(function (_a) {\n var flags = _a[0], name = _a[1], method = _a[2];\n var target = elm;\n var handler = hostListenerProxy(hostRef, method);\n var opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(function () { return plt.rel(target, name, handler, opts); });\n });\n }\n};\nvar hostListenerProxy = function (hostRef, methodName) { return function (ev) {\n {\n if (hostRef.$flags$ & 256 /* isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n}; };\n// prettier-ignore\nvar hostListenerOpts = function (flags) { return (flags & 2 /* Capture */) !== 0; };\nvar HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nvar XLINK_NS = 'http://www.w3.org/1999/xlink';\nvar createTime = function (fnName, tagName) {\n if (tagName === void 0) { tagName = ''; }\n {\n return function () {\n return;\n };\n }\n};\nvar uniqueTime = function (key, measureText) {\n {\n return function () {\n return;\n };\n }\n};\nvar rootAppliedStyles = new WeakMap();\nvar registerStyle = function (scopeId, cssText, allowCS) {\n var style = styles.get(scopeId);\n if (supportsConstructibleStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n style.replace(cssText);\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nvar addStyle = function (styleContainerNode, cmpMeta, mode, hostElm) {\n var scopeId = getScopeId(cmpMeta);\n var style = styles.get(scopeId);\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n var appliedStyles = rootAppliedStyles.get(styleContainerNode);\n var styleElm = void 0;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n {\n if (plt.$cssShim$) {\n styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, !!(cmpMeta.$flags$ & 10 /* needsScopedEncapsulation */));\n var newScopeId = styleElm['s-sc'];\n if (newScopeId) {\n scopeId = newScopeId;\n // we don't want to add this styleID to the appliedStyles Set\n // since the cssVarShim might need to apply several different\n // stylesheets for the same component\n appliedStyles = null;\n }\n }\n else {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = __spreadArrays(styleContainerNode.adoptedStyleSheets, [style]);\n }\n }\n return scopeId;\n};\nvar attachStyles = function (hostRef) {\n var cmpMeta = hostRef.$cmpMeta$;\n var elm = hostRef.$hostElement$;\n var flags = cmpMeta.$flags$;\n var endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n var scopeId = addStyle(supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm);\n if (flags & 10 /* needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (flags & 2 /* scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nvar getScopeId = function (cmp, mode) { return 'sc-' + (cmp.$tagName$); };\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nvar EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nvar SVG_NS = 'http://www.w3.org/2000/svg';\nvar HTML_NS = 'http://www.w3.org/1999/xhtml';\nvar isDef = function (v) { return v != null; };\nvar isComplexType = function (o) {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// const stack: any[] = [];\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nvar h = function (nodeName, vnodeData) {\n var children = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n children[_i - 2] = arguments[_i];\n }\n var child = null;\n var key = null;\n var slotName = null;\n var simple = false;\n var lastSimple = false;\n var vNodeChildren = [];\n var walk = function (c) {\n for (var i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n // normalize class / classname attributes\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\n var classData_1 = vnodeData.className || vnodeData.class;\n if (classData_1) {\n vnodeData.class =\n typeof classData_1 !== 'object'\n ? classData_1\n : Object.keys(classData_1)\n .filter(function (k) { return classData_1[k]; })\n .join(' ');\n }\n }\n }\n var vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nvar newVNode = function (tag, text) {\n var vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\n vnode.$name$ = null;\n }\n return vnode;\n};\nvar Host = {};\nvar isHost = function (node) { return node && node.$tag$ === Host; };\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nvar setAccessor = function (elm, memberName, oldValue, newValue, isSvg, flags) {\n if (oldValue !== newValue) {\n var isProp = isMemberInElement(elm, memberName);\n var ln = memberName.toLowerCase();\n if (memberName === 'class') {\n var classList = elm.classList;\n var oldClasses_1 = parseClassList(oldValue);\n var newClasses_1 = parseClassList(newValue);\n classList.remove.apply(classList, oldClasses_1.filter(function (c) { return c && !newClasses_1.includes(c); }));\n classList.add.apply(classList, newClasses_1.filter(function (c) { return c && !oldClasses_1.includes(c); }));\n }\n else if (memberName === 'style') {\n // update style attribute, css properties and values\n {\n for (var prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (var prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (memberName === 'key')\n ;\n else if (memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if ((!isProp) && memberName[0] === 'o' && memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // // listens for \"click\"\n // // listens for \"Click\"\n // // listens for \"ionChange\"\n // // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else {\n // Set property if it exists and it's not a SVG\n var isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n var n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n // tslint:disable-next-line: triple-equals\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in \n * - if the newValue is null/undefined or 'false'.\n */\n var xlink = false;\n {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nvar parseClassListRegex = /\\s/;\nvar parseClassList = function (value) { return (!value ? [] : value.split(parseClassListRegex)); };\nvar updateElement = function (oldVnode, newVnode, isSvgMode, memberName) {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n var elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n var oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n var newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\nvar createElm = function (oldParentVNode, newParentVNode, childIndex, parentElm) {\n // tslint:disable-next-line: prefer-const\n var newVNode = newParentVNode.$children$[childIndex];\n var i = 0;\n var elm;\n var childNode;\n var oldVNode;\n if (!useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* isSlotFallback */\n : // slot element does not have fallback content\n 1 /* isSlotReference */;\n }\n }\n if (newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (newVNode.$flags$ & 1 /* isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ = doc.createTextNode('');\n }\n else {\n if (!isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */ ? 'slot-fb' : newVNode.$tag$));\n if (isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n {\n updateElement(null, newVNode, isSvgMode);\n }\n if (isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting element\n isSvgMode = true;\n }\n }\n }\n {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nvar putBackInOriginalLocation = function (parentElm, recursive) {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n var oldSlotChildNodes = parentElm.childNodes;\n for (var i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n var childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n};\nvar addVnodes = function (parentElm, before, parentVNode, vnodes, startIdx, endIdx) {\n var containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n var childNode;\n if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, referenceNode(before));\n }\n }\n }\n};\nvar removeVnodes = function (vnodes, startIdx, endIdx, vnode, elm) {\n for (; startIdx <= endIdx; ++startIdx) {\n if ((vnode = vnodes[startIdx])) {\n elm = vnode.$elm$;\n callNodeRefs(vnode);\n {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n};\nvar updateChildren = function (parentElm, oldCh, newVNode, newCh) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var idxInOld = 0;\n var i = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var node;\n var elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // Vnode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // Vnode moved right\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // Vnode moved left\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // createKeyToOldIdx\n idxInOld = -1;\n {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (idxInOld >= 0) {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // new element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = function (vnode1, vnode2) {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (vnode1.$tag$ === vnode2.$tag$) {\n if (vnode1.$tag$ === 'slot') {\n return vnode1.$name$ === vnode2.$name$;\n }\n {\n return vnode1.$key$ === vnode2.$key$;\n }\n }\n return false;\n};\nvar referenceNode = function (node) {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nvar parentReferenceNode = function (node) { return (node['s-ol'] ? node['s-ol'] : node).parentNode; };\nvar patch = function (oldVNode, newVNode) {\n var elm = (newVNode.$elm$ = oldVNode.$elm$);\n var oldChildren = oldVNode.$children$;\n var newChildren = newVNode.$children$;\n var tag = newVNode.$tag$;\n var text = newVNode.$text$;\n var defaultHolder;\n if (text === null) {\n {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n // element node\n {\n if (tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if ((defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nvar updateFallbackSlotVisibility = function (elm) {\n // tslint:disable-next-line: prefer-const\n var childNodes = elm.childNodes;\n var childNode;\n var i;\n var ilen;\n var j;\n var slotNameAttr;\n var nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n if (childNodes[j]['s-hn'] !== childNode['s-hn']) {\n // this sibling node is from a different component\n nodeType = childNodes[j].nodeType;\n if (slotNameAttr !== '') {\n // this is a named fallback slot node\n if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* ElementNode */ || (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nvar relocateNodes = [];\nvar relocateSlotContent = function (elm) {\n // tslint:disable-next-line: prefer-const\n var childNode;\n var node;\n var hostContentNodes;\n var slotNameAttr;\n var relocateNodeData;\n var j;\n var i = 0;\n var childNodes = elm.childNodes;\n var ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr'])) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find(function (r) { return r.$nodeToRelocate$ === node; });\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map(function (relocateNode) {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find(function (r) { return r.$nodeToRelocate$ === node; });\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some(function (r) { return r.$nodeToRelocate$ === node; })) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nvar isNodeLocatedInSlot = function (nodeToRelocate, slotNameAttr) {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\nvar callNodeRefs = function (vNode) {\n {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(callNodeRefs);\n }\n};\nvar renderVdom = function (hostRef, renderFnResults) {\n var hostElm = hostRef.$hostElement$;\n var cmpMeta = hostRef.$cmpMeta$;\n var oldVNode = hostRef.$vnode$ || newVNode(null, null);\n var rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (hostElm.shadowRoot || hostElm);\n {\n scopeId = hostElm['s-sc'];\n }\n {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n var relocateData = void 0;\n var nodeToRelocate = void 0;\n var orgLocationNode = void 0;\n var parentNodeRef = void 0;\n var insertBeforeNode = void 0;\n var refNode = void 0;\n var i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode = doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) || nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\nvar getElement = function (ref) { return (getHostRef(ref).$hostElement$); };\nvar createEvent = function (ref, name, flags) {\n var elm = getElement(ref);\n return {\n emit: function (detail) {\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* Bubbles */),\n composed: !!(flags & 2 /* Composed */),\n cancelable: !!(flags & 1 /* Cancellable */),\n detail: detail,\n });\n },\n };\n};\nvar emitEvent = function (elm, name, opts) {\n var ev = new (CustomEvent)(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nvar attachToAncestor = function (hostRef, ancestorComponent) {\n if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise(function (r) { return (hostRef.$onRenderResolve$ = r); }));\n }\n};\nvar scheduleUpdate = function (hostRef, isInitialLoad) {\n {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestorc omponent or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n var dispatch = function () { return dispatchHooks(hostRef, isInitialLoad); };\n return writeTask(dispatch);\n};\nvar dispatchHooks = function (hostRef, isInitialLoad) {\n var endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n var instance = hostRef.$lazyInstance$;\n var promise;\n if (isInitialLoad) {\n {\n hostRef.$flags$ |= 256 /* isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(function (_a) {\n var methodName = _a[0], event = _a[1];\n return safeCall(instance, methodName, event);\n });\n hostRef.$queuedListeners$ = null;\n }\n }\n {\n promise = safeCall(instance, 'componentWillLoad');\n }\n }\n endSchedule();\n return then(promise, function () { return updateComponent(hostRef, instance, isInitialLoad); });\n};\nvar updateComponent = function (hostRef, instance, isInitialLoad) {\n // updateComponent\n var elm = hostRef.$hostElement$;\n var endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n var rc = elm['s-rc'];\n if (isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n var endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n {\n {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n renderVdom(hostRef, callRender(hostRef, instance));\n }\n }\n if (plt.$cssShim$) {\n plt.$cssShim$.updateHost(elm);\n }\n if (rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map(function (cb) { return cb(); });\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n {\n var childrenPromises = elm['s-p'];\n var postUpdate = function () { return postUpdateComponent(hostRef); };\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n};\nvar callRender = function (hostRef, instance) {\n try {\n instance = instance.render();\n {\n hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n }\n catch (e) {\n consoleError(e);\n }\n return instance;\n};\nvar postUpdateComponent = function (hostRef) {\n var tagName = hostRef.$cmpMeta$.$tagName$;\n var elm = hostRef.$hostElement$;\n var endPostUpdate = createTime('postUpdate', tagName);\n var instance = hostRef.$lazyInstance$;\n var ancestorComponent = hostRef.$ancestorComponent$;\n {\n safeCall(instance, 'componentDidRender');\n }\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n {\n safeCall(instance, 'componentDidLoad');\n }\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n }\n else {\n endPostUpdate();\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* needsRerender */) {\n nextTick(function () { return scheduleUpdate(hostRef, false); });\n }\n hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nvar forceUpdate = function (ref) {\n {\n var hostRef = getHostRef(ref);\n var isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n};\nvar appDidLoad = function (who) {\n // on appload\n // we have finish the first big initial render\n {\n addHydratedFlag(doc.documentElement);\n }\n {\n plt.$flags$ |= 2 /* appLoaded */;\n }\n nextTick(function () { return emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }); });\n};\nvar safeCall = function (instance, method, arg) {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nvar then = function (promise, thenFn) {\n return promise && promise.then ? promise.then(thenFn) : thenFn();\n};\nvar addHydratedFlag = function (elm) { return (elm.classList.add('hydrated')); };\nvar parsePropertyValue = function (propValue, propType) {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (propType & 2 /* Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (propType & 1 /* String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nvar getValue = function (ref, propName) { return getHostRef(ref).$instanceValues$.get(propName); };\nvar setValue = function (ref, propName, newVal, cmpMeta) {\n // check our new property value against our internal value\n var hostRef = getHostRef(ref);\n var oldVal = hostRef.$instanceValues$.get(propName);\n var flags = hostRef.$flags$;\n var instance = hostRef.$lazyInstance$;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n if ((!(flags & 8 /* isConstructingInstance */) || oldVal === undefined) && newVal !== oldVal) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (instance) {\n // get an array of method names of watch functions to call\n if (cmpMeta.$watchers$) {\n if (flags & 128 /* isWatchReady */) {\n var watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map(function (watchMethodName) {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e);\n }\n });\n }\n }\n }\n if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\nvar proxyComponent = function (Cstr, cmpMeta, flags) {\n if (cmpMeta.$members$) {\n if (Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n var members = Object.entries(cmpMeta.$members$);\n var prototype_1 = Cstr.prototype;\n members.map(function (_a) {\n var memberName = _a[0], memberFlags = _a[1][0];\n if ((memberFlags & 31 /* Prop */ || ((flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype_1, memberName, {\n get: function () {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set: function (newValue) {\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n });\n if ((flags & 1 /* isElementConstructor */)) {\n var attrNameToPropName_1 = new Map();\n prototype_1.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n var _this = this;\n plt.jmp(function () {\n var propName = attrNameToPropName_1.get(attrName);\n _this[propName] = newValue === null && typeof _this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(function (_a) {\n var _ = _a[0], m = _a[1];\n return m[0] & 15;\n } /* HasAttribute */) // filter to only keep props that should match attributes\n .map(function (_a) {\n var propName = _a[0], m = _a[1];\n var attrName = m[1] || propName;\n attrNameToPropName_1.set(attrName, propName);\n return attrName;\n });\n }\n }\n return Cstr;\n};\nvar initializeComponent = function (elm, hostRef, cmpMeta, hmrVersionId, Cstr) { return __awaiter(void 0, void 0, void 0, function () {\n var endLoad, endNewInstance, style_1, scopeId_1, endRegisterStyles, ancestorComponent, schedule;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0)) return [3 /*break*/, 5];\n // we haven't initialized this element yet\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta);\n if (!Cstr.then) return [3 /*break*/, 2];\n endLoad = uniqueTime();\n return [4 /*yield*/, Cstr];\n case 1:\n Cstr = _a.sent();\n endLoad();\n _a.label = 2;\n case 2:\n if (!Cstr.isProxied) {\n // we'eve never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);\n Cstr.isProxied = true;\n }\n endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n {\n hostRef.$flags$ |= 8 /* isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n {\n hostRef.$flags$ &= ~8 /* isConstructingInstance */;\n }\n {\n hostRef.$flags$ |= 128 /* isWatchReady */;\n }\n endNewInstance();\n if (!Cstr.style) return [3 /*break*/, 5];\n style_1 = Cstr.style;\n scopeId_1 = getScopeId(cmpMeta);\n if (!!styles.has(scopeId_1)) return [3 /*break*/, 5];\n endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n if (!(cmpMeta.$flags$ & 8) /* needsShadowDomShim */) return [3 /*break*/, 4]; /* needsShadowDomShim */\n return [4 /*yield*/, import('./shadow-css-360bb6da.js').then(function (m) { return m.scopeCss(style_1, scopeId_1, false); })];\n case 3:\n style_1 = _a.sent();\n _a.label = 4;\n case 4:\n registerStyle(scopeId_1, style_1, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));\n endRegisterStyles();\n _a.label = 5;\n case 5:\n ancestorComponent = hostRef.$ancestorComponent$;\n schedule = function () { return scheduleUpdate(hostRef, true); };\n if (ancestorComponent && ancestorComponent['s-rc']) {\n // this is the intial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n return [2 /*return*/];\n }\n });\n}); };\nvar connectedCallback = function (elm) {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n var hostRef = getHostRef(elm);\n var cmpMeta = hostRef.$cmpMeta$;\n var endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* hasConnected */;\n {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if ((cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n var ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if (ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(function (_a) {\n var memberName = _a[0], memberFlags = _a[1][0];\n if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {\n var value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n }\n endConnected();\n }\n};\nvar setContentReference = function (elm) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n var contentRefElm = (elm['s-cr'] = doc.createComment(''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nvar disconnectedCallback = function (elm) {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n var hostRef = getHostRef(elm);\n var instance = hostRef.$lazyInstance$;\n {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map(function (rmListener) { return rmListener(); });\n hostRef.$rmListeners$ = undefined;\n }\n }\n // clear CSS var-shim tracking\n if (plt.$cssShim$) {\n plt.$cssShim$.removeHost(elm);\n }\n {\n safeCall(instance, 'disconnectedCallback');\n }\n }\n};\nvar bootstrapLazy = function (lazyBundles, options) {\n if (options === void 0) { options = {}; }\n var endBootstrap = createTime();\n var cmpTags = [];\n var exclude = options.exclude || [];\n var customElements = win.customElements;\n var head = doc.head;\n var metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n var visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n var deferredConnectedCallbacks = [];\n var appLoadFallback;\n var isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* queueSync */;\n }\n }\n lazyBundles.map(function (lazyBundle) { return lazyBundle[1].map(function (compactMeta) {\n var cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n {\n cmpMeta.$watchers$ = {};\n }\n if (!supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;\n }\n var tagName = cmpMeta.$tagName$;\n var HostElement = /** @class */ (function (_super) {\n __extends(HostElement, _super);\n // StencilLazyHost\n function HostElement(self) {\n var _this = \n // @ts-ignore\n _super.call(this, self) || this;\n self = _this;\n registerHost(self, cmpMeta);\n if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n if (supportsShadow) {\n {\n self.attachShadow({ mode: 'open' });\n }\n }\n else if (!('shadowRoot' in self)) {\n self.shadowRoot = self;\n }\n }\n return _this;\n }\n HostElement.prototype.connectedCallback = function () {\n var _this = this;\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(function () { return connectedCallback(_this); });\n }\n };\n HostElement.prototype.disconnectedCallback = function () {\n var _this = this;\n plt.jmp(function () { return disconnectedCallback(_this); });\n };\n HostElement.prototype.forceUpdate = function () {\n forceUpdate(this);\n };\n HostElement.prototype.componentOnReady = function () {\n return getHostRef(this).$onReadyPromise$;\n };\n return HostElement;\n }(HTMLElement));\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */));\n }\n }); });\n {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map(function (host) { return host.connectedCallback(); });\n }\n else {\n {\n plt.jmp(function () { return (appLoadFallback = setTimeout(appDidLoad, 30)); });\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nvar hostRefs = new WeakMap();\nvar getHostRef = function (ref) { return hostRefs.get(ref); };\nvar registerInstance = function (lazyInstance, hostRef) { return hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef); };\nvar registerHost = function (elm, cmpMeta) {\n var hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n {\n hostRef.$onReadyPromise$ = new Promise(function (r) { return (hostRef.$onReadyResolve$ = r); });\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n return hostRefs.set(elm, hostRef);\n};\nvar isMemberInElement = function (elm, memberName) { return memberName in elm; };\nvar consoleError = function (e) { return console.error(e); };\nvar cmpModules = /*@__PURE__*/ new Map();\nvar loadModule = function (cmpMeta, hostRef, hmrVersionId) {\n // loadModuleImport\n var exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n var bundleId = cmpMeta.$lazyBundleId$;\n var module = cmpModules.get(bundleId);\n if (module) {\n return module[exportName];\n }\n return import(\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n \"./\" + bundleId + \".entry.js\" + '').then(function (importedModule) {\n {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nvar styles = new Map();\nvar queueDomReads = [];\nvar queueDomWrites = [];\nvar queueDomWritesLow = [];\nvar queueTask = function (queue, write) { return function (cb) {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n}; };\nvar consume = function (queue) {\n for (var i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nvar consumeTimeout = function (queue, timeout) {\n var i = 0;\n var ts = 0;\n while (i < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i++](ts);\n }\n catch (e) {\n consoleError(e);\n }\n }\n if (i === queue.length) {\n queue.length = 0;\n }\n else if (i !== 0) {\n queue.splice(0, i);\n }\n};\nvar flush = function () {\n {\n queueCongestion++;\n }\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n {\n var timeout = (plt.$flags$ & 6 /* queueMask */) === 2 /* appLoaded */ ? performance.now() + 14 * Math.ceil(queueCongestion * (1.0 / 10.0)) : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push.apply(queueDomWritesLow, queueDomWrites);\n queueDomWrites.length = 0;\n }\n if ((queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n else {\n queueCongestion = 0;\n }\n }\n};\nvar nextTick = /*@__PURE__*/ function (cb) { return promiseResolve().then(cb); };\nvar writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\nexport { CSS as C, Host as H, NAMESPACE as N, promiseResolve as a, bootstrapLazy as b, createEvent as c, doc as d, getElement as g, h, plt as p, registerInstance as r, win as w };\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","\"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==","\"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==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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=RawSha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./jsSha256\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\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 (isEmptyData(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update(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 tslib_1.__awaiter(this, void 0, void 0, function () {\n return 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 = 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}\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 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=jsSha256.js.map","/**\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==","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==","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=","\"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==","\"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 { __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==","\"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","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 { __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 { __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","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==","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==","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","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","/**\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 { 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 { 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=","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 { __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=","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","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 { __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==","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, __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==","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, __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==","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=","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=","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 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","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==","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 { __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","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 { __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 { __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\";\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, __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=","/**\n * Function that wraps encodeURIComponent to encode additional characters\n * to fully adhere to RFC 3986.\n */\nexport function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16);\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtZW5jb2RlLXVyaS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXh0ZW5kZWQtZW5jb2RlLXVyaS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEdBQVc7SUFDcEQsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztRQUM1RCxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZ1bmN0aW9uIHRoYXQgd3JhcHMgZW5jb2RlVVJJQ29tcG9uZW50IHRvIGVuY29kZSBhZGRpdGlvbmFsIGNoYXJhY3RlcnNcbiAqIHRvIGZ1bGx5IGFkaGVyZSB0byBSRkMgMzk4Ni5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL1shJygpKl0vZywgZnVuY3Rpb24gKGMpIHtcbiAgICByZXR1cm4gXCIlXCIgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO1xuICB9KTtcbn1cbiJdfQ==","/**\n * The XML parser will set one K:V for a member that could\n * return multiple entries but only has one.\n */\nexport var getArrayIfSingleItem = function (mayBeArray) {\n return Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFycmF5LWlmLXNpbmdsZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldC1hcnJheS1pZi1zaW5nbGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFJLFVBQWE7SUFDbkQsT0FBQSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQXJELENBQXFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBYTUwgcGFyc2VyIHdpbGwgc2V0IG9uZSBLOlYgZm9yIGEgbWVtYmVyIHRoYXQgY291bGRcbiAqIHJldHVybiBtdWx0aXBsZSBlbnRyaWVzIGJ1dCBvbmx5IGhhcyBvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBcnJheUlmU2luZ2xlSXRlbSA9IDxUPihtYXlCZUFycmF5OiBUKTogVCB8IFRbXSA9PlxuICBBcnJheS5pc0FycmF5KG1heUJlQXJyYXkpID8gbWF5QmVBcnJheSA6IFttYXlCZUFycmF5XTtcbiJdfQ==","/**\n * Recursively parses object and populates value is node from\n * \"#text\" key if it's available\n */\nexport var getValueFromTextNode = function (obj) {\n var textNodeName = \"#text\";\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbHVlLWZyb20tdGV4dC1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldC12YWx1ZS1mcm9tLXRleHQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLEdBQVE7SUFDM0MsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDO0lBQzdCLEtBQUssSUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO1FBQ3JCLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ25FLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDbkM7YUFBTSxJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzVELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMzQztLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlY3Vyc2l2ZWx5IHBhcnNlcyBvYmplY3QgYW5kIHBvcHVsYXRlcyB2YWx1ZSBpcyBub2RlIGZyb21cbiAqIFwiI3RleHRcIiBrZXkgaWYgaXQncyBhdmFpbGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlRnJvbVRleHROb2RlID0gKG9iajogYW55KSA9PiB7XG4gIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIG9ialtrZXldW3RleHROb2RlTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqW2tleV0gPSBvYmpba2V5XVt0ZXh0Tm9kZU5hbWVdO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIG9ialtrZXldID09PSBcIm9iamVjdFwiICYmIG9ialtrZXldICE9PSBudWxsKSB7XG4gICAgICBvYmpba2V5XSA9IGdldFZhbHVlRnJvbVRleHROb2RlKG9ialtrZXldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG4iXX0=","/**\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=","/**\n * Builds a proper UTC HttpDate timestamp from a Date object\n * since not all environments will have this as the expected\n * format.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString\n * > Prior to ECMAScript 2018, the format of the return value\n * > varied according to the platform. The most common return\n * > value was an RFC-1123 formatted date stamp, which is a\n * > slightly updated version of RFC-822 date stamps.\n */\n// Build indexes outside so we allocate them once.\nvar days = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n// prettier-ignore\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 // Build 0 prefixed strings for contents that need to be\n // two digits and where we get an integer back.\n var dayOfMonthString = dayOfMonthInt < 10 ? \"0\" + dayOfMonthInt : \"\" + dayOfMonthInt;\n var hoursString = hoursInt < 10 ? \"0\" + hoursInt : \"\" + hoursInt;\n var minutesString = minutesInt < 10 ? \"0\" + minutesInt : \"\" + minutesInt;\n var secondsString = secondsInt < 10 ? \"0\" + secondsInt : \"\" + secondsInt;\n return days[dayOfWeek] + \", \" + dayOfMonthString + \" \" + months[month] + \" \" + year + \" \" + hoursString + \":\" + minutesString + \":\" + secondsString + \" GMT\";\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxrREFBa0Q7QUFDbEQsSUFBTSxJQUFJLEdBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUUsa0JBQWtCO0FBQ2xCLElBQU0sTUFBTSxHQUFrQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbkgsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFVO0lBQ3hDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuQyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25DLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QyxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUV4Qyx3REFBd0Q7SUFDeEQsK0NBQStDO0lBQy9DLElBQU0sZ0JBQWdCLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBSSxhQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUcsYUFBZSxDQUFDO0lBQ3ZGLElBQU0sV0FBVyxHQUFHLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQUksUUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFHLFFBQVUsQ0FBQztJQUNuRSxJQUFNLGFBQWEsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFJLFVBQVksQ0FBQyxDQUFDLENBQUMsS0FBRyxVQUFZLENBQUM7SUFDM0UsSUFBTSxhQUFhLEdBQUcsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBSSxVQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUcsVUFBWSxDQUFDO0lBRTNFLE9BQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFLLGdCQUFnQixTQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBSSxJQUFJLFNBQUksV0FBVyxTQUFJLGFBQWEsU0FBSSxhQUFhLFNBQU0sQ0FBQztBQUNqSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdWlsZHMgYSBwcm9wZXIgVVRDIEh0dHBEYXRlIHRpbWVzdGFtcCBmcm9tIGEgRGF0ZSBvYmplY3RcbiAqIHNpbmNlIG5vdCBhbGwgZW52aXJvbm1lbnRzIHdpbGwgaGF2ZSB0aGlzIGFzIHRoZSBleHBlY3RlZFxuICogZm9ybWF0LlxuICpcbiAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b1VUQ1N0cmluZ1xuICogPiBQcmlvciB0byBFQ01BU2NyaXB0IDIwMTgsIHRoZSBmb3JtYXQgb2YgdGhlIHJldHVybiB2YWx1ZVxuICogPiB2YXJpZWQgYWNjb3JkaW5nIHRvIHRoZSBwbGF0Zm9ybS4gVGhlIG1vc3QgY29tbW9uIHJldHVyblxuICogPiB2YWx1ZSB3YXMgYW4gUkZDLTExMjMgZm9ybWF0dGVkIGRhdGUgc3RhbXAsIHdoaWNoIGlzIGFcbiAqID4gc2xpZ2h0bHkgdXBkYXRlZCB2ZXJzaW9uIG9mIFJGQy04MjIgZGF0ZSBzdGFtcHMuXG4gKi9cblxuLy8gQnVpbGQgaW5kZXhlcyBvdXRzaWRlIHNvIHdlIGFsbG9jYXRlIHRoZW0gb25jZS5cbmNvbnN0IGRheXM6IEFycmF5PFN0cmluZz4gPSBbXCJTdW5cIiwgXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIl07XG4vLyBwcmV0dGllci1pZ25vcmVcbmNvbnN0IG1vbnRoczogQXJyYXk8U3RyaW5nPiA9IFtcIkphblwiLCBcIkZlYlwiLCBcIk1hclwiLCBcIkFwclwiLCBcIk1heVwiLCBcIkp1blwiLCBcIkp1bFwiLCBcIkF1Z1wiLCBcIlNlcFwiLCBcIk9jdFwiLCBcIk5vdlwiLCBcIkRlY1wiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUb1V0Y1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gIGNvbnN0IGRheU9mV2VlayA9IGRhdGUuZ2V0VVRDRGF5KCk7XG4gIGNvbnN0IGRheU9mTW9udGhJbnQgPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgY29uc3QgaG91cnNJbnQgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XG4gIGNvbnN0IG1pbnV0ZXNJbnQgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcbiAgY29uc3Qgc2Vjb25kc0ludCA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xuXG4gIC8vIEJ1aWxkIDAgcHJlZml4ZWQgc3RyaW5ncyBmb3IgY29udGVudHMgdGhhdCBuZWVkIHRvIGJlXG4gIC8vIHR3byBkaWdpdHMgYW5kIHdoZXJlIHdlIGdldCBhbiBpbnRlZ2VyIGJhY2suXG4gIGNvbnN0IGRheU9mTW9udGhTdHJpbmcgPSBkYXlPZk1vbnRoSW50IDwgMTAgPyBgMCR7ZGF5T2ZNb250aEludH1gIDogYCR7ZGF5T2ZNb250aEludH1gO1xuICBjb25zdCBob3Vyc1N0cmluZyA9IGhvdXJzSW50IDwgMTAgPyBgMCR7aG91cnNJbnR9YCA6IGAke2hvdXJzSW50fWA7XG4gIGNvbnN0IG1pbnV0ZXNTdHJpbmcgPSBtaW51dGVzSW50IDwgMTAgPyBgMCR7bWludXRlc0ludH1gIDogYCR7bWludXRlc0ludH1gO1xuICBjb25zdCBzZWNvbmRzU3RyaW5nID0gc2Vjb25kc0ludCA8IDEwID8gYDAke3NlY29uZHNJbnR9YCA6IGAke3NlY29uZHNJbnR9YDtcblxuICByZXR1cm4gYCR7ZGF5c1tkYXlPZldlZWtdfSwgJHtkYXlPZk1vbnRoU3RyaW5nfSAke21vbnRoc1ttb250aF19ICR7eWVhcn0gJHtob3Vyc1N0cmluZ306JHttaW51dGVzU3RyaW5nfToke3NlY29uZHNTdHJpbmd9IEdNVGA7XG59XG4iXX0=","export var SENSITIVE_STRING = \"***SensitiveInformation***\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTRU5TSVRJVkVfU1RSSU5HID0gXCIqKipTZW5zaXRpdmVJbmZvcm1hdGlvbioqKlwiO1xuIl19","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 { 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","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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxrQkFBa0IsR0FBOEIsRUFBRSxDQUFDO0FBQ3pELElBQU0sZUFBZSxHQUFrQixJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3RixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztDQUMzQjtBQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzdGLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVDLElBQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7Q0FDL0I7QUFFRCxLQUFLLElBQUksQ0FB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QyxDQUFDLElBQUksR0FBRyxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztLQUMzQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFscGhhYmV0QnlFbmNvZGluZzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuY29uc3QgYWxwaGFiZXRCeVZhbHVlOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5KDY0KTtcblxuZm9yIChsZXQgaSA9IDAsIHN0YXJ0ID0gXCJBXCIuY2hhckNvZGVBdCgwKSwgbGltaXQgPSBcIlpcIi5jaGFyQ29kZUF0KDApOyBpICsgc3RhcnQgPD0gbGltaXQ7IGkrKykge1xuICBjb25zdCBjaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpICsgc3RhcnQpO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpO1xuICBhbHBoYWJldEJ5VmFsdWVbaV0gPSBjaGFyO1xufVxuXG5mb3IgKGxldCBpID0gMCwgc3RhcnQgPSBcImFcIi5jaGFyQ29kZUF0KDApLCBsaW1pdCA9IFwielwiLmNoYXJDb2RlQXQoMCk7IGkgKyBzdGFydCA8PSBsaW1pdDsgaSsrKSB7XG4gIGNvbnN0IGNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkgKyBzdGFydCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDI2O1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykge1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbaS50b1N0cmluZygxMCldID0gaSArIDUyO1xuICBjb25zdCBjaGFyID0gaS50b1N0cmluZygxMCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDUyO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmFscGhhYmV0QnlFbmNvZGluZ1tcIitcIl0gPSA2MjtcbmFscGhhYmV0QnlWYWx1ZVs2Ml0gPSBcIitcIjtcbmFscGhhYmV0QnlFbmNvZGluZ1tcIi9cIl0gPSA2MztcbmFscGhhYmV0QnlWYWx1ZVs2M10gPSBcIi9cIjtcblxuY29uc3QgYml0c1BlckxldHRlciA9IDY7XG5jb25zdCBiaXRzUGVyQnl0ZSA9IDg7XG5jb25zdCBtYXhMZXR0ZXJWYWx1ZSA9IDBiMTExMTExO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZyB0byBhIFVpbnQ4QXJyYXkgb2YgYnl0ZXMuXG4gKlxuICogQHBhcmFtIGlucHV0IFRoZSBiYXNlLTY0IGVuY29kZWQgc3RyaW5nXG4gKlxuICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNzZWN0aW9uLTRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21CYXNlNjQoaW5wdXQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBsZXQgdG90YWxCeXRlTGVuZ3RoID0gKGlucHV0Lmxlbmd0aCAvIDQpICogMztcbiAgaWYgKGlucHV0LnN1YnN0cigtMikgPT09IFwiPT1cIikge1xuICAgIHRvdGFsQnl0ZUxlbmd0aCAtPSAyO1xuICB9IGVsc2UgaWYgKGlucHV0LnN1YnN0cigtMSkgPT09IFwiPVwiKSB7XG4gICAgdG90YWxCeXRlTGVuZ3RoLS07XG4gIH1cbiAgY29uc3Qgb3V0ID0gbmV3IEFycmF5QnVmZmVyKHRvdGFsQnl0ZUxlbmd0aCk7XG4gIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KG91dCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpICs9IDQpIHtcbiAgICBsZXQgYml0cyA9IDA7XG4gICAgbGV0IGJpdExlbmd0aCA9IDA7XG4gICAgZm9yIChsZXQgaiA9IGksIGxpbWl0ID0gaSArIDM7IGogPD0gbGltaXQ7IGorKykge1xuICAgICAgaWYgKGlucHV0W2pdICE9PSBcIj1cIikge1xuICAgICAgICBiaXRzIHw9IGFscGhhYmV0QnlFbmNvZGluZ1tpbnB1dFtqXV0gPDwgKChsaW1pdCAtIGopICogYml0c1BlckxldHRlcik7XG4gICAgICAgIGJpdExlbmd0aCArPSBiaXRzUGVyTGV0dGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYml0cyA+Pj0gYml0c1BlckxldHRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjaHVua09mZnNldCA9IChpIC8gNCkgKiAzO1xuICAgIGJpdHMgPj49IGJpdExlbmd0aCAlIGJpdHNQZXJCeXRlO1xuICAgIGNvbnN0IGJ5dGVMZW5ndGggPSBNYXRoLmZsb29yKGJpdExlbmd0aCAvIGJpdHNQZXJCeXRlKTtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IGJ5dGVMZW5ndGg7IGsrKykge1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gKGJ5dGVMZW5ndGggLSBrIC0gMSkgKiBiaXRzUGVyQnl0ZTtcbiAgICAgIGRhdGFWaWV3LnNldFVpbnQ4KGNodW5rT2Zmc2V0ICsgaywgKGJpdHMgJiAoMjU1IDw8IG9mZnNldCkpID4+IG9mZnNldCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KG91dCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBVaW50OEFycmF5IG9mIGJpbmFyeSBkYXRhIHRvIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgVGhlIGJpbmFyeSBkYXRhIHRvIGVuY29kZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ2NDgjc2VjdGlvbi00XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U2NChpbnB1dDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBzdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAzKSB7XG4gICAgbGV0IGJpdHMgPSAwO1xuICAgIGxldCBiaXRMZW5ndGggPSAwO1xuICAgIGZvciAobGV0IGogPSBpLCBsaW1pdCA9IE1hdGgubWluKGkgKyAzLCBpbnB1dC5sZW5ndGgpOyBqIDwgbGltaXQ7IGorKykge1xuICAgICAgYml0cyB8PSBpbnB1dFtqXSA8PCAoKGxpbWl0IC0gaiAtIDEpICogYml0c1BlckJ5dGUpO1xuICAgICAgYml0TGVuZ3RoICs9IGJpdHNQZXJCeXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdENsdXN0ZXJDb3VudCA9IE1hdGguY2VpbChiaXRMZW5ndGggLyBiaXRzUGVyTGV0dGVyKTtcbiAgICBiaXRzIDw8PSBiaXRDbHVzdGVyQ291bnQgKiBiaXRzUGVyTGV0dGVyIC0gYml0TGVuZ3RoO1xuICAgIGZvciAobGV0IGsgPSAxOyBrIDw9IGJpdENsdXN0ZXJDb3VudDsgaysrKSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSAoYml0Q2x1c3RlckNvdW50IC0gaykgKiBiaXRzUGVyTGV0dGVyO1xuICAgICAgc3RyICs9IGFscGhhYmV0QnlWYWx1ZVsoYml0cyAmIChtYXhMZXR0ZXJWYWx1ZSA8PCBvZmZzZXQpKSA+PiBvZmZzZXRdO1xuICAgIH1cblxuICAgIHN0ciArPSBcIj09XCIuc2xpY2UoMCwgNCAtIGJpdENsdXN0ZXJDb3VudCk7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuIl19","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==","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","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 } 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==","/**\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==","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==","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=","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar AuthenticationDetails = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationDetails object\n * @param {object=} data Creation options.\n * @param {string} data.Username User being authenticated.\n * @param {string} data.Password Plain-text password to authenticate with.\n * @param {(AttributeArg[])?} data.ValidationData Application extra metadata.\n * @param {(AttributeArg[])?} data.AuthParamaters Authentication paramaters for custom auth.\n */\n function AuthenticationDetails(data) {\n var _ref = data || {},\n ValidationData = _ref.ValidationData,\n Username = _ref.Username,\n Password = _ref.Password,\n AuthParameters = _ref.AuthParameters,\n ClientMetadata = _ref.ClientMetadata;\n this.validationData = ValidationData || {};\n this.authParameters = AuthParameters || {};\n this.clientMetadata = ClientMetadata || {};\n this.username = Username;\n this.password = Password;\n }\n\n /**\n * @returns {string} the record's username\n */\n var _proto = AuthenticationDetails.prototype;\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n\n /**\n * @returns {string} the record's password\n */;\n _proto.getPassword = function getPassword() {\n return this.password;\n }\n\n /**\n * @returns {Array} the record's validationData\n */;\n _proto.getValidationData = function getValidationData() {\n return this.validationData;\n }\n\n /**\n * @returns {Array} the record's authParameters\n */;\n _proto.getAuthParameters = function getAuthParameters() {\n return this.authParameters;\n }\n\n /**\n * @returns {ClientMetadata} the clientMetadata for a Lambda trigger\n */;\n _proto.getClientMetadata = function getClientMetadata() {\n return this.clientMetadata;\n };\n return AuthenticationDetails;\n}();\nexport { AuthenticationDetails as default };","var crypto;\n\n// Native crypto from window (Browser)\nif (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n}\n\n// Native (experimental IE 11) crypto from window (Browser)\nif (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n}\n\n// Native crypto from global (NodeJS)\nif (!crypto && typeof global !== 'undefined' && global.crypto) {\n crypto = global.crypto;\n}\n\n// Native crypto import via require (NodeJS)\nif (!crypto && typeof require === 'function') {\n try {\n crypto = require('crypto');\n } catch (err) {}\n}\n\n/*\n * Cryptographically secure pseudorandom number generator\n * As Math.random() is cryptographically not safe to use\n */\nexport default function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n }\n\n // Use randomBytes method (NodeJS)\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n throw new Error('Native crypto module could not be used to get secure random number.');\n}","import cryptoSecureRandomInt from './cryptoSecureRandomInt';\n\n/**\n * Hex encoding strategy.\n * Converts a word array to a hex string.\n * @param {WordArray} wordArray The word array.\n * @return {string} The hex string.\n * @static\n */\nfunction hexStringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var hexChars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n return hexChars.join('');\n}\nvar WordArray = /*#__PURE__*/function () {\n function WordArray(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n }\n var _proto = WordArray.prototype;\n _proto.random = function random(nBytes) {\n var words = [];\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n return new WordArray(words, nBytes);\n };\n _proto.toString = function toString() {\n return hexStringify(this);\n };\n return WordArray;\n}();\nexport { WordArray as default };","// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n//\n// All public methods have been removed except the following:\n// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n// toString (only radix 2, 4, 8, 16 and 32 supported)\n// negate\n// abs\n// compareTo\n// bitLength\n// mod\n// equals\n// add\n// subtract\n// multiply\n// divide\n// modPow\n\nexport default BigInteger;\n\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a 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\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null) this.fromString(a, b);\n}\n\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null);\n}\n\n// Bits per digit\nvar dbits;\n\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = (canary & 0xffffff) == 0xefcafe;\n\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff,\n xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff,\n xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n}\nvar inBrowser = typeof navigator !== 'undefined';\nif (inBrowser && j_lm && navigator.appName == 'Microsoft Internet Explorer') {\n BigInteger.prototype.am = am2;\n dbits = 30;\n} else if (inBrowser && j_lm && navigator.appName != 'Netscape') {\n BigInteger.prototype.am = am1;\n dbits = 26;\n} else {\n // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n\n// Digit conversions\nvar BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz';\nvar BI_RC = new Array();\nvar rr, vv;\nrr = '0'.charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;\nrr = 'a'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\nrr = 'A'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i) r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0) this[0] = x;else if (x < -1) this[0] = x + this.DV;else this.t = 0;\n}\n\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n this.t = 0;\n this.s = 0;\n var i = s.length,\n mi = false,\n sh = 0;\n while (--i >= 0) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == '-') mi = true;\n continue;\n }\n mi = false;\n if (sh == 0) this[this.t++] = x;else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh;\n this[this.t++] = x >> this.DB - sh;\n } else this[this.t - 1] |= x << sh;\n sh += k;\n if (sh >= this.DB) sh -= this.DB;\n }\n this.clamp();\n if (mi) BigInteger.ZERO.subTo(this, this);\n}\n\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) --this.t;\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0) return '-' + this.negate().toString(b);\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n var km = (1 << k) - 1,\n d,\n m = false,\n r = '',\n i = this.t;\n var p = this.DB - i * this.DB % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & (1 << p) - 1) << k - p;\n d |= this[--i] >> (p += this.DB - k);\n } else {\n d = this[i] >> (p -= k) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) m = true;\n if (m) r += int2char(d);\n }\n }\n return m ? r : '0';\n}\n\n// (public) -this\nfunction bnNegate() {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n}\n\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s - a.s;\n if (r != 0) return r;\n var i = this.t;\n r = i - a.t;\n if (r != 0) return this.s < 0 ? -r : r;\n while (--i >= 0) if ((r = this[i] - a[i]) != 0) return r;\n return 0;\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1,\n t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0) return 0;\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM);\n}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i) r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i) r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n\n// (protected) r = this << n\nfunction bnpLShiftTo(n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB),\n c = this.s << bs & this.DM,\n i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = this[i] >> cbs | c;\n c = (this[i] & bm) << bs;\n }\n for (i = ds - 1; i >= 0; --i) r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1) r[i++] = this.DV + c;else if (c > 0) r[i++] = c;\n r.t = i;\n r.clamp();\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n var x = this.abs(),\n y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) r[i] = 0;\n for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n r.s = 0;\n r.clamp();\n}\n\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) return;\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0);\n if (r != null) this.copyTo(r);\n return;\n }\n if (r == null) r = nbi();\n var y = nbi(),\n ts = this.s,\n ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n } else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) return;\n var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt,\n d2 = (1 << this.F1) / yt,\n e = 1 << this.F2;\n var i = r.t,\n j = i - ys,\n t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys) y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) r.subTo(t, r);\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0) BigInteger.ZERO.subTo(r, r);\n}\n\n// (public) this mod a\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r);\n return r;\n}\n\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if (this.t < 1) return 0;\n var x = this[0];\n if ((x & 1) == 0) return 0;\n var y = x & 3;\n // y == 1/x mod 2^2\n y = y * (2 - (x & 0xf) * y) & 0xf;\n // y == 1/x mod 2^4\n y = y * (2 - (x & 0xff) * y) & 0xff;\n // y == 1/x mod 2^8\n y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff;\n // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = y * (2 - x * y % this.DV) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n}\n\n// (protected) r = this + a\nfunction bnpAddTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0) r[i++] = c;else if (c < -1) r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n\n// (public) this + a\nfunction bnAdd(a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n}\n\n// (public) this - a\nfunction bnSubtract(a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n}\n\n// (public) this * a\nfunction bnMultiply(a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n}\n\n// (public) this / a\nfunction bnDivide(a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n}\n\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << m.DB - 15) - 1;\n this.mt2 = 2 * m.t;\n}\n\n// xR mod m\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r);\n return r;\n}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) x.subTo(this.m, x);\n}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n}\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n var i = e.bitLength(),\n k,\n r = nbv(1),\n z = new Montgomery(m);\n if (i <= 0) return r;else if (i < 18) k = 1;else if (i < 48) k = 3;else if (i < 144) k = 4;else if (i < 768) k = 5;else k = 6;\n\n // precomputation\n var g = new Array(),\n n = 3,\n k1 = k - 1,\n km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1,\n w,\n is1 = true,\n r2 = nbi(),\n t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) w = e[j] >> i - k1 & km;else {\n w = (e[j] & (1 << i + 1) - 1) << k1 - i;\n if (j > 0) w |= e[j - 1] >> this.DB + i - k1;\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) {\n // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n } else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) z.sqrTo(r, r2);else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & 1 << i) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n var result = z.revert(r);\n callback(null, result);\n return result;\n}\n\n// protected\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.addTo = bnpAddTo;\n\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.modPow = bnModPow;\n\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport 'crypto-js/lib-typedarrays'; // necessary for crypto js\nimport SHA256 from 'crypto-js/sha256';\nimport HmacSHA256 from 'crypto-js/hmac-sha256';\nimport WordArray from './utils/WordArray';\n\n/**\n * Returns a Buffer with a sequence of random nBytes\n *\n * @param {number} nBytes\n * @returns {Buffer} fixed-length sequence of random bytes\n */\n\nfunction randomBytes(nBytes) {\n return Buffer.from(new WordArray().random(nBytes).toString(), 'hex');\n}\nimport BigInteger from './BigInteger';\n\n/**\n * Tests if a hex string has it most significant bit set (case-insensitive regex)\n */\nvar HEX_MSB_REGEX = /^[89a-f]/i;\nvar initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' + '83655D23DCA3AD961C62F356208552BB9ED529077096966D' + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\nvar newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.';\n\n/** @class */\nvar AuthenticationHelper = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationHelper object\n * @param {string} PoolName Cognito user pool name.\n */\n function AuthenticationHelper(PoolName) {\n this.N = new BigInteger(initN, 16);\n this.g = new BigInteger('2', 16);\n this.k = new BigInteger(this.hexHash(\"\" + this.padHex(this.N) + this.padHex(this.g)), 16);\n this.smallAValue = this.generateRandomSmallA();\n this.getLargeAValue(function () {});\n this.infoBits = Buffer.from('Caldera Derived Key', 'utf8');\n this.poolName = PoolName;\n }\n\n /**\n * @returns {BigInteger} small A, a random number\n */\n var _proto = AuthenticationHelper.prototype;\n _proto.getSmallAValue = function getSmallAValue() {\n return this.smallAValue;\n }\n\n /**\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n */;\n _proto.getLargeAValue = function getLargeAValue(callback) {\n var _this = this;\n if (this.largeAValue) {\n callback(null, this.largeAValue);\n } else {\n this.calculateA(this.smallAValue, function (err, largeAValue) {\n if (err) {\n callback(err, null);\n }\n _this.largeAValue = largeAValue;\n callback(null, _this.largeAValue);\n });\n }\n }\n\n /**\n * helper function to generate a random big integer\n * @returns {BigInteger} a random value.\n * @private\n */;\n _proto.generateRandomSmallA = function generateRandomSmallA() {\n // This will be interpreted as a postive 128-bit integer\n var hexRandom = randomBytes(128).toString('hex');\n var randomBigInt = new BigInteger(hexRandom, 16);\n\n // There is no need to do randomBigInt.mod(this.N - 1) as N (3072-bit) is > 128 bytes (1024-bit)\n\n return randomBigInt;\n }\n\n /**\n * helper function to generate a random string\n * @returns {string} a random value.\n * @private\n */;\n _proto.generateRandomString = function generateRandomString() {\n return randomBytes(40).toString('base64');\n }\n\n /**\n * @returns {string} Generated random value included in password hash.\n */;\n _proto.getRandomPassword = function getRandomPassword() {\n return this.randomPassword;\n }\n\n /**\n * @returns {string} Generated random value included in devices hash.\n */;\n _proto.getSaltDevices = function getSaltDevices() {\n return this.SaltToHashDevices;\n }\n\n /**\n * @returns {string} Value used to verify devices.\n */;\n _proto.getVerifierDevices = function getVerifierDevices() {\n return this.verifierDevices;\n }\n\n /**\n * Generate salts and compute verifier.\n * @param {string} deviceGroupKey Devices to generate verifier for.\n * @param {string} username User to generate verifier for.\n * @param {nodeCallback} callback Called with (err, null)\n * @returns {void}\n */;\n _proto.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) {\n var _this2 = this;\n this.randomPassword = this.generateRandomString();\n var combinedString = \"\" + deviceGroupKey + username + \":\" + this.randomPassword;\n var hashedString = this.hash(combinedString);\n var hexRandom = randomBytes(16).toString('hex');\n\n // The random hex will be unambiguously represented as a postive integer\n this.SaltToHashDevices = this.padHex(new BigInteger(hexRandom, 16));\n this.g.modPow(new BigInteger(this.hexHash(this.SaltToHashDevices + hashedString), 16), this.N, function (err, verifierDevicesNotPadded) {\n if (err) {\n callback(err, null);\n }\n _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded);\n callback(null, null);\n });\n }\n\n /**\n * Calculate the client's public value A = g^a%N\n * with the generated random number a\n * @param {BigInteger} a Randomly generated small A.\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n * @private\n */;\n _proto.calculateA = function calculateA(a, callback) {\n var _this3 = this;\n this.g.modPow(a, this.N, function (err, A) {\n if (err) {\n callback(err, null);\n }\n if (A.mod(_this3.N).equals(BigInteger.ZERO)) {\n callback(new Error('Illegal paramater. A mod N cannot be 0.'), null);\n }\n callback(null, A);\n });\n }\n\n /**\n * Calculate the client's value U which is the hash of A and B\n * @param {BigInteger} A Large A value.\n * @param {BigInteger} B Server B value.\n * @returns {BigInteger} Computed U value.\n * @private\n */;\n _proto.calculateU = function calculateU(A, B) {\n this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B));\n var finalU = new BigInteger(this.UHexHash, 16);\n return finalU;\n }\n\n /**\n * Calculate a hash from a bitArray\n * @param {Buffer} buf Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */;\n _proto.hash = function hash(buf) {\n var str = buf instanceof Buffer ? CryptoJS.lib.WordArray.create(buf) : buf;\n var hashHex = SHA256(str).toString();\n return new Array(64 - hashHex.length).join('0') + hashHex;\n }\n\n /**\n * Calculate a hash from a hex string\n * @param {String} hexStr Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */;\n _proto.hexHash = function hexHash(hexStr) {\n return this.hash(Buffer.from(hexStr, 'hex'));\n }\n\n /**\n * Standard hkdf algorithm\n * @param {Buffer} ikm Input key material.\n * @param {Buffer} salt Salt value.\n * @returns {Buffer} Strong key material.\n * @private\n */;\n _proto.computehkdf = function computehkdf(ikm, salt) {\n var infoBitsWordArray = CryptoJS.lib.WordArray.create(Buffer.concat([this.infoBits, Buffer.from(String.fromCharCode(1), 'utf8')]));\n var ikmWordArray = ikm instanceof Buffer ? CryptoJS.lib.WordArray.create(ikm) : ikm;\n var saltWordArray = salt instanceof Buffer ? CryptoJS.lib.WordArray.create(salt) : salt;\n var prk = HmacSHA256(ikmWordArray, saltWordArray);\n var hmac = HmacSHA256(infoBitsWordArray, prk);\n return Buffer.from(hmac.toString(), 'hex').slice(0, 16);\n }\n\n /**\n * Calculates the final hkdf based on computed S value, and computed U value and the key\n * @param {String} username Username.\n * @param {String} password Password.\n * @param {BigInteger} serverBValue Server B value.\n * @param {BigInteger} salt Generated salt.\n * @param {nodeCallback} callback Called with (err, hkdfValue)\n * @returns {void}\n */;\n _proto.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\n var _this4 = this;\n if (serverBValue.mod(this.N).equals(BigInteger.ZERO)) {\n throw new Error('B cannot be zero.');\n }\n this.UValue = this.calculateU(this.largeAValue, serverBValue);\n if (this.UValue.equals(BigInteger.ZERO)) {\n throw new Error('U cannot be zero.');\n }\n var usernamePassword = \"\" + this.poolName + username + \":\" + password;\n var usernamePasswordHash = this.hash(usernamePassword);\n var xValue = new BigInteger(this.hexHash(this.padHex(salt) + usernamePasswordHash), 16);\n this.calculateS(xValue, serverBValue, function (err, sValue) {\n if (err) {\n callback(err, null);\n }\n var hkdf = _this4.computehkdf(Buffer.from(_this4.padHex(sValue), 'hex'), Buffer.from(_this4.padHex(_this4.UValue), 'hex'));\n callback(null, hkdf);\n });\n }\n\n /**\n * Calculates the S value used in getPasswordAuthenticationKey\n * @param {BigInteger} xValue Salted password hash value.\n * @param {BigInteger} serverBValue Server B value.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.calculateS = function calculateS(xValue, serverBValue, callback) {\n var _this5 = this;\n this.g.modPow(xValue, this.N, function (err, gModPowXN) {\n if (err) {\n callback(err, null);\n }\n var intValue2 = serverBValue.subtract(_this5.k.multiply(gModPowXN));\n intValue2.modPow(_this5.smallAValue.add(_this5.UValue.multiply(xValue)), _this5.N, function (err2, result) {\n if (err2) {\n callback(err2, null);\n }\n callback(null, result.mod(_this5.N));\n });\n });\n }\n\n /**\n * Return constant newPasswordRequiredChallengeUserAttributePrefix\n * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n */;\n _proto.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() {\n return newPasswordRequiredChallengeUserAttributePrefix;\n }\n\n /**\n * Returns an unambiguous, even-length hex string of the two's complement encoding of an integer.\n *\n * It is compatible with the hex encoding of Java's BigInteger's toByteArray(), wich returns a\n * byte array containing the two's-complement representation of a BigInteger. The array contains\n * the minimum number of bytes required to represent the BigInteger, including at least one sign bit.\n *\n * Examples showing how ambiguity is avoided by left padding with:\n * \t\"00\" (for positive values where the most-significant-bit is set)\n * \"FF\" (for negative values where the most-significant-bit is set)\n *\n * padHex(bigInteger.fromInt(-236)) === \"FF14\"\n * padHex(bigInteger.fromInt(20)) === \"14\"\n *\n * padHex(bigInteger.fromInt(-200)) === \"FF38\"\n * padHex(bigInteger.fromInt(56)) === \"38\"\n *\n * padHex(bigInteger.fromInt(-20)) === \"EC\"\n * padHex(bigInteger.fromInt(236)) === \"00EC\"\n *\n * padHex(bigInteger.fromInt(-56)) === \"C8\"\n * padHex(bigInteger.fromInt(200)) === \"00C8\"\n *\n * @param {BigInteger} bigInt Number to encode.\n * @returns {String} even-length hex string of the two's complement encoding.\n */;\n _proto.padHex = function padHex(bigInt) {\n if (!(bigInt instanceof BigInteger)) {\n throw new Error('Not a BigInteger');\n }\n var isNegative = bigInt.compareTo(BigInteger.ZERO) < 0;\n\n /* Get a hex string for abs(bigInt) */\n var hexStr = bigInt.abs().toString(16);\n\n /* Pad hex to even length if needed */\n hexStr = hexStr.length % 2 !== 0 ? \"0\" + hexStr : hexStr;\n\n /* Prepend \"00\" if the most significant bit is set */\n hexStr = HEX_MSB_REGEX.test(hexStr) ? \"00\" + hexStr : hexStr;\n if (isNegative) {\n /* Flip the bits of the representation */\n var invertedNibbles = hexStr.split('').map(function (x) {\n var invertedNibble = ~parseInt(x, 16) & 0xf;\n return '0123456789ABCDEF'.charAt(invertedNibble);\n }).join('');\n\n /* After flipping the bits, add one to get the 2's complement representation */\n var flippedBitsBI = new BigInteger(invertedNibbles, 16).add(BigInteger.ONE);\n hexStr = flippedBitsBI.toString(16);\n\n /*\n For hex strings starting with 'FF8', 'FF' can be dropped, e.g. 0xFFFF80=0xFF80=0x80=-128\n \t\tAny sequence of '1' bits on the left can always be substituted with a single '1' bit\n without changing the represented value.\n \t\tThis only happens in the case when the input is 80...00\n */\n if (hexStr.toUpperCase().startsWith('FF8')) {\n hexStr = hexStr.substring(2);\n }\n }\n return hexStr;\n };\n return AuthenticationHelper;\n}();\nexport { AuthenticationHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\n\n/** @class */\nvar CognitoJwtToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoJwtToken object\n * @param {string=} token The JWT token.\n */\n function CognitoJwtToken(token) {\n // Assign object\n this.jwtToken = token || '';\n this.payload = this.decodePayload();\n }\n\n /**\n * @returns {string} the record's token.\n */\n var _proto = CognitoJwtToken.prototype;\n _proto.getJwtToken = function getJwtToken() {\n return this.jwtToken;\n }\n\n /**\n * @returns {int} the token's expiration (exp member).\n */;\n _proto.getExpiration = function getExpiration() {\n return this.payload.exp;\n }\n\n /**\n * @returns {int} the token's \"issued at\" (iat member).\n */;\n _proto.getIssuedAt = function getIssuedAt() {\n return this.payload.iat;\n }\n\n /**\n * @returns {object} the token's payload.\n */;\n _proto.decodePayload = function decodePayload() {\n var payload = this.jwtToken.split('.')[1];\n try {\n return JSON.parse(Buffer.from(payload, 'base64').toString('utf8'));\n } catch (err) {\n return {};\n }\n };\n return CognitoJwtToken;\n}();\nexport { CognitoJwtToken as default };","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nvar CognitoAccessToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoAccessToken, _CognitoJwtToken);\n /**\n * Constructs a new CognitoAccessToken object\n * @param {string=} AccessToken The JWT access token.\n */\n function CognitoAccessToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n AccessToken = _ref.AccessToken;\n return _CognitoJwtToken.call(this, AccessToken || '') || this;\n }\n return CognitoAccessToken;\n}(CognitoJwtToken);\nexport { CognitoAccessToken as default };","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nvar CognitoIdToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoIdToken, _CognitoJwtToken);\n /**\n * Constructs a new CognitoIdToken object\n * @param {string=} IdToken The JWT Id token\n */\n function CognitoIdToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken;\n return _CognitoJwtToken.call(this, IdToken || '') || this;\n }\n return CognitoIdToken;\n}(CognitoJwtToken);\nexport { CognitoIdToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoRefreshToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoRefreshToken object\n * @param {string=} RefreshToken The JWT refresh token.\n */\n function CognitoRefreshToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n RefreshToken = _ref.RefreshToken;\n // Assign object\n this.token = RefreshToken || '';\n }\n\n /**\n * @returns {string} the record's token.\n */\n var _proto = CognitoRefreshToken.prototype;\n _proto.getToken = function getToken() {\n return this.token;\n };\n return CognitoRefreshToken;\n}();\nexport { CognitoRefreshToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoUserSession = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserSession object\n * @param {CognitoIdToken} IdToken The session's Id token.\n * @param {CognitoRefreshToken=} RefreshToken The session's refresh token.\n * @param {CognitoAccessToken} AccessToken The session's access token.\n * @param {int} ClockDrift The saved computer's clock drift or undefined to force calculation.\n */\n function CognitoUserSession(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken,\n RefreshToken = _ref.RefreshToken,\n AccessToken = _ref.AccessToken,\n ClockDrift = _ref.ClockDrift;\n if (AccessToken == null || IdToken == null) {\n throw new Error('Id token and Access Token must be present.');\n }\n this.idToken = IdToken;\n this.refreshToken = RefreshToken;\n this.accessToken = AccessToken;\n this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift;\n }\n\n /**\n * @returns {CognitoIdToken} the session's Id token\n */\n var _proto = CognitoUserSession.prototype;\n _proto.getIdToken = function getIdToken() {\n return this.idToken;\n }\n\n /**\n * @returns {CognitoRefreshToken} the session's refresh token\n */;\n _proto.getRefreshToken = function getRefreshToken() {\n return this.refreshToken;\n }\n\n /**\n * @returns {CognitoAccessToken} the session's access token\n */;\n _proto.getAccessToken = function getAccessToken() {\n return this.accessToken;\n }\n\n /**\n * @returns {int} the session's clock drift\n */;\n _proto.getClockDrift = function getClockDrift() {\n return this.clockDrift;\n }\n\n /**\n * @returns {int} the computer's clock drift\n */;\n _proto.calculateClockDrift = function calculateClockDrift() {\n var now = Math.floor(new Date() / 1000);\n var iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt());\n return now - iat;\n }\n\n /**\n * Checks to see if the session is still valid based on session expiry information found\n * in tokens and the current time (adjusted with clock drift)\n * @returns {boolean} if the session is still valid\n */;\n _proto.isValid = function isValid() {\n var now = Math.floor(new Date() / 1000);\n var adjusted = now - this.clockDrift;\n return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration();\n };\n return CognitoUserSession;\n}();\nexport { CognitoUserSession as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nvar weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/** @class */\nvar DateHelper = /*#__PURE__*/function () {\n function DateHelper() {}\n var _proto = DateHelper.prototype;\n /**\n * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n */\n _proto.getNowString = function getNowString() {\n var now = new Date();\n var weekDay = weekNames[now.getUTCDay()];\n var month = monthNames[now.getUTCMonth()];\n var day = now.getUTCDate();\n var hours = now.getUTCHours();\n if (hours < 10) {\n hours = \"0\" + hours;\n }\n var minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n var seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n var year = now.getUTCFullYear();\n\n // ddd MMM D HH:mm:ss UTC YYYY\n var dateNow = weekDay + \" \" + month + \" \" + day + \" \" + hours + \":\" + minutes + \":\" + seconds + \" UTC \" + year;\n return dateNow;\n };\n return DateHelper;\n}();\nexport { DateHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoUserAttribute = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserAttribute object\n * @param {string=} Name The record's name\n * @param {string=} Value The record's value\n */\n function CognitoUserAttribute(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n Name = _ref.Name,\n Value = _ref.Value;\n this.Name = Name || '';\n this.Value = Value || '';\n }\n\n /**\n * @returns {string} the record's value.\n */\n var _proto = CognitoUserAttribute.prototype;\n _proto.getValue = function getValue() {\n return this.Value;\n }\n\n /**\n * Sets the record's value.\n * @param {string} value The new value.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */;\n _proto.setValue = function setValue(value) {\n this.Value = value;\n return this;\n }\n\n /**\n * @returns {string} the record's name.\n */;\n _proto.getName = function getName() {\n return this.Name;\n }\n\n /**\n * Sets the record's name\n * @param {string} name The new name.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */;\n _proto.setName = function setName(name) {\n this.Name = name;\n return this;\n }\n\n /**\n * @returns {string} a string representation of the record.\n */;\n _proto.toString = function toString() {\n return JSON.stringify(this);\n }\n\n /**\n * @returns {object} a flat object representing the record.\n */;\n _proto.toJSON = function toJSON() {\n return {\n Name: this.Name,\n Value: this.Value\n };\n };\n return CognitoUserAttribute;\n}();\nexport { CognitoUserAttribute as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar dataMemory = {};\n\n/** @class */\nexport var MemoryStorage = /*#__PURE__*/function () {\n function MemoryStorage() {}\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 setItem(key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n }\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 getItem(key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n }\n\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {boolean} return true\n */;\n MemoryStorage.removeItem = function removeItem(key) {\n return delete dataMemory[key];\n }\n\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */;\n MemoryStorage.clear = function clear() {\n dataMemory = {};\n return dataMemory;\n };\n return MemoryStorage;\n}();\n\n/** @class */\nvar StorageHelper = /*#__PURE__*/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.cognito.test-ls', 1);\n this.storageWindow.removeItem('aws.cognito.test-ls');\n } catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n var _proto = StorageHelper.prototype;\n _proto.getStorage = function getStorage() {\n return this.storageWindow;\n };\n return StorageHelper;\n}();\nexport { StorageHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport TypedArrays from 'crypto-js/lib-typedarrays'; // necessary for crypto js\nimport Base64 from 'crypto-js/enc-base64';\nimport HmacSHA256 from 'crypto-js/hmac-sha256';\nimport BigInteger from './BigInteger';\nimport AuthenticationHelper from './AuthenticationHelper';\nimport CognitoAccessToken from './CognitoAccessToken';\nimport CognitoIdToken from './CognitoIdToken';\nimport CognitoRefreshToken from './CognitoRefreshToken';\nimport CognitoUserSession from './CognitoUserSession';\nimport DateHelper from './DateHelper';\nimport CognitoUserAttribute from './CognitoUserAttribute';\nimport StorageHelper from './StorageHelper';\n\n/**\n * @callback nodeCallback\n * @template T result\n * @param {*} err The operation failure reason, or null.\n * @param {T} result The operation result.\n */\n\n/**\n * @callback onFailure\n * @param {*} err Failure reason.\n */\n\n/**\n * @callback onSuccess\n * @template T result\n * @param {T} result The operation result.\n */\n\n/**\n * @callback mfaRequired\n * @param {*} details MFA challenge details.\n */\n\n/**\n * @callback customChallenge\n * @param {*} details Custom challenge details.\n */\n\n/**\n * @callback inputVerificationCode\n * @param {*} data Server response.\n */\n\n/**\n * @callback authSuccess\n * @param {CognitoUserSession} session The new session.\n * @param {bool=} userConfirmationNecessary User must be confirmed.\n */\n\nvar isBrowser = typeof navigator !== 'undefined';\nvar userAgent = isBrowser ? navigator.userAgent : 'nodejs';\n\n/** @class */\nvar CognitoUser = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUser object\n * @param {object} data Creation options\n * @param {string} data.Username The user's username.\n * @param {CognitoUserPool} data.Pool Pool containing the user.\n * @param {object} data.Storage Optional storage object.\n */\n function CognitoUser(data) {\n if (data == null || data.Username == null || data.Pool == null) {\n throw new Error('Username and Pool information are required.');\n }\n this.username = data.Username || '';\n this.pool = data.Pool;\n this.Session = null;\n this.client = data.Pool.client;\n this.signInUserSession = null;\n this.authenticationFlowType = 'USER_SRP_AUTH';\n this.storage = data.Storage || new StorageHelper().getStorage();\n this.keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n this.userDataKey = this.keyPrefix + \".\" + this.username + \".userData\";\n }\n\n /**\n * Sets the session for this user\n * @param {CognitoUserSession} signInUserSession the session\n * @returns {void}\n */\n var _proto = CognitoUser.prototype;\n _proto.setSignInUserSession = function setSignInUserSession(signInUserSession) {\n this.clearCachedUserData();\n this.signInUserSession = signInUserSession;\n this.cacheTokens();\n }\n\n /**\n * @returns {CognitoUserSession} the current session for this user\n */;\n _proto.getSignInUserSession = function getSignInUserSession() {\n return this.signInUserSession;\n }\n\n /**\n * @returns {string} the user's username\n */;\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n\n /**\n * @returns {String} the authentication flow type\n */;\n _proto.getAuthenticationFlowType = function getAuthenticationFlowType() {\n return this.authenticationFlowType;\n }\n\n /**\n * sets authentication flow type\n * @param {string} authenticationFlowType New value.\n * @returns {void}\n */;\n _proto.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) {\n this.authenticationFlowType = authenticationFlowType;\n }\n\n /**\n * This is used for authenticating the user through the custom authentication flow.\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.initiateAuth = function initiateAuth(authDetails, callback) {\n var _this = this;\n var authParameters = authDetails.getAuthParameters();\n authParameters.USERNAME = this.username;\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeName = data.ChallengeName;\n var challengeParameters = data.ChallengeParameters;\n if (challengeName === 'CUSTOM_CHALLENGE') {\n _this.Session = data.Session;\n return callback.customChallenge(challengeParameters);\n }\n _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult);\n _this.cacheTokens();\n return callback.onSuccess(_this.signInUserSession);\n });\n }\n\n /**\n * This is used for authenticating the user.\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUser = function authenticateUser(authDetails, callback) {\n if (this.authenticationFlowType === 'USER_PASSWORD_AUTH') {\n return this.authenticateUserPlainUsernamePassword(authDetails, callback);\n } else if (this.authenticationFlowType === 'USER_SRP_AUTH' || this.authenticationFlowType === 'CUSTOM_AUTH') {\n return this.authenticateUserDefaultAuth(authDetails, callback);\n }\n return callback.onFailure(new Error('Authentication flow type is invalid.'));\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * It calls the AuthenticationHelper for SRP related\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUserDefaultAuth = function authenticateUserDefaultAuth(authDetails, callback) {\n var _this2 = this;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n var dateHelper = new DateHelper();\n var serverBValue;\n var salt;\n var authParameters = {};\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n authParameters.USERNAME = this.username;\n authenticationHelper.getLargeAValue(function (errOnAValue, aValue) {\n // getLargeAValue callback start\n if (errOnAValue) {\n callback.onFailure(errOnAValue);\n }\n authParameters.SRP_A = aValue.toString(16);\n if (_this2.authenticationFlowType === 'CUSTOM_AUTH') {\n authParameters.CHALLENGE_NAME = 'SRP_A';\n }\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: _this2.authenticationFlowType,\n ClientId: _this2.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (_this2.getUserContextData(_this2.username)) {\n jsonReq.UserContextData = _this2.getUserContextData(_this2.username);\n }\n _this2.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeParameters = data.ChallengeParameters;\n _this2.username = challengeParameters.USER_ID_FOR_SRP;\n _this2.userDataKey = _this2.keyPrefix + \".\" + _this2.username + \".userData\";\n serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n salt = new BigInteger(challengeParameters.SALT, 16);\n _this2.getCachedDeviceKeyAndPassword();\n authenticationHelper.getPasswordAuthenticationKey(_this2.username, authDetails.getPassword(), serverBValue, salt, function (errOnHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errOnHkdf) {\n callback.onFailure(errOnHkdf);\n }\n var dateNow = dateHelper.getNowString();\n var message = CryptoJS.lib.WordArray.create(Buffer.concat([Buffer.from(_this2.pool.getUserPoolName(), 'utf8'), Buffer.from(_this2.username, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]));\n var key = CryptoJS.lib.WordArray.create(hkdf);\n var signatureString = Base64.stringify(HmacSHA256(message, key));\n var challengeResponses = {};\n challengeResponses.USERNAME = _this2.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n if (_this2.deviceKey != null) {\n challengeResponses.DEVICE_KEY = _this2.deviceKey;\n }\n var respondToAuthChallenge = function respondToAuthChallenge(challenge, challengeCallback) {\n return _this2.client.request('RespondToAuthChallenge', challenge, function (errChallenge, dataChallenge) {\n if (errChallenge && errChallenge.code === 'ResourceNotFoundException' && errChallenge.message.toLowerCase().indexOf('device') !== -1) {\n challengeResponses.DEVICE_KEY = null;\n _this2.deviceKey = null;\n _this2.randomPassword = null;\n _this2.deviceGroupKey = null;\n _this2.clearCachedDeviceKeyAndPassword();\n return respondToAuthChallenge(challenge, challengeCallback);\n }\n return challengeCallback(errChallenge, dataChallenge);\n });\n };\n var jsonReqResp = {\n ChallengeName: 'PASSWORD_VERIFIER',\n ClientId: _this2.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session,\n ClientMetadata: clientMetaData\n };\n if (_this2.getUserContextData()) {\n jsonReqResp.UserContextData = _this2.getUserContextData();\n }\n respondToAuthChallenge(jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {AuthenticationDetails} authDetails Contains the authentication data.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUserPlainUsernamePassword = function authenticateUserPlainUsernamePassword(authDetails, callback) {\n var _this3 = this;\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.PASSWORD = authDetails.getPassword();\n if (!authParameters.PASSWORD) {\n callback.onFailure(new Error('PASSWORD parameter is required'));\n return;\n }\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n this.getCachedDeviceKeyAndPassword();\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'USER_PASSWORD_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (this.getUserContextData(this.username)) {\n jsonReq.UserContextData = this.getUserContextData(this.username);\n }\n // USER_PASSWORD_AUTH happens in a single round-trip: client sends userName and password,\n // Cognito UserPools verifies password and returns tokens.\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n return callback.onFailure(err);\n }\n return _this3.authenticateUserInternal(authResult, authenticationHelper, callback);\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {object} dataAuthenticate authentication data\n * @param {object} authenticationHelper helper created\n * @param {callback} callback passed on from caller\n * @returns {void}\n */;\n _proto.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n var _this4 = this;\n var challengeName = dataAuthenticate.ChallengeName;\n var challengeParameters = dataAuthenticate.ChallengeParameters;\n if (challengeName === 'SMS_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaRequired(challengeName, challengeParameters);\n }\n if (challengeName === 'SELECT_MFA_TYPE') {\n this.Session = dataAuthenticate.Session;\n return callback.selectMFAType(challengeName, challengeParameters);\n }\n if (challengeName === 'MFA_SETUP') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaSetup(challengeName, challengeParameters);\n }\n if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.totpRequired(challengeName, challengeParameters);\n }\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = dataAuthenticate.Session;\n return callback.customChallenge(challengeParameters);\n }\n if (challengeName === 'NEW_PASSWORD_REQUIRED') {\n this.Session = dataAuthenticate.Session;\n var userAttributes = null;\n var rawRequiredAttributes = null;\n var requiredAttributes = [];\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n if (challengeParameters) {\n userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes);\n rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes);\n }\n if (rawRequiredAttributes) {\n for (var i = 0; i < rawRequiredAttributes.length; i++) {\n requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length);\n }\n }\n return callback.newPasswordRequired(userAttributes, requiredAttributes);\n }\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.Session = dataAuthenticate.Session;\n this.getDeviceResponse(callback);\n return undefined;\n }\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.challengeName = challengeName;\n this.cacheTokens();\n var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n if (newDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this4.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this4.deviceGroupKey = newDeviceMetadata.DeviceGroupKey;\n _this4.randomPassword = authenticationHelper.getRandomPassword();\n _this4.client.request('ConfirmDevice', {\n DeviceKey: newDeviceMetadata.DeviceKey,\n AccessToken: _this4.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n _this4.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n _this4.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this4.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(_this4.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n }\n\n /**\n * This method is user to complete the NEW_PASSWORD_REQUIRED challenge.\n * Pass the new password with any new user attributes to be updated.\n * User attribute keys must be of format userAttributes..\n * @param {string} newPassword new password for this user\n * @param {object} requiredAttributeData map with values for all required attributes\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback, clientMetadata) {\n var _this5 = this;\n if (!newPassword) {\n return callback.onFailure(new Error('New password is required.'));\n }\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n var finalUserAttributes = {};\n if (requiredAttributeData) {\n Object.keys(requiredAttributeData).forEach(function (key) {\n finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n });\n }\n finalUserAttributes.NEW_PASSWORD = newPassword;\n finalUserAttributes.USERNAME = this.username;\n var jsonReq = {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: finalUserAttributes,\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return _this5.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n }\n\n /**\n * This is used to get a session using device authentication. It is called at the end of user\n * authentication\n *\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n * @private\n */;\n _proto.getDeviceResponse = function getDeviceResponse(callback, clientMetadata) {\n var _this6 = this;\n var authenticationHelper = new AuthenticationHelper(this.deviceGroupKey);\n var dateHelper = new DateHelper();\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.DEVICE_KEY = this.deviceKey;\n authenticationHelper.getLargeAValue(function (errAValue, aValue) {\n // getLargeAValue callback start\n if (errAValue) {\n callback.onFailure(errAValue);\n }\n authParameters.SRP_A = aValue.toString(16);\n var jsonReq = {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: authParameters,\n ClientMetadata: clientMetadata,\n Session: _this6.Session\n };\n if (_this6.getUserContextData()) {\n jsonReq.UserContextData = _this6.getUserContextData();\n }\n _this6.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeParameters = data.ChallengeParameters;\n var serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n var salt = new BigInteger(challengeParameters.SALT, 16);\n authenticationHelper.getPasswordAuthenticationKey(_this6.deviceKey, _this6.randomPassword, serverBValue, salt, function (errHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errHkdf) {\n return callback.onFailure(errHkdf);\n }\n var dateNow = dateHelper.getNowString();\n var message = CryptoJS.lib.WordArray.create(Buffer.concat([Buffer.from(_this6.deviceGroupKey, 'utf8'), Buffer.from(_this6.deviceKey, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]));\n var key = CryptoJS.lib.WordArray.create(hkdf);\n var signatureString = Base64.stringify(HmacSHA256(message, key));\n var challengeResponses = {};\n challengeResponses.USERNAME = _this6.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n challengeResponses.DEVICE_KEY = _this6.deviceKey;\n var jsonReqResp = {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session\n };\n if (_this6.getUserContextData()) {\n jsonReqResp.UserContextData = _this6.getUserContextData();\n }\n _this6.client.request('RespondToAuthChallenge', jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n _this6.signInUserSession = _this6.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n _this6.cacheTokens();\n return callback.onSuccess(_this6.signInUserSession);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * This is used for a certain user to confirm the registration by using a confirmation code\n * @param {string} confirmationCode Code entered by user.\n * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.confirmRegistration = function confirmRegistration(confirmationCode, forceAliasCreation, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n ConfirmationCode: confirmationCode,\n Username: this.username,\n ForceAliasCreation: forceAliasCreation,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ConfirmSignUp', jsonReq, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n }\n\n /**\n * This is used by the user once he has the responses to a custom challenge\n * @param {string} answerChallenge The custom challenge answer.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge\n * Custom challenge response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback, clientMetadata) {\n var _this7 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n this.getCachedDeviceKeyAndPassword();\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return _this7.authenticateUserInternal(data, authenticationHelper, callback);\n });\n }\n\n /**\n * This is used by the user once he has an MFA code\n * @param {string} confirmationCode The MFA code entered by the user.\n * @param {object} callback Result callback map.\n * @param {string} mfaType The mfa we are replying to.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType, clientMetadata) {\n var _this8 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.SMS_MFA_CODE = confirmationCode;\n var mfaTypeSelection = mfaType || 'SMS_MFA';\n if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') {\n challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode;\n }\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ChallengeName: mfaTypeSelection,\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, dataAuthenticate) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeName = dataAuthenticate.ChallengeName;\n if (challengeName === 'DEVICE_SRP_AUTH') {\n _this8.getDeviceResponse(callback);\n return undefined;\n }\n _this8.signInUserSession = _this8.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n _this8.cacheTokens();\n if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n return callback.onSuccess(_this8.signInUserSession);\n }\n var authenticationHelper = new AuthenticationHelper(_this8.pool.getUserPoolName());\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this8.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this8.deviceGroupKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey;\n _this8.randomPassword = authenticationHelper.getRandomPassword();\n _this8.client.request('ConfirmDevice', {\n DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n AccessToken: _this8.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n _this8.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n _this8.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this8.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(_this8.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n });\n }\n\n /**\n * This is used by an authenticated user to change the current password\n * @param {string} oldUserPassword The current password.\n * @param {string} newUserPassword The requested new password.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.changePassword = function changePassword(oldUserPassword, newUserPassword, callback, clientMetadata) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('ChangePassword', {\n PreviousPassword: oldUserPassword,\n ProposedPassword: newUserPassword,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.enableMFA = function enableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n var mfaOptions = [];\n var mfaEnabled = {\n DeliveryMedium: 'SMS',\n AttributeName: 'phone_number'\n };\n mfaOptions.push(mfaEnabled);\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @param {IMfaSettings} smsMfaSettings the sms mfa settings\n * @param {IMFASettings} softwareTokenMfaSettings the software token mfa settings\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('SetUserMFAPreference', {\n SMSMfaSettings: smsMfaSettings,\n SoftwareTokenMfaSettings: softwareTokenMfaSettings,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to disable MFA for itself\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.disableMFA = function disableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n var mfaOptions = [];\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to delete itself\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.deleteUser = function deleteUser(callback, clientMetadata) {\n var _this9 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('DeleteUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n _this9.clearCachedUser();\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n */\n /**\n * This is used by an authenticated user to change a list of attributes\n * @param {AttributeArg[]} attributes A list of the new user attributes.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.updateAttributes = function updateAttributes(attributes, callback, clientMetadata) {\n var _this10 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('UpdateUserAttributes', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserAttributes: attributes,\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n // update cached user\n return _this10.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to get a list of attributes\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.getUserAttributes = function getUserAttributes(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n var attributeList = [];\n for (var i = 0; i < userData.UserAttributes.length; i++) {\n var attribute = {\n Name: userData.UserAttributes[i].Name,\n Value: userData.UserAttributes[i].Value\n };\n var userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n return callback(null, attributeList);\n });\n return undefined;\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 {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.getMFAOptions = function getMFAOptions(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, userData.MFAOptions);\n });\n return undefined;\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.createGetUserRequest = function createGetUserRequest() {\n return this.client.promisifyRequest('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.refreshSessionIfPossible = function refreshSessionIfPossible(options) {\n var _this11 = this;\n if (options === void 0) {\n options = {};\n }\n // best effort, if not possible\n return new Promise(function (resolve) {\n var refresh = _this11.signInUserSession.getRefreshToken();\n if (refresh && refresh.getToken()) {\n _this11.refreshSession(refresh, resolve, options.clientMetadata);\n } else {\n resolve();\n }\n });\n }\n\n /**\n * @typedef {Object} GetUserDataOptions\n * @property {boolean} bypassCache - force getting data from Cognito service\n * @property {Record} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used by an authenticated users to get the userData\n * @param {nodeCallback} callback Called on success or error.\n * @param {GetUserDataOptions} params\n * @returns {void}\n */;\n _proto.getUserData = function getUserData(callback, params) {\n var _this12 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.clearCachedUserData();\n return callback(new Error('User is not authenticated'), null);\n }\n var userData = this.getUserDataFromCache();\n if (!userData) {\n this.fetchUserData().then(function (data) {\n callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n if (this.isFetchUserDataAndTokenRequired(params)) {\n this.fetchUserData().then(function (data) {\n return _this12.refreshSessionIfPossible(params).then(function () {\n return data;\n });\n }).then(function (data) {\n return callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n try {\n callback(null, JSON.parse(userData));\n return;\n } catch (err) {\n this.clearCachedUserData();\n callback(err, null);\n return;\n }\n }\n\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.getUserDataFromCache = function getUserDataFromCache() {\n var userData = this.storage.getItem(this.userDataKey);\n return userData;\n }\n\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.isFetchUserDataAndTokenRequired = function isFetchUserDataAndTokenRequired(params) {\n var _ref = params || {},\n _ref$bypassCache = _ref.bypassCache,\n bypassCache = _ref$bypassCache === void 0 ? false : _ref$bypassCache;\n return bypassCache;\n }\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.fetchUserData = function fetchUserData() {\n var _this13 = this;\n return this.createGetUserRequest().then(function (data) {\n _this13.cacheUserData(data);\n return data;\n });\n }\n\n /**\n * This is used by an authenticated user to delete a list of attributes\n * @param {string[]} attributeList Names of the attributes to delete.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.deleteAttributes = function deleteAttributes(attributeList, callback) {\n var _this14 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('DeleteUserAttributes', {\n UserAttributeNames: attributeList,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n // update cached user\n return _this14.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n\n /**\n * This is used by a user to resend a confirmation code\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.resendConfirmationCode = function resendConfirmationCode(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n this.client.request('ResendConfirmationCode', jsonReq, function (err, result) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, result);\n });\n }\n\n /**\n * @typedef {Object} GetSessionOptions\n * @property {Record} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used to get a session, either from the session object\n * or from the local storage, or by using a refresh token\n *\n * @param {nodeCallback} callback Called on success or error.\n * @param {GetSessionOptions} options\n * @returns {void}\n */;\n _proto.getSession = function getSession(callback, options) {\n if (options === void 0) {\n options = {};\n }\n if (this.username == null) {\n return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n }\n if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n return callback(null, this.signInUserSession);\n }\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var idTokenKey = keyPrefix + \".idToken\";\n var accessTokenKey = keyPrefix + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".clockDrift\";\n if (this.storage.getItem(idTokenKey)) {\n var idToken = new CognitoIdToken({\n IdToken: this.storage.getItem(idTokenKey)\n });\n var accessToken = new CognitoAccessToken({\n AccessToken: this.storage.getItem(accessTokenKey)\n });\n var refreshToken = new CognitoRefreshToken({\n RefreshToken: this.storage.getItem(refreshTokenKey)\n });\n var clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0;\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken,\n ClockDrift: clockDrift\n };\n var cachedSession = new CognitoUserSession(sessionData);\n if (cachedSession.isValid()) {\n this.signInUserSession = cachedSession;\n return callback(null, this.signInUserSession);\n }\n if (!refreshToken.getToken()) {\n return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n }\n this.refreshSession(refreshToken, callback, options.clientMetadata);\n } else {\n callback(new Error('Local storage is missing an ID Token, Please authenticate'), null);\n }\n return undefined;\n }\n\n /**\n * This uses the refreshToken to retrieve a new session\n * @param {CognitoRefreshToken} refreshToken A previous session's refresh token.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.refreshSession = function refreshSession(refreshToken, callback, clientMetadata) {\n var _this15 = this;\n var wrappedCallback = this.pool.wrapRefreshSessionCallback ? this.pool.wrapRefreshSessionCallback(callback) : callback;\n var authParameters = {};\n authParameters.REFRESH_TOKEN = refreshToken.getToken();\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n if (this.storage.getItem(lastUserKey)) {\n this.username = this.storage.getItem(lastUserKey);\n var deviceKeyKey = keyPrefix + \".\" + this.username + \".deviceKey\";\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n if (err.code === 'NotAuthorizedException') {\n _this15.clearCachedUser();\n }\n return wrappedCallback(err, null);\n }\n if (authResult) {\n var authenticationResult = authResult.AuthenticationResult;\n if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n authenticationResult.RefreshToken = refreshToken.getToken();\n }\n _this15.signInUserSession = _this15.getCognitoUserSession(authenticationResult);\n _this15.cacheTokens();\n return wrappedCallback(null, _this15.signInUserSession);\n }\n return undefined;\n });\n }\n\n /**\n * This is used to save the session tokens to local storage\n * @returns {void}\n */;\n _proto.cacheTokens = function cacheTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken());\n this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken());\n this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken());\n this.storage.setItem(clockDriftKey, \"\" + this.signInUserSession.getClockDrift());\n this.storage.setItem(lastUserKey, this.username);\n }\n\n /**\n * This is to cache user data\n */;\n _proto.cacheUserData = function cacheUserData(userData) {\n this.storage.setItem(this.userDataKey, JSON.stringify(userData));\n }\n\n /**\n * This is to remove cached user data\n */;\n _proto.clearCachedUserData = function clearCachedUserData() {\n this.storage.removeItem(this.userDataKey);\n };\n _proto.clearCachedUser = function clearCachedUser() {\n this.clearCachedTokens();\n this.clearCachedUserData();\n }\n\n /**\n * This is used to cache the device key and device group and device password\n * @returns {void}\n */;\n _proto.cacheDeviceKeyAndPassword = function cacheDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.setItem(deviceKeyKey, this.deviceKey);\n this.storage.setItem(randomPasswordKey, this.randomPassword);\n this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey);\n }\n\n /**\n * This is used to get current device key and device group and device password\n * @returns {void}\n */;\n _proto.getCachedDeviceKeyAndPassword = function getCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n if (this.storage.getItem(deviceKeyKey)) {\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n this.randomPassword = this.storage.getItem(randomPasswordKey);\n this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey);\n }\n }\n\n /**\n * This is used to clear the device key info from local storage\n * @returns {void}\n */;\n _proto.clearCachedDeviceKeyAndPassword = function clearCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.removeItem(deviceKeyKey);\n this.storage.removeItem(randomPasswordKey);\n this.storage.removeItem(deviceGroupKeyKey);\n }\n\n /**\n * This is used to clear the session tokens from local storage\n * @returns {void}\n */;\n _proto.clearCachedTokens = function clearCachedTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n this.storage.removeItem(idTokenKey);\n this.storage.removeItem(accessTokenKey);\n this.storage.removeItem(refreshTokenKey);\n this.storage.removeItem(lastUserKey);\n this.storage.removeItem(clockDriftKey);\n }\n\n /**\n * This is used to build a user session from tokens retrieved in the authentication result\n * @param {object} authResult Successful auth response from server.\n * @returns {CognitoUserSession} The new user session.\n * @private\n */;\n _proto.getCognitoUserSession = function getCognitoUserSession(authResult) {\n var idToken = new CognitoIdToken(authResult);\n var accessToken = new CognitoAccessToken(authResult);\n var refreshToken = new CognitoRefreshToken(authResult);\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken\n };\n return new CognitoUserSession(sessionData);\n }\n\n /**\n * This is used to initiate a forgot password request\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode?} callback.inputVerificationCode\n * Optional callback raised instead of onSuccess with response data.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.forgotPassword = function forgotPassword(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ForgotPassword', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess(data);\n });\n }\n\n /**\n * This is used to confirm a new password using a confirmationCode\n * @param {string} confirmationCode Code entered by user.\n * @param {string} newPassword Confirm new password.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.confirmPassword = function confirmPassword(confirmationCode, newPassword, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ConfirmationCode: confirmationCode,\n Password: newPassword,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ConfirmForgotPassword', jsonReq, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n }\n\n /**\n * This is used to initiate an attribute confirmation request\n * @param {string} attributeName User attribute that needs confirmation.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode} callback.inputVerificationCode Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.getAttributeVerificationCode = function getAttributeVerificationCode(attributeName, callback, clientMetadata) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GetUserAttributeVerificationCode', {\n AttributeName: attributeName,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to confirm an attribute using a confirmation code\n * @param {string} attributeName Attribute being confirmed.\n * @param {string} confirmationCode Code entered by user.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.verifyAttribute = function verifyAttribute(attributeName, confirmationCode, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('VerifyUserAttribute', {\n AttributeName: attributeName,\n Code: confirmationCode,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to get the device information using the current device key\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device data.\n * @returns {void}\n */;\n _proto.getDevice = function getDevice(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to forget a specific device\n * @param {string} deviceKey Device key.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.forgetSpecificDevice = function forgetSpecificDevice(deviceKey, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('ForgetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: deviceKey\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to forget the current device\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.forgetDevice = function forgetDevice(callback) {\n var _this16 = this;\n this.forgetSpecificDevice(this.deviceKey, {\n onFailure: callback.onFailure,\n onSuccess: function onSuccess(result) {\n _this16.deviceKey = null;\n _this16.deviceGroupKey = null;\n _this16.randomPassword = null;\n _this16.clearCachedDeviceKeyAndPassword();\n return callback.onSuccess(result);\n }\n });\n }\n\n /**\n * This is used to set the device status as remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.setDeviceStatusRemembered = function setDeviceStatusRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to set the device status as not remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.setDeviceStatusNotRemembered = function setDeviceStatusNotRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'not_remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to list all devices for a user\n *\n * @param {int} limit the number of devices returned in a call\n * @param {string | null} paginationToken the pagination token in case any was returned before\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device list.\n * @returns {void}\n */;\n _proto.listDevices = function listDevices(limit, paginationToken, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n var requestParams = {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n Limit: limit\n };\n if (paginationToken) {\n requestParams.PaginationToken = paginationToken;\n }\n this.client.request('ListDevices', requestParams, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to globally revoke all tokens issued to a user\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.globalSignOut = function globalSignOut(callback) {\n var _this17 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GlobalSignOut', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n _this17.clearCachedUser();\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used for the user to signOut of the application and clear the cached tokens.\n * @returns {void}\n */;\n _proto.signOut = function signOut(revokeTokenCallback) {\n var _this18 = this;\n // If tokens won't be revoked, we just clean the client data.\n if (!revokeTokenCallback || typeof revokeTokenCallback !== 'function') {\n this.cleanClientData();\n return;\n }\n this.getSession(function (error, _session) {\n if (error) {\n return revokeTokenCallback(error);\n }\n _this18.revokeTokens(function (err) {\n _this18.cleanClientData();\n revokeTokenCallback(err);\n });\n });\n };\n _proto.revokeTokens = function revokeTokens(revokeTokenCallback) {\n if (revokeTokenCallback === void 0) {\n revokeTokenCallback = function revokeTokenCallback() {};\n }\n if (typeof revokeTokenCallback !== 'function') {\n throw new Error('Invalid revokeTokenCallback. It should be a function.');\n }\n var tokensToBeRevoked = [];\n if (!this.signInUserSession) {\n var error = new Error('User is not authenticated');\n return revokeTokenCallback(error);\n }\n if (!this.signInUserSession.getAccessToken()) {\n var _error = new Error('No Access token available');\n return revokeTokenCallback(_error);\n }\n var refreshToken = this.signInUserSession.getRefreshToken().getToken();\n var accessToken = this.signInUserSession.getAccessToken();\n if (this.isSessionRevocable(accessToken)) {\n if (refreshToken) {\n return this.revokeToken({\n token: refreshToken,\n callback: revokeTokenCallback\n });\n }\n }\n revokeTokenCallback();\n };\n _proto.isSessionRevocable = function isSessionRevocable(token) {\n if (token && typeof token.decodePayload === 'function') {\n try {\n var _token$decodePayload2 = token.decodePayload(),\n origin_jti = _token$decodePayload2.origin_jti;\n return !!origin_jti;\n } catch (err) {\n // Nothing to do, token doesnt have origin_jti claim\n }\n }\n return false;\n };\n _proto.cleanClientData = function cleanClientData() {\n this.signInUserSession = null;\n this.clearCachedUser();\n };\n _proto.revokeToken = function revokeToken(_ref2) {\n var token = _ref2.token,\n callback = _ref2.callback;\n this.client.requestWithRetry('RevokeToken', {\n Token: token,\n ClientId: this.pool.getClientId()\n }, function (err) {\n if (err) {\n return callback(err);\n }\n callback();\n });\n }\n\n /**\n * This is used by a user trying to select a given MFA\n * @param {string} answerChallenge the mfa the user wants\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) {\n var _this19 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var jsonReq = {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this19.Session = data.Session;\n if (answerChallenge === 'SMS_MFA') {\n return callback.mfaRequired(data.ChallengeName, data.ChallengeParameters);\n }\n if (answerChallenge === 'SOFTWARE_TOKEN_MFA') {\n return callback.totpRequired(data.ChallengeName, data.ChallengeParameters);\n }\n return undefined;\n });\n }\n\n /**\n * This returns the user context data for advanced security feature.\n * @returns {string} the user context data from CognitoUserPool\n */;\n _proto.getUserContextData = function getUserContextData() {\n var pool = this.pool;\n return pool.getUserContextData(this.username);\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.associateSoftwareToken = function associateSoftwareToken(callback) {\n var _this20 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('AssociateSoftwareToken', {\n Session: this.Session\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this20.Session = data.Session;\n return callback.associateSecretCode(data.SecretCode);\n });\n } else {\n this.client.request('AssociateSoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.associateSecretCode(data.SecretCode);\n });\n }\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to verify a TOTP MFA\n * @param {string} totpCode The MFA code entered by the user.\n * @param {string} friendlyDeviceName The device name we are assigning to the device.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) {\n var _this21 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('VerifySoftwareToken', {\n Session: this.Session,\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this21.Session = data.Session;\n var challengeResponses = {};\n challengeResponses.USERNAME = _this21.username;\n var jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ClientId: _this21.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: _this21.Session\n };\n if (_this21.getUserContextData()) {\n jsonReq.UserContextData = _this21.getUserContextData();\n }\n _this21.client.request('RespondToAuthChallenge', jsonReq, function (errRespond, dataRespond) {\n if (errRespond) {\n return callback.onFailure(errRespond);\n }\n _this21.signInUserSession = _this21.getCognitoUserSession(dataRespond.AuthenticationResult);\n _this21.cacheTokens();\n return callback.onSuccess(_this21.signInUserSession);\n });\n return undefined;\n });\n } else {\n this.client.request('VerifySoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n }\n };\n return CognitoUser;\n}();\nexport { CognitoUser as default };","// generated by genversion\nexport var version = '5.0.4';","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { version } from './version';\nvar BASE_USER_AGENT = \"aws-amplify/\" + version;\nexport var Platform = {\n userAgent: BASE_USER_AGENT + \" js\",\n product: '',\n navigator: null,\n isReactNative: false\n};\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\nexport var getUserAgent = function getUserAgent() {\n return Platform.userAgent;\n};\n\n/**\n * @deprecated use named import\n */\nexport default Platform;","import { getUserAgent } from \"./Platform\";\n// constructor\nfunction UserAgent() {}\n// public\nUserAgent.prototype.userAgent = getUserAgent();\nexport var appendToCognitoUserAgent = function appendToCognitoUserAgent(content) {\n if (!content) {\n return;\n }\n if (UserAgent.prototype.userAgent && !UserAgent.prototype.userAgent.includes(content)) {\n UserAgent.prototype.userAgent = UserAgent.prototype.userAgent.concat(' ', content);\n }\n if (!UserAgent.prototype.userAgent || UserAgent.prototype.userAgent === '') {\n UserAgent.prototype.userAgent = content;\n }\n};\n\n// class for defining the amzn user-agent\nexport default UserAgent;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\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; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport 'isomorphic-unfetch';\nimport UserAgent from './UserAgent';\nvar CognitoError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(CognitoError, _Error);\n function CognitoError(message, code, name, statusCode) {\n var _this;\n _this = _Error.call(this, message) || this;\n _this.code = code;\n _this.name = name;\n _this.statusCode = statusCode;\n return _this;\n }\n return CognitoError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/** @class */\nvar Client = /*#__PURE__*/function () {\n /**\n * Constructs a new AWS Cognito Identity Provider client object\n * @param {string} region AWS region\n * @param {string} endpoint endpoint\n * @param {object} fetchOptions options for fetch API (only credentials is supported)\n */\n function Client(region, endpoint, fetchOptions) {\n this.endpoint = endpoint || \"https://cognito-idp.\" + region + \".amazonaws.com/\";\n var _ref = fetchOptions || {},\n credentials = _ref.credentials;\n this.fetchOptions = credentials ? {\n credentials: credentials\n } : {};\n }\n\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @returns Promise\n */\n var _proto = Client.prototype;\n _proto.promisifyRequest = function promisifyRequest(operation, params) {\n var _this2 = this;\n return new Promise(function (resolve, reject) {\n _this2.request(operation, params, function (err, data) {\n if (err) {\n reject(new CognitoError(err.message, err.code, err.name, err.statusCode));\n } else {\n resolve(data);\n }\n });\n });\n };\n _proto.requestWithRetry = function requestWithRetry(operation, params, callback) {\n var _this3 = this;\n var MAX_DELAY_IN_MILLIS = 5 * 1000;\n jitteredExponentialRetry(function (p) {\n return new Promise(function (res, rej) {\n _this3.request(operation, p, function (error, result) {\n if (error) {\n rej(error);\n } else {\n res(result);\n }\n });\n });\n }, [params], MAX_DELAY_IN_MILLIS).then(function (result) {\n return callback(null, result);\n })[\"catch\"](function (error) {\n return callback(error);\n });\n }\n\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @param {function} callback Callback called when a response is returned\n * @returns {void}\n */;\n _proto.request = function request(operation, params, callback) {\n var headers = {\n 'Content-Type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': \"AWSCognitoIdentityProviderService.\" + operation,\n 'X-Amz-User-Agent': UserAgent.prototype.userAgent,\n 'Cache-Control': 'no-store'\n };\n var options = Object.assign({}, this.fetchOptions, {\n headers: headers,\n method: 'POST',\n mode: 'cors',\n body: JSON.stringify(params)\n });\n var response;\n var responseJsonData;\n fetch(this.endpoint, options).then(function (resp) {\n response = resp;\n return resp;\n }, function (err) {\n // If error happens here, the request failed\n // if it is TypeError throw network error\n if (err instanceof TypeError) {\n throw new Error('Network error');\n }\n throw err;\n }).then(function (resp) {\n return resp.json()[\"catch\"](function () {\n return {};\n });\n }).then(function (data) {\n // return parsed body stream\n if (response.ok) return callback(null, data);\n responseJsonData = data;\n\n // Taken from aws-sdk-js/lib/protocol/json.js\n // eslint-disable-next-line no-underscore-dangle\n var code = (data.__type || data.code).split('#').pop();\n var error = new Error(data.message || data.Message || null);\n error.name = code;\n error.code = code;\n return callback(error);\n })[\"catch\"](function (err) {\n // first check if we have a service error\n if (response && response.headers && response.headers.get('x-amzn-errortype')) {\n try {\n var code = response.headers.get('x-amzn-errortype').split(':')[0];\n var error = new Error(response.status ? response.status.toString() : null);\n error.code = code;\n error.name = code;\n error.statusCode = response.status;\n return callback(error);\n } catch (ex) {\n return callback(err);\n }\n // otherwise check if error is Network error\n } else if (err instanceof Error && err.message === 'Network error') {\n err.code = 'NetworkError';\n }\n return callback(err);\n });\n };\n return Client;\n}();\nexport { Client as default };\nvar logger = {\n debug: function debug() {\n // Intentionally blank. This package doesn't have logging\n }\n};\n\n/**\n * For now, all errors are retryable.\n */\nvar NonRetryableError = /*#__PURE__*/function (_Error2) {\n _inheritsLoose(NonRetryableError, _Error2);\n function NonRetryableError(message) {\n var _this4;\n _this4 = _Error2.call(this, message) || this;\n _this4.nonRetryable = true;\n return _this4;\n }\n return NonRetryableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nvar isNonRetryableError = function isNonRetryableError(obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) {\n attempt = 1;\n }\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with args: \" + JSON.stringify(args));\n return functionToRetry.apply(void 0, args)[\"catch\"](function (err) {\n logger.debug(\"error on \" + functionToRetry.name, err);\n if (isNonRetryableError(err)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err);\n throw err;\n }\n var retryIn = delayFn(attempt, args, err);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn + \" ms\");\n if (retryIn !== false) {\n return new Promise(function (res) {\n return setTimeout(res, retryIn);\n }).then(function () {\n return retry(functionToRetry, args, delayFn, attempt + 1);\n });\n } else {\n throw err;\n }\n });\n}\nfunction jitteredBackoff(maxDelayMs) {\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}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\nfunction jitteredExponentialRetry(functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) {\n maxDelayMs = MAX_DELAY_MS;\n }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n}","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport Client from './Client';\nimport CognitoUser from './CognitoUser';\nimport StorageHelper from './StorageHelper';\nvar USER_POOL_ID_MAX_LENGTH = 55;\n\n/** @class */\nvar CognitoUserPool = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserPool object\n * @param {object} data Creation options.\n * @param {string} data.UserPoolId Cognito user pool id.\n * @param {string} data.ClientId User pool application client id.\n * @param {string} data.endpoint Optional custom service endpoint.\n * @param {object} data.fetchOptions Optional options for fetch API.\n * (only credentials option is supported)\n * @param {object} data.Storage Optional storage object.\n * @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional:\n * boolean flag indicating if the data collection is enabled\n * to support cognito advanced security features. By default, this\n * flag is set to true.\n */\n function CognitoUserPool(data, wrapRefreshSessionCallback) {\n var _ref = data || {},\n UserPoolId = _ref.UserPoolId,\n ClientId = _ref.ClientId,\n endpoint = _ref.endpoint,\n fetchOptions = _ref.fetchOptions,\n AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag;\n if (!UserPoolId || !ClientId) {\n throw new Error('Both UserPoolId and ClientId are required.');\n }\n if (UserPoolId.length > USER_POOL_ID_MAX_LENGTH || !/^[\\w-]+_[0-9a-zA-Z]+$/.test(UserPoolId)) {\n throw new Error('Invalid UserPoolId format.');\n }\n var region = UserPoolId.split('_')[0];\n this.userPoolId = UserPoolId;\n this.clientId = ClientId;\n this.client = new Client(region, endpoint, fetchOptions);\n\n /**\n * By default, AdvancedSecurityDataCollectionFlag is set to true,\n * if no input value is provided.\n */\n this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag !== false;\n this.storage = data.Storage || new StorageHelper().getStorage();\n if (wrapRefreshSessionCallback) {\n this.wrapRefreshSessionCallback = wrapRefreshSessionCallback;\n }\n }\n\n /**\n * @returns {string} the user pool id\n */\n var _proto = CognitoUserPool.prototype;\n _proto.getUserPoolId = function getUserPoolId() {\n return this.userPoolId;\n }\n\n /**\n * @returns {string} the user pool name\n */;\n _proto.getUserPoolName = function getUserPoolName() {\n return this.getUserPoolId().split('_')[1];\n }\n\n /**\n * @returns {string} the client id\n */;\n _proto.getClientId = function getClientId() {\n return this.clientId;\n }\n\n /**\n * @typedef {object} SignUpResult\n * @property {CognitoUser} user New user.\n * @property {bool} userConfirmed If the user is already confirmed.\n */\n /**\n * method for signing up a user\n * @param {string} username User's username.\n * @param {string} password Plain-text initial password entered by user.\n * @param {(AttributeArg[])=} userAttributes New user attributes.\n * @param {(AttributeArg[])=} validationData Application metadata.\n * @param {(AttributeArg[])=} clientMetadata Client metadata.\n * @param {nodeCallback} callback Called on error or with the new user.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.signUp = function signUp(username, password, userAttributes, validationData, callback, clientMetadata) {\n var _this = this;\n var jsonReq = {\n ClientId: this.clientId,\n Username: username,\n Password: password,\n UserAttributes: userAttributes,\n ValidationData: validationData,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData(username)) {\n jsonReq.UserContextData = this.getUserContextData(username);\n }\n this.client.request('SignUp', jsonReq, function (err, data) {\n if (err) {\n return callback(err, null);\n }\n var cognitoUser = {\n Username: username,\n Pool: _this,\n Storage: _this.storage\n };\n var returnData = {\n user: new CognitoUser(cognitoUser),\n userConfirmed: data.UserConfirmed,\n userSub: data.UserSub,\n codeDeliveryDetails: data.CodeDeliveryDetails\n };\n return callback(null, returnData);\n });\n }\n\n /**\n * method for getting the current user of the application from the local storage\n *\n * @returns {CognitoUser} the user retrieved from storage\n */;\n _proto.getCurrentUser = function getCurrentUser() {\n var lastUserKey = \"CognitoIdentityServiceProvider.\" + this.clientId + \".LastAuthUser\";\n var lastAuthUser = this.storage.getItem(lastUserKey);\n if (lastAuthUser) {\n var cognitoUser = {\n Username: lastAuthUser,\n Pool: this,\n Storage: this.storage\n };\n return new CognitoUser(cognitoUser);\n }\n return null;\n }\n\n /**\n * This method returns the encoded data string used for cognito advanced security feature.\n * This would be generated only when developer has included the JS used for collecting the\n * data on their client. Please refer to documentation to know more about using AdvancedSecurity\n * features\n * @param {string} username the username for the context data\n * @returns {string} the user context data\n **/;\n _proto.getUserContextData = function getUserContextData(username) {\n if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') {\n return undefined;\n }\n /* eslint-disable */\n var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData;\n /* eslint-enable */\n\n if (this.advancedSecurityDataCollectionFlag) {\n var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId);\n if (advancedSecurityData) {\n var userContextData = {\n EncodedData: advancedSecurityData\n };\n return userContextData;\n }\n }\n return {};\n };\n return CognitoUserPool;\n}();\nexport { CognitoUserPool as default };","import * as Cookies from 'js-cookie';\n\n/** @class */\nvar CookieStorage = /*#__PURE__*/function () {\n /**\n * Constructs a new CookieStorage object\n * @param {object} data Creation options.\n * @param {string} data.domain Cookies domain (mandatory).\n * @param {string} data.path Cookies path (default: '/')\n * @param {integer} data.expires Cookie expiration (in days, default: 365)\n * @param {boolean} data.secure Cookie secure flag (default: true)\n * @param {string} data.sameSite Cookie request behaviour (default: null)\n */\n function CookieStorage(data) {\n if (data.domain) {\n this.domain = data.domain;\n } else {\n throw new Error('The domain of cookieStorage can not be undefined.');\n }\n if (data.path) {\n this.path = data.path;\n } else {\n this.path = '/';\n }\n if (Object.prototype.hasOwnProperty.call(data, 'expires')) {\n this.expires = data.expires;\n } else {\n this.expires = 365;\n }\n if (Object.prototype.hasOwnProperty.call(data, 'secure')) {\n this.secure = data.secure;\n } else {\n this.secure = true;\n }\n if (Object.prototype.hasOwnProperty.call(data, 'sameSite')) {\n if (!['strict', 'lax', 'none'].includes(data.sameSite)) {\n throw new Error('The sameSite value of cookieStorage must be \"lax\", \"strict\" or \"none\".');\n }\n if (data.sameSite === 'none' && !this.secure) {\n throw new Error('sameSite = None requires the Secure attribute in latest browser versions.');\n }\n this.sameSite = data.sameSite;\n } else {\n this.sameSite = null;\n }\n }\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 var _proto = CookieStorage.prototype;\n _proto.setItem = function setItem(key, value) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n Cookies.set(key, value, options);\n return Cookies.get(key);\n }\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 _proto.getItem = function getItem(key) {\n return Cookies.get(key);\n }\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 _proto.removeItem = function removeItem(key) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n return Cookies.remove(key, options);\n }\n\n /**\n * This is used to clear the storage of optional\n * items that were previously set\n * @returns {} an empty object\n */;\n _proto.clear = function clear() {\n var cookies = Cookies.get();\n var numKeys = Object.keys(cookies).length;\n for (var index = 0; index < numKeys; ++index) {\n this.removeItem(Object.keys(cookies)[index]);\n }\n return {};\n };\n return CookieStorage;\n}();\nexport { CookieStorage as default };","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['acm'] = {};\nAWS.ACM = Service.defineService('acm', ['2015-12-08']);\nObject.defineProperty(apiLoader.services['acm'], '2015-12-08', {\n get: function get() {\n var model = require('../apis/acm-2015-12-08.min.json');\n model.paginators = require('../apis/acm-2015-12-08.paginators.json').pagination;\n model.waiters = require('../apis/acm-2015-12-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ACM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['amp'] = {};\nAWS.Amp = Service.defineService('amp', ['2020-08-01']);\nObject.defineProperty(apiLoader.services['amp'], '2020-08-01', {\n get: function get() {\n var model = require('../apis/amp-2020-08-01.min.json');\n model.paginators = require('../apis/amp-2020-08-01.paginators.json').pagination;\n model.waiters = require('../apis/amp-2020-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Amp;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['apigateway'] = {};\nAWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']);\nrequire('../lib/services/apigateway');\nObject.defineProperty(apiLoader.services['apigateway'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/apigateway-2015-07-09.min.json');\n model.paginators = require('../apis/apigateway-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.APIGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['applicationautoscaling'] = {};\nAWS.ApplicationAutoScaling = Service.defineService('applicationautoscaling', ['2016-02-06']);\nObject.defineProperty(apiLoader.services['applicationautoscaling'], '2016-02-06', {\n get: function get() {\n var model = require('../apis/application-autoscaling-2016-02-06.min.json');\n model.paginators = require('../apis/application-autoscaling-2016-02-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ApplicationAutoScaling;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['athena'] = {};\nAWS.Athena = Service.defineService('athena', ['2017-05-18']);\nObject.defineProperty(apiLoader.services['athena'], '2017-05-18', {\n get: function get() {\n var model = require('../apis/athena-2017-05-18.min.json');\n model.paginators = require('../apis/athena-2017-05-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Athena;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['autoscaling'] = {};\nAWS.AutoScaling = Service.defineService('autoscaling', ['2011-01-01']);\nObject.defineProperty(apiLoader.services['autoscaling'], '2011-01-01', {\n get: function get() {\n var model = require('../apis/autoscaling-2011-01-01.min.json');\n model.paginators = require('../apis/autoscaling-2011-01-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.AutoScaling;\n","require('../lib/node_loader');\nmodule.exports = {\n ACM: require('./acm'),\n APIGateway: require('./apigateway'),\n ApplicationAutoScaling: require('./applicationautoscaling'),\n AutoScaling: require('./autoscaling'),\n CloudFormation: require('./cloudformation'),\n CloudFront: require('./cloudfront'),\n CloudHSM: require('./cloudhsm'),\n CloudTrail: require('./cloudtrail'),\n CloudWatch: require('./cloudwatch'),\n CloudWatchEvents: require('./cloudwatchevents'),\n CloudWatchLogs: require('./cloudwatchlogs'),\n CodeBuild: require('./codebuild'),\n CodeCommit: require('./codecommit'),\n CodeDeploy: require('./codedeploy'),\n CodePipeline: require('./codepipeline'),\n CognitoIdentity: require('./cognitoidentity'),\n CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'),\n CognitoSync: require('./cognitosync'),\n ConfigService: require('./configservice'),\n CUR: require('./cur'),\n DeviceFarm: require('./devicefarm'),\n DirectConnect: require('./directconnect'),\n DynamoDB: require('./dynamodb'),\n DynamoDBStreams: require('./dynamodbstreams'),\n EC2: require('./ec2'),\n ECR: require('./ecr'),\n ECS: require('./ecs'),\n EFS: require('./efs'),\n ElastiCache: require('./elasticache'),\n ElasticBeanstalk: require('./elasticbeanstalk'),\n ELB: require('./elb'),\n ELBv2: require('./elbv2'),\n EMR: require('./emr'),\n ElasticTranscoder: require('./elastictranscoder'),\n Firehose: require('./firehose'),\n GameLift: require('./gamelift'),\n IAM: require('./iam'),\n Inspector: require('./inspector'),\n Iot: require('./iot'),\n IotData: require('./iotdata'),\n Kinesis: require('./kinesis'),\n KMS: require('./kms'),\n Lambda: require('./lambda'),\n LexRuntime: require('./lexruntime'),\n MachineLearning: require('./machinelearning'),\n MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'),\n MTurk: require('./mturk'),\n MobileAnalytics: require('./mobileanalytics'),\n OpsWorks: require('./opsworks'),\n Polly: require('./polly'),\n RDS: require('./rds'),\n Redshift: require('./redshift'),\n Rekognition: require('./rekognition'),\n Route53: require('./route53'),\n Route53Domains: require('./route53domains'),\n S3: require('./s3'),\n ServiceCatalog: require('./servicecatalog'),\n SES: require('./ses'),\n SNS: require('./sns'),\n SQS: require('./sqs'),\n SSM: require('./ssm'),\n StorageGateway: require('./storagegateway'),\n STS: require('./sts'),\n XRay: require('./xray'),\n WAF: require('./waf'),\n WorkDocs: require('./workdocs'),\n LexModelBuildingService: require('./lexmodelbuildingservice'),\n Athena: require('./athena'),\n CloudHSMV2: require('./cloudhsmv2'),\n Pricing: require('./pricing'),\n CostExplorer: require('./costexplorer'),\n MediaStoreData: require('./mediastoredata'),\n Comprehend: require('./comprehend'),\n KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'),\n KinesisVideoMedia: require('./kinesisvideomedia'),\n KinesisVideo: require('./kinesisvideo'),\n Translate: require('./translate'),\n ResourceGroups: require('./resourcegroups'),\n Connect: require('./connect'),\n SecretsManager: require('./secretsmanager'),\n IoTAnalytics: require('./iotanalytics'),\n ComprehendMedical: require('./comprehendmedical'),\n Personalize: require('./personalize'),\n PersonalizeEvents: require('./personalizeevents'),\n PersonalizeRuntime: require('./personalizeruntime'),\n ForecastService: require('./forecastservice'),\n ForecastQueryService: require('./forecastqueryservice'),\n MarketplaceCatalog: require('./marketplacecatalog'),\n KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'),\n Amp: require('./amp'),\n Location: require('./location'),\n LexRuntimeV2: require('./lexruntimev2')\n};","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudformation'] = {};\nAWS.CloudFormation = Service.defineService('cloudformation', ['2010-05-15']);\nObject.defineProperty(apiLoader.services['cloudformation'], '2010-05-15', {\n get: function get() {\n var model = require('../apis/cloudformation-2010-05-15.min.json');\n model.paginators = require('../apis/cloudformation-2010-05-15.paginators.json').pagination;\n model.waiters = require('../apis/cloudformation-2010-05-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFormation;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudfront'] = {};\nAWS.CloudFront = Service.defineService('cloudfront', ['2013-05-12*', '2013-11-11*', '2014-05-31*', '2014-10-21*', '2014-11-06*', '2015-04-17*', '2015-07-27*', '2015-09-17*', '2016-01-13*', '2016-01-28*', '2016-08-01*', '2016-08-20*', '2016-09-07*', '2016-09-29*', '2016-11-25', '2016-11-25*', '2017-03-25', '2017-03-25*', '2017-10-30', '2017-10-30*', '2018-06-18', '2018-06-18*', '2018-11-05', '2018-11-05*', '2019-03-26', '2019-03-26*', '2020-05-31']);\nrequire('../lib/services/cloudfront');\nObject.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2016-11-25.min.json');\n model.paginators = require('../apis/cloudfront-2016-11-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2016-11-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-03-25.min.json');\n model.paginators = require('../apis/cloudfront-2017-03-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-03-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-10-30.min.json');\n model.paginators = require('../apis/cloudfront-2017-10-30.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-10-30.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-06-18', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-06-18.min.json');\n model.paginators = require('../apis/cloudfront-2018-06-18.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-06-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-11-05', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-11-05.min.json');\n model.paginators = require('../apis/cloudfront-2018-11-05.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-11-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2019-03-26', {\n get: function get() {\n var model = require('../apis/cloudfront-2019-03-26.min.json');\n model.paginators = require('../apis/cloudfront-2019-03-26.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2019-03-26.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2020-05-31', {\n get: function get() {\n var model = require('../apis/cloudfront-2020-05-31.min.json');\n model.paginators = require('../apis/cloudfront-2020-05-31.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2020-05-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFront;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsm'] = {};\nAWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']);\nObject.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', {\n get: function get() {\n var model = require('../apis/cloudhsm-2014-05-30.min.json');\n model.paginators = require('../apis/cloudhsm-2014-05-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsmv2'] = {};\nAWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']);\nObject.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', {\n get: function get() {\n var model = require('../apis/cloudhsmv2-2017-04-28.min.json');\n model.paginators = require('../apis/cloudhsmv2-2017-04-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSMV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudtrail'] = {};\nAWS.CloudTrail = Service.defineService('cloudtrail', ['2013-11-01']);\nObject.defineProperty(apiLoader.services['cloudtrail'], '2013-11-01', {\n get: function get() {\n var model = require('../apis/cloudtrail-2013-11-01.min.json');\n model.paginators = require('../apis/cloudtrail-2013-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudTrail;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatch'] = {};\nAWS.CloudWatch = Service.defineService('cloudwatch', ['2010-08-01']);\nObject.defineProperty(apiLoader.services['cloudwatch'], '2010-08-01', {\n get: function get() {\n var model = require('../apis/monitoring-2010-08-01.min.json');\n model.paginators = require('../apis/monitoring-2010-08-01.paginators.json').pagination;\n model.waiters = require('../apis/monitoring-2010-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatch;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchevents'] = {};\nAWS.CloudWatchEvents = Service.defineService('cloudwatchevents', ['2014-02-03*', '2015-10-07']);\nObject.defineProperty(apiLoader.services['cloudwatchevents'], '2015-10-07', {\n get: function get() {\n var model = require('../apis/events-2015-10-07.min.json');\n model.paginators = require('../apis/events-2015-10-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchlogs'] = {};\nAWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']);\nObject.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', {\n get: function get() {\n var model = require('../apis/logs-2014-03-28.min.json');\n model.paginators = require('../apis/logs-2014-03-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchLogs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codebuild'] = {};\nAWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']);\nObject.defineProperty(apiLoader.services['codebuild'], '2016-10-06', {\n get: function get() {\n var model = require('../apis/codebuild-2016-10-06.min.json');\n model.paginators = require('../apis/codebuild-2016-10-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeBuild;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codecommit'] = {};\nAWS.CodeCommit = Service.defineService('codecommit', ['2015-04-13']);\nObject.defineProperty(apiLoader.services['codecommit'], '2015-04-13', {\n get: function get() {\n var model = require('../apis/codecommit-2015-04-13.min.json');\n model.paginators = require('../apis/codecommit-2015-04-13.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeCommit;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codedeploy'] = {};\nAWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']);\nObject.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', {\n get: function get() {\n var model = require('../apis/codedeploy-2014-10-06.min.json');\n model.paginators = require('../apis/codedeploy-2014-10-06.paginators.json').pagination;\n model.waiters = require('../apis/codedeploy-2014-10-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeDeploy;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codepipeline'] = {};\nAWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']);\nObject.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/codepipeline-2015-07-09.min.json');\n model.paginators = require('../apis/codepipeline-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodePipeline;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentity'] = {};\nAWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-identity-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-identity-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentity;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentityserviceprovider'] = {};\nAWS.CognitoIdentityServiceProvider = Service.defineService('cognitoidentityserviceprovider', ['2016-04-18']);\nObject.defineProperty(apiLoader.services['cognitoidentityserviceprovider'], '2016-04-18', {\n get: function get() {\n var model = require('../apis/cognito-idp-2016-04-18.min.json');\n model.paginators = require('../apis/cognito-idp-2016-04-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentityServiceProvider;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitosync'] = {};\nAWS.CognitoSync = Service.defineService('cognitosync', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitosync'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-sync-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-sync-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoSync;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehend'] = {};\nAWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['comprehend'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/comprehend-2017-11-27.min.json');\n model.paginators = require('../apis/comprehend-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Comprehend;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehendmedical'] = {};\nAWS.ComprehendMedical = Service.defineService('comprehendmedical', ['2018-10-30']);\nObject.defineProperty(apiLoader.services['comprehendmedical'], '2018-10-30', {\n get: function get() {\n var model = require('../apis/comprehendmedical-2018-10-30.min.json');\n model.paginators = require('../apis/comprehendmedical-2018-10-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ComprehendMedical;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['configservice'] = {};\nAWS.ConfigService = Service.defineService('configservice', ['2014-11-12']);\nObject.defineProperty(apiLoader.services['configservice'], '2014-11-12', {\n get: function get() {\n var model = require('../apis/config-2014-11-12.min.json');\n model.paginators = require('../apis/config-2014-11-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ConfigService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['connect'] = {};\nAWS.Connect = Service.defineService('connect', ['2017-08-08']);\nObject.defineProperty(apiLoader.services['connect'], '2017-08-08', {\n get: function get() {\n var model = require('../apis/connect-2017-08-08.min.json');\n model.paginators = require('../apis/connect-2017-08-08.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Connect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['costexplorer'] = {};\nAWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']);\nObject.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', {\n get: function get() {\n var model = require('../apis/ce-2017-10-25.min.json');\n model.paginators = require('../apis/ce-2017-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CostExplorer;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cur'] = {};\nAWS.CUR = Service.defineService('cur', ['2017-01-06']);\nObject.defineProperty(apiLoader.services['cur'], '2017-01-06', {\n get: function get() {\n var model = require('../apis/cur-2017-01-06.min.json');\n model.paginators = require('../apis/cur-2017-01-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CUR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['devicefarm'] = {};\nAWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']);\nObject.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', {\n get: function get() {\n var model = require('../apis/devicefarm-2015-06-23.min.json');\n model.paginators = require('../apis/devicefarm-2015-06-23.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DeviceFarm;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['directconnect'] = {};\nAWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']);\nObject.defineProperty(apiLoader.services['directconnect'], '2012-10-25', {\n get: function get() {\n var model = require('../apis/directconnect-2012-10-25.min.json');\n model.paginators = require('../apis/directconnect-2012-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DirectConnect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodb'] = {};\nAWS.DynamoDB = Service.defineService('dynamodb', ['2011-12-05', '2012-08-10']);\nrequire('../lib/services/dynamodb');\nObject.defineProperty(apiLoader.services['dynamodb'], '2011-12-05', {\n get: function get() {\n var model = require('../apis/dynamodb-2011-12-05.min.json');\n model.paginators = require('../apis/dynamodb-2011-12-05.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2011-12-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['dynamodb'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/dynamodb-2012-08-10.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2012-08-10.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodbstreams'] = {};\nAWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']);\nObject.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/streams.dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/streams.dynamodb-2012-08-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDBStreams;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ec2'] = {};\nAWS.EC2 = Service.defineService('ec2', ['2013-06-15*', '2013-10-15*', '2014-02-01*', '2014-05-01*', '2014-06-15*', '2014-09-01*', '2014-10-01*', '2015-03-01*', '2015-04-15*', '2015-10-01*', '2016-04-01*', '2016-09-15*', '2016-11-15']);\nrequire('../lib/services/ec2');\nObject.defineProperty(apiLoader.services['ec2'], '2016-11-15', {\n get: function get() {\n var model = require('../apis/ec2-2016-11-15.min.json');\n model.paginators = require('../apis/ec2-2016-11-15.paginators.json').pagination;\n model.waiters = require('../apis/ec2-2016-11-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EC2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecr'] = {};\nAWS.ECR = Service.defineService('ecr', ['2015-09-21']);\nObject.defineProperty(apiLoader.services['ecr'], '2015-09-21', {\n get: function get() {\n var model = require('../apis/ecr-2015-09-21.min.json');\n model.paginators = require('../apis/ecr-2015-09-21.paginators.json').pagination;\n model.waiters = require('../apis/ecr-2015-09-21.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecs'] = {};\nAWS.ECS = Service.defineService('ecs', ['2014-11-13']);\nObject.defineProperty(apiLoader.services['ecs'], '2014-11-13', {\n get: function get() {\n var model = require('../apis/ecs-2014-11-13.min.json');\n model.paginators = require('../apis/ecs-2014-11-13.paginators.json').pagination;\n model.waiters = require('../apis/ecs-2014-11-13.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['efs'] = {};\nAWS.EFS = Service.defineService('efs', ['2015-02-01']);\nObject.defineProperty(apiLoader.services['efs'], '2015-02-01', {\n get: function get() {\n var model = require('../apis/elasticfilesystem-2015-02-01.min.json');\n model.paginators = require('../apis/elasticfilesystem-2015-02-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EFS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticache'] = {};\nAWS.ElastiCache = Service.defineService('elasticache', ['2012-11-15*', '2014-03-24*', '2014-07-15*', '2014-09-30*', '2015-02-02']);\nObject.defineProperty(apiLoader.services['elasticache'], '2015-02-02', {\n get: function get() {\n var model = require('../apis/elasticache-2015-02-02.min.json');\n model.paginators = require('../apis/elasticache-2015-02-02.paginators.json').pagination;\n model.waiters = require('../apis/elasticache-2015-02-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElastiCache;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticbeanstalk'] = {};\nAWS.ElasticBeanstalk = Service.defineService('elasticbeanstalk', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['elasticbeanstalk'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/elasticbeanstalk-2010-12-01.min.json');\n model.paginators = require('../apis/elasticbeanstalk-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticbeanstalk-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticBeanstalk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elastictranscoder'] = {};\nAWS.ElasticTranscoder = Service.defineService('elastictranscoder', ['2012-09-25']);\nObject.defineProperty(apiLoader.services['elastictranscoder'], '2012-09-25', {\n get: function get() {\n var model = require('../apis/elastictranscoder-2012-09-25.min.json');\n model.paginators = require('../apis/elastictranscoder-2012-09-25.paginators.json').pagination;\n model.waiters = require('../apis/elastictranscoder-2012-09-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticTranscoder;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elb'] = {};\nAWS.ELB = Service.defineService('elb', ['2012-06-01']);\nObject.defineProperty(apiLoader.services['elb'], '2012-06-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancing-2012-06-01.min.json');\n model.paginators = require('../apis/elasticloadbalancing-2012-06-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancing-2012-06-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elbv2'] = {};\nAWS.ELBv2 = Service.defineService('elbv2', ['2015-12-01']);\nObject.defineProperty(apiLoader.services['elbv2'], '2015-12-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancingv2-2015-12-01.min.json');\n model.paginators = require('../apis/elasticloadbalancingv2-2015-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancingv2-2015-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELBv2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['emr'] = {};\nAWS.EMR = Service.defineService('emr', ['2009-03-31']);\nObject.defineProperty(apiLoader.services['emr'], '2009-03-31', {\n get: function get() {\n var model = require('../apis/elasticmapreduce-2009-03-31.min.json');\n model.paginators = require('../apis/elasticmapreduce-2009-03-31.paginators.json').pagination;\n model.waiters = require('../apis/elasticmapreduce-2009-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EMR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['firehose'] = {};\nAWS.Firehose = Service.defineService('firehose', ['2015-08-04']);\nObject.defineProperty(apiLoader.services['firehose'], '2015-08-04', {\n get: function get() {\n var model = require('../apis/firehose-2015-08-04.min.json');\n model.paginators = require('../apis/firehose-2015-08-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Firehose;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastqueryservice'] = {};\nAWS.ForecastQueryService = Service.defineService('forecastqueryservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastqueryservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecastquery-2018-06-26.min.json');\n model.paginators = require('../apis/forecastquery-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastQueryService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastservice'] = {};\nAWS.ForecastService = Service.defineService('forecastservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecast-2018-06-26.min.json');\n model.paginators = require('../apis/forecast-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['gamelift'] = {};\nAWS.GameLift = Service.defineService('gamelift', ['2015-10-01']);\nObject.defineProperty(apiLoader.services['gamelift'], '2015-10-01', {\n get: function get() {\n var model = require('../apis/gamelift-2015-10-01.min.json');\n model.paginators = require('../apis/gamelift-2015-10-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.GameLift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iam'] = {};\nAWS.IAM = Service.defineService('iam', ['2010-05-08']);\nObject.defineProperty(apiLoader.services['iam'], '2010-05-08', {\n get: function get() {\n var model = require('../apis/iam-2010-05-08.min.json');\n model.paginators = require('../apis/iam-2010-05-08.paginators.json').pagination;\n model.waiters = require('../apis/iam-2010-05-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IAM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['inspector'] = {};\nAWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']);\nObject.defineProperty(apiLoader.services['inspector'], '2016-02-16', {\n get: function get() {\n var model = require('../apis/inspector-2016-02-16.min.json');\n model.paginators = require('../apis/inspector-2016-02-16.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Inspector;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iot'] = {};\nAWS.Iot = Service.defineService('iot', ['2015-05-28']);\nObject.defineProperty(apiLoader.services['iot'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-2015-05-28.min.json');\n model.paginators = require('../apis/iot-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Iot;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotanalytics'] = {};\nAWS.IoTAnalytics = Service.defineService('iotanalytics', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['iotanalytics'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/iotanalytics-2017-11-27.min.json');\n model.paginators = require('../apis/iotanalytics-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IoTAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotdata'] = {};\nAWS.IotData = Service.defineService('iotdata', ['2015-05-28']);\nrequire('../lib/services/iotdata');\nObject.defineProperty(apiLoader.services['iotdata'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-data-2015-05-28.min.json');\n model.paginators = require('../apis/iot-data-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IotData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesis'] = {};\nAWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']);\nObject.defineProperty(apiLoader.services['kinesis'], '2013-12-02', {\n get: function get() {\n var model = require('../apis/kinesis-2013-12-02.min.json');\n model.paginators = require('../apis/kinesis-2013-12-02.paginators.json').pagination;\n model.waiters = require('../apis/kinesis-2013-12-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Kinesis;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideo'] = {};\nAWS.KinesisVideo = Service.defineService('kinesisvideo', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideo'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesisvideo-2017-09-30.min.json');\n model.paginators = require('../apis/kinesisvideo-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideo;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideoarchivedmedia'] = {};\nAWS.KinesisVideoArchivedMedia = Service.defineService('kinesisvideoarchivedmedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideoarchivedmedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-archived-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-archived-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoArchivedMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideomedia'] = {};\nAWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideosignalingchannels'] = {};\nAWS.KinesisVideoSignalingChannels = Service.defineService('kinesisvideosignalingchannels', ['2019-12-04']);\nObject.defineProperty(apiLoader.services['kinesisvideosignalingchannels'], '2019-12-04', {\n get: function get() {\n var model = require('../apis/kinesis-video-signaling-2019-12-04.min.json');\n model.paginators = require('../apis/kinesis-video-signaling-2019-12-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoSignalingChannels;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kms'] = {};\nAWS.KMS = Service.defineService('kms', ['2014-11-01']);\nObject.defineProperty(apiLoader.services['kms'], '2014-11-01', {\n get: function get() {\n var model = require('../apis/kms-2014-11-01.min.json');\n model.paginators = require('../apis/kms-2014-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KMS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lambda'] = {};\nAWS.Lambda = Service.defineService('lambda', ['2014-11-11', '2015-03-31']);\nrequire('../lib/services/lambda');\nObject.defineProperty(apiLoader.services['lambda'], '2014-11-11', {\n get: function get() {\n var model = require('../apis/lambda-2014-11-11.min.json');\n model.paginators = require('../apis/lambda-2014-11-11.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['lambda'], '2015-03-31', {\n get: function get() {\n var model = require('../apis/lambda-2015-03-31.min.json');\n model.paginators = require('../apis/lambda-2015-03-31.paginators.json').pagination;\n model.waiters = require('../apis/lambda-2015-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Lambda;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexmodelbuildingservice'] = {};\nAWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']);\nObject.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', {\n get: function get() {\n var model = require('../apis/lex-models-2017-04-19.min.json');\n model.paginators = require('../apis/lex-models-2017-04-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexModelBuildingService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntime'] = {};\nAWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']);\nObject.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', {\n get: function get() {\n var model = require('../apis/runtime.lex-2016-11-28.min.json');\n model.paginators = require('../apis/runtime.lex-2016-11-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntimev2'] = {};\nAWS.LexRuntimeV2 = Service.defineService('lexruntimev2', ['2020-08-07']);\nObject.defineProperty(apiLoader.services['lexruntimev2'], '2020-08-07', {\n get: function get() {\n var model = require('../apis/runtime.lex.v2-2020-08-07.min.json');\n model.paginators = require('../apis/runtime.lex.v2-2020-08-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntimeV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['location'] = {};\nAWS.Location = Service.defineService('location', ['2020-11-19']);\nObject.defineProperty(apiLoader.services['location'], '2020-11-19', {\n get: function get() {\n var model = require('../apis/location-2020-11-19.min.json');\n model.paginators = require('../apis/location-2020-11-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Location;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['machinelearning'] = {};\nAWS.MachineLearning = Service.defineService('machinelearning', ['2014-12-12']);\nrequire('../lib/services/machinelearning');\nObject.defineProperty(apiLoader.services['machinelearning'], '2014-12-12', {\n get: function get() {\n var model = require('../apis/machinelearning-2014-12-12.min.json');\n model.paginators = require('../apis/machinelearning-2014-12-12.paginators.json').pagination;\n model.waiters = require('../apis/machinelearning-2014-12-12.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MachineLearning;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecatalog'] = {};\nAWS.MarketplaceCatalog = Service.defineService('marketplacecatalog', ['2018-09-17']);\nObject.defineProperty(apiLoader.services['marketplacecatalog'], '2018-09-17', {\n get: function get() {\n var model = require('../apis/marketplace-catalog-2018-09-17.min.json');\n model.paginators = require('../apis/marketplace-catalog-2018-09-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecommerceanalytics'] = {};\nAWS.MarketplaceCommerceAnalytics = Service.defineService('marketplacecommerceanalytics', ['2015-07-01']);\nObject.defineProperty(apiLoader.services['marketplacecommerceanalytics'], '2015-07-01', {\n get: function get() {\n var model = require('../apis/marketplacecommerceanalytics-2015-07-01.min.json');\n model.paginators = require('../apis/marketplacecommerceanalytics-2015-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCommerceAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mediastoredata'] = {};\nAWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']);\nObject.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', {\n get: function get() {\n var model = require('../apis/mediastore-data-2017-09-01.min.json');\n model.paginators = require('../apis/mediastore-data-2017-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MediaStoreData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mobileanalytics'] = {};\nAWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']);\nObject.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', {\n get: function get() {\n var model = require('../apis/mobileanalytics-2014-06-05.min.json');\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MobileAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mturk'] = {};\nAWS.MTurk = Service.defineService('mturk', ['2017-01-17']);\nObject.defineProperty(apiLoader.services['mturk'], '2017-01-17', {\n get: function get() {\n var model = require('../apis/mturk-requester-2017-01-17.min.json');\n model.paginators = require('../apis/mturk-requester-2017-01-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MTurk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['opsworks'] = {};\nAWS.OpsWorks = Service.defineService('opsworks', ['2013-02-18']);\nObject.defineProperty(apiLoader.services['opsworks'], '2013-02-18', {\n get: function get() {\n var model = require('../apis/opsworks-2013-02-18.min.json');\n model.paginators = require('../apis/opsworks-2013-02-18.paginators.json').pagination;\n model.waiters = require('../apis/opsworks-2013-02-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.OpsWorks;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalize'] = {};\nAWS.Personalize = Service.defineService('personalize', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalize'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Personalize;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeevents'] = {};\nAWS.PersonalizeEvents = Service.defineService('personalizeevents', ['2018-03-22']);\nObject.defineProperty(apiLoader.services['personalizeevents'], '2018-03-22', {\n get: function get() {\n var model = require('../apis/personalize-events-2018-03-22.min.json');\n model.paginators = require('../apis/personalize-events-2018-03-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeruntime'] = {};\nAWS.PersonalizeRuntime = Service.defineService('personalizeruntime', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalizeruntime'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-runtime-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-runtime-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['polly'] = {};\nAWS.Polly = Service.defineService('polly', ['2016-06-10']);\nrequire('../lib/services/polly');\nObject.defineProperty(apiLoader.services['polly'], '2016-06-10', {\n get: function get() {\n var model = require('../apis/polly-2016-06-10.min.json');\n model.paginators = require('../apis/polly-2016-06-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Polly;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['pricing'] = {};\nAWS.Pricing = Service.defineService('pricing', ['2017-10-15']);\nObject.defineProperty(apiLoader.services['pricing'], '2017-10-15', {\n get: function get() {\n var model = require('../apis/pricing-2017-10-15.min.json');\n model.paginators = require('../apis/pricing-2017-10-15.paginators.json').pagination;\n model.waiters = require('../apis/pricing-2017-10-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Pricing;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rds'] = {};\nAWS.RDS = Service.defineService('rds', ['2013-01-10', '2013-02-12', '2013-09-09', '2014-09-01', '2014-09-01*', '2014-10-31']);\nrequire('../lib/services/rds');\nObject.defineProperty(apiLoader.services['rds'], '2013-01-10', {\n get: function get() {\n var model = require('../apis/rds-2013-01-10.min.json');\n model.paginators = require('../apis/rds-2013-01-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-02-12', {\n get: function get() {\n var model = require('../apis/rds-2013-02-12.min.json');\n model.paginators = require('../apis/rds-2013-02-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-09-09', {\n get: function get() {\n var model = require('../apis/rds-2013-09-09.min.json');\n model.paginators = require('../apis/rds-2013-09-09.paginators.json').pagination;\n model.waiters = require('../apis/rds-2013-09-09.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-09-01', {\n get: function get() {\n var model = require('../apis/rds-2014-09-01.min.json');\n model.paginators = require('../apis/rds-2014-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-10-31', {\n get: function get() {\n var model = require('../apis/rds-2014-10-31.min.json');\n model.paginators = require('../apis/rds-2014-10-31.paginators.json').pagination;\n model.waiters = require('../apis/rds-2014-10-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.RDS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['redshift'] = {};\nAWS.Redshift = Service.defineService('redshift', ['2012-12-01']);\nObject.defineProperty(apiLoader.services['redshift'], '2012-12-01', {\n get: function get() {\n var model = require('../apis/redshift-2012-12-01.min.json');\n model.paginators = require('../apis/redshift-2012-12-01.paginators.json').pagination;\n model.waiters = require('../apis/redshift-2012-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Redshift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rekognition'] = {};\nAWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']);\nObject.defineProperty(apiLoader.services['rekognition'], '2016-06-27', {\n get: function get() {\n var model = require('../apis/rekognition-2016-06-27.min.json');\n model.paginators = require('../apis/rekognition-2016-06-27.paginators.json').pagination;\n model.waiters = require('../apis/rekognition-2016-06-27.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Rekognition;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['resourcegroups'] = {};\nAWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/resource-groups-2017-11-27.min.json');\n model.paginators = require('../apis/resource-groups-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ResourceGroups;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53'] = {};\nAWS.Route53 = Service.defineService('route53', ['2013-04-01']);\nrequire('../lib/services/route53');\nObject.defineProperty(apiLoader.services['route53'], '2013-04-01', {\n get: function get() {\n var model = require('../apis/route53-2013-04-01.min.json');\n model.paginators = require('../apis/route53-2013-04-01.paginators.json').pagination;\n model.waiters = require('../apis/route53-2013-04-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53domains'] = {};\nAWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']);\nObject.defineProperty(apiLoader.services['route53domains'], '2014-05-15', {\n get: function get() {\n var model = require('../apis/route53domains-2014-05-15.min.json');\n model.paginators = require('../apis/route53domains-2014-05-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53Domains;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['s3'] = {};\nAWS.S3 = Service.defineService('s3', ['2006-03-01']);\nrequire('../lib/services/s3');\nObject.defineProperty(apiLoader.services['s3'], '2006-03-01', {\n get: function get() {\n var model = require('../apis/s3-2006-03-01.min.json');\n model.paginators = require('../apis/s3-2006-03-01.paginators.json').pagination;\n model.waiters = require('../apis/s3-2006-03-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.S3;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['secretsmanager'] = {};\nAWS.SecretsManager = Service.defineService('secretsmanager', ['2017-10-17']);\nObject.defineProperty(apiLoader.services['secretsmanager'], '2017-10-17', {\n get: function get() {\n var model = require('../apis/secretsmanager-2017-10-17.min.json');\n model.paginators = require('../apis/secretsmanager-2017-10-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SecretsManager;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['servicecatalog'] = {};\nAWS.ServiceCatalog = Service.defineService('servicecatalog', ['2015-12-10']);\nObject.defineProperty(apiLoader.services['servicecatalog'], '2015-12-10', {\n get: function get() {\n var model = require('../apis/servicecatalog-2015-12-10.min.json');\n model.paginators = require('../apis/servicecatalog-2015-12-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ServiceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ses'] = {};\nAWS.SES = Service.defineService('ses', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['ses'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/email-2010-12-01.min.json');\n model.paginators = require('../apis/email-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/email-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SES;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sns'] = {};\nAWS.SNS = Service.defineService('sns', ['2010-03-31']);\nObject.defineProperty(apiLoader.services['sns'], '2010-03-31', {\n get: function get() {\n var model = require('../apis/sns-2010-03-31.min.json');\n model.paginators = require('../apis/sns-2010-03-31.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SNS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sqs'] = {};\nAWS.SQS = Service.defineService('sqs', ['2012-11-05']);\nrequire('../lib/services/sqs');\nObject.defineProperty(apiLoader.services['sqs'], '2012-11-05', {\n get: function get() {\n var model = require('../apis/sqs-2012-11-05.min.json');\n model.paginators = require('../apis/sqs-2012-11-05.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SQS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ssm'] = {};\nAWS.SSM = Service.defineService('ssm', ['2014-11-06']);\nObject.defineProperty(apiLoader.services['ssm'], '2014-11-06', {\n get: function get() {\n var model = require('../apis/ssm-2014-11-06.min.json');\n model.paginators = require('../apis/ssm-2014-11-06.paginators.json').pagination;\n model.waiters = require('../apis/ssm-2014-11-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['storagegateway'] = {};\nAWS.StorageGateway = Service.defineService('storagegateway', ['2013-06-30']);\nObject.defineProperty(apiLoader.services['storagegateway'], '2013-06-30', {\n get: function get() {\n var model = require('../apis/storagegateway-2013-06-30.min.json');\n model.paginators = require('../apis/storagegateway-2013-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.StorageGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sts'] = {};\nAWS.STS = Service.defineService('sts', ['2011-06-15']);\nrequire('../lib/services/sts');\nObject.defineProperty(apiLoader.services['sts'], '2011-06-15', {\n get: function get() {\n var model = require('../apis/sts-2011-06-15.min.json');\n model.paginators = require('../apis/sts-2011-06-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.STS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['translate'] = {};\nAWS.Translate = Service.defineService('translate', ['2017-07-01']);\nObject.defineProperty(apiLoader.services['translate'], '2017-07-01', {\n get: function get() {\n var model = require('../apis/translate-2017-07-01.min.json');\n model.paginators = require('../apis/translate-2017-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Translate;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['waf'] = {};\nAWS.WAF = Service.defineService('waf', ['2015-08-24']);\nObject.defineProperty(apiLoader.services['waf'], '2015-08-24', {\n get: function get() {\n var model = require('../apis/waf-2015-08-24.min.json');\n model.paginators = require('../apis/waf-2015-08-24.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WAF;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['workdocs'] = {};\nAWS.WorkDocs = Service.defineService('workdocs', ['2016-05-01']);\nObject.defineProperty(apiLoader.services['workdocs'], '2016-05-01', {\n get: function get() {\n var model = require('../apis/workdocs-2016-05-01.min.json');\n model.paginators = require('../apis/workdocs-2016-05-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WorkDocs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['xray'] = {};\nAWS.XRay = Service.defineService('xray', ['2016-04-12']);\nObject.defineProperty(apiLoader.services['xray'], '2016-04-12', {\n get: function get() {\n var model = require('../apis/xray-2016-04-12.min.json');\n model.paginators = require('../apis/xray-2016-04-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.XRay;\n","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n return apiLoader.services[svc][version];\n}\n\n/**\n * @api private\n *\n * This member of AWS.apiLoader is private, but changing it will necessitate a\n * change to ../scripts/services-table-generator.ts\n */\napiLoader.services = {};\n\n/**\n * @api private\n */\nmodule.exports = apiLoader;\n","require('./browser_loader');\n\nvar AWS = require('./core');\n\nif (typeof window !== 'undefined') window.AWS = AWS;\nif (typeof module !== 'undefined') {\n /**\n * @api private\n */\n module.exports = AWS;\n}\nif (typeof self !== 'undefined') self.AWS = AWS;\n\n/**\n * @private\n * DO NOT REMOVE\n * browser builder will strip out this line if services are supplied on the command line.\n */\nrequire('../clients/browser_default');\n","var Hmac = require('./browserHmac');\nvar Md5 = require('./browserMd5');\nvar Sha1 = require('./browserSha1');\nvar Sha256 = require('./browserSha256');\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n createHash: function createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Md5();\n } else if (alg === 'sha256') {\n return new Sha256();\n } else if (alg === 'sha1') {\n return new Sha1();\n }\n\n throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createHmac: function createHmac(alg, key) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Hmac(Md5, key);\n } else if (alg === 'sha256') {\n return new Hmac(Sha256, key);\n } else if (alg === 'sha1') {\n return new Hmac(Sha1, key);\n }\n\n throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createSign: function() {\n throw new Error('createSign is not implemented in the browser');\n }\n };\n","var Buffer = require('buffer/').Buffer;\n\n/**\n * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is\n * e.g. missing in IE 10.\n *\n * @api private\n */\nif (\n typeof ArrayBuffer !== 'undefined' &&\n typeof ArrayBuffer.isView === 'undefined'\n) {\n ArrayBuffer.isView = function(arg) {\n return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1;\n };\n}\n\n/**\n * @api private\n */\nvar viewStrings = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]',\n '[object DataView]',\n];\n\n/**\n * @api private\n */\nfunction isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\n\n/**\n * @api private\n */\nfunction convertToBuffer(data) {\n if (typeof data === 'string') {\n data = new Buffer(data, 'utf8');\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n isEmptyData: isEmptyData,\n convertToBuffer: convertToBuffer,\n};\n","var hashUtils = require('./browserHashUtils');\n\n/**\n * @api private\n */\nfunction Hmac(hashCtor, secret) {\n this.hash = new hashCtor();\n this.outer = new hashCtor();\n\n var inner = bufferFromSecret(hashCtor, secret);\n var outer = new Uint8Array(hashCtor.BLOCK_SIZE);\n outer.set(inner);\n\n for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // Zero out the copied key buffer.\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Hmac;\n\nHmac.prototype.update = function (toHash) {\n if (hashUtils.isEmptyData(toHash) || this.error) {\n return this;\n }\n\n try {\n this.hash.update(hashUtils.convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n\n return this;\n};\n\nHmac.prototype.digest = function (encoding) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest(encoding);\n};\n\nfunction bufferFromSecret(hashCtor, secret) {\n var input = hashUtils.convertToBuffer(secret);\n if (input.byteLength > hashCtor.BLOCK_SIZE) {\n var bufferHash = new hashCtor;\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(hashCtor.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","var hashUtils = require('./browserHashUtils');\nvar Buffer = require('buffer/').Buffer;\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 16;\n\nvar INIT = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n];\n\n/**\n * @api private\n */\nfunction Md5() {\n this.state = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n ];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Md5;\n\nMd5.BLOCK_SIZE = BLOCK_SIZE;\n\nMd5.prototype.update = function (sourceData) {\n if (hashUtils.isEmptyData(sourceData)) {\n return this;\n } else if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n var data = hashUtils.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 return this;\n};\n\nMd5.prototype.digest = function (encoding) {\n if (!this.finished) {\n var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n var 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 (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var 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 var out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (var i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength);\n return encoding ? buff.toString(encoding) : buff;\n};\n\nMd5.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\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}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 20;\n\nvar KEY = new Uint32Array([\n 0x5a827999,\n 0x6ed9eba1,\n 0x8f1bbcdc | 0,\n 0xca62c1d6 | 0\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @api private\n */\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n // The first 64 bytes (16 words) is the data chunk\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha1;\n\nSha1.BLOCK_SIZE = BLOCK_SIZE;\n\nSha1.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var length = data.length;\n this.totalLength += length * 8;\n for (var i = 0; i < length; i++) {\n this.write(data[i]);\n }\n\n return this;\n};\n\nSha1.prototype.write = function write(byte) {\n this.block[this.offset] |= (byte & 0xff) << this.shift;\n if (this.shift) {\n this.shift -= 8;\n } else {\n this.offset++;\n this.shift = 24;\n }\n\n if (this.offset === 16) this.processBlock();\n};\n\nSha1.prototype.digest = function (encoding) {\n // Pad\n this.write(0x80);\n if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) {\n this.processBlock();\n }\n this.offset = 14;\n this.shift = 24;\n\n // 64-bit length big-endian\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n this.write(0x00); // ..So just hard-code to zero.\n this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00);\n for (var s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\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 Buffer(DIGEST_LENGTH);\n var outView = new DataView(out.buffer);\n outView.setUint32(0, this.h0, false);\n outView.setUint32(4, this.h1, false);\n outView.setUint32(8, this.h2, false);\n outView.setUint32(12, this.h3, false);\n outView.setUint32(16, this.h4, false);\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha1.prototype.processBlock = function processBlock() {\n // Extend the sixteen 32-bit words into eighty 32-bit words:\n for (var i = 16; i < 80; i++) {\n var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16];\n this.block[i] = (w << 1) | (w >>> 31);\n }\n\n // Initialize hash value for this chunk:\n var a = this.h0;\n var b = this.h1;\n var c = this.h2;\n var d = this.h3;\n var e = this.h4;\n var f, k;\n\n // Main loop:\n for (i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5A827999;\n }\n else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n }\n else if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8F1BBCDC;\n }\n else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0);\n e = d;\n d = c;\n c = (b << 30 | b >>> 2);\n b = a;\n a = temp;\n }\n\n // Add this chunk's hash to result so far:\n this.h0 = (this.h0 + a) | 0;\n this.h1 = (this.h1 + b) | 0;\n this.h2 = (this.h2 + c) | 0;\n this.h3 = (this.h3 + d) | 0;\n this.h4 = (this.h4 + e) | 0;\n\n // The block is now reusable.\n this.offset = 0;\n for (i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 32;\n\nvar 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\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @private\n */\nfunction Sha256() {\n this.state = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n ];\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @private\n */\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha256;\n\nSha256.BLOCK_SIZE = BLOCK_SIZE;\n\nSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error('Cannot hash more than 2^53 - 1 bits');\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nSha256.prototype.digest = function (encoding) {\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 % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(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 Buffer(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 encoding ? out.toString(encoding) : out;\n};\n\nSha256.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n var state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n for (var i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (((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) ^\n (u >>> 19 | u << 13) ^\n (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = (u >>> 7 | u << 25) ^\n (u >>> 18 | u << 14) ^\n (u >>> 3);\n this.temp[i] = (t1_1 + this.temp[i - 7] | 0) +\n (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))) | 0)\n + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0;\n var t2 = (((state0 >>> 2 | state0 << 30) ^\n (state0 >>> 13 | state0 << 19) ^\n (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 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","var util = require('./util');\n\n// browser specific modules\nutil.crypto.lib = require('./browserCryptoLib');\nutil.Buffer = require('buffer/').Buffer;\nutil.url = require('url/');\nutil.querystring = require('querystring/');\nutil.realClock = require('./realclock/browserClock');\nutil.environment = 'js';\nutil.createEventStream = require('./event-stream/buffered-create-event-stream').createEventStream;\nutil.isBrowser = function() { return true; };\nutil.isNode = function() { return false; };\n\nvar AWS = require('./core');\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nrequire('./credentials/temporary_credentials');\nrequire('./credentials/chainable_temporary_credentials');\nrequire('./credentials/web_identity_credentials');\nrequire('./credentials/cognito_identity_credentials');\nrequire('./credentials/saml_credentials');\n\n// Load the DOMParser XML parser\nAWS.XML.Parser = require('./xml/browser_parser');\n\n// Load the XHR HttpClient\nrequire('./http/xhr');\n\nif (typeof process === 'undefined') {\n var process = {\n browser: true\n };\n}\n","var AWS = require('../core'),\n url = AWS.util.url,\n crypto = AWS.util.crypto.lib,\n base64Encode = AWS.util.base64.encode,\n inherit = AWS.util.inherit;\n\nvar queryEncode = function (string) {\n var replacements = {\n '+': '-',\n '=': '_',\n '/': '~'\n };\n return string.replace(/[\\+=\\/]/g, function (match) {\n return replacements[match];\n });\n};\n\nvar signPolicy = function (policy, privateKey) {\n var sign = crypto.createSign('RSA-SHA1');\n sign.write(policy);\n return queryEncode(sign.sign(privateKey, 'base64'));\n};\n\nvar signWithCannedPolicy = function (url, expires, keyPairId, privateKey) {\n var policy = JSON.stringify({\n Statement: [\n {\n Resource: url,\n Condition: { DateLessThan: { 'AWS:EpochTime': expires } }\n }\n ]\n });\n\n return {\n Expires: expires,\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy.toString(), privateKey)\n };\n};\n\nvar signWithCustomPolicy = function (policy, keyPairId, privateKey) {\n policy = policy.replace(/\\s/mg, '');\n\n return {\n Policy: queryEncode(base64Encode(policy)),\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy, privateKey)\n };\n};\n\nvar determineScheme = function (url) {\n var parts = url.split('://');\n if (parts.length < 2) {\n throw new Error('Invalid URL.');\n }\n\n return parts[0].replace('*', '');\n};\n\nvar getRtmpUrl = function (rtmpUrl) {\n var parsed = url.parse(rtmpUrl);\n return parsed.path.replace(/^\\//, '') + (parsed.hash || '');\n};\n\nvar getResource = function (url) {\n switch (determineScheme(url)) {\n case 'http':\n case 'https':\n return url;\n case 'rtmp':\n return getRtmpUrl(url);\n default:\n throw new Error('Invalid URI scheme. Scheme must be one of'\n + ' http, https, or rtmp');\n }\n};\n\nvar handleError = function (err, callback) {\n if (!callback || typeof callback !== 'function') {\n throw err;\n }\n\n callback(err);\n};\n\nvar handleSuccess = function (result, callback) {\n if (!callback || typeof callback !== 'function') {\n return result;\n }\n\n callback(null, result);\n};\n\nAWS.CloudFront.Signer = inherit({\n /**\n * A signer object can be used to generate signed URLs and cookies for granting\n * access to content on restricted CloudFront distributions.\n *\n * @see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html\n *\n * @param keyPairId [String] (Required) The ID of the CloudFront key pair\n * being used.\n * @param privateKey [String] (Required) A private key in RSA format.\n */\n constructor: function Signer(keyPairId, privateKey) {\n if (keyPairId === void 0 || privateKey === void 0) {\n throw new Error('A key pair ID and private key are required');\n }\n\n this.keyPairId = keyPairId;\n this.privateKey = privateKey;\n },\n\n /**\n * Create a signed Amazon CloudFront Cookie.\n *\n * @param options [Object] The options to create a signed cookie.\n * @option options url [String] The URL to which the signature will grant\n * access. Required unless you pass in a full\n * policy.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the hash as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [Object] if called synchronously (with no callback), returns the\n * signed cookie parameters.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedCookie: function (options, cb) {\n var signatureHash = 'policy' in options\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey);\n\n var cookieHash = {};\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n cookieHash['CloudFront-' + key] = signatureHash[key];\n }\n }\n\n return handleSuccess(cookieHash, cb);\n },\n\n /**\n * Create a signed Amazon CloudFront URL.\n *\n * Keep in mind that URLs meant for use in media/flash players may have\n * different requirements for URL formats (e.g. some require that the\n * extension be removed, some require the file name to be prefixed\n * - mp4:, some require you to add \"/cfx/st\" into your URL).\n *\n * @param options [Object] The options to create a signed URL.\n * @option options url [String] The URL to which the signature will grant\n * access. Any query params included with\n * the URL should be encoded. Required.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedUrl: function (options, cb) {\n try {\n var resource = getResource(options.url);\n } catch (err) {\n return handleError(err, cb);\n }\n\n var parsedUrl = url.parse(options.url, true),\n signatureHash = Object.prototype.hasOwnProperty.call(options, 'policy')\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey);\n\n parsedUrl.search = null;\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n parsedUrl.query[key] = signatureHash[key];\n }\n }\n\n try {\n var signedUrl = determineScheme(options.url) === 'rtmp'\n ? getRtmpUrl(url.format(parsedUrl))\n : url.format(parsedUrl);\n } catch (err) {\n return handleError(err, cb);\n }\n\n return handleSuccess(signedUrl, cb);\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.CloudFront.Signer;\n","var AWS = require('./core');\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nvar PromisesDependency;\n\n/**\n * The main configuration class used by all service objects to set\n * the region, credentials, and other options for requests.\n *\n * By default, credentials and region settings are left unconfigured.\n * This should be configured by the application before using any\n * AWS service APIs.\n *\n * In order to set global configuration options, properties should\n * be assigned to the global {AWS.config} object.\n *\n * @see AWS.config\n *\n * @!group General Configuration Options\n *\n * @!attribute credentials\n * @return [AWS.Credentials] the AWS credentials to sign requests with.\n *\n * @!attribute region\n * @example Set the global region setting to us-west-2\n * AWS.config.update({region: 'us-west-2'});\n * @return [AWS.Credentials] The region to send service requests to.\n * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html\n * A list of available endpoints for each AWS service\n *\n * @!attribute maxRetries\n * @return [Integer] the maximum amount of retries to perform for a\n * service request. By default this value is calculated by the specific\n * service object that the request is being made to.\n *\n * @!attribute maxRedirects\n * @return [Integer] the maximum amount of redirects to follow for a\n * service request. Defaults to 10.\n *\n * @!attribute paramValidation\n * @return [Boolean|map] whether input parameters should be validated against\n * the operation description before sending the request. Defaults to true.\n * Pass a map to enable any of the following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n *\n * @!attribute computeChecksums\n * @return [Boolean] whether to compute checksums for payload bodies when\n * the service accepts it (currently supported in S3 and SQS only).\n *\n * @!attribute convertResponseTypes\n * @return [Boolean] whether types are converted when parsing response data.\n * Currently only supported for JSON based services. Turning this off may\n * improve performance on large response payloads. Defaults to `true`.\n *\n * @!attribute correctClockSkew\n * @return [Boolean] whether to apply a clock skew correction and retry\n * requests that fail because of an skewed client clock. Defaults to\n * `false`.\n *\n * @!attribute sslEnabled\n * @return [Boolean] whether SSL is enabled for requests\n *\n * @!attribute s3ForcePathStyle\n * @return [Boolean] whether to force path style URLs for S3 objects\n *\n * @!attribute s3BucketEndpoint\n * @note Setting this configuration option requires an `endpoint` to be\n * provided explicitly to the service constructor.\n * @return [Boolean] whether the provided endpoint addresses an individual\n * bucket (false if it addresses the root API endpoint).\n *\n * @!attribute s3DisableBodySigning\n * @return [Boolean] whether to disable S3 body signing when using signature version `v4`.\n * Body signing can only be disabled when using https. Defaults to `true`.\n *\n * @!attribute s3UsEast1RegionalEndpoint\n * @return ['legacy'|'regional'] when region is set to 'us-east-1', whether to send s3\n * request to global endpoints or 'us-east-1' regional endpoints. This config is only\n * applicable to S3 client;\n * Defaults to 'legacy'\n * @!attribute s3UseArnRegion\n * @return [Boolean] whether to override the request region with the region inferred\n * from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @!attribute useAccelerateEndpoint\n * @note This configuration option is only compatible with S3 while accessing\n * dns-compatible buckets.\n * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service.\n * Defaults to `false`.\n *\n * @!attribute retryDelayOptions\n * @example Set the base retry delay for all services to 300 ms\n * AWS.config.update({retryDelayOptions: {base: 300}});\n * // Delays with maxRetries = 3: 300, 600, 1200\n * @example Set a custom backoff function to provide delay values on retries\n * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount, err) {\n * // returns delay in ms\n * }}});\n * @return [map] A set of options to configure the retry delay on retryable errors.\n * Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all services except\n * DynamoDB, where it defaults to 50ms.\n *\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n *\n * @!attribute httpOptions\n * @return [map] A set of options to pass to the low-level HTTP request.\n * Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only supported in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — The number of milliseconds a request can\n * take before automatically being terminated.\n * Defaults to two minutes (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @!attribute logger\n * @return [#write,#log] an object that responds to .write() (like a stream)\n * or .log() (like the console object) in order to log information about\n * requests\n *\n * @!attribute systemClockOffset\n * @return [Number] an offset value in milliseconds to apply to all signing\n * times. Use this to compensate for clock skew when your system may be\n * out of sync with the service time. Note that this configuration option\n * can only be applied to the global `AWS.config` object and cannot be\n * overridden in service-specific configuration. Defaults to 0 milliseconds.\n *\n * @!attribute signatureVersion\n * @return [String] the signature version to sign requests with (overriding\n * the API configuration). Possible values are: 'v2', 'v3', 'v4'.\n *\n * @!attribute signatureCache\n * @return [Boolean] whether the signature to sign requests with (overriding\n * the API configuration) is cached. Only applies to the signature version 'v4'.\n * Defaults to `true`.\n *\n * @!attribute endpointDiscoveryEnabled\n * @return [Boolean|undefined] whether to call operations with endpoints\n * given by service dynamically. Setting this config to `true` will enable\n * endpoint discovery for all applicable operations. Setting it to `false`\n * will explicitly disable endpoint discovery even though operations that\n * require endpoint discovery will presumably fail. Leaving it to\n * `undefined` means SDK only do endpoint discovery when it's required.\n * Defaults to `undefined`\n *\n * @!attribute endpointCacheSize\n * @return [Number] the size of the global cache storing endpoints from endpoint\n * discovery operations. Once endpoint cache is created, updating this setting\n * cannot change existing cache size.\n * Defaults to 1000\n *\n * @!attribute hostPrefixEnabled\n * @return [Boolean] whether to marshal request parameters to the prefix of\n * hostname. Defaults to `true`.\n *\n * @!attribute stsRegionalEndpoints\n * @return ['legacy'|'regional'] whether to send sts request to global endpoints or\n * regional endpoints.\n * Defaults to 'legacy'.\n *\n * @!attribute useFipsEndpoint\n * @return [Boolean] Enables FIPS compatible endpoints. Defaults to `false`.\n *\n * @!attribute useDualstackEndpoint\n * @return [Boolean] Enables IPv6 dualstack endpoint. Defaults to `false`.\n */\nAWS.Config = AWS.util.inherit({\n /**\n * @!endgroup\n */\n\n /**\n * Creates a new configuration object. This is the object that passes\n * option data along to service requests, including credentials, security,\n * region information, and some service specific settings.\n *\n * @example Creating a new configuration object with credentials and region\n * var config = new AWS.Config({\n * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2'\n * });\n * @option options accessKeyId [String] your AWS access key ID.\n * @option options secretAccessKey [String] your AWS secret access key.\n * @option options sessionToken [AWS.Credentials] the optional AWS\n * session token to sign requests with.\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. You can either specify this object, or\n * specify the accessKeyId and secretAccessKey options directly.\n * @option options credentialProvider [AWS.CredentialProviderChain] the\n * provider chain used to resolve credentials if no static `credentials`\n * property is set.\n * @option options region [String] the region to send service requests to.\n * See {region} for more information.\n * @option options maxRetries [Integer] the maximum amount of retries to\n * attempt with a request. See {maxRetries} for more information.\n * @option options maxRedirects [Integer] the maximum amount of redirects to\n * follow with a request. See {maxRedirects} for more information.\n * @option options sslEnabled [Boolean] whether to enable SSL for\n * requests.\n * @option options paramValidation [Boolean|map] whether input parameters\n * should be validated against the operation description before sending\n * the request. Defaults to true. Pass a map to enable any of the\n * following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n * @option options computeChecksums [Boolean] whether to compute checksums\n * for payload bodies when the service accepts it (currently supported\n * in S3 only)\n * @option options convertResponseTypes [Boolean] whether types are converted\n * when parsing response data. Currently only supported for JSON based\n * services. Turning this off may improve performance on large response\n * payloads. Defaults to `true`.\n * @option options correctClockSkew [Boolean] whether to apply a clock skew\n * correction and retry requests that fail because of an skewed client\n * clock. Defaults to `false`.\n * @option options s3ForcePathStyle [Boolean] whether to force path\n * style URLs for S3 objects.\n * @option options s3BucketEndpoint [Boolean] whether the provided endpoint\n * addresses an individual bucket (false if it addresses the root API\n * endpoint). Note that setting this configuration option requires an\n * `endpoint` to be provided explicitly to the service constructor.\n * @option options s3DisableBodySigning [Boolean] whether S3 body signing\n * should be disabled when using signature version `v4`. Body signing\n * can only be disabled when using https. Defaults to `true`.\n * @option options s3UsEast1RegionalEndpoint ['legacy'|'regional'] when region\n * is set to 'us-east-1', whether to send s3 request to global endpoints or\n * 'us-east-1' regional endpoints. This config is only applicable to S3 client.\n * Defaults to `legacy`\n * @option options s3UseArnRegion [Boolean] whether to override the request region\n * with the region inferred from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @option options retryDelayOptions [map] A set of options to configure\n * the retry delay on retryable errors. Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all\n * services except DynamoDB, where it defaults to 50ms.\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n * @option options httpOptions [map] A set of options to pass to the low-level\n * HTTP request. Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Defaults to the global\n * agent (`http.globalAgent`) for non-SSL connections. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only available in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — Sets the socket to timeout after timeout\n * milliseconds of inactivity on the socket. Defaults to two minutes\n * (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @option options apiVersion [String, Date] a String in YYYY-MM-DD format\n * (or a date) that represents the latest possible API version that can be\n * used in all services (unless overridden by `apiVersions`). Specify\n * 'latest' to use the latest possible version.\n * @option options apiVersions [map] a map of service\n * identifiers (the lowercase service class name) with the API version to\n * use when instantiating a service. Specify 'latest' for each individual\n * that can use the latest available version.\n * @option options logger [#write,#log] an object that responds to .write()\n * (like a stream) or .log() (like the console object) in order to log\n * information about requests\n * @option options systemClockOffset [Number] an offset value in milliseconds\n * to apply to all signing times. Use this to compensate for clock skew\n * when your system may be out of sync with the service time. Note that\n * this configuration option can only be applied to the global `AWS.config`\n * object and cannot be overridden in service-specific configuration.\n * Defaults to 0 milliseconds.\n * @option options signatureVersion [String] the signature version to sign\n * requests with (overriding the API configuration). Possible values are:\n * 'v2', 'v3', 'v4'.\n * @option options signatureCache [Boolean] whether the signature to sign\n * requests with (overriding the API configuration) is cached. Only applies\n * to the signature version 'v4'. Defaults to `true`.\n * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32\n * checksum of HTTP response bodies returned by DynamoDB. Default: `true`.\n * @option options useAccelerateEndpoint [Boolean] Whether to use the\n * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`.\n * @option options clientSideMonitoring [Boolean] whether to collect and\n * publish this client's performance metrics of all its API requests.\n * @option options endpointDiscoveryEnabled [Boolean|undefined] whether to\n * call operations with endpoints given by service dynamically. Setting this\n * config to `true` will enable endpoint discovery for all applicable operations.\n * Setting it to `false` will explicitly disable endpoint discovery even though\n * operations that require endpoint discovery will presumably fail. Leaving it\n * to `undefined` means SDK will only do endpoint discovery when it's required.\n * Defaults to `undefined`\n * @option options endpointCacheSize [Number] the size of the global cache storing\n * endpoints from endpoint discovery operations. Once endpoint cache is created,\n * updating this setting cannot change existing cache size.\n * Defaults to 1000\n * @option options hostPrefixEnabled [Boolean] whether to marshal request\n * parameters to the prefix of hostname.\n * Defaults to `true`.\n * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request\n * to global endpoints or regional endpoints.\n * Defaults to 'legacy'.\n * @option options useFipsEndpoint [Boolean] Enables FIPS compatible endpoints.\n * Defaults to `false`.\n * @option options useDualstackEndpoint [Boolean] Enables IPv6 dualstack endpoint.\n * Defaults to `false`.\n */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\n\n AWS.util.each.call(this, this.keys, function (key, value) {\n this.set(key, options[key], value);\n });\n },\n\n /**\n * @!group Managing Credentials\n */\n\n /**\n * Loads credentials from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Credentials} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your credentials are loaded prior to a request, you can use this method\n * directly to provide accurate credential data stored in the object.\n *\n * @note If you configure the SDK with static or environment credentials,\n * the credential data should already be present in {credentials} attribute.\n * This method is primarily necessary to load credentials from asynchronous\n * sources, or sources that can refresh credentials periodically.\n * @example Getting your access key\n * AWS.config.getCredentials(function(err) {\n * if (err) console.log(err.stack); // credentials not loaded\n * else console.log(\"Access Key:\", AWS.config.credentials.accessKeyId);\n * })\n * @callback callback function(err)\n * Called when the {credentials} have been properly set on the configuration\n * object.\n *\n * @param err [Error] if this is set, credentials were not successfully\n * loaded and this error provides information why.\n * @see credentials\n * @see Credentials\n */\n getCredentials: function getCredentials(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.credentials);\n }\n\n function credError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'CredentialsError',\n message: msg,\n name: 'CredentialsError'\n });\n }\n\n function getAsyncCredentials() {\n self.credentials.get(function(err) {\n if (err) {\n var msg = 'Could not load credentials from ' +\n self.credentials.constructor.name;\n err = credError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else { // static credentials\n getStaticCredentials();\n }\n } else if (self.credentialProvider) {\n self.credentialProvider.resolve(function(err, creds) {\n if (err) {\n err = credError('Could not load credentials from any providers', err);\n }\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials to load'));\n }\n },\n\n /**\n * Loads token from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Token} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your token is loaded prior to a request, you can use this method\n * directly to provide accurate token data stored in the object.\n *\n * @note If you configure the SDK with static token, the token data should\n * already be present in {token} attribute. This method is primarily necessary\n * to load token from asynchronous sources, or sources that can refresh\n * token periodically.\n * @example Getting your access token\n * AWS.config.getToken(function(err) {\n * if (err) console.log(err.stack); // token not loaded\n * else console.log(\"Token:\", AWS.config.token.token);\n * })\n * @callback callback function(err)\n * Called when the {token} have been properly set on the configuration object.\n *\n * @param err [Error] if this is set, token was not successfully loaded and\n * this error provides information why.\n * @see token\n */\n getToken: function getToken(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.token);\n }\n\n function tokenError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'TokenError',\n message: msg,\n name: 'TokenError'\n });\n }\n\n function getAsyncToken() {\n self.token.get(function(err) {\n if (err) {\n var msg = 'Could not load token from ' +\n self.token.constructor.name;\n err = tokenError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticToken() {\n var err = null;\n if (!self.token.token) {\n err = tokenError('Missing token');\n }\n finish(err);\n }\n\n if (self.token) {\n if (typeof self.token.get === 'function') {\n getAsyncToken();\n } else { // static token\n getStaticToken();\n }\n } else if (self.tokenProvider) {\n self.tokenProvider.resolve(function(err, token) {\n if (err) {\n err = tokenError('Could not load token from any providers', err);\n }\n self.token = token;\n finish(err);\n });\n } else {\n finish(tokenError('No token to load'));\n }\n },\n\n /**\n * @!group Loading and Setting Configuration Options\n */\n\n /**\n * @overload update(options, allowUnknownKeys = false)\n * Updates the current configuration object with new options.\n *\n * @example Update maxRetries property of a configuration object\n * config.update({maxRetries: 10});\n * @param [Object] options a map of option keys and values.\n * @param [Boolean] allowUnknownKeys whether unknown keys can be set on\n * the configuration object. Defaults to `false`.\n * @see constructor\n */\n update: function update(options, allowUnknownKeys) {\n allowUnknownKeys = allowUnknownKeys || false;\n options = this.extractCredentials(options);\n AWS.util.each.call(this, options, function (key, value) {\n if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) ||\n AWS.Service.hasService(key)) {\n this.set(key, value);\n }\n });\n },\n\n /**\n * Loads configuration data from a JSON file into this config object.\n * @note Loading configuration will reset all existing configuration\n * on the object.\n * @!macro nobrowser\n * @param path [String] the path relative to your process's current\n * working directory to load configuration from.\n * @return [AWS.Config] the same configuration object\n */\n loadFromPath: function loadFromPath(path) {\n this.clear();\n\n var options = JSON.parse(AWS.util.readFileSync(path));\n var fileSystemCreds = new AWS.FileSystemCredentials(path);\n var chain = new AWS.CredentialProviderChain();\n chain.providers.unshift(fileSystemCreds);\n chain.resolve(function (err, creds) {\n if (err) throw err;\n else options.credentials = creds;\n });\n\n this.constructor(options);\n\n return this;\n },\n\n /**\n * Clears configuration data on this object\n *\n * @api private\n */\n clear: function clear() {\n /*jshint forin:false */\n AWS.util.each.call(this, this.keys, function (key) {\n delete this[key];\n });\n\n // reset credential provider\n this.set('credentials', undefined);\n this.set('credentialProvider', undefined);\n },\n\n /**\n * Sets a property on the configuration object, allowing for a\n * default value\n * @api private\n */\n set: function set(property, value, defaultValue) {\n if (value === undefined) {\n if (defaultValue === undefined) {\n defaultValue = this.keys[property];\n }\n if (typeof defaultValue === 'function') {\n this[property] = defaultValue.call(this);\n } else {\n this[property] = defaultValue;\n }\n } else if (property === 'httpOptions' && this[property]) {\n // deep merge httpOptions\n this[property] = AWS.util.merge(this[property], value);\n } else {\n this[property] = value;\n }\n },\n\n /**\n * All of the keys with their default values.\n *\n * @constant\n * @api private\n */\n keys: {\n credentials: null,\n credentialProvider: null,\n region: null,\n logger: null,\n apiVersions: {},\n apiVersion: null,\n endpoint: undefined,\n httpOptions: {\n timeout: 120000\n },\n maxRetries: undefined,\n maxRedirects: 10,\n paramValidation: true,\n sslEnabled: true,\n s3ForcePathStyle: false,\n s3BucketEndpoint: false,\n s3DisableBodySigning: true,\n s3UsEast1RegionalEndpoint: 'legacy',\n s3UseArnRegion: undefined,\n computeChecksums: true,\n convertResponseTypes: true,\n correctClockSkew: false,\n customUserAgent: null,\n dynamoDbCrc32: true,\n systemClockOffset: 0,\n signatureVersion: null,\n signatureCache: true,\n retryDelayOptions: {},\n useAccelerateEndpoint: false,\n clientSideMonitoring: false,\n endpointDiscoveryEnabled: undefined,\n endpointCacheSize: 1000,\n hostPrefixEnabled: true,\n stsRegionalEndpoints: 'legacy',\n useFipsEndpoint: false,\n useDualstackEndpoint: false,\n token: null\n },\n\n /**\n * Extracts accessKeyId, secretAccessKey and sessionToken\n * from a configuration hash.\n *\n * @api private\n */\n extractCredentials: function extractCredentials(options) {\n if (options.accessKeyId && options.secretAccessKey) {\n options = AWS.util.copy(options);\n options.credentials = new AWS.Credentials(options);\n }\n return options;\n },\n\n /**\n * Sets the promise dependency the SDK will use wherever Promises are returned.\n * Passing `null` will force the SDK to use native Promises if they are available.\n * If native Promises are not available, passing `null` will have no effect.\n * @param [Constructor] dep A reference to a Promise constructor\n */\n setPromisesDependency: function setPromisesDependency(dep) {\n PromisesDependency = dep;\n // if null was passed in, we should try to use native promises\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n if (AWS.S3) {\n constructors.push(AWS.S3);\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\n }\n AWS.util.addPromises(constructors, PromisesDependency);\n },\n\n /**\n * Gets the promise dependency set by `AWS.config.setPromisesDependency`.\n */\n getPromisesDependency: function getPromisesDependency() {\n return PromisesDependency;\n }\n});\n\n/**\n * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\nAWS.config = new AWS.Config();\n","var AWS = require('./core');\n/**\n * @api private\n */\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;\n else if (['legacy', 'regional'].indexOf(configValue.toLowerCase()) >= 0) {\n return configValue.toLowerCase();\n } else {\n throw AWS.util.error(new Error(), errorOptions);\n }\n}\n\n/**\n * Resolve the configuration value for regional endpoint from difference sources: client\n * config, environmental variable, shared config file. Value can be case-insensitive\n * 'legacy' or 'reginal'.\n * @param originalConfig user-supplied config object to resolve\n * @param options a map of config property names from individual configuration source\n * - env: name of environmental variable that refers to the config\n * - sharedConfig: name of shared configuration file property that refers to the config\n * - clientConfig: name of client configuration property that refers to the config\n *\n * @api private\n */\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {};\n //validate config value\n var resolved;\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n if (!AWS.util.isNode()) return resolved;\n //validate environmental variable\n if (Object.prototype.hasOwnProperty.call(process.env, options.env)) {\n var envFlag = process.env[options.env];\n resolved = validateRegionalEndpointsFlagValue(envFlag, {\n code: 'InvalidEnvironmentalVariable',\n message: 'invalid ' + options.env + ' environmental variable. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n }\n //validate shared config file\n var profile = {};\n try {\n var profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {};\n if (profile && Object.prototype.hasOwnProperty.call(profile, options.sharedConfig)) {\n var fileFlag = profile[options.sharedConfig];\n resolved = validateRegionalEndpointsFlagValue(fileFlag, {\n code: 'InvalidConfiguration',\n message: 'invalid ' + options.sharedConfig + ' profile config. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;\n","/**\n * The main AWS namespace\n */\nvar AWS = { util: require('./util') };\n\n/**\n * @api private\n * @!macro [new] nobrowser\n * @note This feature is not supported in the browser environment of the SDK.\n */\nvar _hidden = {}; _hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nAWS.util.update(AWS, {\n\n /**\n * @constant\n */\n VERSION: '2.1493.0',\n\n /**\n * @api private\n */\n Signers: {},\n\n /**\n * @api private\n */\n Protocol: {\n Json: require('./protocol/json'),\n Query: require('./protocol/query'),\n Rest: require('./protocol/rest'),\n RestJson: require('./protocol/rest_json'),\n RestXml: require('./protocol/rest_xml')\n },\n\n /**\n * @api private\n */\n XML: {\n Builder: require('./xml/builder'),\n Parser: null // conditionally set based on environment\n },\n\n /**\n * @api private\n */\n JSON: {\n Builder: require('./json/builder'),\n Parser: require('./json/parser')\n },\n\n /**\n * @api private\n */\n Model: {\n Api: require('./model/api'),\n Operation: require('./model/operation'),\n Shape: require('./model/shape'),\n Paginator: require('./model/paginator'),\n ResourceWaiter: require('./model/resource_waiter')\n },\n\n /**\n * @api private\n */\n apiLoader: require('./api_loader'),\n\n /**\n * @api private\n */\n EndpointCache: require('../vendor/endpoint-cache').EndpointCache\n});\nrequire('./sequential_executor');\nrequire('./service');\nrequire('./config');\nrequire('./http');\nrequire('./event_listeners');\nrequire('./request');\nrequire('./response');\nrequire('./resource_waiter');\nrequire('./signers/request_signer');\nrequire('./param_validator');\nrequire('./maintenance_mode_message');\n\n/**\n * @readonly\n * @return [AWS.SequentialExecutor] a collection of global event listeners that\n * are attached to every sent request.\n * @see AWS.Request AWS.Request for a list of events to listen for\n * @example Logging the time taken to send a request\n * AWS.events.on('send', function startSend(resp) {\n * resp.startTime = new Date().getTime();\n * }).on('complete', function calculateTime(resp) {\n * var time = (new Date().getTime() - resp.startTime) / 1000;\n * console.log('Request took ' + time + ' seconds');\n * });\n *\n * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'\n */\nAWS.events = new AWS.SequentialExecutor();\n\n//create endpoint cache lazily\nAWS.util.memoizedProperty(AWS, 'endpointCache', function() {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);\n","var AWS = require('./core');\n\n/**\n * Represents your AWS security credentials, specifically the\n * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}.\n * Creating a `Credentials` object allows you to pass around your\n * security information to configuration and service objects.\n *\n * Note that this class typically does not need to be constructed manually,\n * as the {AWS.Config} and {AWS.Service} classes both accept simple\n * options hashes with the three keys. These structures will be converted\n * into Credentials objects automatically.\n *\n * ## Expiring and Refreshing Credentials\n *\n * Occasionally credentials can expire in the middle of a long-running\n * application. In this case, the SDK will automatically attempt to\n * refresh the credentials from the storage location if the Credentials\n * class implements the {refresh} method.\n *\n * If you are implementing a credential storage location, you\n * will want to create a subclass of the `Credentials` class and\n * override the {refresh} method. This method allows credentials to be\n * retrieved from the backing store, be it a file system, database, or\n * some network storage. The method should reset the credential attributes\n * on the object.\n *\n * @!attribute expired\n * @return [Boolean] whether the credentials have been expired and\n * require a refresh. Used in conjunction with {expireTime}.\n * @!attribute expireTime\n * @return [Date] a time when credentials should be considered expired. Used\n * in conjunction with {expired}.\n * @!attribute accessKeyId\n * @return [String] the AWS access key ID\n * @!attribute secretAccessKey\n * @return [String] the AWS secret access key\n * @!attribute sessionToken\n * @return [String] an optional AWS session token\n */\nAWS.Credentials = AWS.util.inherit({\n /**\n * A credentials object can be created using positional arguments or an options\n * hash.\n *\n * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null)\n * Creates a Credentials object with a given set of credential information\n * as positional arguments.\n * @param accessKeyId [String] the AWS access key ID\n * @param secretAccessKey [String] the AWS secret access key\n * @param sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials('akid', 'secret', 'session');\n * @overload AWS.Credentials(options)\n * Creates a Credentials object with a given set of credential information\n * as an options hash.\n * @option options accessKeyId [String] the AWS access key ID\n * @option options secretAccessKey [String] the AWS secret access key\n * @option options sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials({\n * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session'\n * });\n */\n constructor: function Credentials() {\n // hide secretAccessKey from being displayed with util.inspect\n AWS.util.hideProperties(this, ['secretAccessKey']);\n\n this.expired = false;\n this.expireTime = null;\n this.refreshCallbacks = [];\n if (arguments.length === 1 && typeof arguments[0] === 'object') {\n var creds = arguments[0].credentials || arguments[0];\n this.accessKeyId = creds.accessKeyId;\n this.secretAccessKey = creds.secretAccessKey;\n this.sessionToken = creds.sessionToken;\n } else {\n this.accessKeyId = arguments[0];\n this.secretAccessKey = arguments[1];\n this.sessionToken = arguments[2];\n }\n },\n\n /**\n * @return [Integer] the number of seconds before {expireTime} during which\n * the credentials will be considered expired.\n */\n expiryWindow: 15,\n\n /**\n * @return [Boolean] whether the credentials object should call {refresh}\n * @note Subclasses should override this method to provide custom refresh\n * logic.\n */\n needsRefresh: function needsRefresh() {\n var currentTime = AWS.util.date.getDate().getTime();\n var adjustedTime = new Date(currentTime + this.expiryWindow * 1000);\n\n if (this.expireTime && adjustedTime > this.expireTime) {\n return true;\n } else {\n return this.expired || !this.accessKeyId || !this.secretAccessKey;\n }\n },\n\n /**\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means either credentials\n * do not need to be refreshed or refreshed credentials information has\n * been loaded into the object (as the `accessKeyId`, `secretAccessKey`,\n * and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n */\n get: function get(callback) {\n var self = this;\n if (this.needsRefresh()) {\n this.refresh(function(err) {\n if (!err) self.expired = false; // reset expired flag\n if (callback) callback(err);\n });\n } else if (callback) {\n callback();\n }\n },\n\n /**\n * @!method getPromise()\n * Returns a 'thenable' promise.\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means either credentials do not need to be refreshed or refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `get` call.\n * @example Calling the `getPromise` method.\n * var promise = credProvider.getPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * @!method refreshPromise()\n * Returns a 'thenable' promise.\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means refreshed credentials information has been loaded into the object\n * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Calling the `refreshPromise` method.\n * var promise = credProvider.refreshPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @note Subclasses should override this class to reset the\n * {accessKeyId}, {secretAccessKey} and optional {sessionToken}\n * on the credentials object and then call the callback with\n * any error information.\n * @see get\n */\n refresh: function refresh(callback) {\n this.expired = false;\n callback();\n },\n\n /**\n * @api private\n * @param callback\n */\n coalesceRefresh: function coalesceRefresh(callback, sync) {\n var self = this;\n if (self.refreshCallbacks.push(callback) === 1) {\n self.load(function onLoad(err) {\n AWS.util.arrayEach(self.refreshCallbacks, function(callback) {\n if (sync) {\n callback(err);\n } else {\n // callback could throw, so defer to ensure all callbacks are notified\n AWS.util.defer(function () {\n callback(err);\n });\n }\n });\n self.refreshCallbacks.length = 0;\n });\n }\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n callback();\n }\n});\n\n/**\n * @api private\n */\nAWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency);\n this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getPromise;\n delete this.prototype.refreshPromise;\n};\n\nAWS.util.addPromises(AWS.Credentials);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * AWS.ChainableTemporaryCredentials differs from AWS.TemporaryCredentials in\n * the way masterCredentials and refreshes are handled.\n * AWS.ChainableTemporaryCredentials refreshes expired credentials using the\n * masterCredentials passed by the user to support chaining of STS credentials.\n * However, AWS.TemporaryCredentials recursively collapses the masterCredentials\n * during instantiation, precluding the ability to refresh credentials which\n * require intermediate, temporary credentials.\n *\n * For example, if the application should use RoleA, which must be assumed from\n * RoleB, and the environment provides credentials which can assume RoleB, then\n * AWS.ChainableTemporaryCredentials must be used to support refreshing the\n * temporary credentials for RoleA:\n *\n * ```javascript\n * var roleACreds = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleA'},\n * masterCredentials: new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleB'},\n * masterCredentials: new AWS.EnvironmentCredentials('AWS')\n * })\n * });\n * ```\n *\n * If AWS.TemporaryCredentials had been used in the previous example,\n * `roleACreds` would fail to refresh because `roleACreds` would\n * use the environment credentials for the AssumeRole request.\n *\n * Another difference is that AWS.ChainableTemporaryCredentials creates the STS\n * service instance during instantiation while AWS.TemporaryCredentials creates\n * the STS service instance during the first refresh. Creating the service\n * instance during instantiation effectively captures the master credentials\n * from the global config, so that subsequent changes to the global config do\n * not affect the master credentials used to refresh the temporary credentials.\n *\n * This allows an instance of AWS.ChainableTemporaryCredentials to be assigned\n * to AWS.config.credentials:\n *\n * ```javascript\n * var envCreds = new AWS.EnvironmentCredentials('AWS');\n * AWS.config.credentials = envCreds;\n * // masterCredentials will be envCreds\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * Similarly, to use the CredentialProviderChain's default providers as the\n * master credentials, simply create a new instance of\n * AWS.ChainableTemporaryCredentials:\n *\n * ```javascript\n * AWS.config.credentials = new ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * @!attribute service\n * @return [AWS.STS] the STS service instance used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.ChainableTemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @param options [map] a set of options\n * @option options params [map] ({}) a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role. If a `SerialNumber` parameter is passed in, {tokenCodeFn} must\n * also be passed in or an error will be thrown.\n * @option options masterCredentials [AWS.Credentials] the master credentials\n * used to get and refresh temporary credentials from AWS STS. By default,\n * AWS.config.credentials or AWS.config.credentialProvider will be used.\n * @option options tokenCodeFn [Function] (null) Function to provide\n * `TokenCode`, if `SerialNumber` is provided for profile in {params}. Function\n * is called with value of `SerialNumber` and `callback`, and should provide\n * the `TokenCode` or an error to the callback in the format\n * `callback(err, token)`.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials'\n * }\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function ChainableTemporaryCredentials(options) {\n AWS.Credentials.call(this);\n options = options || {};\n this.errorCode = 'ChainableTemporaryCredentialsProviderFailure';\n this.expired = true;\n this.tokenCodeFn = null;\n\n var params = AWS.util.copy(options.params) || {};\n if (params.RoleArn) {\n params.RoleSessionName = params.RoleSessionName || 'temporary-credentials';\n }\n if (params.SerialNumber) {\n if (!options.tokenCodeFn || (typeof options.tokenCodeFn !== 'function')) {\n throw new AWS.util.error(\n new Error('tokenCodeFn must be a function when params.SerialNumber is given'),\n {code: this.errorCode}\n );\n } else {\n this.tokenCodeFn = options.tokenCodeFn;\n }\n }\n var config = AWS.util.merge(\n {\n params: params,\n credentials: options.masterCredentials || AWS.config.credentials\n },\n options.stsConfig || {}\n );\n this.service = new STS(config);\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n var operation = self.service.config.params.RoleArn ? 'assumeRole' : 'getSessionToken';\n this.getTokenCode(function (err, tokenCode) {\n var params = {};\n if (err) {\n callback(err);\n return;\n }\n if (tokenCode) {\n params.TokenCode = tokenCode;\n }\n self.service[operation](params, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n getTokenCode: function getTokenCode(callback) {\n var self = this;\n if (this.tokenCodeFn) {\n this.tokenCodeFn(this.service.config.params.SerialNumber, function (err, token) {\n if (err) {\n var message = err;\n if (err instanceof Error) {\n message = err.message;\n }\n callback(\n AWS.util.error(\n new Error('Error fetching MFA token: ' + message),\n { code: self.errorCode}\n )\n );\n return;\n }\n callback(null, token);\n });\n } else {\n callback(null);\n }\n }\n});\n","var AWS = require('../core');\nvar CognitoIdentity = require('../../clients/cognitoidentity');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation using\n * the Amazon Cognito Identity service.\n *\n * By default this provider gets credentials using the\n * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which\n * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito\n * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to\n * obtain an `IdentityId`. If the identity or identity pool is not configured in\n * the Amazon Cognito Console to use IAM roles with the appropriate permissions,\n * then additionally a `RoleArn` is required containing the ARN of the IAM trust\n * policy for the Amazon Cognito role that the user will log into. If a `RoleArn`\n * is provided, then this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an\n * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}.\n *\n * In addition, if this credential provider is used to provide authenticated\n * login, the `Logins` map may be set to the tokens provided by the respective\n * identity providers. See {constructor} for an example on creating a credentials\n * object with proper property values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.CognitoIdentity.getId},\n * {AWS.CognitoIdentity.getOpenIdToken}, and\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.CognitoIdentity.getCredentialsForIdentity}, or\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n * @!attribute identityId\n * @return [String] the Cognito ID returned by the last call to\n * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual\n * final resolved identity ID from Amazon Cognito.\n */\nAWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * @api private\n */\n localStorageKey: {\n id: 'aws.cognito.identity-id.',\n providers: 'aws.cognito.identity-providers.'\n },\n\n /**\n * Creates a new credentials object.\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n *\n * // either IdentityPoolId or IdentityId is required\n * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below)\n * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity\n * // or AWS.CognitoIdentity.getOpenIdToken (linked below)\n * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',\n * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f'\n *\n * // optional, only necessary when the identity pool is not configured\n * // to use IAM roles in the Amazon Cognito Console\n * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity',\n *\n * // optional tokens, used for authenticated login\n * // See the Logins param for AWS.CognitoIdentity.getID (linked below)\n * Logins: {\n * 'graph.facebook.com': 'FBTOKEN',\n * 'www.amazon.com': 'AMAZONTOKEN',\n * 'accounts.google.com': 'GOOGLETOKEN',\n * 'api.twitter.com': 'TWITTERTOKEN',\n * 'www.digits.com': 'DIGITSTOKEN'\n * },\n *\n * // optional name, defaults to web-identity\n * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleSessionName: 'web',\n *\n * // optional, only necessary when application runs in a browser\n * // and multiple users are signed in at once, used for caching\n * LoginId: 'example@gmail.com'\n *\n * }, {\n * // optionally provide configuration to apply to the underlying service clients\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // region should match the region your identity pool is located in\n * region: 'us-east-1',\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.CognitoIdentity.getId\n * @see AWS.CognitoIdentity.getCredentialsForIdentity\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.CognitoIdentity.getOpenIdToken\n * @see AWS.Config\n * @note If a region is not provided in the global AWS.config, or\n * specified in the `clientConfig` to the CognitoIdentityCredentials\n * constructor, you may encounter a 'Missing credentials in config' error\n * when calling making a service call.\n */\n constructor: function CognitoIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.data = null;\n this._identityId = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n this.loadCachedId();\n var self = this;\n Object.defineProperty(this, 'identityId', {\n get: function() {\n self.loadCachedId();\n return self._identityId || self.params.IdentityId;\n },\n set: function(identityId) {\n self._identityId = identityId;\n }\n });\n },\n\n /**\n * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity},\n * or {AWS.STS.assumeRoleWithWebIdentity}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.data = null;\n self._identityId = null;\n self.getId(function(err) {\n if (!err) {\n if (!self.params.RoleArn) {\n self.getCredentialsForIdentity(callback);\n } else {\n self.getCredentialsFromSTS(callback);\n }\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * Clears the cached Cognito ID associated with the currently configured\n * identity pool ID. Use this to manually invalidate your cache if\n * the identity pool ID was deleted.\n */\n clearCachedId: function clearCache() {\n this._identityId = null;\n delete this.params.IdentityId;\n\n var poolId = this.params.IdentityPoolId;\n var loginId = this.params.LoginId || '';\n delete this.storage[this.localStorageKey.id + poolId + loginId];\n delete this.storage[this.localStorageKey.providers + poolId + loginId];\n },\n\n /**\n * @api private\n */\n clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) {\n var self = this;\n if (err.code == 'NotAuthorizedException') {\n self.clearCachedId();\n }\n },\n\n /**\n * Retrieves a Cognito ID, loading from cache if it was already retrieved\n * on this device.\n *\n * @callback callback function(err, identityId)\n * @param err [Error, null] an error object if the call failed or null if\n * it succeeded.\n * @param identityId [String, null] if successful, the callback will return\n * the Cognito ID.\n * @note If not loaded explicitly, the Cognito ID is loaded and stored in\n * localStorage in the browser environment of a device.\n * @api private\n */\n getId: function getId(callback) {\n var self = this;\n if (typeof self.params.IdentityId === 'string') {\n return callback(null, self.params.IdentityId);\n }\n\n self.cognito.getId(function(err, data) {\n if (!err && data.IdentityId) {\n self.params.IdentityId = data.IdentityId;\n callback(null, data.IdentityId);\n } else {\n callback(err);\n }\n });\n },\n\n\n /**\n * @api private\n */\n loadCredentials: function loadCredentials(data, credentials) {\n if (!data || !credentials) return;\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n },\n\n /**\n * @api private\n */\n getCredentialsForIdentity: function getCredentialsForIdentity(callback) {\n var self = this;\n self.cognito.getCredentialsForIdentity(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.data = data;\n self.loadCredentials(self.data, self);\n } else {\n self.clearIdOnNotAuthorized(err);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n getCredentialsFromSTS: function getCredentialsFromSTS(callback) {\n var self = this;\n self.cognito.getOpenIdToken(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.params.WebIdentityToken = data.Token;\n self.webIdentityCredentials.refresh(function(webErr) {\n if (!webErr) {\n self.data = self.webIdentityCredentials.data;\n self.sts.credentialsFrom(self.data, self);\n }\n callback(webErr);\n });\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * @api private\n */\n loadCachedId: function loadCachedId() {\n var self = this;\n\n // in the browser we source default IdentityId from localStorage\n if (AWS.util.isBrowser() && !self.params.IdentityId) {\n var id = self.getStorage('id');\n if (id && self.params.Logins) {\n var actualProviders = Object.keys(self.params.Logins);\n var cachedProviders =\n (self.getStorage('providers') || '').split(',');\n\n // only load ID if at least one provider used this ID before\n var intersect = cachedProviders.filter(function(n) {\n return actualProviders.indexOf(n) !== -1;\n });\n if (intersect.length !== 0) {\n self.params.IdentityId = id;\n }\n } else if (id) {\n self.params.IdentityId = id;\n }\n }\n },\n\n /**\n * @api private\n */\n createClients: function() {\n var clientConfig = this._clientConfig;\n this.webIdentityCredentials = this.webIdentityCredentials ||\n new AWS.WebIdentityCredentials(this.params, clientConfig);\n if (!this.cognito) {\n var cognitoConfig = AWS.util.merge({}, clientConfig);\n cognitoConfig.params = this.params;\n this.cognito = new CognitoIdentity(cognitoConfig);\n }\n this.sts = this.sts || new STS(clientConfig);\n },\n\n /**\n * @api private\n */\n cacheId: function cacheId(data) {\n this._identityId = data.IdentityId;\n this.params.IdentityId = this._identityId;\n\n // cache this IdentityId in browser localStorage if possible\n if (AWS.util.isBrowser()) {\n this.setStorage('id', data.IdentityId);\n\n if (this.params.Logins) {\n this.setStorage('providers', Object.keys(this.params.Logins).join(','));\n }\n }\n },\n\n /**\n * @api private\n */\n getStorage: function getStorage(key) {\n return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')];\n },\n\n /**\n * @api private\n */\n setStorage: function setStorage(key, val) {\n try {\n this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val;\n } catch (_) {}\n },\n\n /**\n * @api private\n */\n storage: (function() {\n try {\n var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ?\n window.localStorage : {};\n\n // Test set/remove which would throw an error in Safari's private browsing\n storage['aws.test-storage'] = 'foobar';\n delete storage['aws.test-storage'];\n\n return storage;\n } catch (_) {\n return {};\n }\n })()\n});\n","var AWS = require('../core');\n\n/**\n * Creates a credential provider chain that searches for AWS credentials\n * in a list of credential providers specified by the {providers} property.\n *\n * By default, the chain will use the {defaultProviders} to resolve credentials.\n * These providers will look in the environment using the\n * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes.\n *\n * ## Setting Providers\n *\n * Each provider in the {providers} list should be a function that returns\n * a {AWS.Credentials} object, or a hardcoded credentials object. The function\n * form allows for delayed execution of the credential construction.\n *\n * ## Resolving Credentials from a Chain\n *\n * Call {resolve} to return the first valid credential object that can be\n * loaded by the provider chain.\n *\n * For example, to resolve a chain with a custom provider that checks a file\n * on disk after the set of {defaultProviders}:\n *\n * ```javascript\n * var diskProvider = new AWS.FileSystemCredentials('./creds.json');\n * var chain = new AWS.CredentialProviderChain();\n * chain.providers.push(diskProvider);\n * chain.resolve();\n * ```\n *\n * The above code will return the `diskProvider` object if the\n * file contains credentials and the `defaultProviders` do not contain\n * any credential settings.\n *\n * @!attribute providers\n * @return [Array]\n * a list of credentials objects or functions that return credentials\n * objects. If the provider is a function, the function will be\n * executed lazily when the provider needs to be checked for valid\n * credentials. By default, this object will be set to the\n * {defaultProviders}.\n * @see defaultProviders\n */\nAWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, {\n\n /**\n * Creates a new CredentialProviderChain with a default set of providers\n * specified by {defaultProviders}.\n */\n constructor: function CredentialProviderChain(providers) {\n if (providers) {\n this.providers = providers;\n } else {\n this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0);\n }\n this.resolveCallbacks = [];\n },\n\n /**\n * @!method resolvePromise()\n * Returns a 'thenable' promise.\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(credentials)\n * Called if the promise is fulfilled and the provider resolves the chain\n * to a credentials object\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param err [Error] the error object returned if no credentials are found.\n * @return [Promise] A promise that represents the state of the `resolve` method call.\n * @example Calling the `resolvePromise` method.\n * var promise = chain.resolvePromise();\n * promise.then(function(credentials) { ... }, function(err) { ... });\n */\n\n /**\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * @callback callback function(err, credentials)\n * Called when the provider resolves the chain to a credentials object\n * or null if no credentials can be found.\n *\n * @param err [Error] the error object returned if no credentials are\n * found.\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @return [AWS.CredentialProviderChain] the provider, for chaining.\n */\n resolve: function resolve(callback) {\n var self = this;\n if (self.providers.length === 0) {\n callback(new Error('No providers'));\n return self;\n }\n\n if (self.resolveCallbacks.push(callback) === 1) {\n var index = 0;\n var providers = self.providers.slice(0);\n\n function resolveNext(err, creds) {\n if ((!err && creds) || index === providers.length) {\n AWS.util.arrayEach(self.resolveCallbacks, function (callback) {\n callback(err, creds);\n });\n self.resolveCallbacks.length = 0;\n return;\n }\n\n var provider = providers[index++];\n if (typeof provider === 'function') {\n creds = provider.call();\n } else {\n creds = provider;\n }\n\n if (creds.get) {\n creds.get(function (getErr) {\n resolveNext(getErr, getErr ? null : creds);\n });\n } else {\n resolveNext(null, creds);\n }\n }\n\n resolveNext();\n }\n\n return self;\n }\n});\n\n/**\n * The default set of providers used by a vanilla CredentialProviderChain.\n *\n * In the browser:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = []\n * ```\n *\n * In Node.js:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = [\n * function () { return new AWS.EnvironmentCredentials('AWS'); },\n * function () { return new AWS.EnvironmentCredentials('AMAZON'); },\n * function () { return new AWS.SsoCredentials(); },\n * function () { return new AWS.SharedIniFileCredentials(); },\n * function () { return new AWS.ECSCredentials(); },\n * function () { return new AWS.ProcessCredentials(); },\n * function () { return new AWS.TokenFileWebIdentityCredentials(); },\n * function () { return new AWS.EC2MetadataCredentials() }\n * ]\n * ```\n */\nAWS.CredentialProviderChain.defaultProviders = [];\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.resolvePromise;\n};\n\nAWS.util.addPromises(AWS.CredentialProviderChain);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS SAML support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithSAML} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given, as well as a `PrincipalArn`\n * representing the ARN for the SAML identity provider. In addition, the\n * `SAMLAssertion` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the SAMLAssertion, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.SAMLAssertion = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithSAML}. To update the token, set the\n * `params.SAMLAssertion` property.\n */\nAWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithSAML)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.SAMLCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole',\n * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal',\n * SAMLAssertion: 'base64-token', // base64-encoded token from IdP\n * });\n * @see AWS.STS.assumeRoleWithSAML\n */\n constructor: function SAMLCredentials(params) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithSAML}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithSAML(function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * @note AWS.TemporaryCredentials is deprecated, but remains available for\n * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the\n * preferred class for temporary credentials.\n *\n * To setup temporary credentials, configure a set of master credentials\n * using the standard credentials providers (environment, EC2 instance metadata,\n * or from the filesystem), then set the global credentials to a new\n * temporary credentials object:\n *\n * ```javascript\n * // Note that environment credentials are loaded by default,\n * // the following line is shown for clarity:\n * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS');\n *\n * // Now set temporary credentials seeded from the master credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n *\n * // subsequent requests will now use temporary credentials from AWS STS.\n * new AWS.S3().listBucket(function(err, data) { ... });\n * ```\n *\n * @!attribute masterCredentials\n * @return [AWS.Credentials] the master (non-temporary) credentials used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @note In order to create temporary credentials, you first need to have\n * \"master\" credentials configured in {AWS.Config.credentials}. These\n * master credentials are necessary to retrieve the temporary credentials,\n * as well as refresh the credentials when they expire.\n * @param params [map] a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role.\n * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials\n * used to get and refresh temporary credentials from AWS STS.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.TemporaryCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials',\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function TemporaryCredentials(params, masterCredentials) {\n AWS.Credentials.call(this);\n this.loadMasterCredentials(masterCredentials);\n this.expired = true;\n\n this.params = params || {};\n if (this.params.RoleArn) {\n this.params.RoleSessionName =\n this.params.RoleSessionName || 'temporary-credentials';\n }\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh (callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load (callback) {\n var self = this;\n self.createClients();\n self.masterCredentials.get(function () {\n self.service.config.credentials = self.masterCredentials;\n var operation = self.params.RoleArn ?\n self.service.assumeRole : self.service.getSessionToken;\n operation.call(self.service, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n loadMasterCredentials: function loadMasterCredentials (masterCredentials) {\n this.masterCredentials = masterCredentials || AWS.config.credentials;\n while (this.masterCredentials.masterCredentials) {\n this.masterCredentials = this.masterCredentials.masterCredentials;\n }\n\n if (typeof this.masterCredentials.get !== 'function') {\n this.masterCredentials = new AWS.Credentials(this.masterCredentials);\n }\n },\n\n /**\n * @api private\n */\n createClients: function () {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given. In addition, the\n * `WebIdentityToken` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn` and `WebIdentityToken` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.WebIdentityToken = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n */\nAWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithWebIdentity)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.WebIdentityCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity',\n * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service\n * RoleSessionName: 'web' // optional name, defaults to web-identity\n * }, {\n * // optionally provide configuration to apply to the underlying AWS.STS service client\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.Config\n */\n constructor: function WebIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';\n this.data = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithWebIdentity(function (err, data) {\n self.data = null;\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n if (!this.service) {\n var stsConfig = AWS.util.merge({}, this._clientConfig);\n stsConfig.params = this.params;\n this.service = new STS(stsConfig);\n }\n }\n\n});\n","var AWS = require('./core');\nvar util = require('./util');\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\n\n/**\n * Generate key (except resources and operation part) to index the endpoints in the cache\n * If input shape has endpointdiscoveryid trait then use\n * accessKey + operation + resources + region + service as cache key\n * If input shape doesn't have endpointdiscoveryid trait then use\n * accessKey + region + service as cache key\n * @return [map] object with keys to index endpoints.\n * @api private\n */\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n return identifiers;\n}\n\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n if (shape.type === 'structure' && shape.required && shape.required.length > 0) {\n util.arrayEach(shape.required, function(name) {\n var memberShape = shape.members[name];\n if (memberShape.endpointDiscoveryId === true) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n result[locationName] = String(params[name]);\n } else {\n marshallCustomIdentifiersHelper(result, params[name], memberShape);\n }\n });\n }\n}\n\n/**\n * Get custom identifiers for cache key.\n * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait.\n * @param [object] request object\n * @param [object] input shape of the given operation's api\n * @api private\n */\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\n}\n\n/**\n * Call endpoint discovery operation when it's optional.\n * When endpoint is available in cache then use the cached endpoints. If endpoints\n * are unavailable then use regional endpoints and call endpoint discovery operation\n * asynchronously. This is turned off by default.\n * @param [object] request object\n * @api private\n */\nfunction optionalDiscoverEndpoint(request) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var endpoints = AWS.endpointCache.get(cacheKey);\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //or endpoint operation just failed in 1 minute\n return;\n } else if (endpoints && endpoints.length > 0) {\n //found endpoint record from cache\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n } else {\n //endpoint record not in cache or outdated. make discovery operation\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n addApiVersionHeader(endpointRequest);\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK);\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1\n }]);\n endpointRequest.send(function(err, data) {\n if (data && data.Endpoints) {\n AWS.endpointCache.put(cacheKey, data.Endpoints);\n } else if (err) {\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute\n }]);\n }\n });\n }\n}\n\nvar requestQueue = {};\n\n/**\n * Call endpoint discovery operation when it's required.\n * When endpoint is available in cache then use cached ones. If endpoints are\n * unavailable then SDK should call endpoint operation then use returned new\n * endpoint for the api call. SDK will automatically attempt to do endpoint\n * discovery. This is turned off by default\n * @param [object] request object\n * @api private\n */\nfunction requiredDiscoverEndpoint(request, done) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //push request object to a pending queue\n if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = [];\n requestQueue[cacheKeyStr].push({request: request, callback: done});\n return;\n } else if (endpoints && endpoints.length > 0) {\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n done();\n } else {\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n addApiVersionHeader(endpointRequest);\n\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n }]);\n endpointRequest.send(function(err, data) {\n if (err) {\n request.response.error = util.error(err, { retryable: false });\n AWS.endpointCache.remove(cacheKey);\n\n //fail all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.response.error = util.error(err, { retryable: false });\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n } else if (data) {\n AWS.endpointCache.put(cacheKeyStr, data.Endpoints);\n request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n\n //update the endpoint for all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n }\n done();\n });\n }\n}\n\n/**\n * add api version header to endpoint operation\n * @api private\n */\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\n }\n}\n\n/**\n * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid\n * endpoint from cache.\n * @api private\n */\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n if (error &&\n (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)\n ) {\n var request = response.request;\n var operations = request.service.api.operations || {};\n var inputShape = operations[request.operation] ? operations[request.operation].input : undefined;\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operations[request.operation]) cacheKey.operation = operations[request.operation].name;\n }\n AWS.endpointCache.remove(cacheKey);\n }\n}\n\n/**\n * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime.\n * @param [object] client Service client object.\n * @api private\n */\nfunction hasCustomEndpoint(client) {\n //if set endpoint is set for specific client, enable endpoint discovery will raise an error.\n if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.'\n });\n };\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint));\n}\n\n/**\n * @api private\n */\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\n}\n\n/**\n * If endpoint discovery should perform for this request when no operation requires endpoint\n * discovery for the given service.\n * SDK performs config resolution in order like below:\n * 1. If set in client configuration.\n * 2. If set in env AWS_ENABLE_ENDPOINT_DISCOVERY.\n * 3. If set in shared ini config file with key 'endpoint_discovery_enabled'.\n * @param [object] request request object.\n * @returns [boolean|undefined] if endpoint discovery config is not set in any source, this\n * function returns undefined\n * @api private\n */\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n }\n\n //shared ini file is only available in Node\n //not to check env in browser\n if (util.isBrowser()) return undefined;\n\n // If any of recognized endpoint discovery config env is set\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n if (Object.prototype.hasOwnProperty.call(process.env, env)) {\n if (process.env[env] === '' || process.env[env] === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'environmental variable ' + env + ' cannot be set to nothing'\n });\n }\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n try {\n configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[AWS.util.sharedConfigFileEnv]\n }) : {};\n } catch (e) {}\n var sharedFileConfig = configFile[\n process.env.AWS_PROFILE || AWS.util.defaultProfile\n ] || {};\n if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) {\n if (sharedFileConfig.endpoint_discovery_enabled === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'config file entry \\'endpoint_discovery_enabled\\' cannot be set to nothing'\n });\n }\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n return undefined;\n}\n\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\n\n var operations = service.api.operations || {};\n var operationModel = operations[request.operation];\n var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL';\n var isEnabled = resolveEndpointDiscoveryConfig(request);\n var hasRequiredEndpointDiscovery = service.api.hasRequiredEndpointDiscovery;\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // Once a customer enables endpoint discovery, the SDK should start appending\n // the string endpoint-discovery to the user-agent on all requests.\n request.httpRequest.appendToUserAgent('endpoint-discovery');\n }\n switch (isEndpointDiscoveryRequired) {\n case 'OPTIONAL':\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // For a given service; if at least one operation requires endpoint discovery then the SDK must enable endpoint discovery\n // by default for all operations of that service, including operations where endpoint discovery is optional.\n optionalDiscoverEndpoint(request);\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n }\n done();\n break;\n case 'REQUIRED':\n if (isEnabled === false) {\n // For a given operation; if endpoint discovery is required and it has been disabled on the SDK client,\n // then the SDK must return a clear and actionable exception.\n request.response.error = util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Endpoint Discovery is disabled but ' + service.api.className + '.' + request.operation +\n '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n case 'NULL':\n default:\n done();\n break;\n }\n}\n\nmodule.exports = {\n discoverEndpoint: discoverEndpoint,\n requiredDiscoverEndpoint: requiredDiscoverEndpoint,\n optionalDiscoverEndpoint: optionalDiscoverEndpoint,\n marshallCustomIdentifiers: marshallCustomIdentifiers,\n getCacheKey: getCacheKey,\n invalidateCachedEndpoint: invalidateCachedEndpoints,\n};\n","var AWS = require('../core');\nvar util = AWS.util;\nvar typeOf = require('./types').typeOf;\nvar DynamoDBSet = require('./set');\nvar NumberValue = require('./numberValue');\n\nAWS.DynamoDB.Converter = {\n /**\n * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type\n *\n * @param data [any] The data to convert to a DynamoDB AttributeValue\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n * @return [map] An object in the Amazon DynamoDB AttributeValue format\n *\n * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to\n * convert entire records (rather than individual attributes)\n */\n input: function convertInput(data, options) {\n options = options || {};\n var type = typeOf(data);\n if (type === 'Object') {\n return formatMap(data, options);\n } else if (type === 'Array') {\n return formatList(data, options);\n } else if (type === 'Set') {\n return formatSet(data, options);\n } else if (type === 'String') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { S: data };\n } else if (type === 'Number' || type === 'NumberValue') {\n return { N: data.toString() };\n } else if (type === 'Binary') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { B: data };\n } else if (type === 'Boolean') {\n return { BOOL: data };\n } else if (type === 'null') {\n return { NULL: true };\n } else if (type !== 'undefined' && type !== 'Function') {\n // this value has a custom constructor\n return formatMap(data, options);\n }\n },\n\n /**\n * Convert a JavaScript object into a DynamoDB record.\n *\n * @param data [any] The data to convert to a DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object in the DynamoDB record format.\n *\n * @example Convert a JavaScript object into a DynamoDB record\n * var marshalled = AWS.DynamoDB.Converter.marshall({\n * string: 'foo',\n * list: ['fizz', 'buzz', 'pop'],\n * map: {\n * nestedMap: {\n * key: 'value',\n * }\n * },\n * number: 123,\n * nullValue: null,\n * boolValue: true,\n * stringSet: new DynamoDBSet(['foo', 'bar', 'baz'])\n * });\n */\n marshall: function marshallItem(data, options) {\n return AWS.DynamoDB.Converter.input(data, options).M;\n },\n\n /**\n * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type.\n *\n * @param data [map] An object in the Amazon DynamoDB AttributeValue format\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [Object|Array|String|Number|Boolean|null]\n *\n * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to\n * convert entire records (rather than individual attributes)\n */\n output: function convertOutput(data, options) {\n options = options || {};\n var list, map, i;\n for (var type in data) {\n var values = data[type];\n if (type === 'M') {\n map = {};\n for (var key in values) {\n map[key] = convertOutput(values[key], options);\n }\n return map;\n } else if (type === 'L') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertOutput(values[i], options));\n }\n return list;\n } else if (type === 'SS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(values[i] + '');\n }\n return new DynamoDBSet(list);\n } else if (type === 'NS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertNumber(values[i], options.wrapNumbers));\n }\n return new DynamoDBSet(list);\n } else if (type === 'BS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(AWS.util.buffer.toBuffer(values[i]));\n }\n return new DynamoDBSet(list);\n } else if (type === 'S') {\n return values + '';\n } else if (type === 'N') {\n return convertNumber(values, options.wrapNumbers);\n } else if (type === 'B') {\n return util.buffer.toBuffer(values);\n } else if (type === 'BOOL') {\n return (values === 'true' || values === 'TRUE' || values === true);\n } else if (type === 'NULL') {\n return null;\n }\n }\n },\n\n /**\n * Convert a DynamoDB record into a JavaScript object.\n *\n * @param data [any] The DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object whose properties have been converted from\n * DynamoDB's AttributeValue format into their corresponding native\n * JavaScript types.\n *\n * @example Convert a record received from a DynamoDB stream\n * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({\n * string: {S: 'foo'},\n * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]},\n * map: {\n * M: {\n * nestedMap: {\n * M: {\n * key: {S: 'value'}\n * }\n * }\n * }\n * },\n * number: {N: '123'},\n * nullValue: {NULL: true},\n * boolValue: {BOOL: true}\n * });\n */\n unmarshall: function unmarshall(data, options) {\n return AWS.DynamoDB.Converter.output({M: data}, options);\n }\n};\n\n/**\n * @api private\n * @param data [Array]\n * @param options [map]\n */\nfunction formatList(data, options) {\n var list = {L: []};\n for (var i = 0; i < data.length; i++) {\n list['L'].push(AWS.DynamoDB.Converter.input(data[i], options));\n }\n return list;\n}\n\n/**\n * @api private\n * @param value [String]\n * @param wrapNumbers [Boolean]\n */\nfunction convertNumber(value, wrapNumbers) {\n return wrapNumbers ? new NumberValue(value) : Number(value);\n}\n\n/**\n * @api private\n * @param data [map]\n * @param options [map]\n */\nfunction formatMap(data, options) {\n var map = {M: {}};\n for (var key in data) {\n var formatted = AWS.DynamoDB.Converter.input(data[key], options);\n if (formatted !== void 0) {\n map['M'][key] = formatted;\n }\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction formatSet(data, options) {\n options = options || {};\n var values = data.values;\n if (options.convertEmptyValues) {\n values = filterEmptySetValues(data);\n if (values.length === 0) {\n return AWS.DynamoDB.Converter.input(null);\n }\n }\n\n var map = {};\n switch (data.type) {\n case 'String': map['SS'] = values; break;\n case 'Binary': map['BS'] = values; break;\n case 'Number': map['NS'] = values.map(function (value) {\n return value.toString();\n });\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction filterEmptySetValues(set) {\n var nonEmptyValues = [];\n var potentiallyEmptyTypes = {\n String: true,\n Binary: true,\n Number: false\n };\n if (potentiallyEmptyTypes[set.type]) {\n for (var i = 0; i < set.values.length; i++) {\n if (set.values[i].length === 0) {\n continue;\n }\n nonEmptyValues.push(set.values[i]);\n }\n\n return nonEmptyValues;\n }\n\n return set.values;\n}\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.Converter;\n","var AWS = require('../core');\nvar Translator = require('./translator');\nvar DynamoDBSet = require('./set');\n\n/**\n * The document client simplifies working with items in Amazon DynamoDB\n * by abstracting away the notion of attribute values. This abstraction\n * annotates native JavaScript types supplied as input parameters, as well\n * as converts annotated response data to native JavaScript types.\n *\n * ## Marshalling Input and Unmarshalling Response Data\n *\n * The document client affords developers the use of native JavaScript types\n * instead of `AttributeValue`s to simplify the JavaScript development\n * experience with Amazon DynamoDB. JavaScript objects passed in as parameters\n * are marshalled into `AttributeValue` shapes required by Amazon DynamoDB.\n * Responses from DynamoDB are unmarshalled into plain JavaScript objects\n * by the `DocumentClient`. The `DocumentClient`, does not accept\n * `AttributeValue`s in favor of native JavaScript types.\n *\n * | JavaScript Type | DynamoDB AttributeValue |\n * |:----------------------------------------------------------------------:|-------------------------|\n * | String | S |\n * | Number | N |\n * | Boolean | BOOL |\n * | null | NULL |\n * | Array | L |\n * | Object | M |\n * | Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays | B |\n *\n * ## Support for Sets\n *\n * The `DocumentClient` offers a convenient way to create sets from\n * JavaScript Arrays. The type of set is inferred from the first element\n * in the array. DynamoDB supports string, number, and binary sets. To\n * learn more about supported types see the\n * [Amazon DynamoDB Data Model Documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html)\n * For more information see {AWS.DynamoDB.DocumentClient.createSet}\n *\n */\nAWS.DynamoDB.DocumentClient = AWS.util.inherit({\n\n /**\n * Creates a DynamoDB document client with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.DynamoDB] An optional pre-configured instance\n * of the AWS.DynamoDB service object. This instance's config will be\n * copied to a new instance used by this client. You should not need to\n * retain a reference to the input object, and may destroy it or allow it\n * to be garbage collected.\n * @option options convertEmptyValues [Boolean] set to true if you would like\n * the document client to convert empty values (0-length strings, binary\n * buffers, and sets) to be converted to NULL types when persisting to\n * DynamoDB.\n * @option options wrapNumbers [Boolean] Set to true to return numbers as a\n * NumberValue object instead of converting them to native JavaScript numbers.\n * This allows for the safe round-trip transport of numbers of arbitrary size.\n * @see AWS.DynamoDB.constructor\n *\n */\n constructor: function DocumentClient(options) {\n var self = this;\n self.options = options || {};\n self.configure(self.options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n var self = this;\n self.service = options.service;\n self.bindServiceObject(options);\n self.attrValue = options.attrValue =\n self.service.api.operations.putItem.input.members.Item.value.shape;\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n var self = this;\n options = options || {};\n\n if (!self.service) {\n self.service = new AWS.DynamoDB(options);\n } else {\n var config = AWS.util.copy(self.service.config);\n self.service = new self.service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n makeServiceRequest: function(operation, params, callback) {\n var self = this;\n var request = self.service[operation](params);\n self.setupRequest(request);\n self.setupResponse(request);\n if (typeof callback === 'function') {\n request.send(callback);\n }\n return request;\n },\n\n /**\n * @api private\n */\n serviceClientOperationsMap: {\n batchGet: 'batchGetItem',\n batchWrite: 'batchWriteItem',\n delete: 'deleteItem',\n get: 'getItem',\n put: 'putItem',\n query: 'query',\n scan: 'scan',\n update: 'updateItem',\n transactGet: 'transactGetItems',\n transactWrite: 'transactWriteItems'\n },\n\n /**\n * Returns the attributes of one or more items from one or more tables\n * by delegating to `AWS.DynamoDB.batchGetItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchGetItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchGetItem\n * @example Get items from multiple tables\n * var params = {\n * RequestItems: {\n * 'Table-1': {\n * Keys: [\n * {\n * HashKey: 'haskey',\n * NumberRangeKey: 1\n * }\n * ]\n * },\n * 'Table-2': {\n * Keys: [\n * { foo: 'bar' },\n * ]\n * }\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Puts or deletes multiple items in one or more tables by delegating\n * to `AWS.DynamoDB.batchWriteItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchWriteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchWriteItem\n * @example Write to and delete from a table\n * var params = {\n * RequestItems: {\n * 'Table-1': [\n * {\n * DeleteRequest: {\n * Key: { HashKey: 'someKey' }\n * }\n * },\n * {\n * PutRequest: {\n * Item: {\n * HashKey: 'anotherKey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar' }\n * }\n * }\n * }\n * ]\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Deletes a single item in a table by primary key by delegating to\n * `AWS.DynamoDB.deleteItem()`\n *\n * Supply the same parameters as {AWS.DynamoDB.deleteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.deleteItem\n * @example Delete an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey',\n * NumberRangeKey: 1\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.delete(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n delete: function(params, callback) {\n var operation = this.serviceClientOperationsMap['delete'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns a set of attributes for the item with the given primary key\n * by delegating to `AWS.DynamoDB.getItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.getItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.getItem\n * @example Get an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey'\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.get(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n get: function(params, callback) {\n var operation = this.serviceClientOperationsMap['get'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a new item, or replaces an old item with a new item by\n * delegating to `AWS.DynamoDB.putItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.putItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.putItem\n * @example Create a new item in a table\n * var params = {\n * TableName : 'Table',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n put: function(params, callback) {\n var operation = this.serviceClientOperationsMap['put'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Edits an existing item's attributes, or adds a new item to the table if\n * it does not already exist by delegating to `AWS.DynamoDB.updateItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.updateItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.updateItem\n * @example Update an item with expressions\n * var params = {\n * TableName: 'Table',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.update(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n update: function(params, callback) {\n var operation = this.serviceClientOperationsMap['update'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns one or more items and item attributes by accessing every item\n * in a table or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.scan} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.scan\n * @example Scan the table with a filter expression\n * var params = {\n * TableName : 'Table',\n * FilterExpression : 'Year = :this_year',\n * ExpressionAttributeValues : {':this_year' : 2015}\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.scan(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n scan: function(params, callback) {\n var operation = this.serviceClientOperationsMap['scan'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Directly access items from a table by primary key or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.query} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.query\n * @example Query an index\n * var params = {\n * TableName: 'Table',\n * IndexName: 'Index',\n * KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey',\n * ExpressionAttributeValues: {\n * ':hkey': 'key',\n * ':rkey': 2015\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.query(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n query: function(params, callback) {\n var operation = this.serviceClientOperationsMap['query'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Synchronous write operation that groups up to 25 action requests.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactWriteItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactWriteItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Put: {\n * TableName : 'Table0',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * }\n * }, {\n * Update: {\n * TableName: 'Table1',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Atomically retrieves multiple items from one or more tables (but not from indexes)\n * in a single account and region.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactGetItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactGetItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Get: {\n * TableName : 'Table0',\n * Key: {\n * HashKey: 'hashkey0'\n * }\n * }\n * }, {\n * Get: {\n * TableName : 'Table1',\n * Key: {\n * HashKey: 'hashkey1'\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a set of elements inferring the type of set from\n * the type of the first element. Amazon DynamoDB currently supports\n * the number sets, string sets, and binary sets. For more information\n * about DynamoDB data types see the documentation on the\n * [Amazon DynamoDB Data Model](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes).\n *\n * @param list [Array] Collection to represent your DynamoDB Set\n * @param options [map]\n * * **validate** [Boolean] set to true if you want to validate the type\n * of each element in the set. Defaults to `false`.\n * @example Creating a number set\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * var params = {\n * Item: {\n * hashkey: 'hashkey'\n * numbers: documentClient.createSet([1, 2, 3]);\n * }\n * };\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n createSet: function(list, options) {\n options = options || {};\n return new DynamoDBSet(list, options);\n },\n\n /**\n * @api private\n */\n getTranslator: function() {\n return new Translator(this.options);\n },\n\n /**\n * @api private\n */\n setupRequest: function setupRequest(request) {\n var self = this;\n var translator = self.getTranslator();\n var operation = request.operation;\n var inputShape = request.service.api.operations[operation].input;\n request._events.validate.unshift(function(req) {\n req.rawParams = AWS.util.copy(req.params);\n req.params = translator.translateInput(req.rawParams, inputShape);\n });\n },\n\n /**\n * @api private\n */\n setupResponse: function setupResponse(request) {\n var self = this;\n var translator = self.getTranslator();\n var outputShape = self.service.api.operations[request.operation].output;\n request.on('extractData', function(response) {\n response.data = translator.translateOutput(response.data, outputShape);\n });\n\n var response = request.response;\n response.nextPage = function(cb) {\n var resp = this;\n var req = resp.request;\n var config;\n var service = req.service;\n var operation = req.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { resp.error = e; }\n\n if (!resp.hasNextPage()) {\n if (cb) cb(resp.error, null);\n else if (resp.error) throw resp.error;\n return null;\n }\n\n var params = AWS.util.copy(req.rawParams);\n if (!resp.nextPageTokens) {\n return cb ? cb(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = resp.nextPageTokens[i];\n }\n return self[operation](params, cb);\n }\n };\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.DocumentClient;\n","var util = require('../core').util;\n\n/**\n * An object recognizable as a numeric value that stores the underlying number\n * as a string.\n *\n * Intended to be a deserialization target for the DynamoDB Document Client when\n * the `wrapNumbers` flag is set. This allows for numeric values that lose\n * precision when converted to JavaScript's `number` type.\n */\nvar DynamoDBNumberValue = util.inherit({\n constructor: function NumberValue(value) {\n this.wrapperName = 'NumberValue';\n this.value = value.toString();\n },\n\n /**\n * Render the underlying value as a number when converting to JSON.\n */\n toJSON: function () {\n return this.toNumber();\n },\n\n /**\n * Convert the underlying value to a JavaScript number.\n */\n toNumber: function () {\n return Number(this.value);\n },\n\n /**\n * Return a string representing the unaltered value provided to the\n * constructor.\n */\n toString: function () {\n return this.value;\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBNumberValue;\n","var util = require('../core').util;\nvar typeOf = require('./types').typeOf;\n\n/**\n * @api private\n */\nvar memberTypeToSetType = {\n 'String': 'String',\n 'Number': 'Number',\n 'NumberValue': 'Number',\n 'Binary': 'Binary'\n};\n\n/**\n * @api private\n */\nvar DynamoDBSet = util.inherit({\n\n constructor: function Set(list, options) {\n options = options || {};\n this.wrapperName = 'Set';\n this.initialize(list, options.validate);\n },\n\n initialize: function(list, validate) {\n var self = this;\n self.values = [].concat(list);\n self.detectType();\n if (validate) {\n self.validate();\n }\n },\n\n detectType: function() {\n this.type = memberTypeToSetType[typeOf(this.values[0])];\n if (!this.type) {\n throw util.error(new Error(), {\n code: 'InvalidSetType',\n message: 'Sets can contain string, number, or binary values'\n });\n }\n },\n\n validate: function() {\n var self = this;\n var length = self.values.length;\n var values = self.values;\n for (var i = 0; i < length; i++) {\n if (memberTypeToSetType[typeOf(values[i])] !== self.type) {\n throw util.error(new Error(), {\n code: 'InvalidType',\n message: self.type + ' Set contains ' + typeOf(values[i]) + ' value'\n });\n }\n }\n },\n\n /**\n * Render the underlying values only when converting to JSON.\n */\n toJSON: function() {\n var self = this;\n return self.values;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBSet;\n","var util = require('../core').util;\nvar convert = require('./converter');\n\nvar Translator = function(options) {\n options = options || {};\n this.attrValue = options.attrValue;\n this.convertEmptyValues = Boolean(options.convertEmptyValues);\n this.wrapNumbers = Boolean(options.wrapNumbers);\n};\n\nTranslator.prototype.translateInput = function(value, shape) {\n this.mode = 'input';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translateOutput = function(value, shape) {\n this.mode = 'output';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translate = function(value, shape) {\n var self = this;\n if (!shape || value === undefined) return undefined;\n\n if (shape.shape === self.attrValue) {\n return convert[self.mode](value, {\n convertEmptyValues: self.convertEmptyValues,\n wrapNumbers: self.wrapNumbers,\n });\n }\n switch (shape.type) {\n case 'structure': return self.translateStructure(value, shape);\n case 'map': return self.translateMap(value, shape);\n case 'list': return self.translateList(value, shape);\n default: return self.translateScalar(value, shape);\n }\n};\n\nTranslator.prototype.translateStructure = function(structure, shape) {\n var self = this;\n if (structure == null) return undefined;\n\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n var result = self.translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n};\n\nTranslator.prototype.translateList = function(list, shape) {\n var self = this;\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = self.translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n};\n\nTranslator.prototype.translateMap = function(map, shape) {\n var self = this;\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = self.translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n};\n\nTranslator.prototype.translateScalar = function(value, shape) {\n return shape.toType(value);\n};\n\n/**\n * @api private\n */\nmodule.exports = Translator;\n","var util = require('../core').util;\n\nfunction typeOf(data) {\n if (data === null && typeof data === 'object') {\n return 'null';\n } else if (data !== undefined && isBinary(data)) {\n return 'Binary';\n } else if (data !== undefined && data.constructor) {\n return data.wrapperName || util.typeName(data.constructor);\n } else if (data !== undefined && typeof data === 'object') {\n // this object is the result of Object.create(null), hence the absence of a\n // defined constructor\n return 'Object';\n } else {\n return 'undefined';\n }\n}\n\nfunction isBinary(data) {\n var types = [\n 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView',\n 'Int8Array', 'Uint8Array', 'Uint8ClampedArray',\n 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array',\n 'Float32Array', 'Float64Array'\n ];\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n if (util.Buffer.isBuffer(data) || data instanceof Stream) {\n return true;\n }\n }\n\n for (var i = 0; i < types.length; i++) {\n if (data !== undefined && data.constructor) {\n if (util.isType(data, types[i])) return true;\n if (util.typeName(data.constructor) === types[i]) return true;\n }\n }\n\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n typeOf: typeOf,\n isBinary: isBinary\n};\n","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\n\n var events = [];\n\n for (var i = 0; i < eventMessages.length; i++) {\n events.push(parseEvent(parser, eventMessages[i], model));\n }\n\n return events;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n createEventStream: createEventStream\n};\n","/**\n * Takes in a buffer of event messages and splits them into individual messages.\n * @param {Buffer} buffer\n * @api private\n */\nfunction eventMessageChunker(buffer) {\n /** @type Buffer[] */\n var messages = [];\n var offset = 0;\n\n while (offset < buffer.length) {\n var totalLength = buffer.readInt32BE(offset);\n\n // create new buffer for individual message (shares memory with original)\n var message = buffer.slice(offset, totalLength + offset);\n // increment offset to it starts at the next message\n offset += totalLength;\n\n messages.push(message);\n }\n\n return messages;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n eventMessageChunker: eventMessageChunker\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\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 * @param {Buffer} bytes\n *\n * @api private\n */\nfunction Int64(bytes) {\n if (bytes.length !== 8) {\n throw new Error('Int64 buffers must be exactly 8 bytes');\n }\n if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes);\n\n this.bytes = bytes;\n}\n\n/**\n * @param {number} number\n * @returns {Int64}\n *\n * @api private\n */\nInt64.fromNumber = function(number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(\n number + ' is too large (or, if negative, too small) to represent as an Int64'\n );\n }\n\n var bytes = new Uint8Array(8);\n for (\n var i = 7, remaining = Math.abs(Math.round(number));\n i > -1 && remaining > 0;\n i--, remaining /= 256\n ) {\n bytes[i] = remaining;\n }\n\n if (number < 0) {\n negate(bytes);\n }\n\n return new Int64(bytes);\n};\n\n/**\n * @returns {number}\n *\n * @api private\n */\nInt64.prototype.valueOf = function() {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n\n return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1);\n};\n\nInt64.prototype.toString = function() {\n return String(this.valueOf());\n};\n\n/**\n * @param {Buffer} bytes\n *\n * @api private\n */\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}\n\n/**\n * @api private\n */\nmodule.exports = {\n Int64: Int64\n};\n","var parseMessage = require('./parse-message').parseMessage;\n\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message);\n\n // check if message is an event or error\n var messageType = parsedMessage.headers[':message-type'];\n if (messageType) {\n if (messageType.value === 'error') {\n throw parseError(parsedMessage);\n } else if (messageType.value !== 'event') {\n // not sure how to parse non-events/non-errors, ignore for now\n return;\n }\n }\n\n // determine event type\n var eventType = parsedMessage.headers[':event-type'];\n // check that the event type is modeled\n var eventModel = shape.members[eventType.value];\n if (!eventModel) {\n return;\n }\n\n var result = {};\n // check if an event payload exists\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName];\n // if the shape is binary, return the byte array\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n }\n\n // read event headers\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n if (parsedMessage.headers[name]) {\n // parse the header!\n result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value);\n }\n }\n\n var output = {};\n output[eventType.value] = result;\n return output;\n}\n\nfunction parseError(message) {\n var errorCode = message.headers[':error-code'];\n var errorMessage = message.headers[':error-message'];\n var error = new Error(errorMessage.value || errorMessage);\n error.code = error.name = errorCode.value || errorCode;\n return error;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseEvent: parseEvent\n};\n","var Int64 = require('./int64').Int64;\n\nvar splitMessage = require('./split-message').splitMessage;\n\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';\n\n/**\n * @api private\n *\n * @param {Buffer} headers\n */\nfunction parseHeaders(headers) {\n var out = {};\n var position = 0;\n while (position < headers.length) {\n var nameLength = headers.readUInt8(position++);\n var name = headers.slice(position, position + nameLength).toString();\n position += nameLength;\n switch (headers.readUInt8(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.readInt8(position++)\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.readInt16BE(position)\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.readInt32BE(position)\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(headers.slice(position, position + 8))\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: headers.slice(position, position + binaryLength)\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: headers.slice(\n position,\n position + stringLength\n ).toString()\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(\n new Int64(headers.slice(position, position + 8))\n .valueOf()\n )\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidChars = headers.slice(position, position + 16)\n .toString('hex');\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: uuidChars.substr(0, 8) + '-' +\n uuidChars.substr(8, 4) + '-' +\n uuidChars.substr(12, 4) + '-' +\n uuidChars.substr(16, 4) + '-' +\n uuidChars.substr(20)\n };\n break;\n default:\n throw new Error('Unrecognized header type tag');\n }\n }\n return out;\n}\n\nfunction parseMessage(message) {\n var parsed = splitMessage(message);\n return { headers: parseHeaders(parsed.headers), body: parsed.body };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseMessage: parseMessage\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\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/**\n * @api private\n *\n * @param {Buffer} message\n */\nfunction splitMessage(message) {\n if (!util.Buffer.isBuffer(message)) message = toBuffer(message);\n\n if (message.length < MINIMUM_MESSAGE_LENGTH) {\n throw new Error('Provided message too short to accommodate event stream message overhead');\n }\n\n if (message.length !== message.readUInt32BE(0)) {\n throw new Error('Reported message length does not match received message length');\n }\n\n var expectedPreludeChecksum = message.readUInt32BE(PRELUDE_LENGTH);\n\n if (\n expectedPreludeChecksum !== util.crypto.crc32(\n message.slice(0, PRELUDE_LENGTH)\n )\n ) {\n throw new Error(\n 'The prelude checksum specified in the message (' +\n expectedPreludeChecksum +\n ') does not match the calculated CRC32 checksum.'\n );\n }\n\n var expectedMessageChecksum = message.readUInt32BE(message.length - CHECKSUM_LENGTH);\n\n if (\n expectedMessageChecksum !== util.crypto.crc32(\n message.slice(0, message.length - CHECKSUM_LENGTH)\n )\n ) {\n throw new Error(\n 'The message checksum did not match the expected value of ' +\n expectedMessageChecksum\n );\n }\n\n var headersStart = PRELUDE_LENGTH + CHECKSUM_LENGTH;\n var headersEnd = headersStart + message.readUInt32BE(PRELUDE_MEMBER_LENGTH);\n\n return {\n headers: message.slice(headersStart, headersEnd),\n body: message.slice(headersEnd, message.length - CHECKSUM_LENGTH),\n };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n splitMessage: splitMessage\n};\n","var AWS = require('./core');\nvar SequentialExecutor = require('./sequential_executor');\nvar DISCOVER_ENDPOINT = require('./discover_endpoint').discoverEndpoint;\n/**\n * The namespace used to register global event listeners for request building\n * and sending.\n */\nAWS.EventListeners = {\n /**\n * @!attribute VALIDATE_CREDENTIALS\n * A request listener that validates whether the request is being\n * sent with credentials.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating credentials\n * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_REGION\n * A request listener that validates whether the region is set\n * for a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating region configuration\n * var listener = AWS.EventListeners.Core.VALIDATE_REGION;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_PARAMETERS\n * A request listener that validates input parameters in a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating parameters\n * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS;\n * request.removeListener('validate', listener);\n * @example Disable parameter validation globally\n * AWS.EventListeners.Core.removeListener('validate',\n * AWS.EventListeners.Core.VALIDATE_REGION);\n * @readonly\n * @return [Function]\n * @!attribute SEND\n * A request listener that initiates the HTTP connection for a\n * request being sent. Handles the {AWS.Request~send 'send' Request event}\n * @example Replacing the HTTP handler\n * var listener = AWS.EventListeners.Core.SEND;\n * request.removeListener('send', listener);\n * request.on('send', function(response) {\n * customHandler.send(response);\n * });\n * @return [Function]\n * @readonly\n * @!attribute HTTP_DATA\n * A request listener that reads data from the HTTP connection in order\n * to build the response data.\n * Handles the {AWS.Request~httpData 'httpData' Request event}.\n * Remove this handler if you are overriding the 'httpData' event and\n * do not want extra data processing and buffering overhead.\n * @example Disabling default data processing\n * var listener = AWS.EventListeners.Core.HTTP_DATA;\n * request.removeListener('httpData', listener);\n * @return [Function]\n * @readonly\n */\n Core: {} /* doc hack */\n};\n\n/**\n * @api private\n */\nfunction getOperationAuthtype(req) {\n if (!req.service.api.operations) {\n return '';\n }\n var operation = req.service.api.operations[req.operation];\n return operation ? operation.authtype : '';\n}\n\n/**\n * @api private\n */\nfunction getIdentityType(req) {\n var service = req.service;\n\n if (service.config.signatureVersion) {\n return service.config.signatureVersion;\n }\n\n if (service.api.signatureVersion) {\n return service.api.signatureVersion;\n }\n\n return getOperationAuthtype(req);\n}\n\nAWS.EventListeners = {\n Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) {\n addAsync(\n 'VALIDATE_CREDENTIALS', 'validate',\n function VALIDATE_CREDENTIALS(req, done) {\n if (!req.service.api.signatureVersion && !req.service.config.signatureVersion) return done(); // none\n\n var identityType = getIdentityType(req);\n if (identityType === 'bearer') {\n req.service.config.getToken(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err, {code: 'TokenError'});\n }\n done();\n });\n return;\n }\n\n req.service.config.getCredentials(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err,\n {\n code: 'CredentialsError',\n message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1'\n }\n );\n }\n done();\n });\n });\n\n add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) {\n if (!req.service.isGlobalEndpoint) {\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!req.service.config.region) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n } else if (!dnsHostRegex.test(req.service.config.region)) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Invalid region in config'});\n }\n }\n });\n\n add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var idempotentMembers = operation.idempotentMembers;\n if (!idempotentMembers.length) {\n return;\n }\n // creates a copy of params so user's param object isn't mutated\n var params = AWS.util.copy(req.params);\n for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) {\n if (!params[idempotentMembers[i]]) {\n // add the member\n params[idempotentMembers[i]] = AWS.util.uuid.v4();\n }\n }\n req.params = params;\n });\n\n add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var rules = req.service.api.operations[req.operation].input;\n var validation = req.service.config.paramValidation;\n new AWS.ParamValidator(validation).validate(rules, req.params);\n });\n\n add('COMPUTE_CHECKSUM', 'afterBuild', function COMPUTE_CHECKSUM(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var body = req.httpRequest.body;\n var isNonStreamingPayload = body && (AWS.util.Buffer.isBuffer(body) || typeof body === 'string');\n var headers = req.httpRequest.headers;\n if (\n operation.httpChecksumRequired &&\n req.service.config.computeChecksums &&\n isNonStreamingPayload &&\n !headers['Content-MD5']\n ) {\n var md5 = AWS.util.crypto.md5(body, 'base64');\n headers['Content-MD5'] = md5;\n }\n });\n\n addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) {\n req.haltHandlersOnError();\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n var authtype = operation ? operation.authtype : '';\n if (!req.service.api.signatureVersion && !authtype && !req.service.config.signatureVersion) return done(); // none\n if (req.service.getSignerClass(req) === AWS.Signers.V4) {\n var body = req.httpRequest.body || '';\n if (authtype.indexOf('unsigned-body') >= 0) {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n return done();\n }\n AWS.util.computeSha256(body, function(err, sha) {\n if (err) {\n done(err);\n }\n else {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = sha;\n done();\n }\n });\n } else {\n done();\n }\n });\n\n add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) {\n var authtype = getOperationAuthtype(req);\n var payloadMember = AWS.util.getRequestPayloadShape(req);\n if (req.httpRequest.headers['Content-Length'] === undefined) {\n try {\n var length = AWS.util.string.byteLength(req.httpRequest.body);\n req.httpRequest.headers['Content-Length'] = length;\n } catch (err) {\n if (payloadMember && payloadMember.isStreaming) {\n if (payloadMember.requiresLength) {\n //streaming payload requires length(s3, glacier)\n throw err;\n } else if (authtype.indexOf('unsigned-body') >= 0) {\n //unbounded streaming payload(lex, mediastore)\n req.httpRequest.headers['Transfer-Encoding'] = 'chunked';\n return;\n } else {\n throw err;\n }\n }\n throw err;\n }\n }\n });\n\n add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) {\n req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host;\n });\n\n add('SET_TRACE_ID', 'afterBuild', function SET_TRACE_ID(req) {\n var traceIdHeaderName = 'X-Amzn-Trace-Id';\n if (AWS.util.isNode() && !Object.hasOwnProperty.call(req.httpRequest.headers, traceIdHeaderName)) {\n var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME';\n var ENV_TRACE_ID = '_X_AMZN_TRACE_ID';\n var functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n var traceId = process.env[ENV_TRACE_ID];\n if (\n typeof functionName === 'string' &&\n functionName.length > 0 &&\n typeof traceId === 'string' &&\n traceId.length > 0\n ) {\n req.httpRequest.headers[traceIdHeaderName] = traceId;\n }\n }\n });\n\n add('RESTART', 'restart', function RESTART() {\n var err = this.response.error;\n if (!err || !err.retryable) return;\n\n this.httpRequest = new AWS.HttpRequest(\n this.service.endpoint,\n this.service.region\n );\n\n if (this.response.retryCount < this.service.config.maxRetries) {\n this.response.retryCount++;\n } else {\n this.response.error = null;\n }\n });\n\n var addToHead = true;\n addAsync('DISCOVER_ENDPOINT', 'sign', DISCOVER_ENDPOINT, addToHead);\n\n addAsync('SIGN', 'sign', function SIGN(req, done) {\n var service = req.service;\n var identityType = getIdentityType(req);\n if (!identityType || identityType.length === 0) return done(); // none\n\n if (identityType === 'bearer') {\n service.config.getToken(function (err, token) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var SignerClass = service.getSignerClass(req);\n var signer = new SignerClass(req.httpRequest);\n signer.addAuthorization(token);\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n } else {\n service.config.getCredentials(function (err, credentials) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var date = service.getSkewCorrectedDate();\n var SignerClass = service.getSignerClass(req);\n var operations = req.service.api.operations || {};\n var operation = operations[req.operation];\n var signer = new SignerClass(req.httpRequest,\n service.getSigningName(req),\n {\n signatureCache: service.config.signatureCache,\n operation: operation,\n signatureVersion: service.api.signatureVersion\n });\n signer.setServiceClientId(service._clientId);\n\n // clear old authorization headers\n delete req.httpRequest.headers['Authorization'];\n delete req.httpRequest.headers['Date'];\n delete req.httpRequest.headers['X-Amz-Date'];\n\n // add new authorization\n signer.addAuthorization(credentials, date);\n req.signedAt = date;\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n\n }\n });\n\n add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) {\n if (this.service.successfulResponse(resp, this)) {\n resp.data = {};\n resp.error = null;\n } else {\n resp.data = null;\n resp.error = AWS.util.error(new Error(),\n {code: 'UnknownError', message: 'An unknown error occurred.'});\n }\n });\n\n add('ERROR', 'error', function ERROR(err, resp) {\n var awsQueryCompatible = resp.request.service.api.awsQueryCompatible;\n if (awsQueryCompatible) {\n var headers = resp.httpResponse.headers;\n var queryErrorCode = headers ? headers['x-amzn-query-error'] : undefined;\n if (queryErrorCode && queryErrorCode.includes(';')) {\n resp.error.code = queryErrorCode.split(';')[0];\n }\n }\n }, true);\n\n addAsync('SEND', 'send', function SEND(resp, done) {\n resp.httpResponse._abortCallback = done;\n resp.error = null;\n resp.data = null;\n\n function callback(httpResp) {\n resp.httpResponse.stream = httpResp;\n var stream = resp.request.httpRequest.stream;\n var service = resp.request.service;\n var api = service.api;\n var operationName = resp.request.operation;\n var operation = api.operations[operationName] || {};\n\n httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) {\n resp.request.emit(\n 'httpHeaders',\n [statusCode, headers, resp, statusMessage]\n );\n\n if (!resp.httpResponse.streaming) {\n if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check\n // if we detect event streams, we're going to have to\n // return the stream immediately\n if (operation.hasEventOutput && service.successfulResponse(resp)) {\n // skip reading the IncomingStream\n resp.request.emit('httpDone');\n done();\n return;\n }\n\n httpResp.on('readable', function onReadable() {\n var data = httpResp.read();\n if (data !== null) {\n resp.request.emit('httpData', [data, resp]);\n }\n });\n } else { // legacy streams API\n httpResp.on('data', function onData(data) {\n resp.request.emit('httpData', [data, resp]);\n });\n }\n }\n });\n\n httpResp.on('end', function onEnd() {\n if (!stream || !stream.didCallback) {\n if (AWS.HttpClient.streamsApiVersion === 2 && (operation.hasEventOutput && service.successfulResponse(resp))) {\n // don't concatenate response chunks when streaming event stream data when response is successful\n return;\n }\n resp.request.emit('httpDone');\n done();\n }\n });\n }\n\n function progress(httpResp) {\n httpResp.on('sendProgress', function onSendProgress(value) {\n resp.request.emit('httpUploadProgress', [value, resp]);\n });\n\n httpResp.on('receiveProgress', function onReceiveProgress(value) {\n resp.request.emit('httpDownloadProgress', [value, resp]);\n });\n }\n\n function error(err) {\n if (err.code !== 'RequestAbortedError') {\n var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError';\n err = AWS.util.error(err, {\n code: errCode,\n region: resp.request.httpRequest.region,\n hostname: resp.request.httpRequest.endpoint.hostname,\n retryable: true\n });\n }\n resp.error = err;\n resp.request.emit('httpError', [resp.error, resp], function() {\n done();\n });\n }\n\n function executeSend() {\n var http = AWS.HttpClient.getInstance();\n var httpOptions = resp.request.service.config.httpOptions || {};\n try {\n var stream = http.handleRequest(resp.request.httpRequest, httpOptions,\n callback, error);\n progress(stream);\n } catch (err) {\n error(err);\n }\n }\n var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000;\n if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign\n this.emit('sign', [this], function(err) {\n if (err) done(err);\n else executeSend();\n });\n } else {\n executeSend();\n }\n });\n\n add('HTTP_HEADERS', 'httpHeaders',\n function HTTP_HEADERS(statusCode, headers, resp, statusMessage) {\n resp.httpResponse.statusCode = statusCode;\n resp.httpResponse.statusMessage = statusMessage;\n resp.httpResponse.headers = headers;\n resp.httpResponse.body = AWS.util.buffer.toBuffer('');\n resp.httpResponse.buffers = [];\n resp.httpResponse.numBytes = 0;\n var dateHeader = headers.date || headers.Date;\n var service = resp.request.service;\n if (dateHeader) {\n var serverTime = Date.parse(dateHeader);\n if (service.config.correctClockSkew\n && service.isClockSkewed(serverTime)) {\n service.applyClockOffset(serverTime);\n }\n }\n });\n\n add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) {\n if (chunk) {\n if (AWS.util.isNode()) {\n resp.httpResponse.numBytes += chunk.length;\n\n var total = resp.httpResponse.headers['content-length'];\n var progress = { loaded: resp.httpResponse.numBytes, total: total };\n resp.request.emit('httpDownloadProgress', [progress, resp]);\n }\n\n resp.httpResponse.buffers.push(AWS.util.buffer.toBuffer(chunk));\n }\n });\n\n add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) {\n // convert buffers array into single buffer\n if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) {\n var body = AWS.util.buffer.concat(resp.httpResponse.buffers);\n resp.httpResponse.body = body;\n }\n delete resp.httpResponse.numBytes;\n delete resp.httpResponse.buffers;\n });\n\n add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) {\n if (resp.httpResponse.statusCode) {\n resp.error.statusCode = resp.httpResponse.statusCode;\n if (resp.error.retryable === undefined) {\n resp.error.retryable = this.service.retryableError(resp.error, this);\n }\n }\n });\n\n add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) {\n if (!resp.error) return;\n switch (resp.error.code) {\n case 'RequestExpired': // EC2 only\n case 'ExpiredTokenException':\n case 'ExpiredToken':\n resp.error.retryable = true;\n resp.request.service.config.credentials.expired = true;\n }\n });\n\n add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) {\n var err = resp.error;\n if (!err) return;\n if (typeof err.code === 'string' && typeof err.message === 'string') {\n if (err.code.match(/Signature/) && err.message.match(/expired/)) {\n resp.error.retryable = true;\n }\n }\n });\n\n add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) {\n if (!resp.error) return;\n if (this.service.clockSkewError(resp.error)\n && this.service.config.correctClockSkew) {\n resp.error.retryable = true;\n }\n });\n\n add('REDIRECT', 'retry', function REDIRECT(resp) {\n if (resp.error && resp.error.statusCode >= 300 &&\n resp.error.statusCode < 400 && resp.httpResponse.headers['location']) {\n this.httpRequest.endpoint =\n new AWS.Endpoint(resp.httpResponse.headers['location']);\n this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host;\n resp.error.redirect = true;\n resp.error.retryable = true;\n }\n });\n\n add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) {\n if (resp.error) {\n if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.error.retryDelay = 0;\n } else if (resp.retryCount < resp.maxRetries) {\n resp.error.retryDelay = this.service.retryDelays(resp.retryCount, resp.error) || 0;\n }\n }\n });\n\n addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) {\n var delay, willRetry = false;\n\n if (resp.error) {\n delay = resp.error.retryDelay || 0;\n if (resp.error.retryable && resp.retryCount < resp.maxRetries) {\n resp.retryCount++;\n willRetry = true;\n } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.redirectCount++;\n willRetry = true;\n }\n }\n\n // delay < 0 is a signal from customBackoff to skip retries\n if (willRetry && delay >= 0) {\n resp.error = null;\n setTimeout(done, delay);\n } else {\n done();\n }\n });\n }),\n\n CorePost: new SequentialExecutor().addNamedListeners(function(add) {\n add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId);\n add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId);\n\n add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) {\n function isDNSError(err) {\n return err.errno === 'ENOTFOUND' ||\n typeof err.errno === 'number' &&\n typeof AWS.util.getSystemErrorName === 'function' &&\n ['EAI_NONAME', 'EAI_NODATA'].indexOf(AWS.util.getSystemErrorName(err.errno) >= 0);\n }\n if (err.code === 'NetworkingError' && isDNSError(err)) {\n var message = 'Inaccessible host: `' + err.hostname + '\\' at port `' + err.port +\n '\\'. This service may not be available in the `' + err.region +\n '\\' region.';\n this.response.error = AWS.util.error(new Error(message), {\n code: 'UnknownEndpoint',\n region: err.region,\n hostname: err.hostname,\n retryable: true,\n originalError: err\n });\n }\n });\n }),\n\n Logger: new SequentialExecutor().addNamedListeners(function(add) {\n add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) {\n var req = resp.request;\n var logger = req.service.config.logger;\n if (!logger) return;\n function filterSensitiveLog(inputShape, shape) {\n if (!shape) {\n return shape;\n }\n if (inputShape.isSensitive) {\n return '***SensitiveInformation***';\n }\n switch (inputShape.type) {\n case 'structure':\n var struct = {};\n AWS.util.each(shape, function(subShapeName, subShape) {\n if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) {\n struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape);\n } else {\n struct[subShapeName] = subShape;\n }\n });\n return struct;\n case 'list':\n var list = [];\n AWS.util.arrayEach(shape, function(subShape, index) {\n list.push(filterSensitiveLog(inputShape.member, subShape));\n });\n return list;\n case 'map':\n var map = {};\n AWS.util.each(shape, function(key, value) {\n map[key] = filterSensitiveLog(inputShape.value, value);\n });\n return map;\n default:\n return shape;\n }\n }\n\n function buildMessage() {\n var time = resp.request.service.getSkewCorrectedDate().getTime();\n var delta = (time - req.startTime.getTime()) / 1000;\n var ansi = logger.isTTY ? true : false;\n var status = resp.httpResponse.statusCode;\n var censoredParams = req.params;\n if (\n req.service.api.operations &&\n req.service.api.operations[req.operation] &&\n req.service.api.operations[req.operation].input\n ) {\n var inputShape = req.service.api.operations[req.operation].input;\n censoredParams = filterSensitiveLog(inputShape, req.params);\n }\n var params = require('util').inspect(censoredParams, true, null);\n var message = '';\n if (ansi) message += '\\x1B[33m';\n message += '[AWS ' + req.service.serviceIdentifier + ' ' + status;\n message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]';\n if (ansi) message += '\\x1B[0;1m';\n message += ' ' + AWS.util.string.lowerFirst(req.operation);\n message += '(' + params + ')';\n if (ansi) message += '\\x1B[0m';\n return message;\n }\n\n var line = buildMessage();\n if (typeof logger.log === 'function') {\n logger.log(line);\n } else if (typeof logger.write === 'function') {\n logger.write(line + '\\n');\n }\n });\n }),\n\n Json: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Rest: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n RestJson: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n add('UNSET_CONTENT_LENGTH', 'afterBuild', svc.unsetContentLength);\n }),\n\n RestXml: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_xml');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Query: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/query');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n })\n};\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\n\n/**\n * The endpoint that a service will talk to, for example,\n * `'https://ec2.ap-southeast-1.amazonaws.com'`. If\n * you need to override an endpoint for a service, you can\n * set the endpoint on a service by passing the endpoint\n * object with the `endpoint` option key:\n *\n * ```javascript\n * var ep = new AWS.Endpoint('awsproxy.example.com');\n * var s3 = new AWS.S3({endpoint: ep});\n * s3.service.endpoint.hostname == 'awsproxy.example.com'\n * ```\n *\n * Note that if you do not specify a protocol, the protocol will\n * be selected based on your current {AWS.config} configuration.\n *\n * @!attribute protocol\n * @return [String] the protocol (http or https) of the endpoint\n * URL\n * @!attribute hostname\n * @return [String] the host portion of the endpoint, e.g.,\n * example.com\n * @!attribute host\n * @return [String] the host portion of the endpoint including\n * the port, e.g., example.com:80\n * @!attribute port\n * @return [Integer] the port of the endpoint\n * @!attribute href\n * @return [String] the full URL of the endpoint\n */\nAWS.Endpoint = inherit({\n\n /**\n * @overload Endpoint(endpoint)\n * Constructs a new endpoint given an endpoint URL. If the\n * URL omits a protocol (http or https), the default protocol\n * set in the global {AWS.config} will be used.\n * @param endpoint [String] the URL to construct an endpoint from\n */\n constructor: function Endpoint(endpoint, config) {\n AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);\n\n if (typeof endpoint === 'undefined' || endpoint === null) {\n throw new Error('Invalid endpoint: ' + endpoint);\n } else if (typeof endpoint !== 'string') {\n return AWS.util.copy(endpoint);\n }\n\n if (!endpoint.match(/^http/)) {\n var useSSL = config && config.sslEnabled !== undefined ?\n config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint));\n\n // Ensure the port property is set as an integer\n if (this.port) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = this.protocol === 'https:' ? 443 : 80;\n }\n }\n\n});\n\n/**\n * The low level HTTP request object, encapsulating all HTTP header\n * and body data sent by a service request.\n *\n * @!attribute method\n * @return [String] the HTTP method of the request\n * @!attribute path\n * @return [String] the path portion of the URI, e.g.,\n * \"/list/?start=5&num=10\"\n * @!attribute headers\n * @return [map]\n * a map of header keys and their respective values\n * @!attribute body\n * @return [String] the request body payload\n * @!attribute endpoint\n * @return [AWS.Endpoint] the endpoint for the request\n * @!attribute region\n * @api private\n * @return [String] the region, for signing purposes only.\n */\nAWS.HttpRequest = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpRequest(endpoint, region) {\n endpoint = new AWS.Endpoint(endpoint);\n this.method = 'POST';\n this.path = endpoint.path || '/';\n this.headers = {};\n this.body = '';\n this.endpoint = endpoint;\n this.region = region;\n this._userAgent = '';\n this.setUserAgent();\n },\n\n /**\n * @api private\n */\n setUserAgent: function setUserAgent() {\n this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent();\n },\n\n getUserAgentHeaderName: function getUserAgentHeaderName() {\n var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';\n return prefix + 'User-Agent';\n },\n\n /**\n * @api private\n */\n appendToUserAgent: function appendToUserAgent(agentPartial) {\n if (typeof agentPartial === 'string' && agentPartial) {\n this._userAgent += ' ' + agentPartial;\n }\n this.headers[this.getUserAgentHeaderName()] = this._userAgent;\n },\n\n /**\n * @api private\n */\n getUserAgent: function getUserAgent() {\n return this._userAgent;\n },\n\n /**\n * @return [String] the part of the {path} excluding the\n * query string\n */\n pathname: function pathname() {\n return this.path.split('?', 1)[0];\n },\n\n /**\n * @return [String] the query string portion of the {path}\n */\n search: function search() {\n var query = this.path.split('?', 2)[1];\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\n return '';\n },\n\n /**\n * @api private\n * update httpRequest endpoint with endpoint string\n */\n updateEndpoint: function updateEndpoint(endpointStr) {\n var newEndpoint = new AWS.Endpoint(endpointStr);\n this.endpoint = newEndpoint;\n this.path = newEndpoint.path || '/';\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\n }\n }\n});\n\n/**\n * The low level HTTP response object, encapsulating all HTTP header\n * and body data returned from the request.\n *\n * @!attribute statusCode\n * @return [Integer] the HTTP status code of the response (e.g., 200, 404)\n * @!attribute headers\n * @return [map]\n * a map of response header keys and their respective values\n * @!attribute body\n * @return [String] the response body payload\n * @!attribute [r] streaming\n * @return [Boolean] whether this response is being streamed at a low-level.\n * Defaults to `false` (buffered reads). Do not modify this manually, use\n * {createUnbufferedStream} to convert the stream to unbuffered mode\n * instead.\n */\nAWS.HttpResponse = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpResponse() {\n this.statusCode = undefined;\n this.headers = {};\n this.body = undefined;\n this.streaming = false;\n this.stream = null;\n },\n\n /**\n * Disables buffering on the HTTP response and returns the stream for reading.\n * @return [Stream, XMLHttpRequest, null] the underlying stream object.\n * Use this object to directly read data off of the stream.\n * @note This object is only available after the {AWS.Request~httpHeaders}\n * event has fired. This method must be called prior to\n * {AWS.Request~httpData}.\n * @example Taking control of a stream\n * request.on('httpHeaders', function(statusCode, headers) {\n * if (statusCode < 300) {\n * if (headers.etag === 'xyz') {\n * // pipe the stream, disabling buffering\n * var stream = this.response.httpResponse.createUnbufferedStream();\n * stream.pipe(process.stdout);\n * } else { // abort this request and set a better error message\n * this.abort();\n * this.response.error = new Error('Invalid ETag');\n * }\n * }\n * }).send(console.log);\n */\n createUnbufferedStream: function createUnbufferedStream() {\n this.streaming = true;\n return this.stream;\n }\n});\n\n\nAWS.HttpClient = inherit({});\n\n/**\n * @api private\n */\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n return this.singleton;\n};\n","var AWS = require('../core');\nvar EventEmitter = require('events').EventEmitter;\nrequire('../http');\n\n/**\n * @api private\n */\nAWS.XHRClient = AWS.util.inherit({\n handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {\n var self = this;\n var endpoint = httpRequest.endpoint;\n var emitter = new EventEmitter();\n var href = endpoint.protocol + '//' + endpoint.hostname;\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n href += httpRequest.path;\n\n var xhr = new XMLHttpRequest(), headersEmitted = false;\n httpRequest.stream = xhr;\n\n xhr.addEventListener('readystatechange', function() {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) { return; }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit(\n 'headers',\n emitter.statusCode,\n emitter.headers,\n xhr.statusText\n );\n headersEmitted = true;\n }\n if (this.readyState === this.DONE) {\n self.finishRequest(xhr, emitter);\n }\n }, false);\n xhr.upload.addEventListener('progress', function (evt) {\n emitter.emit('sendProgress', evt);\n });\n xhr.addEventListener('progress', function (evt) {\n emitter.emit('receiveProgress', evt);\n }, false);\n xhr.addEventListener('timeout', function () {\n errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));\n }, false);\n xhr.addEventListener('error', function () {\n errCallback(AWS.util.error(new Error('Network Failure'), {\n code: 'NetworkingError'\n }));\n }, false);\n xhr.addEventListener('abort', function () {\n errCallback(AWS.util.error(new Error('Request aborted'), {\n code: 'RequestAbortedError'\n }));\n }, false);\n\n callback(emitter);\n xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);\n AWS.util.each(httpRequest.headers, function (key, value) {\n if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {\n xhr.setRequestHeader(key, value);\n }\n });\n\n if (httpOptions.timeout && httpOptions.xhrAsync !== false) {\n xhr.timeout = httpOptions.timeout;\n }\n\n if (httpOptions.xhrWithCredentials) {\n xhr.withCredentials = true;\n }\n try { xhr.responseType = 'arraybuffer'; } catch (e) {}\n\n try {\n if (httpRequest.body) {\n xhr.send(httpRequest.body);\n } else {\n xhr.send();\n }\n } catch (err) {\n if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {\n xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly\n } else {\n throw err;\n }\n }\n\n return emitter;\n },\n\n parseHeaders: function parseHeaders(rawHeaders) {\n var headers = {};\n AWS.util.arrayEach(rawHeaders.split(/\\r?\\n/), function (line) {\n var key = line.split(':', 1)[0];\n var value = line.substring(key.length + 2);\n if (key.length > 0) headers[key.toLowerCase()] = value;\n });\n return headers;\n },\n\n finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n if (xhr.responseType === 'arraybuffer' && xhr.response) {\n var ab = xhr.response;\n buffer = new AWS.util.Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n }\n\n try {\n if (!buffer && typeof xhr.responseText === 'string') {\n buffer = new AWS.util.Buffer(xhr.responseText);\n }\n } catch (e) {}\n\n if (buffer) emitter.emit('data', buffer);\n emitter.emit('end');\n }\n});\n\n/**\n * @api private\n */\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n\n/**\n * @api private\n */\nAWS.HttpClient.streamsApiVersion = 1;\n","var util = require('../util');\n\nfunction JsonBuilder() { }\n\nJsonBuilder.prototype.build = function(value, shape) {\n return JSON.stringify(translate(value, shape));\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined || value === null) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n if (memberShape.location !== 'body') return;\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n var result = translate(value, memberShape);\n if (result !== undefined) struct[locationName] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result !== undefined) out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result !== undefined) out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toWireFormat(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonBuilder;\n","var util = require('../util');\n\nfunction JsonParser() { }\n\nJsonParser.prototype.parse = function(value, shape) {\n return translate(JSON.parse(value), shape);\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (structure == null) return undefined;\n if (shape.isDocument) return structure;\n\n var struct = {};\n var shapeMembers = shape.members;\n util.each(shapeMembers, function(name, memberShape) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n if (Object.prototype.hasOwnProperty.call(structure, locationName)) {\n var value = structure[locationName];\n var result = translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toType(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonParser;\n","var warning = [\n 'We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.\\n',\n 'Please migrate your code to use AWS SDK for JavaScript (v3).',\n 'For more information, check the migration guide at https://a.co/7PzMCcy'\n].join('\\n');\n\nmodule.exports = {\n suppress: false\n};\n\n/**\n * To suppress this message:\n * @example\n * require('aws-sdk/lib/maintenance_mode_message').suppress = true;\n */\nfunction emitWarning() {\n if (typeof process === 'undefined')\n return;\n\n // Skip maintenance mode message in Lambda environments\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_EXECUTION_ENV !== 'undefined' &&\n process.env.AWS_EXECUTION_ENV.indexOf('AWS_Lambda_') === 0\n ) {\n return;\n }\n\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE !== 'undefined'\n ) {\n return;\n }\n\n if (typeof process.emitWarning === 'function') {\n process.emitWarning(warning, {\n type: 'NOTE'\n });\n }\n}\n\nsetTimeout(function () {\n if (!module.exports.suppress) {\n emitWarning();\n }\n}, 0);\n","var Collection = require('./collection');\nvar Operation = require('./operation');\nvar Shape = require('./shape');\nvar Paginator = require('./paginator');\nvar ResourceWaiter = require('./resource_waiter');\nvar metadata = require('../../apis/metadata.json');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Api(api, options) {\n var self = this;\n api = api || {};\n options = options || {};\n options.api = this;\n\n api.metadata = api.metadata || {};\n\n var serviceIdentifier = options.serviceIdentifier;\n delete options.serviceIdentifier;\n\n property(this, 'isApi', true, false);\n property(this, 'apiVersion', api.metadata.apiVersion);\n property(this, 'endpointPrefix', api.metadata.endpointPrefix);\n property(this, 'signingName', api.metadata.signingName);\n property(this, 'globalEndpoint', api.metadata.globalEndpoint);\n property(this, 'signatureVersion', api.metadata.signatureVersion);\n property(this, 'jsonVersion', api.metadata.jsonVersion);\n property(this, 'targetPrefix', api.metadata.targetPrefix);\n property(this, 'protocol', api.metadata.protocol);\n property(this, 'timestampFormat', api.metadata.timestampFormat);\n property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace);\n property(this, 'abbreviation', api.metadata.serviceAbbreviation);\n property(this, 'fullName', api.metadata.serviceFullName);\n property(this, 'serviceId', api.metadata.serviceId);\n if (serviceIdentifier && metadata[serviceIdentifier]) {\n property(this, 'xmlNoDefaultLists', metadata[serviceIdentifier].xmlNoDefaultLists, false);\n }\n\n memoizedProperty(this, 'className', function() {\n var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName;\n if (!name) return null;\n\n name = name.replace(/^Amazon|AWS\\s*|\\(.*|\\s+|\\W+/g, '');\n if (name === 'ElasticLoadBalancing') name = 'ELB';\n return name;\n });\n\n function addEndpointOperation(name, operation) {\n if (operation.endpointoperation === true) {\n property(self, 'endpointOperation', util.string.lowerFirst(name));\n }\n if (operation.endpointdiscovery && !self.hasRequiredEndpointDiscovery) {\n property(\n self,\n 'hasRequiredEndpointDiscovery',\n operation.endpointdiscovery.required === true\n );\n }\n }\n\n property(this, 'operations', new Collection(api.operations, options, function(name, operation) {\n return new Operation(name, operation, options);\n }, util.string.lowerFirst, addEndpointOperation));\n\n property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) {\n return Shape.create(shape, options);\n }));\n\n property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) {\n return new Paginator(name, paginator, options);\n }));\n\n property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) {\n return new ResourceWaiter(name, waiter, options);\n }, util.string.lowerFirst));\n\n if (options.documentation) {\n property(this, 'documentation', api.documentation);\n property(this, 'documentationUrl', api.documentationUrl);\n }\n property(this, 'awsQueryCompatible', api.metadata.awsQueryCompatible);\n}\n\n/**\n * @api private\n */\nmodule.exports = Api;\n","var memoizedProperty = require('../util').memoizedProperty;\n\nfunction memoize(name, value, factory, nameTr) {\n memoizedProperty(this, nameTr(name), function() {\n return factory(name, value);\n });\n}\n\nfunction Collection(iterable, options, factory, nameTr, callback) {\n nameTr = nameTr || String;\n var self = this;\n\n for (var id in iterable) {\n if (Object.prototype.hasOwnProperty.call(iterable, id)) {\n memoize.call(self, id, iterable[id], factory, nameTr);\n if (callback) callback(id, iterable[id]);\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = Collection;\n","var Shape = require('./shape');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Operation(name, operation, options) {\n var self = this;\n options = options || {};\n\n property(this, 'name', operation.name || name);\n property(this, 'api', options.api, false);\n\n operation.http = operation.http || {};\n property(this, 'endpoint', operation.endpoint);\n property(this, 'httpMethod', operation.http.method || 'POST');\n property(this, 'httpPath', operation.http.requestUri || '/');\n property(this, 'authtype', operation.authtype || '');\n property(\n this,\n 'endpointDiscoveryRequired',\n operation.endpointdiscovery ?\n (operation.endpointdiscovery.required ? 'REQUIRED' : 'OPTIONAL') :\n 'NULL'\n );\n\n // httpChecksum replaces usage of httpChecksumRequired, but some APIs\n // (s3control) still uses old trait.\n var httpChecksumRequired = operation.httpChecksumRequired\n || (operation.httpChecksum && operation.httpChecksum.requestChecksumRequired);\n property(this, 'httpChecksumRequired', httpChecksumRequired, false);\n\n memoizedProperty(this, 'input', function() {\n if (!operation.input) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.input, options);\n });\n\n memoizedProperty(this, 'output', function() {\n if (!operation.output) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.output, options);\n });\n\n memoizedProperty(this, 'errors', function() {\n var list = [];\n if (!operation.errors) return null;\n\n for (var i = 0; i < operation.errors.length; i++) {\n list.push(Shape.create(operation.errors[i], options));\n }\n\n return list;\n });\n\n memoizedProperty(this, 'paginator', function() {\n return options.api.paginators[name];\n });\n\n if (options.documentation) {\n property(this, 'documentation', operation.documentation);\n property(this, 'documentationUrl', operation.documentationUrl);\n }\n\n // idempotentMembers only tracks top-level input shapes\n memoizedProperty(this, 'idempotentMembers', function() {\n var idempotentMembers = [];\n var input = self.input;\n var members = input.members;\n if (!input.members) {\n return idempotentMembers;\n }\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n continue;\n }\n if (members[name].isIdempotent === true) {\n idempotentMembers.push(name);\n }\n }\n return idempotentMembers;\n });\n\n memoizedProperty(this, 'hasEventOutput', function() {\n var output = self.output;\n return hasEventStream(output);\n });\n}\n\nfunction hasEventStream(topLevelShape) {\n var members = topLevelShape.members;\n var payload = topLevelShape.payload;\n\n if (!topLevelShape.members) {\n return false;\n }\n\n if (payload) {\n var payloadMember = members[payload];\n return payloadMember.isEventStream;\n }\n\n // check if any member is an event stream\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n if (members[name].isEventStream === true) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = Operation;\n","var property = require('../util').property;\n\nfunction Paginator(name, paginator) {\n property(this, 'inputToken', paginator.input_token);\n property(this, 'limitKey', paginator.limit_key);\n property(this, 'moreResults', paginator.more_results);\n property(this, 'outputToken', paginator.output_token);\n property(this, 'resultKey', paginator.result_key);\n}\n\n/**\n * @api private\n */\nmodule.exports = Paginator;\n","var util = require('../util');\nvar property = util.property;\n\nfunction ResourceWaiter(name, waiter, options) {\n options = options || {};\n property(this, 'name', name);\n property(this, 'api', options.api, false);\n\n if (waiter.operation) {\n property(this, 'operation', util.string.lowerFirst(waiter.operation));\n }\n\n var self = this;\n var keys = [\n 'type',\n 'description',\n 'delay',\n 'maxAttempts',\n 'acceptors'\n ];\n\n keys.forEach(function(key) {\n var value = waiter[key];\n if (value) {\n property(self, key, value);\n }\n });\n}\n\n/**\n * @api private\n */\nmodule.exports = ResourceWaiter;\n","var Collection = require('./collection');\n\nvar util = require('../util');\n\nfunction property(obj, name, value) {\n if (value !== null && value !== undefined) {\n util.property.apply(this, arguments);\n }\n}\n\nfunction memoizedProperty(obj, name) {\n if (!obj.constructor.prototype[name]) {\n util.memoizedProperty.apply(this, arguments);\n }\n}\n\nfunction Shape(shape, options, memberName) {\n options = options || {};\n\n property(this, 'shape', shape.shape);\n property(this, 'api', options.api, false);\n property(this, 'type', shape.type);\n property(this, 'enum', shape.enum);\n property(this, 'min', shape.min);\n property(this, 'max', shape.max);\n property(this, 'pattern', shape.pattern);\n property(this, 'location', shape.location || this.location || 'body');\n property(this, 'name', this.name || shape.xmlName || shape.queryName ||\n shape.locationName || memberName);\n property(this, 'isStreaming', shape.streaming || this.isStreaming || false);\n property(this, 'requiresLength', shape.requiresLength, false);\n property(this, 'isComposite', shape.isComposite || false);\n property(this, 'isShape', true, false);\n property(this, 'isQueryName', Boolean(shape.queryName), false);\n property(this, 'isLocationName', Boolean(shape.locationName), false);\n property(this, 'isIdempotent', shape.idempotencyToken === true);\n property(this, 'isJsonValue', shape.jsonvalue === true);\n property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true);\n property(this, 'isEventStream', Boolean(shape.eventstream), false);\n property(this, 'isEvent', Boolean(shape.event), false);\n property(this, 'isEventPayload', Boolean(shape.eventpayload), false);\n property(this, 'isEventHeader', Boolean(shape.eventheader), false);\n property(this, 'isTimestampFormatSet', Boolean(shape.timestampFormat) || shape.prototype && shape.prototype.isTimestampFormatSet === true, false);\n property(this, 'endpointDiscoveryId', Boolean(shape.endpointdiscoveryid), false);\n property(this, 'hostLabel', Boolean(shape.hostLabel), false);\n\n if (options.documentation) {\n property(this, 'documentation', shape.documentation);\n property(this, 'documentationUrl', shape.documentationUrl);\n }\n\n if (shape.xmlAttribute) {\n property(this, 'isXmlAttribute', shape.xmlAttribute || false);\n }\n\n // type conversion and parsing\n property(this, 'defaultValue', null);\n this.toWireFormat = function(value) {\n if (value === null || value === undefined) return '';\n return value;\n };\n this.toType = function(value) { return value; };\n}\n\n/**\n * @api private\n */\nShape.normalizedTypes = {\n character: 'string',\n double: 'float',\n long: 'integer',\n short: 'integer',\n biginteger: 'integer',\n bigdecimal: 'float',\n blob: 'binary'\n};\n\n/**\n * @api private\n */\nShape.types = {\n 'structure': StructureShape,\n 'list': ListShape,\n 'map': MapShape,\n 'boolean': BooleanShape,\n 'timestamp': TimestampShape,\n 'float': FloatShape,\n 'integer': IntegerShape,\n 'string': StringShape,\n 'base64': Base64Shape,\n 'binary': BinaryShape\n};\n\nShape.resolve = function resolve(shape, options) {\n if (shape.shape) {\n var refShape = options.api.shapes[shape.shape];\n if (!refShape) {\n throw new Error('Cannot find shape reference: ' + shape.shape);\n }\n\n return refShape;\n } else {\n return null;\n }\n};\n\nShape.create = function create(shape, options, memberName) {\n if (shape.isShape) return shape;\n\n var refShape = Shape.resolve(shape, options);\n if (refShape) {\n var filteredKeys = Object.keys(shape);\n if (!options.documentation) {\n filteredKeys = filteredKeys.filter(function(name) {\n return !name.match(/documentation/);\n });\n }\n\n // create an inline shape with extra members\n var InlineShape = function() {\n refShape.constructor.call(this, shape, options, memberName);\n };\n InlineShape.prototype = refShape;\n return new InlineShape();\n } else {\n // set type if not set\n if (!shape.type) {\n if (shape.members) shape.type = 'structure';\n else if (shape.member) shape.type = 'list';\n else if (shape.key) shape.type = 'map';\n else shape.type = 'string';\n }\n\n // normalize types\n var origType = shape.type;\n if (Shape.normalizedTypes[shape.type]) {\n shape.type = Shape.normalizedTypes[shape.type];\n }\n\n if (Shape.types[shape.type]) {\n return new Shape.types[shape.type](shape, options, memberName);\n } else {\n throw new Error('Unrecognized shape type: ' + origType);\n }\n }\n};\n\nfunction CompositeShape(shape) {\n Shape.apply(this, arguments);\n property(this, 'isComposite', true);\n\n if (shape.flattened) {\n property(this, 'flattened', shape.flattened || false);\n }\n}\n\nfunction StructureShape(shape, options) {\n var self = this;\n var requiredMap = null, firstInit = !this.isShape;\n\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'members', {});\n property(this, 'memberNames', []);\n property(this, 'required', []);\n property(this, 'isRequired', function() { return false; });\n property(this, 'isDocument', Boolean(shape.document));\n }\n\n if (shape.members) {\n property(this, 'members', new Collection(shape.members, options, function(name, member) {\n return Shape.create(member, options, name);\n }));\n memoizedProperty(this, 'memberNames', function() {\n return shape.xmlOrder || Object.keys(shape.members);\n });\n\n if (shape.event) {\n memoizedProperty(this, 'eventPayloadMemberName', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n // iterate over members to find ones that are event payloads\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventPayload) {\n return memberNames[i];\n }\n }\n });\n\n memoizedProperty(this, 'eventHeaderMemberNames', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n var eventHeaderMemberNames = [];\n // iterate over members to find ones that are event headers\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventHeader) {\n eventHeaderMemberNames.push(memberNames[i]);\n }\n }\n return eventHeaderMemberNames;\n });\n }\n }\n\n if (shape.required) {\n property(this, 'required', shape.required);\n property(this, 'isRequired', function(name) {\n if (!requiredMap) {\n requiredMap = {};\n for (var i = 0; i < shape.required.length; i++) {\n requiredMap[shape.required[i]] = true;\n }\n }\n\n return requiredMap[name];\n }, false, true);\n }\n\n property(this, 'resultWrapper', shape.resultWrapper || null);\n\n if (shape.payload) {\n property(this, 'payload', shape.payload);\n }\n\n if (typeof shape.xmlNamespace === 'string') {\n property(this, 'xmlNamespaceUri', shape.xmlNamespace);\n } else if (typeof shape.xmlNamespace === 'object') {\n property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix);\n property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri);\n }\n}\n\nfunction ListShape(shape, options) {\n var self = this, firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return []; });\n }\n\n if (shape.member) {\n memoizedProperty(this, 'member', function() {\n return Shape.create(shape.member, options);\n });\n }\n\n if (this.flattened) {\n var oldName = this.name;\n memoizedProperty(this, 'name', function() {\n return self.member.name || oldName;\n });\n }\n}\n\nfunction MapShape(shape, options) {\n var firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'key', Shape.create({type: 'string'}, options));\n property(this, 'value', Shape.create({type: 'string'}, options));\n }\n\n if (shape.key) {\n memoizedProperty(this, 'key', function() {\n return Shape.create(shape.key, options);\n });\n }\n if (shape.value) {\n memoizedProperty(this, 'value', function() {\n return Shape.create(shape.value, options);\n });\n }\n}\n\nfunction TimestampShape(shape) {\n var self = this;\n Shape.apply(this, arguments);\n\n if (shape.timestampFormat) {\n property(this, 'timestampFormat', shape.timestampFormat);\n } else if (self.isTimestampFormatSet && this.timestampFormat) {\n property(this, 'timestampFormat', this.timestampFormat);\n } else if (this.location === 'header') {\n property(this, 'timestampFormat', 'rfc822');\n } else if (this.location === 'querystring') {\n property(this, 'timestampFormat', 'iso8601');\n } else if (this.api) {\n switch (this.api.protocol) {\n case 'json':\n case 'rest-json':\n property(this, 'timestampFormat', 'unixTimestamp');\n break;\n case 'rest-xml':\n case 'query':\n case 'ec2':\n property(this, 'timestampFormat', 'iso8601');\n break;\n }\n }\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n if (typeof value.toUTCString === 'function') return value;\n return typeof value === 'string' || typeof value === 'number' ?\n util.date.parseTimestamp(value) : null;\n };\n\n this.toWireFormat = function(value) {\n return util.date.format(value, self.timestampFormat);\n };\n}\n\nfunction StringShape() {\n Shape.apply(this, arguments);\n\n var nullLessProtocols = ['rest-xml', 'query', 'ec2'];\n this.toType = function(value) {\n value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ?\n value || '' : value;\n if (this.isJsonValue) {\n return JSON.parse(value);\n }\n\n return value && typeof value.toString === 'function' ?\n value.toString() : value;\n };\n\n this.toWireFormat = function(value) {\n return this.isJsonValue ? JSON.stringify(value) : value;\n };\n}\n\nfunction FloatShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseFloat(value);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction IntegerShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseInt(value, 10);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction BinaryShape() {\n Shape.apply(this, arguments);\n this.toType = function(value) {\n var buf = util.base64.decode(value);\n if (this.isSensitive && util.isNode() && typeof util.Buffer.alloc === 'function') {\n /* Node.js can create a Buffer that is not isolated.\n * i.e. buf.byteLength !== buf.buffer.byteLength\n * This means that the sensitive data is accessible to anyone with access to buf.buffer.\n * If this is the node shared Buffer, then other code within this process _could_ find this secret.\n * Copy sensitive data to an isolated Buffer and zero the sensitive data.\n * While this is safe to do here, copying this code somewhere else may produce unexpected results.\n */\n var secureBuf = util.Buffer.alloc(buf.length, buf);\n buf.fill(0);\n buf = secureBuf;\n }\n return buf;\n };\n this.toWireFormat = util.base64.encode;\n}\n\nfunction Base64Shape() {\n BinaryShape.apply(this, arguments);\n}\n\nfunction BooleanShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (typeof value === 'boolean') return value;\n if (value === null || value === undefined) return null;\n return value === 'true';\n };\n}\n\n/**\n * @api private\n */\nShape.shapes = {\n StructureShape: StructureShape,\n ListShape: ListShape,\n MapShape: MapShape,\n StringShape: StringShape,\n BooleanShape: BooleanShape,\n Base64Shape: Base64Shape\n};\n\n/**\n * @api private\n */\nmodule.exports = Shape;\n","var AWS = require('./core');\n\n/**\n * @api private\n */\nAWS.ParamValidator = AWS.util.inherit({\n /**\n * Create a new validator object.\n *\n * @param validation [Boolean|map] whether input parameters should be\n * validated against the operation description before sending the\n * request. Pass a map to enable any of the following specific\n * validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n */\n constructor: function ParamValidator(validation) {\n if (validation === true || validation === undefined) {\n validation = {'min': true};\n }\n this.validation = validation;\n },\n\n validate: function validate(shape, params, context) {\n this.errors = [];\n this.validateMember(shape, params || {}, context || 'params');\n\n if (this.errors.length > 1) {\n var msg = this.errors.join('\\n* ');\n msg = 'There were ' + this.errors.length +\n ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg),\n {code: 'MultipleValidationErrors', errors: this.errors});\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {code: code}));\n },\n\n validateStructure: function validateStructure(shape, params, context) {\n if (shape.isDocument) return true;\n\n this.validateType(params, context, ['object'], 'structure');\n var paramName;\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter',\n 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n }\n\n // validate hash members\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\n\n var paramValue = params[paramName],\n memberShape = shape.members[paramName];\n\n if (memberShape !== undefined) {\n var memberContext = [context, paramName].join('.');\n this.validateMember(memberShape, paramValue, memberContext);\n } else if (paramValue !== undefined && paramValue !== null) {\n this.fail('UnexpectedParameter',\n 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n case 'list':\n return this.validateList(shape, param, context);\n case 'map':\n return this.validateMap(shape, param, context);\n default:\n return this.validateScalar(shape, param, context);\n }\n },\n\n validateList: function validateList(shape, params, context) {\n if (this.validateType(params, context, [Array])) {\n this.validateRange(shape, params.length, context, 'list member count');\n // validate array members\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\n }\n }\n },\n\n validateMap: function validateMap(shape, params, context) {\n if (this.validateType(params, context, ['object'], 'map')) {\n // Build up a count of map members to validate range traits.\n var mapCount = 0;\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue;\n // Validate any map key trait constraints\n this.validateMember(shape.key, param,\n context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param],\n context + '[\\'' + param + '\\']');\n mapCount++;\n }\n this.validateRange(shape, mapCount, context, 'map member count');\n }\n },\n\n validateScalar: function validateScalar(shape, value, context) {\n switch (shape.type) {\n case null:\n case undefined:\n case 'string':\n return this.validateString(shape, value, context);\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n case 'timestamp':\n return this.validateType(value, context, [Date,\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'],\n 'Date object, ISO-8601 string, or a UNIX timestamp');\n default:\n return this.fail('UnkownType', 'Unhandled type ' +\n shape.type + ' for ' + context);\n }\n },\n\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\n if (value !== null && this.validateType(value, context, validTypes)) {\n this.validateEnum(shape, value, context);\n this.validateRange(shape, value.length, context, 'string length');\n this.validatePattern(shape, value, context);\n this.validateUri(shape, value, context);\n }\n },\n\n validateUri: function validateUri(shape, value, context) {\n if (shape['location'] === 'uri') {\n if (value.length === 0) {\n this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,'\n + ' but found \"' + value +'\" for ' + context);\n }\n }\n },\n\n validatePattern: function validatePattern(shape, value, context) {\n if (this.validation['pattern'] && shape['pattern'] !== undefined) {\n if (!(new RegExp(shape['pattern'])).test(value)) {\n this.fail('PatternMatchError', 'Provided value \"' + value + '\" '\n + 'does not match regex pattern /' + shape['pattern'] + '/ for '\n + context);\n }\n }\n },\n\n validateRange: function validateRange(shape, value, context, descriptor) {\n if (this.validation['min']) {\n if (shape['min'] !== undefined && value < shape['min']) {\n this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '\n + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '\n + shape['max'] + ', but found ' + value + ' for ' + context);\n }\n }\n },\n\n validateEnum: function validateRange(shape, value, context) {\n if (this.validation['enum'] && shape['enum'] !== undefined) {\n // Fail if the string value is not present in the enum list\n if (shape['enum'].indexOf(value) === -1) {\n this.fail('EnumError', 'Found string value of ' + value + ', but '\n + 'expected ' + shape['enum'].join('|') + ' for ' + context);\n }\n }\n },\n\n validateType: function validateType(value, context, acceptedTypes, type) {\n // We will not log an error for null or undefined, but we will return\n // false so that callers know that the expected type was not strictly met.\n if (value === null || value === undefined) return false;\n\n var foundInvalidType = false;\n for (var i = 0; i < acceptedTypes.length; i++) {\n if (typeof acceptedTypes[i] === 'string') {\n if (typeof value === acceptedTypes[i]) return true;\n } else if (acceptedTypes[i] instanceof RegExp) {\n if ((value || '').toString().match(acceptedTypes[i])) return true;\n } else {\n if (value instanceof acceptedTypes[i]) return true;\n if (AWS.util.isType(value, acceptedTypes[i])) return true;\n if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();\n acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);\n }\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n if (!acceptedType) {\n acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');\n }\n\n var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +\n vowel + ' ' + acceptedType);\n return false;\n },\n\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\n }\n },\n\n validatePayload: function validatePayload(value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') return;\n if (value && typeof value.byteLength === 'number') return; // typed arrays\n if (AWS.util.isNode()) { // special check for buffer/stream in Node.js\n var Stream = AWS.util.stream.Stream;\n if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;\n } else {\n if (typeof Blob !== void 0 && value instanceof Blob) return;\n }\n\n var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];\n if (value) {\n for (var i = 0; i < types.length; i++) {\n if (AWS.util.isType(value, types[i])) return;\n if (AWS.util.typeName(value.constructor) === types[i]) return;\n }\n }\n\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +\n 'string, Buffer, Stream, Blob, or typed array object');\n }\n});\n","var AWS = require('../core');\nvar rest = AWS.Protocol.Rest;\n\n/**\n * A presigner object can be used to generate presigned urls for the Polly service.\n */\nAWS.Polly.Presigner = AWS.util.inherit({\n /**\n * Creates a presigner object with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.Polly] An optional pre-configured instance\n * of the AWS.Polly service object to use for requests. The object may\n * bound parameters used by the presigner.\n * @see AWS.Polly.constructor\n */\n constructor: function Signer(options) {\n options = options || {};\n this.options = options;\n this.service = options.service;\n this.bindServiceObject(options);\n this._operations = {};\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n options = options || {};\n if (!this.service) {\n this.service = new AWS.Polly(options);\n } else {\n var config = AWS.util.copy(this.service.config);\n this.service = new this.service.constructor.__super__(config);\n this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n modifyInputMembers: function modifyInputMembers(input) {\n // make copies of the input so we don't overwrite the api\n // need to be careful to copy anything we access/modify\n var modifiedInput = AWS.util.copy(input);\n modifiedInput.members = AWS.util.copy(input.members);\n AWS.util.each(input.members, function(name, member) {\n modifiedInput.members[name] = AWS.util.copy(member);\n // update location and locationName\n if (!member.location || member.location === 'body') {\n modifiedInput.members[name].location = 'querystring';\n modifiedInput.members[name].locationName = name;\n }\n });\n return modifiedInput;\n },\n\n /**\n * @api private\n */\n convertPostToGet: function convertPostToGet(req) {\n // convert method\n req.httpRequest.method = 'GET';\n\n var operation = req.service.api.operations[req.operation];\n // get cached operation input first\n var input = this._operations[req.operation];\n if (!input) {\n // modify the original input\n this._operations[req.operation] = input = this.modifyInputMembers(operation.input);\n }\n\n var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n\n req.httpRequest.path = uri;\n req.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete req.httpRequest.headers['Content-Length'];\n delete req.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback])\n * Generate a presigned url for {AWS.Polly.synthesizeSpeech}.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech}\n * operation for the expected operation parameters.\n * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in.\n * Defaults to 1 hour.\n * @return [string] if called synchronously (with no callback), returns the signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, url)\n * If a callback is supplied, it is called when a signed URL has been generated.\n * @param err [Error] the error object returned from the presigner.\n * @param url [String] the signed URL.\n * @see AWS.Polly.synthesizeSpeech\n */\n getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) {\n var self = this;\n var request = this.service.makeRequest('synthesizeSpeech', params);\n // remove existing build listeners\n request.removeAllListeners('build');\n request.on('build', function(req) {\n self.convertPostToGet(req);\n });\n return request.presign(expires, callback);\n }\n});\n","var util = require('../util');\nvar AWS = require('../core');\n\n/**\n * Prepend prefix defined by API model to endpoint that's already\n * constructed. This feature does not apply to operations using\n * endpoint discovery and can be disabled.\n * @api private\n */\nfunction populateHostPrefix(request) {\n var enabled = request.service.config.hostPrefixEnabled;\n if (!enabled) return request;\n var operationModel = request.service.api.operations[request.operation];\n //don't marshal host prefix when operation has endpoint discovery traits\n if (hasEndpointDiscover(request)) return request;\n if (operationModel.endpoint && operationModel.endpoint.hostPrefix) {\n var hostPrefixNotation = operationModel.endpoint.hostPrefix;\n var hostPrefix = expandHostPrefix(hostPrefixNotation, request.params, operationModel.input);\n prependEndpointPrefix(request.httpRequest.endpoint, hostPrefix);\n validateHostname(request.httpRequest.endpoint.hostname);\n }\n return request;\n}\n\n/**\n * @api private\n */\nfunction hasEndpointDiscover(request) {\n var api = request.service.api;\n var operationModel = api.operations[request.operation];\n var isEndpointOperation = api.endpointOperation && (api.endpointOperation === util.string.lowerFirst(operationModel.name));\n return (operationModel.endpointDiscoveryRequired !== 'NULL' || isEndpointOperation === true);\n}\n\n/**\n * @api private\n */\nfunction expandHostPrefix(hostPrefixNotation, params, shape) {\n util.each(shape.members, function(name, member) {\n if (member.hostLabel === true) {\n if (typeof params[name] !== 'string' || params[name] === '') {\n throw util.error(new Error(), {\n message: 'Parameter ' + name + ' should be a non-empty string.',\n code: 'InvalidParameter'\n });\n }\n var regex = new RegExp('\\\\{' + name + '\\\\}', 'g');\n hostPrefixNotation = hostPrefixNotation.replace(regex, params[name]);\n }\n });\n return hostPrefixNotation;\n}\n\n/**\n * @api private\n */\nfunction prependEndpointPrefix(endpoint, prefix) {\n if (endpoint.host) {\n endpoint.host = prefix + endpoint.host;\n }\n if (endpoint.hostname) {\n endpoint.hostname = prefix + endpoint.hostname;\n }\n}\n\n/**\n * @api private\n */\nfunction validateHostname(hostname) {\n var labels = hostname.split('.');\n //Reference: https://tools.ietf.org/html/rfc1123#section-2\n var hostPattern = /^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]$/;\n util.arrayEach(labels, function(label) {\n if (!label.length || label.length < 1 || label.length > 63) {\n throw util.error(new Error(), {\n code: 'ValidationError',\n message: 'Hostname label length should be between 1 to 63 characters, inclusive.'\n });\n }\n if (!hostPattern.test(label)) {\n throw AWS.util.error(new Error(),\n {code: 'ValidationError', message: label + ' is not hostname compatible.'});\n }\n });\n}\n\nmodule.exports = {\n populateHostPrefix: populateHostPrefix\n};\n","var util = require('../util');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var httpRequest = req.httpRequest;\n var api = req.service.api;\n var target = api.targetPrefix + '.' + api.operations[req.operation].name;\n var version = api.jsonVersion || '1.0';\n var input = api.operations[req.operation].input;\n var builder = new JsonBuilder();\n\n if (version === 1) version = '1.0';\n\n if (api.awsQueryCompatible) {\n if (!httpRequest.params) {\n httpRequest.params = {};\n }\n // because Query protocol does this.\n Object.assign(httpRequest.params, req.params);\n }\n\n httpRequest.body = builder.build(req.params || {}, input);\n httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;\n httpRequest.headers['X-Amz-Target'] = target;\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n if (typeof error.code === 'string') {\n error.code = error.code.split(':')[0];\n }\n\n if (httpResponse.body.length > 0) {\n try {\n var e = JSON.parse(httpResponse.body.toString());\n\n var code = e.__type || e.code || e.Code;\n if (code) {\n error.code = code.split('#').pop();\n }\n if (error.code === 'RequestEntityTooLarge') {\n error.message = 'Request body must be less than 1 MB';\n } else {\n error.message = (e.message || e.Message || null);\n }\n\n // The minimized models do not have error shapes, so\n // without expanding the model size, it's not possible\n // to validate the response shape (members) or\n // check if any are sensitive to logging.\n\n // Assign the fields as non-enumerable, allowing specific access only.\n for (var key in e || {}) {\n if (key === 'code' || key === 'message') {\n continue;\n }\n error['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(error, key, {\n value: e[key],\n enumerable: false,\n writable: true\n });\n }\n } catch (e) {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusMessage;\n }\n } else {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusCode.toString();\n }\n\n resp.error = util.error(new Error(), error);\n}\n\nfunction extractData(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n if (resp.request.service.config.convertResponseTypes === false) {\n resp.data = JSON.parse(body);\n } else {\n var operation = resp.request.service.api.operations[resp.request.operation];\n var shape = operation.output || {};\n var parser = new JsonParser();\n resp.data = parser.parse(body, shape);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar QueryParamSerializer = require('../query/query_param_serializer');\nvar Shape = require('../model/shape');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var operation = req.service.api.operations[req.operation];\n var httpRequest = req.httpRequest;\n httpRequest.headers['Content-Type'] =\n 'application/x-www-form-urlencoded; charset=utf-8';\n httpRequest.params = {\n Version: req.service.api.apiVersion,\n Action: operation.name\n };\n\n // convert the request parameters into a list of query params,\n // e.g. Deeply.NestedParam.0.Name=value\n var builder = new QueryParamSerializer();\n builder.serialize(req.params, operation.input, function(name, value) {\n httpRequest.params[name] = value;\n });\n httpRequest.body = util.queryParamsToString(httpRequest.params);\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var data, body = resp.httpResponse.body.toString();\n if (body.match('= 0 ? '&' : '?');\n var parts = [];\n util.arrayEach(Object.keys(queryString).sort(), function(key) {\n if (!Array.isArray(queryString[key])) {\n queryString[key] = [queryString[key]];\n }\n for (var i = 0; i < queryString[key].length; i++) {\n parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);\n }\n });\n uri += parts.join('&');\n }\n\n return uri;\n}\n\nfunction populateURI(req) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\n var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n req.httpRequest.path = uri;\n}\n\nfunction populateHeaders(req) {\n var operation = req.service.api.operations[req.operation];\n util.each(operation.input.members, function (name, member) {\n var value = req.params[name];\n if (value === null || value === undefined) return;\n\n if (member.location === 'headers' && member.type === 'map') {\n util.each(value, function(key, memberValue) {\n req.httpRequest.headers[member.name + key] = memberValue;\n });\n } else if (member.location === 'header') {\n value = member.toWireFormat(value).toString();\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\n req.httpRequest.headers[member.name] = value;\n }\n });\n}\n\nfunction buildRequest(req) {\n populateMethod(req);\n populateURI(req);\n populateHeaders(req);\n populateHostPrefix(req);\n}\n\nfunction extractError() {\n}\n\nfunction extractData(resp) {\n var req = resp.request;\n var data = {};\n var r = resp.httpResponse;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n // normalize headers names to lower-cased keys for matching\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n\n util.each(output.members, function(name, member) {\n var header = (member.name || name).toLowerCase();\n if (member.location === 'headers' && member.type === 'map') {\n data[name] = {};\n var location = member.isLocationName ? member.name : '';\n var pattern = new RegExp('^' + location + '(.+)', 'i');\n util.each(r.headers, function (k, v) {\n var result = k.match(pattern);\n if (result !== null) {\n data[name][result[1]] = v;\n }\n });\n } else if (member.location === 'header') {\n if (headers[header] !== undefined) {\n var value = member.isJsonValue ?\n util.base64.decode(headers[header]) :\n headers[header];\n data[name] = member.toType(value);\n }\n } else if (member.location === 'statusCode') {\n data[name] = parseInt(r.statusCode, 10);\n }\n });\n\n resp.data = data;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};\n","var util = require('../util');\nvar Rest = require('./rest');\nvar Json = require('./json');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\n\nvar METHODS_WITHOUT_BODY = ['GET', 'HEAD', 'DELETE'];\n\nfunction unsetContentLength(req) {\n var payloadMember = util.getRequestPayloadShape(req);\n if (\n payloadMember === undefined &&\n METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) >= 0\n ) {\n delete req.httpRequest.headers['Content-Length'];\n }\n}\n\nfunction populateBody(req) {\n var builder = new JsonBuilder();\n var input = req.service.api.operations[req.operation].input;\n\n if (input.payload) {\n var params = {};\n var payloadShape = input.members[input.payload];\n params = req.params[input.payload];\n\n if (payloadShape.type === 'structure') {\n req.httpRequest.body = builder.build(params || {}, payloadShape);\n applyContentTypeHeader(req);\n } else if (params !== undefined) {\n // non-JSON payload\n req.httpRequest.body = params;\n if (payloadShape.type === 'binary' || payloadShape.isStreaming) {\n applyContentTypeHeader(req, true);\n }\n }\n } else {\n req.httpRequest.body = builder.build(req.params, input);\n applyContentTypeHeader(req);\n }\n}\n\nfunction applyContentTypeHeader(req, isBinary) {\n if (!req.httpRequest.headers['Content-Type']) {\n var type = isBinary ? 'binary/octet-stream' : 'application/json';\n req.httpRequest.headers['Content-Type'] = type;\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD/DELETE\n if (METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Json.extractError(resp);\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var req = resp.request;\n var operation = req.service.api.operations[req.operation];\n var rules = req.service.api.operations[req.operation].output || {};\n var parser;\n var hasEventOutput = operation.hasEventOutput;\n\n if (rules.payload) {\n var payloadMember = rules.members[rules.payload];\n var body = resp.httpResponse.body;\n if (payloadMember.isEventStream) {\n parser = new JsonParser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') {\n var parser = new JsonParser();\n resp.data[rules.payload] = parser.parse(body, payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[rules.payload] = body;\n } else {\n resp.data[rules.payload] = payloadMember.toType(body);\n }\n } else {\n var data = resp.data;\n Json.extractData(resp);\n resp.data = util.merge(data, resp.data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n unsetContentLength: unsetContentLength\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\n\nfunction populateBody(req) {\n var input = req.service.api.operations[req.operation].input;\n var builder = new AWS.XML.Builder();\n var params = req.params;\n\n var payload = input.payload;\n if (payload) {\n var payloadMember = input.members[payload];\n params = params[payload];\n if (params === undefined) return;\n\n if (payloadMember.type === 'structure') {\n var rootElement = payloadMember.name;\n req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true);\n } else { // non-xml payload\n req.httpRequest.body = params;\n }\n } else {\n req.httpRequest.body = builder.toXML(params, input, input.name ||\n input.shape || util.string.upperFirst(req.operation) + 'Request');\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD\n if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Rest.extractError(resp);\n\n var data;\n try {\n data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString());\n } catch (e) {\n data = {\n Code: resp.httpResponse.statusCode,\n Message: resp.httpResponse.statusMessage\n };\n }\n\n if (data.Errors) data = data.Errors;\n if (data.Error) data = data.Error;\n if (data.Code) {\n resp.error = util.error(new Error(), {\n code: data.Code,\n message: data.Message\n });\n } else {\n resp.error = util.error(new Error(), {\n code: resp.httpResponse.statusCode,\n message: null\n });\n }\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var parser;\n var req = resp.request;\n var body = resp.httpResponse.body;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n var hasEventOutput = operation.hasEventOutput;\n\n var payload = output.payload;\n if (payload) {\n var payloadMember = output.members[payload];\n if (payloadMember.isEventStream) {\n parser = new AWS.XML.Parser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : resp.httpResponse.body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure') {\n parser = new AWS.XML.Parser();\n resp.data[payload] = parser.parse(body.toString(), payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[payload] = body;\n } else {\n resp.data[payload] = payloadMember.toType(body);\n }\n } else if (body.length > 0) {\n parser = new AWS.XML.Parser();\n var data = parser.parse(body.toString(), output);\n util.update(resp.data, data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var util = require('../util');\n\nfunction QueryParamSerializer() {\n}\n\nQueryParamSerializer.prototype.serialize = function(params, shape, fn) {\n serializeStructure('', params, shape, fn);\n};\n\nfunction ucfirst(shape) {\n if (shape.isQueryName || shape.api.protocol !== 'ec2') {\n return shape.name;\n } else {\n return shape.name[0].toUpperCase() + shape.name.substr(1);\n }\n}\n\nfunction serializeStructure(prefix, struct, rules, fn) {\n util.each(rules.members, function(name, member) {\n var value = struct[name];\n if (value === null || value === undefined) return;\n\n var memberName = ucfirst(member);\n memberName = prefix ? prefix + '.' + memberName : memberName;\n serializeMember(memberName, value, member, fn);\n });\n}\n\nfunction serializeMap(name, map, rules, fn) {\n var i = 1;\n util.each(map, function (key, value) {\n var prefix = rules.flattened ? '.' : '.entry.';\n var position = prefix + (i++) + '.';\n var keyName = position + (rules.key.name || 'key');\n var valueName = position + (rules.value.name || 'value');\n serializeMember(name + keyName, key, rules.key, fn);\n serializeMember(name + valueName, value, rules.value, fn);\n });\n}\n\nfunction serializeList(name, list, rules, fn) {\n var memberRules = rules.member || {};\n\n if (list.length === 0) {\n fn.call(this, name, null);\n return;\n }\n\n util.arrayEach(list, function (v, n) {\n var suffix = '.' + (n + 1);\n if (rules.api.protocol === 'ec2') {\n // Do nothing for EC2\n suffix = suffix + ''; // make linter happy\n } else if (rules.flattened) {\n if (memberRules.name) {\n var parts = name.split('.');\n parts.pop();\n parts.push(ucfirst(memberRules));\n name = parts.join('.');\n }\n } else {\n suffix = '.' + (memberRules.name ? memberRules.name : 'member') + suffix;\n }\n serializeMember(name + suffix, v, memberRules, fn);\n });\n}\n\nfunction serializeMember(name, value, rules, fn) {\n if (value === null || value === undefined) return;\n if (rules.type === 'structure') {\n serializeStructure(name, value, rules, fn);\n } else if (rules.type === 'list') {\n serializeList(name, value, rules, fn);\n } else if (rules.type === 'map') {\n serializeMap(name, value, rules, fn);\n } else {\n fn(name, rules.toWireFormat(value).toString());\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = QueryParamSerializer;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar service = null;\n\n/**\n * @api private\n */\nvar api = {\n signatureVersion: 'v4',\n signingName: 'rds-db',\n operations: {}\n};\n\n/**\n * @api private\n */\nvar requiredAuthTokenOptions = {\n region: 'string',\n hostname: 'string',\n port: 'number',\n username: 'string'\n};\n\n/**\n * A signer object can be used to generate an auth token to a database.\n */\nAWS.RDS.Signer = AWS.util.inherit({\n /**\n * Creates a signer object can be used to generate an auth token.\n *\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * @option options hostname [String] the hostname of the database to connect to.\n * @option options port [Number] the port number the database is listening on.\n * @option options region [String] the region the database is located in.\n * @option options username [String] the username to login as.\n * @example Passing in options to constructor\n * var signer = new AWS.RDS.Signer({\n * credentials: new AWS.SharedIniFileCredentials({profile: 'default'}),\n * region: 'us-east-1',\n * hostname: 'db.us-east-1.rds.amazonaws.com',\n * port: 8000,\n * username: 'name'\n * });\n */\n constructor: function Signer(options) {\n this.options = options || {};\n },\n\n /**\n * @api private\n * Strips the protocol from a url.\n */\n convertUrlToAuthToken: function convertUrlToAuthToken(url) {\n // we are always using https as the protocol\n var protocol = 'https://';\n if (url.indexOf(protocol) === 0) {\n return url.substring(protocol.length);\n }\n },\n\n /**\n * @overload getAuthToken(options = {}, [callback])\n * Generate an auth token to a database.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @param options [map] The fields to use when generating an auth token.\n * Any options specified here will be merged on top of any options passed\n * to AWS.RDS.Signer:\n *\n * * **credentials** (AWS.Credentials) — the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * * **hostname** (String) — the hostname of the database to connect to.\n * * **port** (Number) — the port number the database is listening on.\n * * **region** (String) — the region the database is located in.\n * * **username** (String) — the username to login as.\n * @return [String] if called synchronously (with no callback), returns the\n * auth token.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, token)\n * If a callback is supplied, it is called when an auth token has been generated.\n * @param err [Error] the error object returned from the signer.\n * @param token [String] the auth token.\n *\n * @example Generating an auth token synchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * var token = signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * });\n * @example Generating an auth token asynchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * }, function(err, token) {\n * if (err) {\n * // handle error\n * } else {\n * // use token\n * }\n * });\n *\n */\n getAuthToken: function getAuthToken(options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = {};\n }\n var self = this;\n var hasCallback = typeof callback === 'function';\n // merge options with existing options\n options = AWS.util.merge(this.options, options);\n // validate options\n var optionsValidation = this.validateAuthTokenOptions(options);\n if (optionsValidation !== true) {\n if (hasCallback) {\n return callback(optionsValidation, null);\n }\n throw optionsValidation;\n }\n\n // 15 minutes\n var expires = 900;\n // create service to generate a request from\n var serviceOptions = {\n region: options.region,\n endpoint: new AWS.Endpoint(options.hostname + ':' + options.port),\n paramValidation: false,\n signatureVersion: 'v4'\n };\n if (options.credentials) {\n serviceOptions.credentials = options.credentials;\n }\n service = new AWS.Service(serviceOptions);\n // ensure the SDK is using sigv4 signing (config is not enough)\n service.api = api;\n\n var request = service.makeRequest();\n // add listeners to request to properly build auth token\n this.modifyRequestForAuthToken(request, options);\n\n if (hasCallback) {\n request.presign(expires, function(err, url) {\n if (url) {\n url = self.convertUrlToAuthToken(url);\n }\n callback(err, url);\n });\n } else {\n var url = request.presign(expires);\n return this.convertUrlToAuthToken(url);\n }\n },\n\n /**\n * @api private\n * Modifies a request to allow the presigner to generate an auth token.\n */\n modifyRequestForAuthToken: function modifyRequestForAuthToken(request, options) {\n request.on('build', request.buildAsGet);\n var httpRequest = request.httpRequest;\n httpRequest.body = AWS.util.queryParamsToString({\n Action: 'connect',\n DBUser: options.username\n });\n },\n\n /**\n * @api private\n * Validates that the options passed in contain all the keys with values of the correct type that\n * are needed to generate an auth token.\n */\n validateAuthTokenOptions: function validateAuthTokenOptions(options) {\n // iterate over all keys in options\n var message = '';\n options = options || {};\n for (var key in requiredAuthTokenOptions) {\n if (!Object.prototype.hasOwnProperty.call(requiredAuthTokenOptions, key)) {\n continue;\n }\n if (typeof options[key] !== requiredAuthTokenOptions[key]) {\n message += 'option \\'' + key + '\\' should have been type \\'' + requiredAuthTokenOptions[key] + '\\', was \\'' + typeof options[key] + '\\'.\\n';\n }\n }\n if (message.length) {\n return AWS.util.error(new Error(), {\n code: 'InvalidParameter',\n message: message\n });\n }\n return true;\n }\n});\n","module.exports = {\n //provide realtime clock for performance measurement\n now: function now() {\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n }\n};\n","function isFipsRegion(region) {\n return typeof region === 'string' && (region.startsWith('fips-') || region.endsWith('-fips'));\n}\n\nfunction isGlobalRegion(region) {\n return typeof region === 'string' && ['aws-global', 'aws-us-gov-global'].includes(region);\n}\n\nfunction getRealRegion(region) {\n return ['fips-aws-global', 'aws-fips', 'aws-global'].includes(region)\n ? 'us-east-1'\n : ['fips-aws-us-gov-global', 'aws-us-gov-global'].includes(region)\n ? 'us-gov-west-1'\n : region.replace(/fips-(dkr-|prod-)?|-fips/, '');\n}\n\nmodule.exports = {\n isFipsRegion: isFipsRegion,\n isGlobalRegion: isGlobalRegion,\n getRealRegion: getRealRegion\n};\n","var util = require('./util');\nvar regionConfig = require('./region_config_data.json');\n\nfunction generateRegionPrefix(region) {\n if (!region) return null;\n var parts = region.split('-');\n if (parts.length < 3) return null;\n return parts.slice(0, parts.length - 2).join('-') + '-*';\n}\n\nfunction derivedKeys(service) {\n var region = service.config.region;\n var regionPrefix = generateRegionPrefix(region);\n var endpointPrefix = service.api.endpointPrefix;\n\n return [\n [region, endpointPrefix],\n [regionPrefix, endpointPrefix],\n [region, '*'],\n [regionPrefix, '*'],\n ['*', endpointPrefix],\n [region, 'internal-*'],\n ['*', '*']\n ].map(function(item) {\n return item[0] && item[1] ? item.join('/') : null;\n });\n}\n\nfunction applyConfig(service, config) {\n util.each(config, function(key, value) {\n if (key === 'globalEndpoint') return;\n if (service.config[key] === undefined || service.config[key] === null) {\n service.config[key] = value;\n }\n });\n}\n\nfunction configureEndpoint(service) {\n var keys = derivedKeys(service);\n var useFipsEndpoint = service.config.useFipsEndpoint;\n var useDualstackEndpoint = service.config.useDualstackEndpoint;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!key) continue;\n\n var rules = useFipsEndpoint\n ? useDualstackEndpoint\n ? regionConfig.dualstackFipsRules\n : regionConfig.fipsRules\n : useDualstackEndpoint\n ? regionConfig.dualstackRules\n : regionConfig.rules;\n\n if (Object.prototype.hasOwnProperty.call(rules, key)) {\n var config = rules[key];\n if (typeof config === 'string') {\n config = regionConfig.patterns[config];\n }\n\n // set global endpoint\n service.isGlobalEndpoint = !!config.globalEndpoint;\n if (config.signingRegion) {\n service.signingRegion = config.signingRegion;\n }\n\n // signature version\n if (!config.signatureVersion) {\n // Note: config is a global object and should not be mutated here.\n // However, we are retaining this line for backwards compatibility.\n // The non-v4 signatureVersion will be set in a copied object below.\n config.signatureVersion = 'v4';\n }\n\n var useBearer = (service.api && service.api.signatureVersion) === 'bearer';\n\n // merge config\n applyConfig(service, Object.assign(\n {},\n config,\n { signatureVersion: useBearer ? 'bearer' : config.signatureVersion }\n ));\n return;\n }\n }\n}\n\nfunction getEndpointSuffix(region) {\n var regionRegexes = {\n '^(us|eu|ap|sa|ca|me)\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^cn\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com.cn',\n '^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$': 'c2s.ic.gov',\n '^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$': 'sc2s.sgov.gov'\n };\n var defaultSuffix = 'amazonaws.com';\n var regexes = Object.keys(regionRegexes);\n for (var i = 0; i < regexes.length; i++) {\n var regionPattern = RegExp(regexes[i]);\n var dnsSuffix = regionRegexes[regexes[i]];\n if (regionPattern.test(region)) return dnsSuffix;\n }\n return defaultSuffix;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n configureEndpoint: configureEndpoint,\n getEndpointSuffix: getEndpointSuffix,\n};\n","var AWS = require('./core');\nvar AcceptorStateMachine = require('./state_machine');\nvar inherit = AWS.util.inherit;\nvar domain = AWS.util.domain;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nvar hardErrorStates = {success: 1, error: 1, complete: 1};\n\nfunction isTerminalState(machine) {\n return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState);\n}\n\nvar fsm = new AcceptorStateMachine();\nfsm.setupStates = function() {\n var transition = function(_, done) {\n var self = this;\n self._haltHandlersOnError = false;\n\n self.emit(self._asm.currentState, function(err) {\n if (err) {\n if (isTerminalState(self)) {\n if (domain && self.domain instanceof domain.Domain) {\n err.domainEmitter = self;\n err.domain = self.domain;\n err.domainThrown = false;\n self.domain.emit('error', err);\n } else {\n throw err;\n }\n } else {\n self.response.error = err;\n done(err);\n }\n } else {\n done(self.response.error);\n }\n });\n\n };\n\n this.addState('validate', 'build', 'error', transition);\n this.addState('build', 'afterBuild', 'restart', transition);\n this.addState('afterBuild', 'sign', 'restart', transition);\n this.addState('sign', 'send', 'retry', transition);\n this.addState('retry', 'afterRetry', 'afterRetry', transition);\n this.addState('afterRetry', 'sign', 'error', transition);\n this.addState('send', 'validateResponse', 'retry', transition);\n this.addState('validateResponse', 'extractData', 'extractError', transition);\n this.addState('extractError', 'extractData', 'retry', transition);\n this.addState('extractData', 'success', 'retry', transition);\n this.addState('restart', 'build', 'error', transition);\n this.addState('success', 'complete', 'complete', transition);\n this.addState('error', 'complete', 'complete', transition);\n this.addState('complete', null, null, transition);\n};\nfsm.setupStates();\n\n/**\n * ## Asynchronous Requests\n *\n * All requests made through the SDK are asynchronous and use a\n * callback interface. Each service method that kicks off a request\n * returns an `AWS.Request` object that you can use to register\n * callbacks.\n *\n * For example, the following service method returns the request\n * object as \"request\", which can be used to register callbacks:\n *\n * ```javascript\n * // request is an AWS.Request object\n * var request = ec2.describeInstances();\n *\n * // register callbacks on request to retrieve response data\n * request.on('success', function(response) {\n * console.log(response.data);\n * });\n * ```\n *\n * When a request is ready to be sent, the {send} method should\n * be called:\n *\n * ```javascript\n * request.send();\n * ```\n *\n * Since registered callbacks may or may not be idempotent, requests should only\n * be sent once. To perform the same operation multiple times, you will need to\n * create multiple request objects, each with its own registered callbacks.\n *\n * ## Removing Default Listeners for Events\n *\n * Request objects are built with default listeners for the various events,\n * depending on the service type. In some cases, you may want to remove\n * some built-in listeners to customize behaviour. Doing this requires\n * access to the built-in listener functions, which are exposed through\n * the {AWS.EventListeners.Core} namespace. For instance, you may\n * want to customize the HTTP handler used when sending a request. In this\n * case, you can remove the built-in listener associated with the 'send'\n * event, the {AWS.EventListeners.Core.SEND} listener and add your own.\n *\n * ## Multiple Callbacks and Chaining\n *\n * You can register multiple callbacks on any request object. The\n * callbacks can be registered for different events, or all for the\n * same event. In addition, you can chain callback registration, for\n * example:\n *\n * ```javascript\n * request.\n * on('success', function(response) {\n * console.log(\"Success!\");\n * }).\n * on('error', function(error, response) {\n * console.log(\"Error!\");\n * }).\n * on('complete', function(response) {\n * console.log(\"Always!\");\n * }).\n * send();\n * ```\n *\n * The above example will print either \"Success! Always!\", or \"Error! Always!\",\n * depending on whether the request succeeded or not.\n *\n * @!attribute httpRequest\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpRequest] the raw HTTP request object\n * containing request headers and body information\n * sent by the service.\n *\n * @!attribute startTime\n * @readonly\n * @!group Operation Properties\n * @return [Date] the time that the request started\n *\n * @!group Request Building Events\n *\n * @!event validate(request)\n * Triggered when a request is being validated. Listeners\n * should throw an error if the request should not be sent.\n * @param request [Request] the request object being sent\n * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS\n * @see AWS.EventListeners.Core.VALIDATE_REGION\n * @example Ensuring that a certain parameter is set before sending a request\n * var req = s3.putObject(params);\n * req.on('validate', function() {\n * if (!req.params.Body.match(/^Hello\\s/)) {\n * throw new Error('Body must start with \"Hello \"');\n * }\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event build(request)\n * Triggered when the request payload is being built. Listeners\n * should fill the necessary information to send the request\n * over HTTP.\n * @param (see AWS.Request~validate)\n * @example Add a custom HTTP header to a request\n * var req = s3.putObject(params);\n * req.on('build', function() {\n * req.httpRequest.headers['Custom-Header'] = 'value';\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event sign(request)\n * Triggered when the request is being signed. Listeners should\n * add the correct authentication headers and/or adjust the body,\n * depending on the authentication mechanism being used.\n * @param (see AWS.Request~validate)\n *\n * @!group Request Sending Events\n *\n * @!event send(response)\n * Triggered when the request is ready to be sent. Listeners\n * should call the underlying transport layer to initiate\n * the sending of the request.\n * @param response [Response] the response object\n * @context [Request] the request object that was sent\n * @see AWS.EventListeners.Core.SEND\n *\n * @!event retry(response)\n * Triggered when a request failed and might need to be retried or redirected.\n * If the response is retryable, the listener should set the\n * `response.error.retryable` property to `true`, and optionally set\n * `response.error.retryDelay` to the millisecond delay for the next attempt.\n * In the case of a redirect, `response.error.redirect` should be set to\n * `true` with `retryDelay` set to an optional delay on the next request.\n *\n * If a listener decides that a request should not be retried,\n * it should set both `retryable` and `redirect` to false.\n *\n * Note that a retryable error will be retried at most\n * {AWS.Config.maxRetries} times (based on the service object's config).\n * Similarly, a request that is redirected will only redirect at most\n * {AWS.Config.maxRedirects} times.\n *\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @example Adding a custom retry for a 404 response\n * request.on('retry', function(response) {\n * // this resource is not yet available, wait 10 seconds to get it again\n * if (response.httpResponse.statusCode === 404 && response.error) {\n * response.error.retryable = true; // retry this error\n * response.error.retryDelay = 10000; // wait 10 seconds\n * }\n * });\n *\n * @!group Data Parsing Events\n *\n * @!event extractError(response)\n * Triggered on all non-2xx requests so that listeners can extract\n * error details from the response body. Listeners to this event\n * should set the `response.error` property.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event extractData(response)\n * Triggered in successful requests to allow listeners to\n * de-serialize the response body into `response.data`.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group Completion Events\n *\n * @!event success(response)\n * Triggered when the request completed successfully.\n * `response.data` will contain the response data and\n * `response.error` will be null.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event error(error, response)\n * Triggered when an error occurs at any point during the\n * request. `response.error` will contain details about the error\n * that occurred. `response.data` will be null.\n * @param error [Error] the error object containing details about\n * the error that occurred.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event complete(response)\n * Triggered whenever a request cycle completes. `response.error`\n * should be checked, since the request may have failed.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group HTTP Events\n *\n * @!event httpHeaders(statusCode, headers, response, statusMessage)\n * Triggered when headers are sent by the remote server\n * @param statusCode [Integer] the HTTP response code\n * @param headers [map] the response headers\n * @param (see AWS.Request~send)\n * @param statusMessage [String] A status message corresponding to the HTTP\n * response code\n * @context (see AWS.Request~send)\n *\n * @!event httpData(chunk, response)\n * Triggered when data is sent by the remote server\n * @param chunk [Buffer] the buffer data containing the next data chunk\n * from the server\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @see AWS.EventListeners.Core.HTTP_DATA\n *\n * @!event httpUploadProgress(progress, response)\n * Triggered when the HTTP request has uploaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpDownloadProgress(progress, response)\n * Triggered when the HTTP request has downloaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpError(error, response)\n * Triggered when the HTTP request failed\n * @param error [Error] the error object that was thrown\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event httpDone(response)\n * Triggered when the server is finished sending data\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @see AWS.Response\n */\nAWS.Request = inherit({\n\n /**\n * Creates a request for an operation on a given service with\n * a set of input parameters.\n *\n * @param service [AWS.Service] the service to perform the operation on\n * @param operation [String] the operation to perform on the service\n * @param params [Object] parameters to send to the operation.\n * See the operation's documentation for the format of the\n * parameters.\n */\n constructor: function Request(service, operation, params) {\n var endpoint = service.endpoint;\n var region = service.config.region;\n var customUserAgent = service.config.customUserAgent;\n\n if (service.signingRegion) {\n region = service.signingRegion;\n } else if (service.isGlobalEndpoint) {\n region = 'us-east-1';\n }\n\n this.domain = domain && domain.active;\n this.service = service;\n this.operation = operation;\n this.params = params || {};\n this.httpRequest = new AWS.HttpRequest(endpoint, region);\n this.httpRequest.appendToUserAgent(customUserAgent);\n this.startTime = service.getSkewCorrectedDate();\n\n this.response = new AWS.Response(this);\n this._asm = new AcceptorStateMachine(fsm.states, 'validate');\n this._haltHandlersOnError = false;\n\n AWS.SequentialExecutor.call(this);\n this.emit = this.emitEvent;\n },\n\n /**\n * @!group Sending a Request\n */\n\n /**\n * @overload send(callback = null)\n * Sends the request object.\n *\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @context [AWS.Request] the request object being sent.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n * @example Sending a request with a callback\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.send(function(err, data) { console.log(err, data); });\n * @example Sending a request with no callback (using event handlers)\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.on('complete', function(response) { ... }); // register a callback\n * request.send();\n */\n send: function send(callback) {\n if (callback) {\n // append to user agent\n this.httpRequest.appendToUserAgent('callback');\n this.on('complete', function (resp) {\n callback.call(resp, resp.error, resp.data);\n });\n }\n this.runTo();\n\n return this.response;\n },\n\n /**\n * @!method promise()\n * Sends the request and returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [Object] the de-serialized data returned from the request.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param error [Error] the error object returned from the request.\n * @return [Promise] A promise that represents the state of the request.\n * @example Sending a request using promises.\n * var request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * var result = request.promise();\n * result.then(function(data) { ... }, function(error) { ... });\n */\n\n /**\n * @api private\n */\n build: function build(callback) {\n return this.runTo('send', callback);\n },\n\n /**\n * @api private\n */\n runTo: function runTo(state, done) {\n this._asm.runTo(state, done, this);\n return this;\n },\n\n /**\n * Aborts a request, emitting the error and complete events.\n *\n * @!macro nobrowser\n * @example Aborting a request after sending\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 5) // 5MB payload\n * };\n * var request = s3.putObject(params);\n * request.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(request.abort.bind(request), 1000);\n *\n * // prints \"Error: RequestAbortedError Request aborted by user\"\n * @return [AWS.Request] the same request object, for chaining.\n * @since v1.4.0\n */\n abort: function abort() {\n this.removeAllListeners('validateResponse');\n this.removeAllListeners('extractError');\n this.on('validateResponse', function addAbortedError(resp) {\n resp.error = AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n });\n });\n\n if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream\n this.httpRequest.stream.abort();\n if (this.httpRequest._abortCallback) {\n this.httpRequest._abortCallback();\n } else {\n this.removeAllListeners('send'); // haven't sent yet, so let's not\n }\n }\n\n return this;\n },\n\n /**\n * Iterates over each page of results given a pageable request, calling\n * the provided callback with each page of data. After all pages have been\n * retrieved, the callback is called with `null` data.\n *\n * @note This operation can generate multiple requests to a service.\n * @example Iterating over multiple pages of objects in an S3 bucket\n * var pages = 1;\n * s3.listObjects().eachPage(function(err, data) {\n * if (err) return;\n * console.log(\"Page\", pages++);\n * console.log(data);\n * });\n * @example Iterating over multiple pages with an asynchronous callback\n * s3.listObjects(params).eachPage(function(err, data, done) {\n * doSomethingAsyncAndOrExpensive(function() {\n * // The next page of results isn't fetched until done is called\n * done();\n * });\n * });\n * @callback callback function(err, data, [doneCallback])\n * Called with each page of resulting data from the request. If the\n * optional `doneCallback` is provided in the function, it must be called\n * when the callback is complete.\n *\n * @param err [Error] an error object, if an error occurred.\n * @param data [Object] a single page of response data. If there is no\n * more data, this object will be `null`.\n * @param doneCallback [Function] an optional done callback. If this\n * argument is defined in the function declaration, it should be called\n * when the next page is ready to be retrieved. This is useful for\n * controlling serial pagination across asynchronous operations.\n * @return [Boolean] if the callback returns `false`, pagination will\n * stop.\n *\n * @see AWS.Request.eachItem\n * @see AWS.Response.nextPage\n * @since v1.4.0\n */\n eachPage: function eachPage(callback) {\n // Make all callbacks async-ish\n callback = AWS.util.fn.makeAsync(callback, 3);\n\n function wrappedCallback(response) {\n callback.call(response, response.error, response.data, function (result) {\n if (result === false) return;\n\n if (response.hasNextPage()) {\n response.nextPage().on('complete', wrappedCallback).send();\n } else {\n callback.call(response, null, null, AWS.util.fn.noop);\n }\n });\n }\n\n this.on('complete', wrappedCallback).send();\n },\n\n /**\n * Enumerates over individual items of a request, paging the responses if\n * necessary.\n *\n * @api experimental\n * @since v1.4.0\n */\n eachItem: function eachItem(callback) {\n var self = this;\n function wrappedCallback(err, data) {\n if (err) return callback(err, null);\n if (data === null) return callback(null, null);\n\n var config = self.service.paginationConfig(self.operation);\n var resultKey = config.resultKey;\n if (Array.isArray(resultKey)) resultKey = resultKey[0];\n var items = jmespath.search(data, resultKey);\n var continueIteration = true;\n AWS.util.arrayEach(items, function(item) {\n continueIteration = callback(null, item);\n if (continueIteration === false) {\n return AWS.util.abort;\n }\n });\n return continueIteration;\n }\n\n this.eachPage(wrappedCallback);\n },\n\n /**\n * @return [Boolean] whether the operation can return multiple pages of\n * response data.\n * @see AWS.Response.eachPage\n * @since v1.4.0\n */\n isPageable: function isPageable() {\n return this.service.paginationConfig(this.operation) ? true : false;\n },\n\n /**\n * Sends the request and converts the request object into a readable stream\n * that can be read from or piped into a writable stream.\n *\n * @note The data read from a readable stream contains only\n * the raw HTTP body contents.\n * @example Manually reading from a stream\n * request.createReadStream().on('data', function(data) {\n * console.log(\"Got data:\", data.toString());\n * });\n * @example Piping a request body into a file\n * var out = fs.createWriteStream('/path/to/outfile.jpg');\n * s3.service.getObject(params).createReadStream().pipe(out);\n * @return [Stream] the readable stream object that can be piped\n * or read from (by registering 'data' event listeners).\n * @!macro nobrowser\n */\n createReadStream: function createReadStream() {\n var streams = AWS.util.stream;\n var req = this;\n var stream = null;\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n stream = new streams.PassThrough();\n process.nextTick(function() { req.send(); });\n } else {\n stream = new streams.Stream();\n stream.readable = true;\n\n stream.sent = false;\n stream.on('newListener', function(event) {\n if (!stream.sent && event === 'data') {\n stream.sent = true;\n process.nextTick(function() { req.send(); });\n }\n });\n }\n\n this.on('error', function(err) {\n stream.emit('error', err);\n });\n\n this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {\n if (statusCode < 300) {\n req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);\n req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);\n req.on('httpError', function streamHttpError(error) {\n resp.error = error;\n resp.error.retryable = false;\n });\n\n var shouldCheckContentLength = false;\n var expectedLen;\n if (req.httpRequest.method !== 'HEAD') {\n expectedLen = parseInt(headers['content-length'], 10);\n }\n if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) {\n shouldCheckContentLength = true;\n var receivedLen = 0;\n }\n\n var checkContentLengthAndEmit = function checkContentLengthAndEmit() {\n if (shouldCheckContentLength && receivedLen !== expectedLen) {\n stream.emit('error', AWS.util.error(\n new Error('Stream content length mismatch. Received ' +\n receivedLen + ' of ' + expectedLen + ' bytes.'),\n { code: 'StreamContentLengthMismatch' }\n ));\n } else if (AWS.HttpClient.streamsApiVersion === 2) {\n stream.end();\n } else {\n stream.emit('end');\n }\n };\n\n var httpStream = resp.httpResponse.createUnbufferedStream();\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n if (shouldCheckContentLength) {\n var lengthAccumulator = new streams.PassThrough();\n lengthAccumulator._write = function(chunk) {\n if (chunk && chunk.length) {\n receivedLen += chunk.length;\n }\n return streams.PassThrough.prototype._write.apply(this, arguments);\n };\n\n lengthAccumulator.on('end', checkContentLengthAndEmit);\n stream.on('error', function(err) {\n shouldCheckContentLength = false;\n httpStream.unpipe(lengthAccumulator);\n lengthAccumulator.emit('end');\n lengthAccumulator.end();\n });\n httpStream.pipe(lengthAccumulator).pipe(stream, { end: false });\n } else {\n httpStream.pipe(stream);\n }\n } else {\n\n if (shouldCheckContentLength) {\n httpStream.on('data', function(arg) {\n if (arg && arg.length) {\n receivedLen += arg.length;\n }\n });\n }\n\n httpStream.on('data', function(arg) {\n stream.emit('data', arg);\n });\n httpStream.on('end', checkContentLengthAndEmit);\n }\n\n httpStream.on('error', function(err) {\n shouldCheckContentLength = false;\n stream.emit('error', err);\n });\n }\n });\n\n return stream;\n },\n\n /**\n * @param [Array,Response] args This should be the response object,\n * or an array of args to send to the event.\n * @api private\n */\n emitEvent: function emit(eventName, args, done) {\n if (typeof args === 'function') { done = args; args = null; }\n if (!done) done = function() { };\n if (!args) args = this.eventParameters(eventName, this.response);\n\n var origEmit = AWS.SequentialExecutor.prototype.emit;\n origEmit.call(this, eventName, args, function (err) {\n if (err) this.response.error = err;\n done.call(this, err);\n });\n },\n\n /**\n * @api private\n */\n eventParameters: function eventParameters(eventName) {\n switch (eventName) {\n case 'restart':\n case 'validate':\n case 'sign':\n case 'build':\n case 'afterValidate':\n case 'afterBuild':\n return [this];\n case 'error':\n return [this.response.error, this.response];\n default:\n return [this.response];\n }\n },\n\n /**\n * @api private\n */\n presign: function presign(expires, callback) {\n if (!callback && typeof expires === 'function') {\n callback = expires;\n expires = null;\n }\n return new AWS.Signers.Presign().sign(this.toGet(), expires, callback);\n },\n\n /**\n * @api private\n */\n isPresigned: function isPresigned() {\n return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires');\n },\n\n /**\n * @api private\n */\n toUnauthenticated: function toUnauthenticated() {\n this._unAuthenticated = true;\n this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS);\n this.removeListener('sign', AWS.EventListeners.Core.SIGN);\n return this;\n },\n\n /**\n * @api private\n */\n toGet: function toGet() {\n if (this.service.api.protocol === 'query' ||\n this.service.api.protocol === 'ec2') {\n this.removeListener('build', this.buildAsGet);\n this.addListener('build', this.buildAsGet);\n }\n return this;\n },\n\n /**\n * @api private\n */\n buildAsGet: function buildAsGet(request) {\n request.httpRequest.method = 'GET';\n request.httpRequest.path = request.service.endpoint.path +\n '?' + request.httpRequest.body;\n request.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete request.httpRequest.headers['Content-Length'];\n delete request.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @api private\n */\n haltHandlersOnError: function haltHandlersOnError() {\n this._haltHandlersOnError = true;\n }\n});\n\n/**\n * @api private\n */\nAWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = function promise() {\n var self = this;\n // append to user agent\n this.httpRequest.appendToUserAgent('promise');\n return new PromiseDependency(function(resolve, reject) {\n self.on('complete', function(resp) {\n if (resp.error) {\n reject(resp.error);\n } else {\n // define $response property so that it is not enumerable\n // this prevents circular reference errors when stringifying the JSON object\n resolve(Object.defineProperty(\n resp.data || {},\n '$response',\n {value: resp}\n ));\n }\n });\n self.runTo();\n });\n };\n};\n\n/**\n * @api private\n */\nAWS.Request.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.Request);\n\nAWS.util.mixin(AWS.Request, AWS.SequentialExecutor);\n","/**\n * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You\n * may not use this file except in compliance with the License. A copy of\n * 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\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n */\n\nvar AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nfunction CHECK_ACCEPTORS(resp) {\n var waiter = resp.request._waiter;\n var acceptors = waiter.config.acceptors;\n var acceptorMatched = false;\n var state = 'retry';\n\n acceptors.forEach(function(acceptor) {\n if (!acceptorMatched) {\n var matcher = waiter.matchers[acceptor.matcher];\n if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) {\n acceptorMatched = true;\n state = acceptor.state;\n }\n }\n });\n\n if (!acceptorMatched && resp.error) state = 'failure';\n\n if (state === 'success') {\n waiter.setSuccess(resp);\n } else {\n waiter.setError(resp, state === 'retry');\n }\n}\n\n/**\n * @api private\n */\nAWS.ResourceWaiter = inherit({\n /**\n * Waits for a given state on a service object\n * @param service [Service] the service object to wait on\n * @param state [String] the state (defined in waiter configuration) to wait\n * for.\n * @example Create a waiter for running EC2 instances\n * var ec2 = new AWS.EC2;\n * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning');\n */\n constructor: function constructor(service, state) {\n this.service = service;\n this.state = state;\n this.loadWaiterConfig(this.state);\n },\n\n service: null,\n\n state: null,\n\n config: null,\n\n matchers: {\n path: function(resp, expected, argument) {\n try {\n var result = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n return jmespath.strictDeepEqual(result,expected);\n },\n\n pathAll: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n if (!numResults) return false;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (!jmespath.strictDeepEqual(results[ind], expected)) {\n return false;\n }\n }\n return true;\n },\n\n pathAny: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (jmespath.strictDeepEqual(results[ind], expected)) {\n return true;\n }\n }\n return false;\n },\n\n status: function(resp, expected) {\n var statusCode = resp.httpResponse.statusCode;\n return (typeof statusCode === 'number') && (statusCode === expected);\n },\n\n error: function(resp, expected) {\n if (typeof expected === 'string' && resp.error) {\n return expected === resp.error.code;\n }\n // if expected is not string, can be boolean indicating presence of error\n return expected === !!resp.error;\n }\n },\n\n listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) {\n add('RETRY_CHECK', 'retry', function(resp) {\n var waiter = resp.request._waiter;\n if (resp.error && resp.error.code === 'ResourceNotReady') {\n resp.error.retryDelay = (waiter.config.delay || 0) * 1000;\n }\n });\n\n add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS);\n\n add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS);\n }),\n\n /**\n * @return [AWS.Request]\n */\n wait: function wait(params, callback) {\n if (typeof params === 'function') {\n callback = params; params = undefined;\n }\n\n if (params && params.$waiter) {\n params = AWS.util.copy(params);\n if (typeof params.$waiter.delay === 'number') {\n this.config.delay = params.$waiter.delay;\n }\n if (typeof params.$waiter.maxAttempts === 'number') {\n this.config.maxAttempts = params.$waiter.maxAttempts;\n }\n delete params.$waiter;\n }\n\n var request = this.service.makeRequest(this.config.operation, params);\n request._waiter = this;\n request.response.maxRetries = this.config.maxAttempts;\n request.addListeners(this.listeners);\n\n if (callback) request.send(callback);\n return request;\n },\n\n setSuccess: function setSuccess(resp) {\n resp.error = null;\n resp.data = resp.data || {};\n resp.request.removeAllListeners('extractData');\n },\n\n setError: function setError(resp, retryable) {\n resp.data = null;\n resp.error = AWS.util.error(resp.error || new Error(), {\n code: 'ResourceNotReady',\n message: 'Resource is not in the state ' + this.state,\n retryable: retryable\n });\n },\n\n /**\n * Loads waiter configuration from API configuration\n *\n * @api private\n */\n loadWaiterConfig: function loadWaiterConfig(state) {\n if (!this.service.api.waiters[state]) {\n throw new AWS.util.error(new Error(), {\n code: 'StateNotFoundError',\n message: 'State ' + state + ' not found.'\n });\n }\n\n this.config = AWS.util.copy(this.service.api.waiters[state]);\n }\n});\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * This class encapsulates the response information\n * from a service request operation sent through {AWS.Request}.\n * The response object has two main properties for getting information\n * back from a request:\n *\n * ## The `data` property\n *\n * The `response.data` property contains the serialized object data\n * retrieved from the service request. For instance, for an\n * Amazon DynamoDB `listTables` method call, the response data might\n * look like:\n *\n * ```\n * > resp.data\n * { TableNames:\n * [ 'table1', 'table2', ... ] }\n * ```\n *\n * The `data` property can be null if an error occurs (see below).\n *\n * ## The `error` property\n *\n * In the event of a service error (or transfer error), the\n * `response.error` property will be filled with the given\n * error data in the form:\n *\n * ```\n * { code: 'SHORT_UNIQUE_ERROR_CODE',\n * message: 'Some human readable error message' }\n * ```\n *\n * In the case of an error, the `data` property will be `null`.\n * Note that if you handle events that can be in a failure state,\n * you should always check whether `response.error` is set\n * before attempting to access the `response.data` property.\n *\n * @!attribute data\n * @readonly\n * @!group Data Properties\n * @note Inside of a {AWS.Request~httpData} event, this\n * property contains a single raw packet instead of the\n * full de-serialized service response.\n * @return [Object] the de-serialized response data\n * from the service.\n *\n * @!attribute error\n * An structure containing information about a service\n * or networking error.\n * @readonly\n * @!group Data Properties\n * @note This attribute is only filled if a service or\n * networking error occurs.\n * @return [Error]\n * * code [String] a unique short code representing the\n * error that was emitted.\n * * message [String] a longer human readable error message\n * * retryable [Boolean] whether the error message is\n * retryable.\n * * statusCode [Numeric] in the case of a request that reached the service,\n * this value contains the response status code.\n * * time [Date] the date time object when the error occurred.\n * * hostname [String] set when a networking error occurs to easily\n * identify the endpoint of the request.\n * * region [String] set when a networking error occurs to easily\n * identify the region of the request.\n *\n * @!attribute requestId\n * @readonly\n * @!group Data Properties\n * @return [String] the unique request ID associated with the response.\n * Log this value when debugging requests for AWS support.\n *\n * @!attribute retryCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of retries that were\n * attempted before the request was completed.\n *\n * @!attribute redirectCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of redirects that were\n * followed before the request was completed.\n *\n * @!attribute httpResponse\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpResponse] the raw HTTP response object\n * containing the response headers and body information\n * from the server.\n *\n * @see AWS.Request\n */\nAWS.Response = inherit({\n\n /**\n * @api private\n */\n constructor: function Response(request) {\n this.request = request;\n this.data = null;\n this.error = null;\n this.retryCount = 0;\n this.redirectCount = 0;\n this.httpResponse = new AWS.HttpResponse();\n if (request) {\n this.maxRetries = request.service.numRetries();\n this.maxRedirects = request.service.config.maxRedirects;\n }\n },\n\n /**\n * Creates a new request for the next page of response data, calling the\n * callback with the page data if a callback is provided.\n *\n * @callback callback function(err, data)\n * Called when a page of data is returned from the next request.\n *\n * @param err [Error] an error object, if an error occurred in the request\n * @param data [Object] the next page of data, or null, if there are no\n * more pages left.\n * @return [AWS.Request] the request object for the next page of data\n * @return [null] if no callback is provided and there are no pages left\n * to retrieve.\n * @since v1.4.0\n */\n nextPage: function nextPage(callback) {\n var config;\n var service = this.request.service;\n var operation = this.request.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { this.error = e; }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);\n else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n if (!this.nextPageTokens) {\n return callback ? callback(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\n return service.makeRequest(this.request.operation, params, callback);\n }\n },\n\n /**\n * @return [Boolean] whether more pages of data can be returned by further\n * requests\n * @since v1.4.0\n */\n hasNextPage: function hasNextPage() {\n this.cacheNextPageTokens();\n if (this.nextPageTokens) return true;\n if (this.nextPageTokens === undefined) return undefined;\n else return false;\n },\n\n /**\n * @api private\n */\n cacheNextPageTokens: function cacheNextPageTokens() {\n if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens;\n this.nextPageTokens = undefined;\n\n var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n\n this.nextPageTokens = null;\n if (config.moreResults) {\n if (!jmespath.search(this.data, config.moreResults)) {\n return this.nextPageTokens;\n }\n }\n\n var exprs = config.outputToken;\n if (typeof exprs === 'string') exprs = [exprs];\n AWS.util.arrayEach.call(this, exprs, function (expr) {\n var output = jmespath.search(this.data, expr);\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n\n return this.nextPageTokens;\n }\n\n});\n","var AWS = require('../core');\nvar byteLength = AWS.util.string.byteLength;\nvar Buffer = AWS.util.Buffer;\n\n/**\n * The managed uploader allows for easy and efficient uploading of buffers,\n * blobs, or streams, using a configurable amount of concurrency to perform\n * multipart uploads where possible. This abstraction also enables uploading\n * streams of unknown size due to the use of multipart uploads.\n *\n * To construct a managed upload object, see the {constructor} function.\n *\n * ## Tracking upload progress\n *\n * The managed upload object can also track progress by attaching an\n * 'httpUploadProgress' listener to the upload manager. This event is similar\n * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress\n * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more\n * information.\n *\n * ## Handling Multipart Cleanup\n *\n * By default, this class will automatically clean up any multipart uploads\n * when an individual part upload fails. This behavior can be disabled in order\n * to manually handle failures by setting the `leavePartsOnError` configuration\n * option to `true` when initializing the upload object.\n *\n * @!event httpUploadProgress(progress)\n * Triggered when the uploader has uploaded more data.\n * @note The `total` property may not be set if the stream being uploaded has\n * not yet finished chunking. In this case the `total` will be undefined\n * until the total stream size is known.\n * @note This event will not be emitted in Node.js 0.8.x.\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload\n * size is known.\n * @context (see AWS.Request~send)\n */\nAWS.S3.ManagedUpload = AWS.util.inherit({\n /**\n * Creates a managed upload object with a set of configuration options.\n *\n * @note A \"Body\" parameter is required to be set prior to calling {send}.\n * @note In Node.js, sending \"Body\" as {https://nodejs.org/dist/latest/docs/api/stream.html#stream_object_mode object-mode stream}\n * may result in upload hangs. Using buffer stream is preferable.\n * @option options params [map] a map of parameters to pass to the upload\n * requests. The \"Body\" parameter is required to be specified either on\n * the service or in the params option.\n * @note ContentMD5 should not be provided when using the managed upload object.\n * Instead, setting \"computeChecksums\" to true will enable automatic ContentMD5 generation\n * by the managed upload object.\n * @option options queueSize [Number] (4) the size of the concurrent queue\n * manager to upload parts in parallel. Set to 1 for synchronous uploading\n * of parts. Note that the uploader will buffer at most queueSize * partSize\n * bytes into memory at any given time.\n * @option options partSize [Number] (5mb) the size in bytes for each\n * individual part to be uploaded. Adjust the part size to ensure the number\n * of parts does not exceed {maxTotalParts}. See {minPartSize} for the\n * minimum allowed part size.\n * @option options leavePartsOnError [Boolean] (false) whether to abort the\n * multipart upload if an error occurs. Set to true if you want to handle\n * failures manually.\n * @option options service [AWS.S3] an optional S3 service object to use for\n * requests. This object might have bound parameters used by the uploader.\n * @option options tags [Array] The tags to apply to the uploaded object.\n * Each tag should have a `Key` and `Value` keys.\n * @example Creating a default uploader for a stream object\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with concurrency of 1 and partSize of 10mb\n * var upload = new AWS.S3.ManagedUpload({\n * partSize: 10 * 1024 * 1024, queueSize: 1,\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with tags\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream},\n * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}]\n * });\n * @see send\n */\n constructor: function ManagedUpload(options) {\n var self = this;\n AWS.SequentialExecutor.call(self);\n self.body = null;\n self.sliceFn = null;\n self.callback = null;\n self.parts = {};\n self.completeInfo = [];\n self.fillQueue = function() {\n self.callback(new Error('Unsupported body payload ' + typeof self.body));\n };\n\n self.configure(options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n options = options || {};\n this.partSize = this.minPartSize;\n\n if (options.queueSize) this.queueSize = options.queueSize;\n if (options.partSize) this.partSize = options.partSize;\n if (options.leavePartsOnError) this.leavePartsOnError = true;\n if (options.tags) {\n if (!Array.isArray(options.tags)) {\n throw new Error('Tags must be specified as an array; ' +\n typeof options.tags + ' provided.');\n }\n this.tags = options.tags;\n }\n\n if (this.partSize < this.minPartSize) {\n throw new Error('partSize must be greater than ' +\n this.minPartSize);\n }\n\n this.service = options.service;\n this.bindServiceObject(options.params);\n this.validateBody();\n this.adjustTotalBytes();\n },\n\n /**\n * @api private\n */\n leavePartsOnError: false,\n\n /**\n * @api private\n */\n queueSize: 4,\n\n /**\n * @api private\n */\n partSize: null,\n\n /**\n * @readonly\n * @return [Number] the minimum number of bytes for an individual part\n * upload.\n */\n minPartSize: 1024 * 1024 * 5,\n\n /**\n * @readonly\n * @return [Number] the maximum allowed number of parts in a multipart upload.\n */\n maxTotalParts: 10000,\n\n /**\n * Initiates the managed upload for the payload.\n *\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * * `Location` (String) the URL of the uploaded object\n * * `ETag` (String) the ETag of the uploaded object\n * * `Bucket` (String) the bucket to which the object was uploaded\n * * `Key` (String) the key to which the object was uploaded\n * @example Sending a managed upload object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var upload = new AWS.S3.ManagedUpload({params: params});\n * upload.send(function(err, data) {\n * console.log(err, data);\n * });\n */\n send: function(callback) {\n var self = this;\n self.failed = false;\n self.callback = callback || function(err) { if (err) throw err; };\n\n var runFill = true;\n if (self.sliceFn) {\n self.fillQueue = self.fillBuffer;\n } else if (AWS.util.isNode()) {\n var Stream = AWS.util.stream.Stream;\n if (self.body instanceof Stream) {\n runFill = false;\n self.fillQueue = self.fillStream;\n self.partBuffers = [];\n self.body.\n on('error', function(err) { self.cleanup(err); }).\n on('readable', function() { self.fillQueue(); }).\n on('end', function() {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers;\n self.fillQueue.call(self);\n\n if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) {\n self.finishMultiPart();\n }\n });\n }\n }\n\n if (runFill) self.fillQueue.call(self);\n },\n\n /**\n * @!method promise()\n * Returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [map] The response data from the successful upload:\n * `Location` (String) the URL of the uploaded object\n * `ETag` (String) the ETag of the uploaded object\n * `Bucket` (String) the bucket to which the object was uploaded\n * `Key` (String) the key to which the object was uploaded\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] an error or null if no error occurred.\n * @return [Promise] A promise that represents the state of the upload request.\n * @example Sending an upload request using promises.\n * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream});\n * var promise = upload.promise();\n * promise.then(function(data) { ... }, function(err) { ... });\n */\n\n /**\n * Aborts a managed upload, including all concurrent upload requests.\n * @note By default, calling this function will cleanup a multipart upload\n * if one was created. To leave the multipart upload around after aborting\n * a request, configure `leavePartsOnError` to `true` in the {constructor}.\n * @note Calling {abort} in the browser environment will not abort any requests\n * that are already in flight. If a multipart upload was created, any parts\n * not yet uploaded will not be sent, and the multipart upload will be cleaned up.\n * @example Aborting an upload\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 25) // 25MB payload\n * };\n * var upload = s3.upload(params);\n * upload.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(upload.abort.bind(upload), 1000);\n */\n abort: function() {\n var self = this;\n //abort putObject request\n if (self.isDoneChunking === true && self.totalPartNumbers === 1 && self.singlePart) {\n self.singlePart.abort();\n } else {\n self.cleanup(AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n }));\n }\n },\n\n /**\n * @api private\n */\n validateBody: function validateBody() {\n var self = this;\n self.body = self.service.config.params.Body;\n if (typeof self.body === 'string') {\n self.body = AWS.util.buffer.toBuffer(self.body);\n } else if (!self.body) {\n throw new Error('params.Body is required');\n }\n self.sliceFn = AWS.util.arraySliceFn(self.body);\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(params) {\n params = params || {};\n var self = this;\n // bind parameters to new service object\n if (!self.service) {\n self.service = new AWS.S3({params: params});\n } else {\n // Create a new S3 client from the supplied client's constructor.\n var service = self.service;\n var config = AWS.util.copy(service.config);\n config.signatureVersion = service.getSignatureVersion();\n self.service = new service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, params);\n Object.defineProperty(self.service, '_originalConfig', {\n get: function() { return service._originalConfig; },\n enumerable: false,\n configurable: true\n });\n }\n },\n\n /**\n * @api private\n */\n adjustTotalBytes: function adjustTotalBytes() {\n var self = this;\n try { // try to get totalBytes\n self.totalBytes = byteLength(self.body);\n } catch (e) { }\n\n // try to adjust partSize if we know payload length\n if (self.totalBytes) {\n var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts);\n if (newPartSize > self.partSize) self.partSize = newPartSize;\n } else {\n self.totalBytes = undefined;\n }\n },\n\n /**\n * @api private\n */\n isDoneChunking: false,\n\n /**\n * @api private\n */\n partPos: 0,\n\n /**\n * @api private\n */\n totalChunkedBytes: 0,\n\n /**\n * @api private\n */\n totalUploadedBytes: 0,\n\n /**\n * @api private\n */\n totalBytes: undefined,\n\n /**\n * @api private\n */\n numParts: 0,\n\n /**\n * @api private\n */\n totalPartNumbers: 0,\n\n /**\n * @api private\n */\n activeParts: 0,\n\n /**\n * @api private\n */\n doneParts: 0,\n\n /**\n * @api private\n */\n parts: null,\n\n /**\n * @api private\n */\n completeInfo: null,\n\n /**\n * @api private\n */\n failed: false,\n\n /**\n * @api private\n */\n multipartReq: null,\n\n /**\n * @api private\n */\n partBuffers: null,\n\n /**\n * @api private\n */\n partBufferLength: 0,\n\n /**\n * @api private\n */\n fillBuffer: function fillBuffer() {\n var self = this;\n var bodyLen = byteLength(self.body);\n\n if (bodyLen === 0) {\n self.isDoneChunking = true;\n self.numParts = 1;\n self.nextChunk(self.body);\n return;\n }\n\n while (self.activeParts < self.queueSize && self.partPos < bodyLen) {\n var endPos = Math.min(self.partPos + self.partSize, bodyLen);\n var buf = self.sliceFn.call(self.body, self.partPos, endPos);\n self.partPos += self.partSize;\n\n if (byteLength(buf) < self.partSize || self.partPos === bodyLen) {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers + 1;\n }\n self.nextChunk(buf);\n }\n },\n\n /**\n * @api private\n */\n fillStream: function fillStream() {\n var self = this;\n if (self.activeParts >= self.queueSize) return;\n\n var buf = self.body.read(self.partSize - self.partBufferLength) ||\n self.body.read();\n if (buf) {\n self.partBuffers.push(buf);\n self.partBufferLength += buf.length;\n self.totalChunkedBytes += buf.length;\n }\n\n if (self.partBufferLength >= self.partSize) {\n // if we have single buffer we avoid copyfull concat\n var pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n\n // if we have more than partSize, push the rest back on the queue\n if (pbuf.length > self.partSize) {\n var rest = pbuf.slice(self.partSize);\n self.partBuffers.push(rest);\n self.partBufferLength += rest.length;\n pbuf = pbuf.slice(0, self.partSize);\n }\n\n self.nextChunk(pbuf);\n }\n\n if (self.isDoneChunking && !self.isDoneSending) {\n // if we have single buffer we avoid copyfull concat\n pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n self.totalBytes = self.totalChunkedBytes;\n self.isDoneSending = true;\n\n if (self.numParts === 0 || pbuf.length > 0) {\n self.numParts++;\n self.nextChunk(pbuf);\n }\n }\n\n self.body.read(0);\n },\n\n /**\n * @api private\n */\n nextChunk: function nextChunk(chunk) {\n var self = this;\n if (self.failed) return null;\n\n var partNumber = ++self.totalPartNumbers;\n if (self.isDoneChunking && partNumber === 1) {\n var params = {Body: chunk};\n if (this.tags) {\n params.Tagging = this.getTaggingHeader();\n }\n var req = self.service.putObject(params);\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress).send(self.finishSinglePart);\n self.singlePart = req; //save the single part request\n return null;\n } else if (self.service.config.params.ContentMD5) {\n var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), {\n code: 'InvalidDigest', retryable: false\n });\n\n self.cleanup(err);\n return null;\n }\n\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) {\n return null; // Already uploaded this part.\n }\n\n self.activeParts++;\n if (!self.service.config.params.UploadId) {\n\n if (!self.multipartReq) { // create multipart\n self.multipartReq = self.service.createMultipartUpload();\n self.multipartReq.on('success', function(resp) {\n self.service.config.params.UploadId = resp.data.UploadId;\n self.multipartReq = null;\n });\n self.queueChunks(chunk, partNumber);\n self.multipartReq.on('error', function(err) {\n self.cleanup(err);\n });\n self.multipartReq.send();\n } else {\n self.queueChunks(chunk, partNumber);\n }\n } else { // multipart is created, just send\n self.uploadPart(chunk, partNumber);\n }\n },\n\n /**\n * @api private\n */\n getTaggingHeader: function getTaggingHeader() {\n var kvPairStrings = [];\n for (var i = 0; i < this.tags.length; i++) {\n kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' +\n AWS.util.uriEscape(this.tags[i].Value));\n }\n\n return kvPairStrings.join('&');\n },\n\n /**\n * @api private\n */\n uploadPart: function uploadPart(chunk, partNumber) {\n var self = this;\n\n var partParams = {\n Body: chunk,\n ContentLength: AWS.util.string.byteLength(chunk),\n PartNumber: partNumber\n };\n\n var partInfo = {ETag: null, PartNumber: partNumber};\n self.completeInfo[partNumber] = partInfo;\n\n var req = self.service.uploadPart(partParams);\n self.parts[partNumber] = req;\n req._lastUploadedBytes = 0;\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress);\n req.send(function(err, data) {\n delete self.parts[partParams.PartNumber];\n self.activeParts--;\n\n if (!err && (!data || !data.ETag)) {\n var message = 'No access to ETag property on response.';\n if (AWS.util.isBrowser()) {\n message += ' Check CORS configuration to expose ETag header.';\n }\n\n err = AWS.util.error(new Error(message), {\n code: 'ETagMissing', retryable: false\n });\n }\n if (err) return self.cleanup(err);\n //prevent sending part being returned twice (https://github.com/aws/aws-sdk-js/issues/2304)\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) return null;\n partInfo.ETag = data.ETag;\n self.doneParts++;\n if (self.isDoneChunking && self.doneParts === self.totalPartNumbers) {\n self.finishMultiPart();\n } else {\n self.fillQueue.call(self);\n }\n });\n },\n\n /**\n * @api private\n */\n queueChunks: function queueChunks(chunk, partNumber) {\n var self = this;\n self.multipartReq.on('success', function() {\n self.uploadPart(chunk, partNumber);\n });\n },\n\n /**\n * @api private\n */\n cleanup: function cleanup(err) {\n var self = this;\n if (self.failed) return;\n\n // clean up stream\n if (typeof self.body.removeAllListeners === 'function' &&\n typeof self.body.resume === 'function') {\n self.body.removeAllListeners('readable');\n self.body.removeAllListeners('end');\n self.body.resume();\n }\n\n // cleanup multipartReq listeners\n if (self.multipartReq) {\n self.multipartReq.removeAllListeners('success');\n self.multipartReq.removeAllListeners('error');\n self.multipartReq.removeAllListeners('complete');\n delete self.multipartReq;\n }\n\n if (self.service.config.params.UploadId && !self.leavePartsOnError) {\n self.service.abortMultipartUpload().send();\n } else if (self.leavePartsOnError) {\n self.isDoneChunking = false;\n }\n\n AWS.util.each(self.parts, function(partNumber, part) {\n part.removeAllListeners('complete');\n part.abort();\n });\n\n self.activeParts = 0;\n self.partPos = 0;\n self.numParts = 0;\n self.totalPartNumbers = 0;\n self.parts = {};\n self.failed = true;\n self.callback(err);\n },\n\n /**\n * @api private\n */\n finishMultiPart: function finishMultiPart() {\n var self = this;\n var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } };\n self.service.completeMultipartUpload(completeParams, function(err, data) {\n if (err) {\n return self.cleanup(err);\n }\n\n if (data && typeof data.Location === 'string') {\n data.Location = data.Location.replace(/%2F/g, '/');\n }\n\n if (Array.isArray(self.tags)) {\n for (var i = 0; i < self.tags.length; i++) {\n self.tags[i].Value = String(self.tags[i].Value);\n }\n self.service.putObjectTagging(\n {Tagging: {TagSet: self.tags}},\n function(e, d) {\n if (e) {\n self.callback(e);\n } else {\n self.callback(e, data);\n }\n }\n );\n } else {\n self.callback(err, data);\n }\n });\n },\n\n /**\n * @api private\n */\n finishSinglePart: function finishSinglePart(err, data) {\n var upload = this.request._managedUpload;\n var httpReq = this.request.httpRequest;\n var endpoint = httpReq.endpoint;\n if (err) return upload.callback(err);\n data.Location =\n [endpoint.protocol, '//', endpoint.host, httpReq.path].join('');\n data.key = this.request.params.Key; // will stay undocumented\n data.Key = this.request.params.Key;\n data.Bucket = this.request.params.Bucket;\n upload.callback(err, data);\n },\n\n /**\n * @api private\n */\n progress: function progress(info) {\n var upload = this._managedUpload;\n if (this.operation === 'putObject') {\n info.part = 1;\n info.key = this.params.Key;\n } else {\n upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes;\n this._lastUploadedBytes = info.loaded;\n info = {\n loaded: upload.totalUploadedBytes,\n total: upload.totalBytes,\n part: this.params.PartNumber,\n key: this.params.Key\n };\n }\n upload.emit('httpUploadProgress', [info]);\n }\n});\n\nAWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.S3.ManagedUpload);\n\n/**\n * @api private\n */\nmodule.exports = AWS.S3.ManagedUpload;\n","var AWS = require('./core');\n\n/**\n * @api private\n * @!method on(eventName, callback)\n * Registers an event listener callback for the event given by `eventName`.\n * Parameters passed to the callback function depend on the individual event\n * being triggered. See the event documentation for those parameters.\n *\n * @param eventName [String] the event name to register the listener for\n * @param callback [Function] the listener callback function\n * @param toHead [Boolean] attach the listener callback to the head of callback array if set to true.\n * Default to be false.\n * @return [AWS.SequentialExecutor] the same object for chaining\n */\nAWS.SequentialExecutor = AWS.util.inherit({\n\n constructor: function SequentialExecutor() {\n this._events = {};\n },\n\n /**\n * @api private\n */\n listeners: function listeners(eventName) {\n return this._events[eventName] ? this._events[eventName].slice(0) : [];\n },\n\n on: function on(eventName, listener, toHead) {\n if (this._events[eventName]) {\n toHead ?\n this._events[eventName].unshift(listener) :\n this._events[eventName].push(listener);\n } else {\n this._events[eventName] = [listener];\n }\n return this;\n },\n\n onAsync: function onAsync(eventName, listener, toHead) {\n listener._isAsync = true;\n return this.on(eventName, listener, toHead);\n },\n\n removeListener: function removeListener(eventName, listener) {\n var listeners = this._events[eventName];\n if (listeners) {\n var length = listeners.length;\n var position = -1;\n for (var i = 0; i < length; ++i) {\n if (listeners[i] === listener) {\n position = i;\n }\n }\n if (position > -1) {\n listeners.splice(position, 1);\n }\n }\n return this;\n },\n\n removeAllListeners: function removeAllListeners(eventName) {\n if (eventName) {\n delete this._events[eventName];\n } else {\n this._events = {};\n }\n return this;\n },\n\n /**\n * @api private\n */\n emit: function emit(eventName, eventArgs, doneCallback) {\n if (!doneCallback) doneCallback = function() { };\n var listeners = this.listeners(eventName);\n var count = listeners.length;\n this.callListeners(listeners, eventArgs, doneCallback);\n return count > 0;\n },\n\n /**\n * @api private\n */\n callListeners: function callListeners(listeners, args, doneCallback, prevError) {\n var self = this;\n var error = prevError || null;\n\n function callNextListener(err) {\n if (err) {\n error = AWS.util.error(error || new Error(), err);\n if (self._haltHandlersOnError) {\n return doneCallback.call(self, error);\n }\n }\n self.callListeners(listeners, args, doneCallback, error);\n }\n\n while (listeners.length > 0) {\n var listener = listeners.shift();\n if (listener._isAsync) { // asynchronous listener\n listener.apply(self, args.concat([callNextListener]));\n return; // stop here, callNextListener will continue\n } else { // synchronous listener\n try {\n listener.apply(self, args);\n } catch (err) {\n error = AWS.util.error(error || new Error(), err);\n }\n if (error && self._haltHandlersOnError) {\n doneCallback.call(self, error);\n return;\n }\n }\n }\n doneCallback.call(self, error);\n },\n\n /**\n * Adds or copies a set of listeners from another list of\n * listeners or SequentialExecutor object.\n *\n * @param listeners [map>, AWS.SequentialExecutor]\n * a list of events and callbacks, or an event emitter object\n * containing listeners to add to this emitter object.\n * @return [AWS.SequentialExecutor] the emitter object, for chaining.\n * @example Adding listeners from a map of listeners\n * emitter.addListeners({\n * event1: [function() { ... }, function() { ... }],\n * event2: [function() { ... }]\n * });\n * emitter.emit('event1'); // emitter has event1\n * emitter.emit('event2'); // emitter has event2\n * @example Adding listeners from another emitter object\n * var emitter1 = new AWS.SequentialExecutor();\n * emitter1.on('event1', function() { ... });\n * emitter1.on('event2', function() { ... });\n * var emitter2 = new AWS.SequentialExecutor();\n * emitter2.addListeners(emitter1);\n * emitter2.emit('event1'); // emitter2 has event1\n * emitter2.emit('event2'); // emitter2 has event2\n */\n addListeners: function addListeners(listeners) {\n var self = this;\n\n // extract listeners if parameter is an SequentialExecutor object\n if (listeners._events) listeners = listeners._events;\n\n AWS.util.each(listeners, function(event, callbacks) {\n if (typeof callbacks === 'function') callbacks = [callbacks];\n AWS.util.arrayEach(callbacks, function(callback) {\n self.on(event, callback);\n });\n });\n\n return self;\n },\n\n /**\n * Registers an event with {on} and saves the callback handle function\n * as a property on the emitter object using a given `name`.\n *\n * @param name [String] the property name to set on this object containing\n * the callback function handle so that the listener can be removed in\n * the future.\n * @param (see on)\n * @return (see on)\n * @example Adding a named listener DATA_CALLBACK\n * var listener = function() { doSomething(); };\n * emitter.addNamedListener('DATA_CALLBACK', 'data', listener);\n *\n * // the following prints: true\n * console.log(emitter.DATA_CALLBACK == listener);\n */\n addNamedListener: function addNamedListener(name, eventName, callback, toHead) {\n this[name] = callback;\n this.addListener(eventName, callback, toHead);\n return this;\n },\n\n /**\n * @api private\n */\n addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback, toHead) {\n callback._isAsync = true;\n return this.addNamedListener(name, eventName, callback, toHead);\n },\n\n /**\n * Helper method to add a set of named listeners using\n * {addNamedListener}. The callback contains a parameter\n * with a handle to the `addNamedListener` method.\n *\n * @callback callback function(add)\n * The callback function is called immediately in order to provide\n * the `add` function to the block. This simplifies the addition of\n * a large group of named listeners.\n * @param add [Function] the {addNamedListener} function to call\n * when registering listeners.\n * @example Adding a set of named listeners\n * emitter.addNamedListeners(function(add) {\n * add('DATA_CALLBACK', 'data', function() { ... });\n * add('OTHER', 'otherEvent', function() { ... });\n * add('LAST', 'lastEvent', function() { ... });\n * });\n *\n * // these properties are now set:\n * emitter.DATA_CALLBACK;\n * emitter.OTHER;\n * emitter.LAST;\n */\n addNamedListeners: function addNamedListeners(callback) {\n var self = this;\n callback(\n function() {\n self.addNamedListener.apply(self, arguments);\n },\n function() {\n self.addNamedAsyncListener.apply(self, arguments);\n }\n );\n return this;\n }\n});\n\n/**\n * {on} is the prefered method.\n * @api private\n */\nAWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on;\n\n/**\n * @api private\n */\nmodule.exports = AWS.SequentialExecutor;\n","var AWS = require('./core');\nvar Api = require('./model/api');\nvar regionConfig = require('./region_config');\n\nvar inherit = AWS.util.inherit;\nvar clientCount = 0;\nvar region_utils = require('./region/utils');\n\n/**\n * The service class representing an AWS service.\n *\n * @class_abstract This class is an abstract class.\n *\n * @!attribute apiVersions\n * @return [Array] the list of API versions supported by this service.\n * @readonly\n */\nAWS.Service = inherit({\n /**\n * Create a new service object with a configuration object\n *\n * @param config [map] a map of configuration options\n */\n constructor: function Service(config) {\n if (!this.loadServiceClass) {\n throw AWS.util.error(new Error(),\n 'Service must be constructed with `new\\' operator');\n }\n\n if (config) {\n if (config.region) {\n var region = config.region;\n if (region_utils.isFipsRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n config.useFipsEndpoint = true;\n }\n if (region_utils.isGlobalRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n }\n }\n if (typeof config.useDualstack === 'boolean'\n && typeof config.useDualstackEndpoint !== 'boolean') {\n config.useDualstackEndpoint = config.useDualstack;\n }\n }\n\n var ServiceClass = this.loadServiceClass(config || {});\n if (ServiceClass) {\n var originalConfig = AWS.util.copy(config);\n var svc = new ServiceClass(config);\n Object.defineProperty(svc, '_originalConfig', {\n get: function() { return originalConfig; },\n enumerable: false,\n configurable: true\n });\n svc._clientId = ++clientCount;\n return svc;\n }\n this.initialize(config);\n },\n\n /**\n * @api private\n */\n initialize: function initialize(config) {\n var svcConfig = AWS.config[this.serviceIdentifier];\n this.config = new AWS.Config(AWS.config);\n if (svcConfig) this.config.update(svcConfig, true);\n if (config) this.config.update(config, true);\n\n this.validateService();\n if (!this.config.endpoint) regionConfig.configureEndpoint(this);\n\n this.config.endpoint = this.endpointFromTemplate(this.config.endpoint);\n this.setEndpoint(this.config.endpoint);\n //enable attaching listeners to service client\n AWS.SequentialExecutor.call(this);\n AWS.Service.addDefaultMonitoringListeners(this);\n if ((this.config.clientSideMonitoring || AWS.Service._clientSideMonitoring) && this.publisher) {\n var publisher = this.publisher;\n this.addNamedListener('PUBLISH_API_CALL', 'apiCall', function PUBLISH_API_CALL(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n this.addNamedListener('PUBLISH_API_ATTEMPT', 'apiCallAttempt', function PUBLISH_API_ATTEMPT(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n }\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n },\n\n /**\n * @api private\n */\n loadServiceClass: function loadServiceClass(serviceConfig) {\n var config = serviceConfig;\n if (!AWS.util.isEmpty(this.api)) {\n return null;\n } else if (config.apiConfig) {\n return AWS.Service.defineServiceApi(this.constructor, config.apiConfig);\n } else if (!this.constructor.services) {\n return null;\n } else {\n config = new AWS.Config(AWS.config);\n config.update(serviceConfig, true);\n var version = config.apiVersions[this.constructor.serviceIdentifier];\n version = version || config.apiVersion;\n return this.getLatestServiceClass(version);\n }\n },\n\n /**\n * @api private\n */\n getLatestServiceClass: function getLatestServiceClass(version) {\n version = this.getLatestServiceVersion(version);\n if (this.constructor.services[version] === null) {\n AWS.Service.defineServiceApi(this.constructor, version);\n }\n\n return this.constructor.services[version];\n },\n\n /**\n * @api private\n */\n getLatestServiceVersion: function getLatestServiceVersion(version) {\n if (!this.constructor.services || this.constructor.services.length === 0) {\n throw new Error('No services defined on ' +\n this.constructor.serviceIdentifier);\n }\n\n if (!version) {\n version = 'latest';\n } else if (AWS.util.isType(version, Date)) {\n version = AWS.util.date.iso8601(version).split('T')[0];\n }\n\n if (Object.hasOwnProperty(this.constructor.services, version)) {\n return version;\n }\n\n var keys = Object.keys(this.constructor.services).sort();\n var selectedVersion = null;\n for (var i = keys.length - 1; i >= 0; i--) {\n // versions that end in \"*\" are not available on disk and can be\n // skipped, so do not choose these as selectedVersions\n if (keys[i][keys[i].length - 1] !== '*') {\n selectedVersion = keys[i];\n }\n if (keys[i].substr(0, 10) <= version) {\n return selectedVersion;\n }\n }\n\n throw new Error('Could not find ' + this.constructor.serviceIdentifier +\n ' API to satisfy version constraint `' + version + '\\'');\n },\n\n /**\n * @api private\n */\n api: {},\n\n /**\n * @api private\n */\n defaultRetryCount: 3,\n\n /**\n * @api private\n */\n customizeRequests: function customizeRequests(callback) {\n if (!callback) {\n this.customRequestHandler = null;\n } else if (typeof callback === 'function') {\n this.customRequestHandler = callback;\n } else {\n throw new Error('Invalid callback type \\'' + typeof callback + '\\' provided in customizeRequests');\n }\n },\n\n /**\n * Calls an operation on a service with the given input parameters.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeRequest: function makeRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n params = params || {};\n if (this.config.params) { // copy only toplevel bound params\n var rules = this.api.operations[operation];\n if (rules) {\n params = AWS.util.copy(params);\n AWS.util.each(this.config.params, function(key, value) {\n if (rules.input.members[key]) {\n if (params[key] === undefined || params[key] === null) {\n params[key] = value;\n }\n }\n });\n }\n }\n\n var request = new AWS.Request(this, operation, params);\n this.addAllRequestListeners(request);\n this.attachMonitoringEmitter(request);\n if (callback) request.send(callback);\n return request;\n },\n\n /**\n * Calls an operation on a service with the given input parameters, without\n * any authentication data. This method is useful for \"public\" API operations.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n var request = this.makeRequest(operation, params).toUnauthenticated();\n return callback ? request.send(callback) : request;\n },\n\n /**\n * Waits for a given state\n *\n * @param state [String] the state on the service to wait for\n * @param params [map] a map of parameters to pass with each request\n * @option params $waiter [map] a map of configuration options for the waiter\n * @option params $waiter.delay [Number] The number of seconds to wait between\n * requests\n * @option params $waiter.maxAttempts [Number] The maximum number of requests\n * to send while waiting\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n waitFor: function waitFor(state, params, callback) {\n var waiter = new AWS.ResourceWaiter(this, state);\n return waiter.wait(params, callback);\n },\n\n /**\n * @api private\n */\n addAllRequestListeners: function addAllRequestListeners(request) {\n var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(),\n AWS.EventListeners.CorePost];\n for (var i = 0; i < list.length; i++) {\n if (list[i]) request.addListeners(list[i]);\n }\n\n // disable parameter validation\n if (!this.config.paramValidation) {\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n\n if (this.config.logger) { // add logging events\n request.addListeners(AWS.EventListeners.Logger);\n }\n\n this.setupRequestListeners(request);\n // call prototype's customRequestHandler\n if (typeof this.constructor.prototype.customRequestHandler === 'function') {\n this.constructor.prototype.customRequestHandler(request);\n }\n // call instance's customRequestHandler\n if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') {\n this.customRequestHandler(request);\n }\n },\n\n /**\n * Event recording metrics for a whole API call.\n * @returns {object} a subset of api call metrics\n * @api private\n */\n apiCallEvent: function apiCallEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCall',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Region: request.httpRequest.region,\n MaxRetriesExceeded: 0,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.FinalHttpStatusCode = response.httpResponse.statusCode;\n }\n if (response.error) {\n var error = response.error;\n var statusCode = response.httpResponse.statusCode;\n if (statusCode > 299) {\n if (error.code) monitoringEvent.FinalAwsException = error.code;\n if (error.message) monitoringEvent.FinalAwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.FinalSdkException = error.code || error.name;\n if (error.message) monitoringEvent.FinalSdkExceptionMessage = error.message;\n }\n }\n return monitoringEvent;\n },\n\n /**\n * Event recording metrics for an API call attempt.\n * @returns {object} a subset of api call attempt metrics\n * @api private\n */\n apiAttemptEvent: function apiAttemptEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCallAttempt',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Fqdn: request.httpRequest.endpoint.hostname,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.HttpStatusCode = response.httpResponse.statusCode;\n }\n if (\n !request._unAuthenticated &&\n request.service.config.credentials &&\n request.service.config.credentials.accessKeyId\n ) {\n monitoringEvent.AccessKey = request.service.config.credentials.accessKeyId;\n }\n if (!response.httpResponse.headers) return monitoringEvent;\n if (request.httpRequest.headers['x-amz-security-token']) {\n monitoringEvent.SessionToken = request.httpRequest.headers['x-amz-security-token'];\n }\n if (response.httpResponse.headers['x-amzn-requestid']) {\n monitoringEvent.XAmznRequestId = response.httpResponse.headers['x-amzn-requestid'];\n }\n if (response.httpResponse.headers['x-amz-request-id']) {\n monitoringEvent.XAmzRequestId = response.httpResponse.headers['x-amz-request-id'];\n }\n if (response.httpResponse.headers['x-amz-id-2']) {\n monitoringEvent.XAmzId2 = response.httpResponse.headers['x-amz-id-2'];\n }\n return monitoringEvent;\n },\n\n /**\n * Add metrics of failed request.\n * @api private\n */\n attemptFailEvent: function attemptFailEvent(request) {\n var monitoringEvent = this.apiAttemptEvent(request);\n var response = request.response;\n var error = response.error;\n if (response.httpResponse.statusCode > 299 ) {\n if (error.code) monitoringEvent.AwsException = error.code;\n if (error.message) monitoringEvent.AwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.SdkException = error.code || error.name;\n if (error.message) monitoringEvent.SdkExceptionMessage = error.message;\n }\n return monitoringEvent;\n },\n\n /**\n * Attach listeners to request object to fetch metrics of each request\n * and emit data object through \\'ApiCall\\' and \\'ApiCallAttempt\\' events.\n * @api private\n */\n attachMonitoringEmitter: function attachMonitoringEmitter(request) {\n var attemptTimestamp; //timestamp marking the beginning of a request attempt\n var attemptStartRealTime; //Start time of request attempt. Used to calculating attemptLatency\n var attemptLatency; //latency from request sent out to http response reaching SDK\n var callStartRealTime; //Start time of API call. Used to calculating API call latency\n var attemptCount = 0; //request.retryCount is not reliable here\n var region; //region cache region for each attempt since it can be updated in plase (e.g. s3)\n var callTimestamp; //timestamp when the request is created\n var self = this;\n var addToHead = true;\n\n request.on('validate', function () {\n callStartRealTime = AWS.util.realClock.now();\n callTimestamp = Date.now();\n }, addToHead);\n request.on('sign', function () {\n attemptStartRealTime = AWS.util.realClock.now();\n attemptTimestamp = Date.now();\n region = request.httpRequest.region;\n attemptCount++;\n }, addToHead);\n request.on('validateResponse', function() {\n attemptLatency = Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n });\n request.addNamedListener('API_CALL_ATTEMPT', 'success', function API_CALL_ATTEMPT() {\n var apiAttemptEvent = self.apiAttemptEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL_ATTEMPT_RETRY', 'retry', function API_CALL_ATTEMPT_RETRY() {\n var apiAttemptEvent = self.attemptFailEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n //attemptLatency may not be available if fail before response\n attemptLatency = attemptLatency ||\n Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL', 'complete', function API_CALL() {\n var apiCallEvent = self.apiCallEvent(request);\n apiCallEvent.AttemptCount = attemptCount;\n if (apiCallEvent.AttemptCount <= 0) return;\n apiCallEvent.Timestamp = callTimestamp;\n var latency = Math.round(AWS.util.realClock.now() - callStartRealTime);\n apiCallEvent.Latency = latency >= 0 ? latency : 0;\n var response = request.response;\n if (\n response.error &&\n response.error.retryable &&\n typeof response.retryCount === 'number' &&\n typeof response.maxRetries === 'number' &&\n (response.retryCount >= response.maxRetries)\n ) {\n apiCallEvent.MaxRetriesExceeded = 1;\n }\n self.emit('apiCall', [apiCallEvent]);\n });\n },\n\n /**\n * Override this method to setup any custom request listeners for each\n * new request to the service.\n *\n * @method_abstract This is an abstract method.\n */\n setupRequestListeners: function setupRequestListeners(request) {\n },\n\n /**\n * Gets the signing name for a given request\n * @api private\n */\n getSigningName: function getSigningName() {\n return this.api.signingName || this.api.endpointPrefix;\n },\n\n /**\n * Gets the signer class for a given request\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var version;\n // get operation authtype if present\n var operation = null;\n var authtype = '';\n if (request) {\n var operations = request.service.api.operations || {};\n operation = operations[request.operation] || null;\n authtype = operation ? operation.authtype : '';\n }\n if (this.config.signatureVersion) {\n version = this.config.signatureVersion;\n } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') {\n version = 'v4';\n } else if (authtype === 'bearer') {\n version = 'bearer';\n } else {\n version = this.api.signatureVersion;\n }\n return AWS.Signers.RequestSigner.getVersion(version);\n },\n\n /**\n * @api private\n */\n serviceInterface: function serviceInterface() {\n switch (this.api.protocol) {\n case 'ec2': return AWS.EventListeners.Query;\n case 'query': return AWS.EventListeners.Query;\n case 'json': return AWS.EventListeners.Json;\n case 'rest-json': return AWS.EventListeners.RestJson;\n case 'rest-xml': return AWS.EventListeners.RestXml;\n }\n if (this.api.protocol) {\n throw new Error('Invalid service `protocol\\' ' +\n this.api.protocol + ' in API config');\n }\n },\n\n /**\n * @api private\n */\n successfulResponse: function successfulResponse(resp) {\n return resp.httpResponse.statusCode < 300;\n },\n\n /**\n * How many times a failed request should be retried before giving up.\n * the defaultRetryCount can be overriden by service classes.\n *\n * @api private\n */\n numRetries: function numRetries() {\n if (this.config.maxRetries !== undefined) {\n return this.config.maxRetries;\n } else {\n return this.defaultRetryCount;\n }\n },\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions, err);\n },\n\n /**\n * @api private\n */\n retryableError: function retryableError(error) {\n if (this.timeoutError(error)) return true;\n if (this.networkingError(error)) return true;\n if (this.expiredCredentialsError(error)) return true;\n if (this.throttledError(error)) return true;\n if (error.statusCode >= 500) return true;\n return false;\n },\n\n /**\n * @api private\n */\n networkingError: function networkingError(error) {\n return error.code === 'NetworkingError';\n },\n\n /**\n * @api private\n */\n timeoutError: function timeoutError(error) {\n return error.code === 'TimeoutError';\n },\n\n /**\n * @api private\n */\n expiredCredentialsError: function expiredCredentialsError(error) {\n // TODO : this only handles *one* of the expired credential codes\n return (error.code === 'ExpiredTokenException');\n },\n\n /**\n * @api private\n */\n clockSkewError: function clockSkewError(error) {\n switch (error.code) {\n case 'RequestTimeTooSkewed':\n case 'RequestExpired':\n case 'InvalidSignatureException':\n case 'SignatureDoesNotMatch':\n case 'AuthFailure':\n case 'RequestInTheFuture':\n return true;\n default: return false;\n }\n },\n\n /**\n * @api private\n */\n getSkewCorrectedDate: function getSkewCorrectedDate() {\n return new Date(Date.now() + this.config.systemClockOffset);\n },\n\n /**\n * @api private\n */\n applyClockOffset: function applyClockOffset(newServerTime) {\n if (newServerTime) {\n this.config.systemClockOffset = newServerTime - Date.now();\n }\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(newServerTime) {\n if (newServerTime) {\n return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 300000;\n }\n },\n\n /**\n * @api private\n */\n throttledError: function throttledError(error) {\n // this logic varies between services\n if (error.statusCode === 429) return true;\n switch (error.code) {\n case 'ProvisionedThroughputExceededException':\n case 'Throttling':\n case 'ThrottlingException':\n case 'RequestLimitExceeded':\n case 'RequestThrottled':\n case 'RequestThrottledException':\n case 'TooManyRequestsException':\n case 'TransactionInProgressException': //dynamodb\n case 'EC2ThrottledException':\n return true;\n default:\n return false;\n }\n },\n\n /**\n * @api private\n */\n endpointFromTemplate: function endpointFromTemplate(endpoint) {\n if (typeof endpoint !== 'string') return endpoint;\n\n var e = endpoint;\n e = e.replace(/\\{service\\}/g, this.api.endpointPrefix);\n e = e.replace(/\\{region\\}/g, this.config.region);\n e = e.replace(/\\{scheme\\}/g, this.config.sslEnabled ? 'https' : 'http');\n return e;\n },\n\n /**\n * @api private\n */\n setEndpoint: function setEndpoint(endpoint) {\n this.endpoint = new AWS.Endpoint(endpoint, this.config);\n },\n\n /**\n * @api private\n */\n paginationConfig: function paginationConfig(operation, throwException) {\n var paginator = this.api.operations[operation].paginator;\n if (!paginator) {\n if (throwException) {\n var e = new Error();\n throw AWS.util.error(e, 'No pagination configuration for ' + operation);\n }\n return null;\n }\n\n return paginator;\n }\n});\n\nAWS.util.update(AWS.Service, {\n\n /**\n * Adds one method for each operation described in the api configuration\n *\n * @api private\n */\n defineMethods: function defineMethods(svc) {\n AWS.util.each(svc.prototype.api.operations, function iterator(method) {\n if (svc.prototype[method]) return;\n var operation = svc.prototype.api.operations[method];\n if (operation.authtype === 'none') {\n svc.prototype[method] = function (params, callback) {\n return this.makeUnauthenticatedRequest(method, params, callback);\n };\n } else {\n svc.prototype[method] = function (params, callback) {\n return this.makeRequest(method, params, callback);\n };\n }\n });\n },\n\n /**\n * Defines a new Service class using a service identifier and list of versions\n * including an optional set of features (functions) to apply to the class\n * prototype.\n *\n * @param serviceIdentifier [String] the identifier for the service\n * @param versions [Array] a list of versions that work with this\n * service\n * @param features [Object] an object to attach to the prototype\n * @return [Class] the service class defined by this function.\n */\n defineService: function defineService(serviceIdentifier, versions, features) {\n AWS.Service._serviceMap[serviceIdentifier] = true;\n if (!Array.isArray(versions)) {\n features = versions;\n versions = [];\n }\n\n var svc = inherit(AWS.Service, features || {});\n\n if (typeof serviceIdentifier === 'string') {\n AWS.Service.addVersions(svc, versions);\n\n var identifier = svc.serviceIdentifier || serviceIdentifier;\n svc.serviceIdentifier = identifier;\n } else { // defineService called with an API\n svc.prototype.api = serviceIdentifier;\n AWS.Service.defineMethods(svc);\n }\n AWS.SequentialExecutor.call(this.prototype);\n //util.clientSideMonitoring is only available in node\n if (!this.prototype.publisher && AWS.util.clientSideMonitoring) {\n var Publisher = AWS.util.clientSideMonitoring.Publisher;\n var configProvider = AWS.util.clientSideMonitoring.configProvider;\n var publisherConfig = configProvider();\n this.prototype.publisher = new Publisher(publisherConfig);\n if (publisherConfig.enabled) {\n //if csm is enabled in environment, SDK should send all metrics\n AWS.Service._clientSideMonitoring = true;\n }\n }\n AWS.SequentialExecutor.call(svc.prototype);\n AWS.Service.addDefaultMonitoringListeners(svc.prototype);\n return svc;\n },\n\n /**\n * @api private\n */\n addVersions: function addVersions(svc, versions) {\n if (!Array.isArray(versions)) versions = [versions];\n\n svc.services = svc.services || {};\n for (var i = 0; i < versions.length; i++) {\n if (svc.services[versions[i]] === undefined) {\n svc.services[versions[i]] = null;\n }\n }\n\n svc.apiVersions = Object.keys(svc.services).sort();\n },\n\n /**\n * @api private\n */\n defineServiceApi: function defineServiceApi(superclass, version, apiConfig) {\n var svc = inherit(superclass, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n\n function setApi(api) {\n if (api.isApi) {\n svc.prototype.api = api;\n } else {\n svc.prototype.api = new Api(api, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n }\n }\n\n if (typeof version === 'string') {\n if (apiConfig) {\n setApi(apiConfig);\n } else {\n try {\n setApi(AWS.apiLoader(superclass.serviceIdentifier, version));\n } catch (err) {\n throw AWS.util.error(err, {\n message: 'Could not find API configuration ' +\n superclass.serviceIdentifier + '-' + version\n });\n }\n }\n if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) {\n superclass.apiVersions = superclass.apiVersions.concat(version).sort();\n }\n superclass.services[version] = svc;\n } else {\n setApi(version);\n }\n\n AWS.Service.defineMethods(svc);\n return svc;\n },\n\n /**\n * @api private\n */\n hasService: function(identifier) {\n return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier);\n },\n\n /**\n * @param attachOn attach default monitoring listeners to object\n *\n * Each monitoring event should be emitted from service client to service constructor prototype and then\n * to global service prototype like bubbling up. These default monitoring events listener will transfer\n * the monitoring events to the upper layer.\n * @api private\n */\n addDefaultMonitoringListeners: function addDefaultMonitoringListeners(attachOn) {\n attachOn.addNamedListener('MONITOR_EVENTS_BUBBLE', 'apiCallAttempt', function EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCallAttempt', [event]);\n });\n attachOn.addNamedListener('CALL_EVENTS_BUBBLE', 'apiCall', function CALL_EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCall', [event]);\n });\n },\n\n /**\n * @api private\n */\n _serviceMap: {}\n});\n\nAWS.util.mixin(AWS.Service, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nmodule.exports = AWS.Service;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.APIGateway.prototype, {\n/**\n * Sets the Accept header to application/json.\n *\n * @api private\n */\n setAcceptHeader: function setAcceptHeader(req) {\n var httpRequest = req.httpRequest;\n if (!httpRequest.headers.Accept) {\n httpRequest.headers['Accept'] = 'application/json';\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.setAcceptHeader);\n if (request.operation === 'getExport') {\n var params = request.params || {};\n if (params.exportType === 'swagger') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n }\n});\n\n","var AWS = require('../core');\n\n// pull in CloudFront signer\nrequire('../cloudfront/signer');\n\nAWS.util.update(AWS.CloudFront.prototype, {\n\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n }\n\n});\n","var AWS = require('../core');\nrequire('../dynamodb/document_client');\n\nAWS.util.update(AWS.DynamoDB.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.service.config.dynamoDbCrc32) {\n request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n request.addListener('extractData', this.checkCrc32);\n request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n }\n },\n\n /**\n * @api private\n */\n checkCrc32: function checkCrc32(resp) {\n if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) {\n resp.data = null;\n resp.error = AWS.util.error(new Error(), {\n code: 'CRC32CheckFailed',\n message: 'CRC32 integrity check failed',\n retryable: true\n });\n resp.request.haltHandlersOnError();\n throw (resp.error);\n }\n },\n\n /**\n * @api private\n */\n crc32IsValid: function crc32IsValid(resp) {\n var crc = resp.httpResponse.headers['x-amz-crc32'];\n if (!crc) return true; // no (valid) CRC32 header\n return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body);\n },\n\n /**\n * @api private\n */\n defaultRetryCount: 10,\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n var retryDelayOptions = AWS.util.copy(this.config.retryDelayOptions);\n\n if (typeof retryDelayOptions.base !== 'number') {\n retryDelayOptions.base = 50; // default for dynamodb\n }\n var delay = AWS.util.calculateRetryDelay(retryCount, retryDelayOptions, err);\n return delay;\n }\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.EC2.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);\n request.addListener('extractError', this.extractError);\n\n if (request.operation === 'copySnapshot') {\n request.onAsync('validate', this.buildCopySnapshotPresignedUrl);\n }\n },\n\n /**\n * @api private\n */\n buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {\n if (req.params.PresignedUrl || req._subRequest) {\n return done();\n }\n\n req.params = AWS.util.copy(req.params);\n req.params.DestinationRegion = req.service.config.region;\n\n var config = AWS.util.copy(req.service.config);\n delete config.endpoint;\n config.region = req.params.SourceRegion;\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](req.params);\n newReq._subRequest = true;\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PresignedUrl = url;\n done();\n }\n });\n },\n\n /**\n * @api private\n */\n extractError: function extractError(resp) {\n // EC2 nests the error code and message deeper than other AWS Query services.\n var httpResponse = resp.httpResponse;\n var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');\n if (data.Errors) {\n resp.error = AWS.util.error(new Error(), {\n code: data.Errors.Error.Code,\n message: data.Errors.Error.Message\n });\n } else {\n resp.error = AWS.util.error(new Error(), {\n code: httpResponse.statusCode,\n message: null\n });\n }\n resp.error.requestId = data.RequestID || null;\n }\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar blobPayloadOutputOps = [\n 'deleteThingShadow',\n 'getThingShadow',\n 'updateThingShadow'\n];\n\n/**\n * Constructs a service interface object. Each API operation is exposed as a\n * function on service.\n *\n * ### Sending a Request Using IotData\n *\n * ```javascript\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * iotdata.getThingShadow(params, function (err, data) {\n * if (err) console.log(err, err.stack); // an error occurred\n * else console.log(data); // successful response\n * });\n * ```\n *\n * ### Locking the API Version\n *\n * In order to ensure that the IotData object uses this specific API,\n * you can construct the object by passing the `apiVersion` option to the\n * constructor:\n *\n * ```javascript\n * var iotdata = new AWS.IotData({\n * endpoint: 'my.host.tld',\n * apiVersion: '2015-05-28'\n * });\n * ```\n *\n * You can also set the API version globally in `AWS.config.apiVersions` using\n * the **iotdata** service identifier:\n *\n * ```javascript\n * AWS.config.apiVersions = {\n * iotdata: '2015-05-28',\n * // other service API versions\n * };\n *\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * ```\n *\n * @note You *must* provide an `endpoint` configuration parameter when\n * constructing this service. See {constructor} for more information.\n *\n * @!method constructor(options = {})\n * Constructs a service object. This object has one method for each\n * API operation.\n *\n * @example Constructing a IotData object\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * @note You *must* provide an `endpoint` when constructing this service.\n * @option (see AWS.Config.constructor)\n *\n * @service iotdata\n * @version 2015-05-28\n */\nAWS.util.update(AWS.IotData.prototype, {\n /**\n * @api private\n */\n validateService: function validateService() {\n if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) {\n var msg = 'AWS.IotData requires an explicit ' +\n '`endpoint\\' configuration option.';\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.validateResponseBody);\n if (blobPayloadOutputOps.indexOf(request.operation) > -1) {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n },\n\n /**\n * @api private\n */\n validateResponseBody: function validateResponseBody(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n var bodyCheck = body.trim();\n if (!bodyCheck || bodyCheck.charAt(0) !== '{') {\n resp.httpResponse.body = '';\n }\n }\n\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Lambda.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'invoke') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n});\n\n","var AWS = require('../core');\n\nAWS.util.update(AWS.MachineLearning.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'predict') {\n request.addListener('build', this.buildEndpoint);\n }\n },\n\n /**\n * Updates request endpoint from PredictEndpoint\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.params.PredictEndpoint;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n }\n }\n\n});\n","require('../polly/presigner');\n","var AWS = require('../core');\nvar rdsutil = require('./rdsutil');\nrequire('../rds/signer');\n /**\n * @api private\n */\n var crossRegionOperations = ['copyDBSnapshot', 'createDBInstanceReadReplica', 'createDBCluster', 'copyDBClusterSnapshot', 'startDBInstanceAutomatedBackupsReplication'];\n\n AWS.util.update(AWS.RDS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n rdsutil.setupRequestListeners(this, request, crossRegionOperations);\n },\n });\n","var AWS = require('../core');\n\nvar rdsutil = {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(service, request, crossRegionOperations) {\n if (crossRegionOperations.indexOf(request.operation) !== -1 &&\n request.params.SourceRegion) {\n request.params = AWS.util.copy(request.params);\n if (request.params.PreSignedUrl ||\n request.params.SourceRegion === service.config.region) {\n delete request.params.SourceRegion;\n } else {\n var doesParamValidation = !!service.config.paramValidation;\n // remove the validate parameters listener so we can re-add it after we build the URL\n if (doesParamValidation) {\n request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n request.onAsync('validate', rdsutil.buildCrossRegionPresignedUrl);\n if (doesParamValidation) {\n request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n }\n }\n },\n\n /**\n * @api private\n */\n buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) {\n var config = AWS.util.copy(req.service.config);\n config.region = req.params.SourceRegion;\n delete req.params.SourceRegion;\n delete config.endpoint;\n // relevant params for the operation will already be in req.params\n delete config.params;\n config.signatureVersion = 'v4';\n var destinationRegion = req.service.config.region;\n\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](AWS.util.copy(req.params));\n newReq.on('build', function addDestinationRegionParam(request) {\n var httpRequest = request.httpRequest;\n httpRequest.params.DestinationRegion = destinationRegion;\n httpRequest.body = AWS.util.queryParamsToString(httpRequest.params);\n });\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PreSignedUrl = url;\n done();\n }\n });\n }\n};\n\n/**\n * @api private\n */\nmodule.exports = rdsutil;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Route53.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.on('build', this.sanitizeUrl);\n },\n\n /**\n * @api private\n */\n sanitizeUrl: function sanitizeUrl(request) {\n var path = request.httpRequest.path;\n request.httpRequest.path = path.replace(/\\/%2F\\w+%2F/, '/');\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error) {\n if (error.code === 'PriorRequestNotComplete' &&\n error.statusCode === 400) {\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error);\n }\n }\n});\n","var AWS = require('../core');\nvar v4Credentials = require('../signers/v4_credentials');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar s3util = require('./s3util');\nvar regionUtil = require('../region_config');\n\n// Pull in managed upload extension\nrequire('../s3/managed_upload');\n\n/**\n * @api private\n */\nvar operationsWith200StatusCodeError = {\n 'completeMultipartUpload': true,\n 'copyObject': true,\n 'uploadPartCopy': true\n};\n\n/**\n * @api private\n */\n var regionRedirectErrorCodes = [\n 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints\n 'BadRequest', // head operations on virtual-hosted global bucket endpoints\n 'PermanentRedirect', // non-head operations on path-style or regional endpoints\n 301 // head operations on path-style or regional endpoints\n ];\n\nvar OBJECT_LAMBDA_SERVICE = 's3-object-lambda';\n\nAWS.util.update(AWS.S3.prototype, {\n /**\n * @api private\n */\n getSignatureVersion: function getSignatureVersion(request) {\n var defaultApiVersion = this.api.signatureVersion;\n var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;\n var regionDefinedVersion = this.config.signatureVersion;\n var isPresigned = request ? request.isPresigned() : false;\n /*\n 1) User defined version specified:\n a) always return user defined version\n 2) No user defined version specified:\n a) If not using presigned urls, default to V4\n b) If using presigned urls, default to lowest version the region supports\n */\n if (userDefinedVersion) {\n userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;\n return userDefinedVersion;\n }\n if (isPresigned !== true) {\n defaultApiVersion = 'v4';\n } else if (regionDefinedVersion) {\n defaultApiVersion = regionDefinedVersion;\n }\n return defaultApiVersion;\n },\n\n /**\n * @api private\n */\n getSigningName: function getSigningName(req) {\n if (req && req.operation === 'writeGetObjectResponse') {\n return OBJECT_LAMBDA_SERVICE;\n }\n\n var _super = AWS.Service.prototype.getSigningName;\n return (req && req._parsedArn && req._parsedArn.service)\n ? req._parsedArn.service\n : _super.call(this);\n },\n\n /**\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var signatureVersion = this.getSignatureVersion(request);\n return AWS.Signers.RequestSigner.getVersion(signatureVersion);\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n var msg;\n var messages = [];\n\n // default to us-east-1 when no region is provided\n if (!this.config.region) this.config.region = 'us-east-1';\n\n if (!this.config.endpoint && this.config.s3BucketEndpoint) {\n messages.push('An endpoint must be provided when configuring ' +\n '`s3BucketEndpoint` to true.');\n }\n if (messages.length === 1) {\n msg = messages[0];\n } else if (messages.length > 1) {\n msg = 'Multiple configuration errors:\\n' + messages.join('\\n');\n }\n if (msg) {\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n shouldDisableBodySigning: function shouldDisableBodySigning(request) {\n var signerClass = this.getSignerClass();\n if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4\n && request.httpRequest.endpoint.protocol === 'https:') {\n return true;\n }\n return false;\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n var prependListener = true;\n request.addListener('validate', this.validateScheme);\n request.addListener('validate', this.validateBucketName, prependListener);\n request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);\n\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_REGION);\n request.addListener('build', this.addContentType);\n request.addListener('build', this.computeContentMd5);\n request.addListener('build', this.computeSseCustomerKeyMd5);\n request.addListener('build', this.populateURI);\n request.addListener('afterBuild', this.addExpect100Continue);\n request.addListener('extractError', this.extractError);\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n request.addListener('extractData', this.extractData);\n request.addListener('extractData', this.extractErrorFrom200Response);\n request.addListener('beforePresign', this.prepareSignedUrl);\n if (this.shouldDisableBodySigning(request)) {\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.addListener('afterBuild', this.disableBodySigning);\n }\n //deal with ARNs supplied to Bucket\n if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {\n // avoid duplicate parsing in the future\n request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);\n\n request.removeListener('validate', this.validateBucketName);\n request.removeListener('build', this.populateURI);\n if (request._parsedArn.service === 's3') {\n request.addListener('validate', s3util.validateS3AccessPointArn);\n request.addListener('validate', this.validateArnResourceType);\n request.addListener('validate', this.validateArnRegion);\n } else if (request._parsedArn.service === 's3-outposts') {\n request.addListener('validate', s3util.validateOutpostsAccessPointArn);\n request.addListener('validate', s3util.validateOutpostsArn);\n request.addListener('validate', s3util.validateArnRegion);\n }\n request.addListener('validate', s3util.validateArnAccount);\n request.addListener('validate', s3util.validateArnService);\n request.addListener('build', this.populateUriFromAccessPointArn);\n request.addListener('build', s3util.validatePopulateUriFromArn);\n return;\n }\n //listeners regarding region inference\n request.addListener('validate', this.validateBucketEndpoint);\n request.addListener('validate', this.correctBucketRegionFromCache);\n request.onAsync('extractError', this.requestBucketRegion);\n if (AWS.util.isBrowser()) {\n request.onAsync('retry', this.reqRegionForNetworkingError);\n }\n },\n\n /**\n * @api private\n */\n validateScheme: function(req) {\n var params = req.params,\n scheme = req.httpRequest.endpoint.protocol,\n sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;\n if (sensitive && scheme !== 'https:') {\n var msg = 'Cannot send SSE keys over HTTP. Set \\'sslEnabled\\'' +\n 'to \\'true\\' in your configuration';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateBucketEndpoint: function(req) {\n if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {\n var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateArnRegion: function validateArnRegion(req) {\n s3util.validateArnRegion(req, { allowFipsEndpoint: true });\n },\n\n /**\n * Validate resource-type supplied in S3 ARN\n */\n validateArnResourceType: function validateArnResourceType(req) {\n var resource = req._parsedArn.resource;\n\n if (\n resource.indexOf('accesspoint:') !== 0 &&\n resource.indexOf('accesspoint/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'accesspoint/\\''\n });\n }\n },\n\n /**\n * @api private\n */\n validateBucketName: function validateBucketName(req) {\n var service = req.service;\n var signatureVersion = service.getSignatureVersion(req);\n var bucket = req.params && req.params.Bucket;\n var key = req.params && req.params.Key;\n var slashIndex = bucket && bucket.indexOf('/');\n if (bucket && slashIndex >= 0) {\n if (typeof key === 'string' && slashIndex > 0) {\n req.params = AWS.util.copy(req.params);\n // Need to include trailing slash to match sigv2 behavior\n var prefix = bucket.substr(slashIndex + 1) || '';\n req.params.Key = prefix + '/' + key;\n req.params.Bucket = bucket.substr(0, slashIndex);\n } else if (signatureVersion === 'v4') {\n var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;\n throw AWS.util.error(new Error(),\n { code: 'InvalidBucket', message: msg });\n }\n }\n },\n\n /**\n * @api private\n */\n isValidAccelerateOperation: function isValidAccelerateOperation(operation) {\n var invalidOperations = [\n 'createBucket',\n 'deleteBucket',\n 'listBuckets'\n ];\n return invalidOperations.indexOf(operation) === -1;\n },\n\n /**\n * When us-east-1 region endpoint configuration is set, in stead of sending request to\n * global endpoint(e.g. 's3.amazonaws.com'), we will send request to\n * 's3.us-east-1.amazonaws.com'.\n * @api private\n */\n optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',\n sharedConfig: 's3_us_east_1_regional_endpoint',\n clientConfig: 's3UsEast1RegionalEndpoint'\n });\n if (\n !(service._originalConfig || {}).endpoint &&\n req.httpRequest.region === 'us-east-1' &&\n config.s3UsEast1RegionalEndpoint === 'regional' &&\n req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0\n ) {\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.us-east-1' + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n }\n },\n\n /**\n * S3 prefers dns-compatible bucket names to be moved from the uri path\n * to the hostname as a sub-domain. This is not possible, even for dns-compat\n * buckets when using SSL and the bucket name contains a dot ('.'). The\n * ssl wildcard certificate is only 1-level deep.\n *\n * @api private\n */\n populateURI: function populateURI(req) {\n var httpRequest = req.httpRequest;\n var b = req.params.Bucket;\n var service = req.service;\n var endpoint = httpRequest.endpoint;\n if (b) {\n if (!service.pathStyleBucketName(b)) {\n if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {\n if (service.config.useDualstackEndpoint) {\n endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';\n } else {\n endpoint.hostname = b + '.s3-accelerate.amazonaws.com';\n }\n } else if (!service.config.s3BucketEndpoint) {\n endpoint.hostname =\n b + '.' + endpoint.hostname;\n }\n\n var port = endpoint.port;\n if (port !== 80 && port !== 443) {\n endpoint.host = endpoint.hostname + ':' +\n endpoint.port;\n } else {\n endpoint.host = endpoint.hostname;\n }\n\n httpRequest.virtualHostedBucket = b; // needed for signing the request\n service.removeVirtualHostedBucketFromPath(req);\n }\n }\n },\n\n /**\n * Takes the bucket name out of the path if bucket is virtual-hosted\n *\n * @api private\n */\n removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {\n var httpRequest = req.httpRequest;\n var bucket = httpRequest.virtualHostedBucket;\n if (bucket && httpRequest.path) {\n if (req.params && req.params.Key) {\n var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);\n if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {\n //path only contains key or path contains only key and querystring\n return;\n }\n }\n httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');\n if (httpRequest.path[0] !== '/') {\n httpRequest.path = '/' + httpRequest.path;\n }\n }\n },\n\n /**\n * When user supply an access point ARN in the Bucket parameter, we need to\n * populate the URI according to the ARN.\n */\n populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {\n var accessPointArn = req._parsedArn;\n\n var isOutpostArn = accessPointArn.service === 's3-outposts';\n var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';\n\n var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';\n var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';\n var fipsSuffix = !isOutpostArn && req.service.config.useFipsEndpoint ? '-fips': '';\n var dualStackSuffix = !isOutpostArn &&\n req.service.config.useDualstackEndpoint ? '.dualstack' : '';\n\n var endpoint = req.httpRequest.endpoint;\n var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);\n var useArnRegion = req.service.config.s3UseArnRegion;\n\n endpoint.hostname = [\n accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,\n serviceName + fipsSuffix + dualStackSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n\n if (isObjectLambdaArn) {\n // should be in the format: \"accesspoint/${accesspointName}\"\n var serviceName = 's3-object-lambda';\n var accesspointName = accessPointArn.resource.split('/')[1];\n var fipsSuffix = req.service.config.useFipsEndpoint ? '-fips': '';\n endpoint.hostname = [\n accesspointName + '-' + accessPointArn.accountId,\n serviceName + fipsSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n }\n endpoint.host = endpoint.hostname;\n var encodedArn = AWS.util.uriEscape(req.params.Bucket);\n var path = req.httpRequest.path;\n //remove the Bucket value from path\n req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');\n if (req.httpRequest.path[0] !== '/') {\n req.httpRequest.path = '/' + req.httpRequest.path;\n }\n req.httpRequest.region = accessPointArn.region; //region used to sign\n },\n\n /**\n * Adds Expect: 100-continue header if payload is greater-or-equal 1MB\n * @api private\n */\n addExpect100Continue: function addExpect100Continue(req) {\n var len = req.httpRequest.headers['Content-Length'];\n if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {\n req.httpRequest.headers['Expect'] = '100-continue';\n }\n },\n\n /**\n * Adds a default content type if none is supplied.\n *\n * @api private\n */\n addContentType: function addContentType(req) {\n var httpRequest = req.httpRequest;\n if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {\n // Content-Type is not set in GET/HEAD requests\n delete httpRequest.headers['Content-Type'];\n return;\n }\n\n if (!httpRequest.headers['Content-Type']) { // always have a Content-Type\n httpRequest.headers['Content-Type'] = 'application/octet-stream';\n }\n\n var contentType = httpRequest.headers['Content-Type'];\n if (AWS.util.isBrowser()) {\n if (typeof httpRequest.body === 'string' && !contentType.match(/;\\s*charset=/)) {\n var charset = '; charset=UTF-8';\n httpRequest.headers['Content-Type'] += charset;\n } else {\n var replaceFn = function(_, prefix, charsetName) {\n return prefix + charsetName.toUpperCase();\n };\n\n httpRequest.headers['Content-Type'] =\n contentType.replace(/(;\\s*charset=)(.+)$/, replaceFn);\n }\n }\n },\n\n /**\n * Checks whether checksums should be computed for the request if it's not\n * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on\n * whether {AWS.Config.computeChecksums} is set.\n *\n * @param req [AWS.Request] the request to check against\n * @return [Boolean] whether to compute checksums for a request.\n * @api private\n */\n willComputeChecksums: function willComputeChecksums(req) {\n var rules = req.service.api.operations[req.operation].input.members;\n var body = req.httpRequest.body;\n var needsContentMD5 = req.service.config.computeChecksums &&\n rules.ContentMD5 &&\n !req.params.ContentMD5 &&\n body &&\n (AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');\n\n // Sha256 signing disabled, and not a presigned url\n if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {\n return true;\n }\n\n // SigV2 and presign, for backwards compatibility purpose.\n if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {\n return true;\n }\n\n return false;\n },\n\n /**\n * A listener that computes the Content-MD5 and sets it in the header.\n * This listener is to support S3-specific features like\n * s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is\n * handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM\n *\n * @api private\n */\n computeContentMd5: function computeContentMd5(req) {\n if (req.service.willComputeChecksums(req)) {\n var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');\n req.httpRequest.headers['Content-MD5'] = md5;\n }\n },\n\n /**\n * @api private\n */\n computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {\n var keys = {\n SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',\n CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'\n };\n AWS.util.each(keys, function(key, header) {\n if (req.params[key]) {\n var value = AWS.util.crypto.md5(req.params[key], 'base64');\n req.httpRequest.headers[header] = value;\n }\n });\n },\n\n /**\n * Returns true if the bucket name should be left in the URI path for\n * a request to S3. This function takes into account the current\n * endpoint protocol (e.g. http or https).\n *\n * @api private\n */\n pathStyleBucketName: function pathStyleBucketName(bucketName) {\n // user can force path style requests via the configuration\n if (this.config.s3ForcePathStyle) return true;\n if (this.config.s3BucketEndpoint) return false;\n\n if (s3util.dnsCompatibleBucketName(bucketName)) {\n return (this.config.sslEnabled && bucketName.match(/\\./)) ? true : false;\n } else {\n return true; // not dns compatible names must always use path style\n }\n },\n\n /**\n * For COPY operations, some can be error even with status code 200.\n * SDK treats the response as exception when response body indicates\n * an exception or body is empty.\n *\n * @api private\n */\n extractErrorFrom200Response: function extractErrorFrom200Response(resp) {\n if (!operationsWith200StatusCodeError[resp.request.operation]) return;\n var httpResponse = resp.httpResponse;\n if (httpResponse.body && httpResponse.body.toString().match('')) {\n // Response body with '...' indicates an exception.\n // Get S3 client object. In ManagedUpload, this.service refers to\n // S3 client object.\n resp.data = null;\n var service = this.service ? this.service : this;\n service.extractError(resp);\n throw resp.error;\n } else if (!httpResponse.body || !httpResponse.body.toString().match(/<[\\w_]/)) {\n // When body is empty or incomplete, S3 might stop the request on detecting client\n // side aborting the request.\n resp.data = null;\n throw AWS.util.error(new Error(), {\n code: 'InternalError',\n message: 'S3 aborted request'\n });\n }\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error, request) {\n if (operationsWith200StatusCodeError[request.operation] &&\n error.statusCode === 200) {\n return true;\n } else if (request._requestRegionForBucket &&\n request.service.bucketRegionCache[request._requestRegionForBucket]) {\n return false;\n } else if (error && error.code === 'RequestTimeout') {\n return true;\n } else if (error &&\n regionRedirectErrorCodes.indexOf(error.code) != -1 &&\n error.region && error.region != request.httpRequest.region) {\n request.httpRequest.region = error.region;\n if (error.statusCode === 301) {\n request.service.updateReqBucketRegion(request);\n }\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error, request);\n }\n },\n\n /**\n * Updates httpRequest with region. If region is not provided, then\n * the httpRequest will be updated based on httpRequest.region\n *\n * @api private\n */\n updateReqBucketRegion: function updateReqBucketRegion(request, region) {\n var httpRequest = request.httpRequest;\n if (typeof region === 'string' && region.length) {\n httpRequest.region = region;\n }\n if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\\.amazonaws\\.com$/)) {\n return;\n }\n var service = request.service;\n var s3Config = service.config;\n var s3BucketEndpoint = s3Config.s3BucketEndpoint;\n if (s3BucketEndpoint) {\n delete s3Config.s3BucketEndpoint;\n }\n var newConfig = AWS.util.copy(s3Config);\n delete newConfig.endpoint;\n newConfig.region = httpRequest.region;\n\n httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;\n service.populateURI(request);\n s3Config.s3BucketEndpoint = s3BucketEndpoint;\n httpRequest.headers.Host = httpRequest.endpoint.host;\n\n if (request._asm.currentState === 'validate') {\n request.removeListener('build', service.populateURI);\n request.addListener('build', service.removeVirtualHostedBucketFromPath);\n }\n },\n\n /**\n * Provides a specialized parser for getBucketLocation -- all other\n * operations are parsed by the super class.\n *\n * @api private\n */\n extractData: function extractData(resp) {\n var req = resp.request;\n if (req.operation === 'getBucketLocation') {\n var match = resp.httpResponse.body.toString().match(/>(.+)<\\/Location/);\n delete resp.data['_'];\n if (match) {\n resp.data.LocationConstraint = match[1];\n } else {\n resp.data.LocationConstraint = '';\n }\n }\n var bucket = req.params.Bucket || null;\n if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {\n req.service.clearBucketRegionCache(bucket);\n } else {\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n if (!region && req.operation === 'createBucket' && !resp.error) {\n var createBucketConfiguration = req.params.CreateBucketConfiguration;\n if (!createBucketConfiguration) {\n region = 'us-east-1';\n } else if (createBucketConfiguration.LocationConstraint === 'EU') {\n region = 'eu-west-1';\n } else {\n region = createBucketConfiguration.LocationConstraint;\n }\n }\n if (region) {\n if (bucket && region !== req.service.bucketRegionCache[bucket]) {\n req.service.bucketRegionCache[bucket] = region;\n }\n }\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * Extracts an error object from the http response.\n *\n * @api private\n */\n extractError: function extractError(resp) {\n var codes = {\n 304: 'NotModified',\n 403: 'Forbidden',\n 400: 'BadRequest',\n 404: 'NotFound'\n };\n\n var req = resp.request;\n var code = resp.httpResponse.statusCode;\n var body = resp.httpResponse.body || '';\n\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n var bucket = req.params.Bucket || null;\n var bucketRegionCache = req.service.bucketRegionCache;\n if (region && bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n\n var cachedRegion;\n if (codes[code] && body.length === 0) {\n if (bucket && !region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n resp.error = AWS.util.error(new Error(), {\n code: codes[code],\n message: null,\n region: region\n });\n } else {\n var data = new AWS.XML.Parser().parse(body.toString());\n\n if (data.Region && !region) {\n region = data.Region;\n if (bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n } else if (bucket && !region && !data.Region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n\n resp.error = AWS.util.error(new Error(), {\n code: data.Code || code,\n message: data.Message || null,\n region: region\n });\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * If region was not obtained synchronously, then send async request\n * to get bucket region for errors resulting from wrong region.\n *\n * @api private\n */\n requestBucketRegion: function requestBucketRegion(resp, done) {\n var error = resp.error;\n var req = resp.request;\n var bucket = req.params.Bucket || null;\n\n if (!error || !bucket || error.region || req.operation === 'listObjects' ||\n (AWS.util.isNode() && req.operation === 'headBucket') ||\n (error.statusCode === 400 && req.operation !== 'headObject') ||\n regionRedirectErrorCodes.indexOf(error.code) === -1) {\n return done();\n }\n var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';\n var reqParams = {Bucket: bucket};\n if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;\n var regionReq = req.service[reqOperation](reqParams);\n regionReq._requestRegionForBucket = bucket;\n regionReq.send(function() {\n var region = req.service.bucketRegionCache[bucket] || null;\n error.region = region;\n done();\n });\n },\n\n /**\n * For browser only. If NetworkingError received, will attempt to obtain\n * the bucket region.\n *\n * @api private\n */\n reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {\n if (!AWS.util.isBrowser()) {\n return done();\n }\n var error = resp.error;\n var request = resp.request;\n var bucket = request.params.Bucket;\n if (!error || error.code !== 'NetworkingError' || !bucket ||\n request.httpRequest.region === 'us-east-1') {\n return done();\n }\n var service = request.service;\n var bucketRegionCache = service.bucketRegionCache;\n var cachedRegion = bucketRegionCache[bucket] || null;\n\n if (cachedRegion && cachedRegion !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, cachedRegion);\n done();\n } else if (!s3util.dnsCompatibleBucketName(bucket)) {\n service.updateReqBucketRegion(request, 'us-east-1');\n if (bucketRegionCache[bucket] !== 'us-east-1') {\n bucketRegionCache[bucket] = 'us-east-1';\n }\n done();\n } else if (request.httpRequest.virtualHostedBucket) {\n var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});\n service.updateReqBucketRegion(getRegionReq, 'us-east-1');\n getRegionReq._requestRegionForBucket = bucket;\n\n getRegionReq.send(function() {\n var region = service.bucketRegionCache[bucket] || null;\n if (region && region !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, region);\n }\n done();\n });\n } else {\n // DNS-compatible path-style\n // (s3ForcePathStyle or bucket name with dot over https)\n // Cannot obtain region information for this case\n done();\n }\n },\n\n /**\n * Cache for bucket region.\n *\n * @api private\n */\n bucketRegionCache: {},\n\n /**\n * Clears bucket region cache.\n *\n * @api private\n */\n clearBucketRegionCache: function(buckets) {\n var bucketRegionCache = this.bucketRegionCache;\n if (!buckets) {\n buckets = Object.keys(bucketRegionCache);\n } else if (typeof buckets === 'string') {\n buckets = [buckets];\n }\n for (var i = 0; i < buckets.length; i++) {\n delete bucketRegionCache[buckets[i]];\n }\n return bucketRegionCache;\n },\n\n /**\n * Corrects request region if bucket's cached region is different\n *\n * @api private\n */\n correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {\n var bucket = req.params.Bucket || null;\n if (bucket) {\n var service = req.service;\n var requestRegion = req.httpRequest.region;\n var cachedRegion = service.bucketRegionCache[bucket];\n if (cachedRegion && cachedRegion !== requestRegion) {\n service.updateReqBucketRegion(req, cachedRegion);\n }\n }\n },\n\n /**\n * Extracts S3 specific request ids from the http response.\n *\n * @api private\n */\n extractRequestIds: function extractRequestIds(resp) {\n var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;\n var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;\n resp.extendedRequestId = extendedRequestId;\n resp.cfId = cfId;\n\n if (resp.error) {\n resp.error.requestId = resp.requestId || null;\n resp.error.extendedRequestId = extendedRequestId;\n resp.error.cfId = cfId;\n }\n },\n\n /**\n * Get a pre-signed URL for a given operation name.\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @note The default signer allows altering the request by adding corresponding\n * headers to set some parameters (e.g. Range) and these added parameters\n * won't be signed. You must use signatureVersion v4 to to include these\n * parameters in the signed portion of the URL and enforce exact matching\n * between headers and signed params in the URL.\n * @note This operation cannot be used with a promise. See note above regarding\n * asynchronous credentials and use with a callback.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @param callback [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @example Pre-signing a getObject operation (synchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url);\n * @example Pre-signing a putObject (asynchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * s3.getSignedUrl('putObject', params, function (err, url) {\n * console.log('The URL is', url);\n * });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var url = s3.getSignedUrl('putObject', params);\n * console.log('The URL is', url);\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url); // expires in 60 seconds\n */\n getSignedUrl: function getSignedUrl(operation, params, callback) {\n params = AWS.util.copy(params || {});\n var expires = params.Expires || 900;\n\n if (typeof expires !== 'number') {\n throw AWS.util.error(new Error(),\n { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });\n }\n\n delete params.Expires; // we can't validate this\n var request = this.makeRequest(operation, params);\n\n if (callback) {\n AWS.util.defer(function() {\n request.presign(expires, callback);\n });\n } else {\n return request.presign(expires, callback);\n }\n },\n\n /**\n * @!method getSignedUrlPromise()\n * Returns a 'thenable' promise that will be resolved with a pre-signed URL\n * for a given operation name.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @callback fulfilledCallback function(url)\n * Called if the promise is fulfilled.\n * @param url [String] the signed url\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Pre-signing a getObject operation\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var promise = s3.getSignedUrlPromise('putObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n */\n\n /**\n * Get a pre-signed POST policy to support uploading to S3 directly from an\n * HTML form.\n *\n * @param params [map]\n * @option params Bucket [String] The bucket to which the post should be\n * uploaded\n * @option params Expires [Integer] (3600) The number of seconds for which\n * the presigned policy should be valid.\n * @option params Conditions [Array] An array of conditions that must be met\n * for the presigned policy to allow the\n * upload. This can include required tags,\n * the accepted range for content lengths,\n * etc.\n * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n * @option params Fields [map] Fields to include in the form. All\n * values passed in as fields will be\n * signed as exact match conditions.\n * @param callback [Function]\n *\n * @note All fields passed in when creating presigned post data will be signed\n * as exact match conditions. Any fields that will be interpolated by S3\n * must be added to the fields hash after signing, and an appropriate\n * condition for such fields must be explicitly added to the Conditions\n * array passed to this function before signing.\n *\n * @example Presiging post data with a known key\n * var params = {\n * Bucket: 'bucket',\n * Fields: {\n * key: 'key'\n * }\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * console.log('The post data is', data);\n * }\n * });\n *\n * @example Presigning post data with an interpolated key\n * var params = {\n * Bucket: 'bucket',\n * Conditions: [\n * ['starts-with', '$key', 'path/to/uploads/']\n * ]\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * data.Fields.key = 'path/to/uploads/${filename}';\n * console.log('The post data is', data);\n * }\n * });\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @return [map] If called synchronously (with no callback), returns a hash\n * with the url to set as the form action and a hash of fields\n * to include in the form.\n * @return [null] Nothing is returned if a callback is provided.\n *\n * @callback callback function (err, data)\n * @param err [Error] the error object returned from the policy signer\n * @param data [map] The data necessary to construct an HTML form\n * @param data.url [String] The URL to use as the action of the form\n * @param data.fields [map] A hash of fields that must be included in the\n * form for the upload to succeed. This hash will\n * include the signed POST policy, your access key\n * ID and security token (if present), etc. These\n * may be safely included as input elements of type\n * 'hidden.'\n */\n createPresignedPost: function createPresignedPost(params, callback) {\n if (typeof params === 'function' && callback === undefined) {\n callback = params;\n params = null;\n }\n\n params = AWS.util.copy(params || {});\n var boundParams = this.config.params || {};\n var bucket = params.Bucket || boundParams.Bucket,\n self = this,\n config = this.config,\n endpoint = AWS.util.copy(this.endpoint);\n if (!config.s3BucketEndpoint) {\n endpoint.pathname = '/' + bucket;\n }\n\n function finalizePost() {\n return {\n url: AWS.util.urlFormat(endpoint),\n fields: self.preparePostFields(\n config.credentials,\n config.region,\n bucket,\n params.Fields,\n params.Conditions,\n params.Expires\n )\n };\n }\n\n if (callback) {\n config.getCredentials(function (err) {\n if (err) {\n callback(err);\n } else {\n try {\n callback(null, finalizePost());\n } catch (err) {\n callback(err);\n }\n }\n });\n } else {\n return finalizePost();\n }\n },\n\n /**\n * @api private\n */\n preparePostFields: function preparePostFields(\n credentials,\n region,\n bucket,\n fields,\n conditions,\n expiresInSeconds\n ) {\n var now = this.getSkewCorrectedDate();\n if (!credentials || !region || !bucket) {\n throw new Error('Unable to create a POST object policy without a bucket,'\n + ' region, and credentials');\n }\n fields = AWS.util.copy(fields || {});\n conditions = (conditions || []).slice(0);\n expiresInSeconds = expiresInSeconds || 3600;\n\n var signingDate = AWS.util.date.iso8601(now).replace(/[:\\-]|\\.\\d{3}/g, '');\n var shortDate = signingDate.substr(0, 8);\n var scope = v4Credentials.createScope(shortDate, region, 's3');\n var credential = credentials.accessKeyId + '/' + scope;\n\n fields['bucket'] = bucket;\n fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';\n fields['X-Amz-Credential'] = credential;\n fields['X-Amz-Date'] = signingDate;\n if (credentials.sessionToken) {\n fields['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n var condition = {};\n condition[field] = fields[field];\n conditions.push(condition);\n }\n }\n\n fields.Policy = this.preparePostPolicy(\n new Date(now.valueOf() + expiresInSeconds * 1000),\n conditions\n );\n fields['X-Amz-Signature'] = AWS.util.crypto.hmac(\n v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),\n fields.Policy,\n 'hex'\n );\n\n return fields;\n },\n\n /**\n * @api private\n */\n preparePostPolicy: function preparePostPolicy(expiration, conditions) {\n return AWS.util.base64.encode(JSON.stringify({\n expiration: AWS.util.date.iso8601(expiration),\n conditions: conditions\n }));\n },\n\n /**\n * @api private\n */\n prepareSignedUrl: function prepareSignedUrl(request) {\n request.addListener('validate', request.service.noPresignedContentLength);\n request.removeListener('build', request.service.addContentType);\n if (!request.params.Body) {\n // no Content-MD5/SHA-256 if body is not provided\n request.removeListener('build', request.service.computeContentMd5);\n } else {\n request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n }\n },\n\n /**\n * @api private\n * @param request\n */\n disableBodySigning: function disableBodySigning(request) {\n var headers = request.httpRequest.headers;\n // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined\n if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {\n headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n }\n },\n\n /**\n * @api private\n */\n noPresignedContentLength: function noPresignedContentLength(request) {\n if (request.params.ContentLength !== undefined) {\n throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',\n message: 'ContentLength is not supported in pre-signed URLs.'});\n }\n },\n\n createBucket: function createBucket(params, callback) {\n // When creating a bucket *outside* the classic region, the location\n // constraint must be set for the bucket and it must match the endpoint.\n // This chunk of code will set the location constraint param based\n // on the region (when possible), but it will not override a passed-in\n // location constraint.\n if (typeof params === 'function' || !params) {\n callback = callback || params;\n params = {};\n }\n var hostname = this.endpoint.hostname;\n // copy params so that appending keys does not unintentioinallly\n // mutate params object argument passed in by user\n var copiedParams = AWS.util.copy(params);\n\n if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) {\n copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };\n }\n return this.makeRequest('createBucket', copiedParams, callback);\n },\n\n writeGetObjectResponse: function writeGetObjectResponse(params, callback) {\n\n var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);\n var hostname = this.endpoint.hostname;\n if (hostname.indexOf(this.config.region) !== -1) {\n // hostname specifies a region already\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');\n } else {\n // Hostname doesn't have a region.\n // Object Lambda requires an explicit region.\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');\n }\n\n request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);\n return request;\n },\n\n /**\n * @see AWS.S3.ManagedUpload\n * @overload upload(params = {}, [options], [callback])\n * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent\n * concurrent handling of parts if the payload is large enough. You can\n * configure the concurrent queue size by setting `options`. Note that this\n * is the only operation for which the SDK can retry requests with stream\n * bodies.\n *\n * @param (see AWS.S3.putObject)\n * @option (see AWS.S3.ManagedUpload.constructor)\n * @return [AWS.S3.ManagedUpload] the managed upload object that can call\n * `send()` or track progress.\n * @example Uploading a stream object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * s3.upload(params, function(err, data) {\n * console.log(err, data);\n * });\n * @example Uploading a stream with concurrency of 1 and partSize of 10mb\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var options = {partSize: 10 * 1024 * 1024, queueSize: 1};\n * s3.upload(params, options, function(err, data) {\n * console.log(err, data);\n * });\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * @param data.Location [String] the URL of the uploaded object\n * @param data.ETag [String] the ETag of the uploaded object\n * @param data.Bucket [String] the bucket to which the object was uploaded\n * @param data.Key [String] the key to which the object was uploaded\n */\n upload: function upload(params, options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options = AWS.util.merge(options || {}, {service: this, params: params});\n\n var uploader = new AWS.S3.ManagedUpload(options);\n if (typeof callback === 'function') uploader.send(callback);\n return uploader;\n }\n});\n\n/**\n * @api private\n */\nAWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getSignedUrlPromise;\n};\n\nAWS.util.addPromises(AWS.S3);\n","var AWS = require('../core');\nvar regionUtil = require('../region_config');\n\nvar s3util = {\n /**\n * @api private\n */\n isArnInParam: function isArnInParam(req, paramName) {\n var inputShape = (req.service.api.operations[req.operation] || {}).input || {};\n var inputMembers = inputShape.members || {};\n if (!req.params[paramName] || !inputMembers[paramName]) return false;\n return AWS.util.ARN.validate(req.params[paramName]);\n },\n\n /**\n * Validate service component from ARN supplied in Bucket parameter\n */\n validateArnService: function validateArnService(req) {\n var parsedArn = req._parsedArn;\n\n if (parsedArn.service !== 's3'\n && parsedArn.service !== 's3-outposts'\n && parsedArn.service !== 's3-object-lambda') {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'expect \\'s3\\' or \\'s3-outposts\\' or \\'s3-object-lambda\\' in ARN service component'\n });\n }\n },\n\n /**\n * Validate account ID from ARN supplied in Bucket parameter is a valid account\n */\n validateArnAccount: function validateArnAccount(req) {\n var parsedArn = req._parsedArn;\n\n if (!/[0-9]{12}/.exec(parsedArn.accountId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN accountID does not match regex \"[0-9]{12}\"'\n });\n }\n },\n\n /**\n * Validate ARN supplied in Bucket parameter is a valid access point ARN\n */\n validateS3AccessPointArn: function validateS3AccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['accesspoint'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 2) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access Point ARN should have one resource accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[1];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsArn: function validateOutpostsArn(req) {\n var parsedArn = req._parsedArn;\n\n if (\n parsedArn.resource.indexOf('outpost:') !== 0 &&\n parsedArn.resource.indexOf('outpost/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'outpost/\\''\n });\n }\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n var outpostId = parsedArn.resource.split(delimiter)[1];\n var 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(outpostId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outpost resource in ARN is not DNS compatible. Got ' + outpostId\n });\n }\n req._parsedArn.outpostId = outpostId;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsAccessPointArn: function validateOutpostsAccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 4) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outposts ARN should have two resources outpost/{outpostId}/accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[3];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate region field in ARN supplied in Bucket parameter is a valid region\n */\n validateArnRegion: function validateArnRegion(req, options) {\n if (options === undefined) {\n options = {};\n }\n\n var useArnRegion = s3util.loadUseArnRegionConfig(req);\n var regionFromArn = req._parsedArn.region;\n var clientRegion = req.service.config.region;\n var useFipsEndpoint = req.service.config.useFipsEndpoint;\n var allowFipsEndpoint = options.allowFipsEndpoint || false;\n\n if (!regionFromArn) {\n var message = 'ARN region is empty';\n if (req._parsedArn.service === 's3') {\n message = message + '\\nYou may want to use multi-regional ARN. The feature is not supported in current SDK. ' +\n 'You should consider switching to V3(https://github.com/aws/aws-sdk-js-v3).';\n }\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: message\n });\n }\n\n if (useFipsEndpoint && !allowFipsEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'ARN endpoint is not compatible with FIPS region'\n });\n }\n\n if (regionFromArn.indexOf('fips') >= 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'FIPS region not allowed in ARN'\n });\n }\n\n if (!useArnRegion && regionFromArn !== clientRegion) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region conflicts with access point region'\n });\n } else if (\n useArnRegion &&\n regionUtil.getEndpointSuffix(regionFromArn) !== regionUtil.getEndpointSuffix(clientRegion)\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region and access point region not in same partition'\n });\n }\n\n if (req.service.config.useAccelerateEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'useAccelerateEndpoint config is not supported with access point ARN'\n });\n }\n\n if (req._parsedArn.service === 's3-outposts' && req.service.config.useDualstackEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Dualstack is not supported with outposts access point ARN'\n });\n }\n },\n\n loadUseArnRegionConfig: function loadUseArnRegionConfig(req) {\n var envName = 'AWS_S3_USE_ARN_REGION';\n var configName = 's3_use_arn_region';\n var useArnRegion = true;\n var originalConfig = req.service._originalConfig || {};\n if (req.service.config.s3UseArnRegion !== undefined) {\n return req.service.config.s3UseArnRegion;\n } else if (originalConfig.s3UseArnRegion !== undefined) {\n useArnRegion = originalConfig.s3UseArnRegion === true;\n } else if (AWS.util.isNode()) {\n //load from environmental variable AWS_USE_ARN_REGION\n if (process.env[envName]) {\n var value = process.env[envName].trim().toLowerCase();\n if (['false', 'true'].indexOf(value) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: envName + ' only accepts true or false. Got ' + process.env[envName],\n retryable: false\n });\n }\n useArnRegion = value === 'true';\n } else { //load from shared config property use_arn_region\n var profiles = {};\n var profile = {};\n try {\n profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {}\n if (profile[configName]) {\n if (['false', 'true'].indexOf(profile[configName].trim().toLowerCase()) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: configName + ' only accepts true or false. Got ' + profile[configName],\n retryable: false\n });\n }\n useArnRegion = profile[configName].trim().toLowerCase() === 'true';\n }\n }\n }\n req.service.config.s3UseArnRegion = useArnRegion;\n return useArnRegion;\n },\n\n /**\n * Validations before URI can be populated\n */\n validatePopulateUriFromArn: function validatePopulateUriFromArn(req) {\n if (req.service._originalConfig && req.service._originalConfig.endpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Custom endpoint is not compatible with access point ARN'\n });\n }\n\n if (req.service.config.s3ForcePathStyle) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Cannot construct path-style endpoint with access point'\n });\n }\n },\n\n /**\n * Returns true if the bucket name is DNS compatible. Buckets created\n * outside of the classic region MUST be DNS compatible.\n *\n * @api private\n */\n dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) {\n var b = bucketName;\n var domain = new RegExp(/^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/);\n var ipAddress = new RegExp(/(\\d+\\.){3}\\d+/);\n var dots = new RegExp(/\\.\\./);\n return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false;\n },\n};\n\n/**\n * @api private\n */\nmodule.exports = s3util;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.SQS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.buildEndpoint);\n\n if (request.service.config.computeChecksums) {\n if (request.operation === 'sendMessage') {\n request.addListener('extractData', this.verifySendMessageChecksum);\n } else if (request.operation === 'sendMessageBatch') {\n request.addListener('extractData', this.verifySendMessageBatchChecksum);\n } else if (request.operation === 'receiveMessage') {\n request.addListener('extractData', this.verifyReceiveMessageChecksum);\n }\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageChecksum: function verifySendMessageChecksum(response) {\n if (!response.data) return;\n\n var md5 = response.data.MD5OfMessageBody;\n var body = this.params.MessageBody;\n var calculatedMd5 = this.service.calculateChecksum(body);\n if (calculatedMd5 !== md5) {\n var msg = 'Got \"' + response.data.MD5OfMessageBody +\n '\", expecting \"' + calculatedMd5 + '\".';\n this.service.throwInvalidChecksumError(response,\n [response.data.MessageId], msg);\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var entries = {};\n var errors = [];\n var messageIds = [];\n AWS.util.arrayEach(response.data.Successful, function (entry) {\n entries[entry.Id] = entry;\n });\n AWS.util.arrayEach(this.params.Entries, function (entry) {\n if (entries[entry.Id]) {\n var md5 = entries[entry.Id].MD5OfMessageBody;\n var body = entry.MessageBody;\n if (!service.isChecksumValid(md5, body)) {\n errors.push(entry.Id);\n messageIds.push(entries[entry.Id].MessageId);\n }\n }\n });\n\n if (errors.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + errors.join(', '));\n }\n },\n\n /**\n * @api private\n */\n verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var messageIds = [];\n AWS.util.arrayEach(response.data.Messages, function(message) {\n var md5 = message.MD5OfBody;\n var body = message.Body;\n if (!service.isChecksumValid(md5, body)) {\n messageIds.push(message.MessageId);\n }\n });\n\n if (messageIds.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + messageIds.join(', '));\n }\n },\n\n /**\n * @api private\n */\n throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) {\n response.error = AWS.util.error(new Error(), {\n retryable: true,\n code: 'InvalidChecksum',\n messageIds: ids,\n message: response.request.operation +\n ' returned an invalid MD5 response. ' + message\n });\n },\n\n /**\n * @api private\n */\n isChecksumValid: function isChecksumValid(checksum, data) {\n return this.calculateChecksum(data) === checksum;\n },\n\n /**\n * @api private\n */\n calculateChecksum: function calculateChecksum(data) {\n return AWS.util.crypto.md5(data, 'hex');\n },\n\n /**\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.httpRequest.params.QueueUrl;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n\n // signature version 4 requires the region name to be set,\n // sqs queue urls contain the region name\n var matches = request.httpRequest.endpoint.host.match(/^sqs\\.(.+?)\\./);\n if (matches) request.httpRequest.region = matches[1];\n }\n }\n});\n","var AWS = require('../core');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar ENV_REGIONAL_ENDPOINT_ENABLED = 'AWS_STS_REGIONAL_ENDPOINTS';\nvar CONFIG_REGIONAL_ENDPOINT_ENABLED = 'sts_regional_endpoints';\n\nAWS.util.update(AWS.STS.prototype, {\n /**\n * @overload credentialsFrom(data, credentials = null)\n * Creates a credentials object from STS response data containing\n * credentials information. Useful for quickly setting AWS credentials.\n *\n * @note This is a low-level utility function. If you want to load temporary\n * credentials into your process for subsequent requests to AWS resources,\n * you should use {AWS.TemporaryCredentials} instead.\n * @param data [map] data retrieved from a call to {getFederatedToken},\n * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}.\n * @param credentials [AWS.Credentials] an optional credentials object to\n * fill instead of creating a new object. Useful when modifying an\n * existing credentials object from a refresh call.\n * @return [AWS.TemporaryCredentials] the set of temporary credentials\n * loaded from a raw STS operation response.\n * @example Using credentialsFrom to load global AWS credentials\n * var sts = new AWS.STS();\n * sts.getSessionToken(function (err, data) {\n * if (err) console.log(\"Error getting credentials\");\n * else {\n * AWS.config.credentials = sts.credentialsFrom(data);\n * }\n * });\n * @see AWS.TemporaryCredentials\n */\n credentialsFrom: function credentialsFrom(data, credentials) {\n if (!data) return null;\n if (!credentials) credentials = new AWS.TemporaryCredentials();\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretAccessKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n return credentials;\n },\n\n assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);\n },\n\n assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback);\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validate', this.optInRegionalEndpoint, true);\n },\n\n /**\n * @api private\n */\n optInRegionalEndpoint: function optInRegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.stsRegionalEndpoints = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: ENV_REGIONAL_ENDPOINT_ENABLED,\n sharedConfig: CONFIG_REGIONAL_ENDPOINT_ENABLED,\n clientConfig: 'stsRegionalEndpoints'\n });\n if (\n config.stsRegionalEndpoints === 'regional' &&\n service.isGlobalEndpoint\n ) {\n //client will throw if region is not supplied; request will be signed with specified region\n if (!config.region) {\n throw AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n }\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.' + config.region + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n req.httpRequest.region = config.region;\n }\n }\n\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nAWS.Signers.Bearer = AWS.util.inherit(AWS.Signers.RequestSigner, {\n constructor: function Bearer(request) {\n AWS.Signers.RequestSigner.call(this, request);\n },\n\n addAuthorization: function addAuthorization(token) {\n this.request.headers['Authorization'] = 'Bearer ' + token.token;\n }\n});\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\n\n delete request.httpRequest.headers['User-Agent'];\n delete request.httpRequest.headers['X-Amz-User-Agent'];\n\n if (signerClass === AWS.Signers.V4) {\n if (expires > 604800) { // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' +\n 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime', message: message, retryable: false\n });\n }\n request.httpRequest.headers[expiresHeader] = expires;\n } else if (signerClass === AWS.Signers.S3) {\n var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();\n request.httpRequest.headers[expiresHeader] = parseInt(\n AWS.util.date.unixTimestamp(now) + expires, 10).toString();\n } else {\n throw AWS.util.error(new Error(), {\n message: 'Presigning only supports S3 or SigV4 signing.',\n code: 'UnsupportedSigner', retryable: false\n });\n }\n}\n\n/**\n * @api private\n */\nfunction signedUrlSigner(request) {\n var endpoint = request.httpRequest.endpoint;\n var parsedUrl = AWS.util.urlParse(request.httpRequest.path);\n var queryParams = {};\n\n if (parsedUrl.search) {\n queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));\n }\n\n var auth = request.httpRequest.headers['Authorization'].split(' ');\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n if (key.indexOf('x-amz-meta-') === 0) {\n // Delete existing, potentially not normalized key\n delete queryParams[key];\n key = key.toLowerCase();\n }\n queryParams[key] = value;\n });\n delete request.httpRequest.headers[expiresHeader];\n delete queryParams['Authorization'];\n delete queryParams['Host'];\n } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing\n auth.shift();\n var rest = auth.join(' ');\n var signature = rest.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];\n queryParams['X-Amz-Signature'] = signature;\n delete queryParams['Expires'];\n }\n\n // build URL\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n\n/**\n * @api private\n */\nAWS.Signers.Presign = inherit({\n /**\n * @api private\n */\n sign: function sign(request, expireTime, callback) {\n request.httpRequest.headers[expiresHeader] = expireTime || 3600;\n request.on('build', signedUrlBuilder);\n request.on('sign', signedUrlSigner);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.COMPUTE_SHA256);\n\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function() {\n if (this.response.error) callback(this.response.error);\n else {\n callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));\n }\n });\n } else {\n request.build();\n if (request.response.error) throw request.response.error;\n return AWS.util.urlFormat(request.httpRequest.endpoint);\n }\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.Presign;\n","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\n },\n\n getServiceClientId: function getServiceClientId() {\n return this.serviceClientId;\n }\n});\n\nAWS.Signers.RequestSigner.getVersion = function getVersion(version) {\n switch (version) {\n case 'v2': return AWS.Signers.V2;\n case 'v3': return AWS.Signers.V3;\n case 's3v4': return AWS.Signers.V4;\n case 'v4': return AWS.Signers.V4;\n case 's3': return AWS.Signers.S3;\n case 'v3https': return AWS.Signers.V3Https;\n case 'bearer': return AWS.Signers.Bearer;\n }\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\nrequire('./v3');\nrequire('./v3https');\nrequire('./v4');\nrequire('./s3');\nrequire('./presign');\nrequire('./bearer');\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {\n /**\n * When building the stringToSign, these sub resource params should be\n * part of the canonical resource string with their NON-decoded values\n */\n subResources: {\n 'acl': 1,\n 'accelerate': 1,\n 'analytics': 1,\n 'cors': 1,\n 'lifecycle': 1,\n 'delete': 1,\n 'inventory': 1,\n 'location': 1,\n 'logging': 1,\n 'metrics': 1,\n 'notification': 1,\n 'partNumber': 1,\n 'policy': 1,\n 'requestPayment': 1,\n 'replication': 1,\n 'restore': 1,\n 'tagging': 1,\n 'torrent': 1,\n 'uploadId': 1,\n 'uploads': 1,\n 'versionId': 1,\n 'versioning': 1,\n 'versions': 1,\n 'website': 1\n },\n\n // when building the stringToSign, these querystring params should be\n // part of the canonical resource string with their NON-encoded values\n responseHeaders: {\n 'response-content-type': 1,\n 'response-content-language': 1,\n 'response-expires': 1,\n 'response-cache-control': 1,\n 'response-content-disposition': 1,\n 'response-content-encoding': 1\n },\n\n addAuthorization: function addAuthorization(credentials, date) {\n if (!this.request.headers['presigned-expires']) {\n this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);\n }\n\n if (credentials.sessionToken) {\n // presigned URLs require this header to be lowercased\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n var signature = this.sign(credentials.secretAccessKey, this.stringToSign());\n var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;\n\n this.request.headers['Authorization'] = auth;\n },\n\n stringToSign: function stringToSign() {\n var r = this.request;\n\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || '');\n\n // This is the \"Date\" header, but we use X-Amz-Date.\n // The S3 signing mechanism requires us to pass an empty\n // string for this Date header regardless.\n parts.push(r.headers['presigned-expires'] || '');\n\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n\n return parts.join('\\n');\n\n },\n\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n\n var amzHeaders = [];\n\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i))\n amzHeaders.push(name);\n });\n\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\n });\n\n var parts = [];\n AWS.util.arrayEach.call(this, amzHeaders, function (name) {\n parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));\n });\n\n return parts.join('\\n');\n\n },\n\n canonicalizedResource: function canonicalizedResource() {\n\n var r = this.request;\n\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n\n var resource = '';\n\n if (r.virtualHostedBucket)\n resource += '/' + r.virtualHostedBucket;\n\n resource += path;\n\n if (querystring) {\n\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = { name: name };\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n resources.push(subresource);\n }\n });\n\n resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });\n\n if (resources.length) {\n\n querystring = [];\n AWS.util.arrayEach(resources, function (res) {\n if (res.value === undefined) {\n querystring.push(res.name);\n } else {\n querystring.push(res.name + '=' + res.value);\n }\n });\n\n resource += '?' + querystring.join('&');\n }\n\n }\n\n return resource;\n\n },\n\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.S3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n if (!date) date = AWS.util.date.getDate();\n\n var r = this.request;\n\n r.params.Timestamp = AWS.util.date.iso8601(date);\n r.params.SignatureVersion = '2';\n r.params.SignatureMethod = 'HmacSHA256';\n r.params.AWSAccessKeyId = credentials.accessKeyId;\n\n if (credentials.sessionToken) {\n r.params.SecurityToken = credentials.sessionToken;\n }\n\n delete r.params.Signature; // delete old Signature for re-signing\n r.params.Signature = this.signature(credentials);\n\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push(this.request.endpoint.host.toLowerCase());\n parts.push(this.request.pathname());\n parts.push(AWS.util.queryParamsToString(this.request.params));\n return parts.join('\\n');\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V2;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n var datetime = AWS.util.date.rfc822(date);\n\n this.request.headers['X-Amz-Date'] = datetime;\n\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n this.request.headers['X-Amzn-Authorization'] =\n this.authorization(credentials, datetime);\n\n },\n\n authorization: function authorization(credentials) {\n return 'AWS3 ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'SignedHeaders=' + this.signedHeaders() + ',' +\n 'Signature=' + this.signature(credentials);\n },\n\n signedHeaders: function signedHeaders() {\n var headers = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n headers.push(h.toLowerCase());\n });\n return headers.sort().join(';');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = this.request.headers;\n var parts = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());\n });\n return parts.sort().join('\\n') + '\\n';\n },\n\n headersToSign: function headersToSign() {\n var headers = [];\n AWS.util.each(this.request.headers, function iterator(k) {\n if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {\n headers.push(k);\n }\n });\n return headers;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push('/');\n parts.push('');\n parts.push(this.canonicalHeaders());\n parts.push(this.request.body);\n return AWS.util.crypto.sha256(parts.join('\\n'));\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n\n/**\n * @api private\n */\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'Signature=' + this.signature(credentials);\n },\n\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3Https;\n","var AWS = require('../core');\nvar v4Credentials = require('./v4_credentials');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nAWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {\n constructor: function V4(request, serviceName, options) {\n AWS.Signers.RequestSigner.call(this, request);\n this.serviceName = serviceName;\n options = options || {};\n this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;\n this.operation = options.operation;\n this.signatureVersion = options.signatureVersion;\n },\n\n algorithm: 'AWS4-HMAC-SHA256',\n\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.iso8601(date).replace(/[:\\-]|\\.\\d{3}/g, '');\n\n if (this.isPresigned()) {\n this.updateForPresigned(credentials, datetime);\n } else {\n this.addHeaders(credentials, datetime);\n }\n\n this.request.headers['Authorization'] =\n this.authorization(credentials, datetime);\n },\n\n addHeaders: function addHeaders(credentials, datetime) {\n this.request.headers['X-Amz-Date'] = datetime;\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n },\n\n updateForPresigned: function updateForPresigned(credentials, datetime) {\n var credString = this.credentialString(datetime);\n var qs = {\n 'X-Amz-Date': datetime,\n 'X-Amz-Algorithm': this.algorithm,\n 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,\n 'X-Amz-Expires': this.request.headers[expiresHeader],\n 'X-Amz-SignedHeaders': this.signedHeaders()\n };\n\n if (credentials.sessionToken) {\n qs['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n\n if (this.request.headers['Content-Type']) {\n qs['Content-Type'] = this.request.headers['Content-Type'];\n }\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n }\n\n // need to pull in any other X-Amz-* headers\n AWS.util.each.call(this, this.request.headers, function(key, value) {\n if (key === expiresHeader) return;\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase();\n // Metadata should be normalized\n if (lowerKey.indexOf('x-amz-meta-') === 0) {\n qs[lowerKey] = value;\n } else if (lowerKey.indexOf('x-amz-') === 0) {\n qs[key] = value;\n }\n }\n });\n\n var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' +\n credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(\n credentials,\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName,\n this.signatureCache\n );\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\n },\n\n stringToSign: function stringToSign(datetime) {\n var parts = [];\n parts.push('AWS4-HMAC-SHA256');\n parts.push(datetime);\n parts.push(this.credentialString(datetime));\n parts.push(this.hexEncodedHash(this.canonicalString()));\n return parts.join('\\n');\n },\n\n canonicalString: function canonicalString() {\n var parts = [], pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\n\n parts.push(this.request.method);\n parts.push(pathname);\n parts.push(this.request.search());\n parts.push(this.canonicalHeaders() + '\\n');\n parts.push(this.signedHeaders());\n parts.push(this.hexEncodedBodyHash());\n return parts.join('\\n');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = [];\n AWS.util.each.call(this, this.request.headers, function (key, item) {\n headers.push([key, item]);\n });\n headers.sort(function (a, b) {\n return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;\n });\n var parts = [];\n AWS.util.arrayEach.call(this, headers, function (item) {\n var key = item[0].toLowerCase();\n if (this.isSignableHeader(key)) {\n var value = item[1];\n if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {\n throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {\n code: 'InvalidHeader'\n });\n }\n parts.push(key + ':' +\n this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n },\n\n signedHeaders: function signedHeaders() {\n var keys = [];\n AWS.util.each.call(this, this.request.headers, function (key) {\n key = key.toLowerCase();\n if (this.isSignableHeader(key)) keys.push(key);\n });\n return keys.sort().join(';');\n },\n\n credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName\n );\n },\n\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {\n return 'UNSIGNED-PAYLOAD';\n } else if (request.headers['X-Amz-Content-Sha256']) {\n return request.headers['X-Amz-Content-Sha256'];\n } else {\n return this.hexEncodedHash(this.request.body || '');\n }\n },\n\n unsignableHeaders: [\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n expiresHeader,\n 'expect',\n 'x-amzn-trace-id'\n ],\n\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V4;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar cachedSecret = {};\n\n/**\n * @api private\n */\nvar cacheQueue = [];\n\n/**\n * @api private\n */\nvar maxCacheEntries = 50;\n\n/**\n * @api private\n */\nvar v4Identifier = 'aws4_request';\n\n/**\n * @api private\n */\nmodule.exports = {\n /**\n * @api private\n *\n * @param date [String]\n * @param region [String]\n * @param serviceName [String]\n * @return [String]\n */\n createScope: function createScope(date, region, serviceName) {\n return [\n date.substr(0, 8),\n region,\n serviceName,\n v4Identifier\n ].join('/');\n },\n\n /**\n * @api private\n *\n * @param credentials [Credentials]\n * @param date [String]\n * @param region [String]\n * @param service [String]\n * @param shouldCache [Boolean]\n * @return [String]\n */\n getSigningKey: function getSigningKey(\n credentials,\n date,\n region,\n service,\n shouldCache\n ) {\n var credsIdentifier = AWS.util.crypto\n .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n if (shouldCache && (cacheKey in cachedSecret)) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac(\n 'AWS4' + credentials.secretAccessKey,\n date,\n 'buffer'\n );\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n if (cacheQueue.length > maxCacheEntries) {\n // remove the oldest entry (not the least recently used)\n delete cachedSecret[cacheQueue.shift()];\n }\n }\n\n return signingKey;\n },\n\n /**\n * @api private\n *\n * Empties the derived signing key cache. Made available for testing purposes\n * only.\n */\n emptyCache: function emptyCache() {\n cachedSecret = {};\n cacheQueue = [];\n }\n};\n","function AcceptorStateMachine(states, state) {\n this.currentState = state || null;\n this.states = states || {};\n}\n\nAcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) {\n if (typeof finalState === 'function') {\n inputError = bindObject; bindObject = done;\n done = finalState; finalState = null;\n }\n\n var self = this;\n var state = self.states[self.currentState];\n state.fn.call(bindObject || self, inputError, function(err) {\n if (err) {\n if (state.fail) self.currentState = state.fail;\n else return done ? done.call(bindObject, err) : null;\n } else {\n if (state.accept) self.currentState = state.accept;\n else return done ? done.call(bindObject) : null;\n }\n if (self.currentState === finalState) {\n return done ? done.call(bindObject, err) : null;\n }\n\n self.runTo(finalState, done, bindObject, err);\n });\n};\n\nAcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) {\n if (typeof acceptState === 'function') {\n fn = acceptState; acceptState = null; failState = null;\n } else if (typeof failState === 'function') {\n fn = failState; failState = null;\n }\n\n if (!this.currentState) this.currentState = name;\n this.states[name] = { accept: acceptState, fail: failState, fn: fn };\n return this;\n};\n\n/**\n * @api private\n */\nmodule.exports = AcceptorStateMachine;\n","/* eslint guard-for-in:0 */\nvar AWS;\n\n/**\n * A set of utility methods for use with the AWS SDK.\n *\n * @!attribute abort\n * Return this value from an iterator function {each} or {arrayEach}\n * to break out of the iteration.\n * @example Breaking out of an iterator function\n * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) {\n * if (key == 'b') return AWS.util.abort;\n * });\n * @see each\n * @see arrayEach\n * @api private\n */\nvar util = {\n environment: 'nodejs',\n engine: function engine() {\n if (util.isBrowser() && typeof navigator !== 'undefined') {\n return navigator.userAgent;\n } else {\n var engine = process.platform + '/' + process.version;\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n return engine;\n }\n },\n\n userAgent: function userAgent() {\n var name = util.environment;\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape);\n\n // AWS percent-encodes some extra non-standard characters in a URI\n output = output.replace(/[*]/g, function(ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n\n return output;\n },\n\n uriEscapePath: function uriEscapePath(string) {\n var parts = [];\n util.arrayEach(string.split('/'), function (part) {\n parts.push(util.uriEscape(part));\n });\n return parts.join('/');\n },\n\n urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n\n util.arrayEach(sortedKeys, function(name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function(item) { vals.push(escape(item)); });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n items.push(result);\n });\n\n return items.join('&');\n },\n\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\n },\n\n base64: {\n encode: function encode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 encode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n return util.buffer.toBuffer(string, 'base64');\n }\n\n },\n\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function(data, encoding) {\n return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ?\n util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n\n alloc: function(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\n if (typeof util.Buffer.alloc === 'function') {\n return util.Buffer.alloc(size, fill, encoding);\n } else {\n var buf = new util.Buffer(size);\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n return buf;\n }\n },\n\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n\n var readable = new (util.stream.Readable)();\n var pos = 0;\n readable._read = function(size) {\n if (pos >= buffer.length) return readable.push(null);\n\n var end = pos + size;\n if (end > buffer.length) end = buffer.length;\n readable.push(buffer.slice(pos, end));\n pos = end;\n };\n\n return readable;\n },\n\n /**\n * Concatenates a list of Buffer objects.\n */\n concat: function(buffers) {\n var length = 0,\n offset = 0,\n buffer = null, i;\n\n for (i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n buffer = util.buffer.alloc(length);\n\n for (i = 0; i < buffers.length; i++) {\n buffers[i].copy(buffer, offset);\n offset += buffers[i].length;\n }\n\n return buffer;\n }\n },\n\n string: {\n byteLength: function byteLength(string) {\n if (string === null || string === undefined) return 0;\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n\n if (typeof string.byteLength === 'number') {\n return string.byteLength;\n } else if (typeof string.length === 'number') {\n return string.length;\n } else if (typeof string.size === 'number') {\n return string.size;\n } else if (typeof string.path === 'string') {\n return require('fs').lstatSync(string.path).size;\n } else {\n throw util.error(new Error('Cannot determine length of ' + string),\n { object: string });\n }\n },\n\n upperFirst: function upperFirst(string) {\n return string[0].toUpperCase() + string.substr(1);\n },\n\n lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n\n ini: {\n parse: function string(ini) {\n var currentSection, map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function(line) {\n line = line.split(/(^|\\s)[;#]/)[0].trim(); // remove comments and trim\n var isSection = line[0] === '[' && line[line.length - 1] === ']';\n if (isSection) {\n currentSection = line.substring(1, line.length - 1);\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(\n new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.')\n );\n }\n } else if (currentSection) {\n var indexOfEqualsSign = line.indexOf('=');\n var start = 0;\n var end = line.length - 1;\n var isAssignment =\n indexOfEqualsSign !== -1 && indexOfEqualsSign !== start && indexOfEqualsSign !== end;\n\n if (isAssignment) {\n var name = line.substring(0, indexOfEqualsSign).trim();\n var value = line.substring(indexOfEqualsSign + 1).trim();\n\n map[currentSection] = map[currentSection] || {};\n map[currentSection][name] = value;\n }\n }\n });\n\n return map;\n }\n },\n\n fn: {\n noop: function() {},\n callback: function (err) { if (err) throw err; },\n\n /**\n * Turn a synchronous function into as \"async\" function by making it call\n * a callback. The underlying function is called with all but the last argument,\n * which is treated as the callback. The callback is passed passed a first argument\n * of null on success to mimick standard node callbacks.\n */\n makeAsync: function makeAsync(fn, expectedArgs) {\n if (expectedArgs && expectedArgs <= fn.length) {\n return fn;\n }\n\n return function() {\n var args = Array.prototype.slice.call(arguments, 0);\n var callback = args.pop();\n var result = fn.apply(null, args);\n callback(result);\n };\n }\n },\n\n /**\n * Date and time utility functions.\n */\n date: {\n\n /**\n * @return [Date] the current JavaScript date object. Since all\n * AWS services rely on this date object, you can override\n * this function to provide a special time value to AWS service\n * requests.\n */\n getDate: function getDate() {\n if (!AWS) AWS = require('./core');\n if (AWS.config.systemClockOffset) { // use offset when non-zero\n return new Date(new Date().getTime() + AWS.config.systemClockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @return [String] the date in ISO-8601 format\n */\n iso8601: function iso8601(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n },\n\n /**\n * @return [String] the date in RFC 822 format\n */\n rfc822: function rfc822(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toUTCString();\n },\n\n /**\n * @return [Integer] the UNIX timestamp value for the current time\n */\n unixTimestamp: function unixTimestamp(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.getTime() / 1000;\n },\n\n /**\n * @param [String,number,Date] date\n * @return [Date]\n */\n from: function format(date) {\n if (typeof date === 'number') {\n return new Date(date * 1000); // unix timestamp\n } else {\n return new Date(date);\n }\n },\n\n /**\n * Given a Date or date-like value, this function formats the\n * date into a string of the requested value.\n * @param [String,number,Date] date\n * @param [String] formatter Valid formats are:\n # * 'iso8601'\n # * 'rfc822'\n # * 'unixTimestamp'\n * @return [String]\n */\n format: function format(date, formatter) {\n if (!formatter) formatter = 'iso8601';\n return util.date[formatter](util.date.from(date));\n },\n\n parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') { // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) { // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) { // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) { // rfc822\n return new Date(value);\n } else {\n throw util.error(\n new Error('unhandled timestamp format: ' + value),\n {code: 'TimestampParserError'});\n }\n }\n\n },\n\n crypto: {\n crc32Table: [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,\n 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,\n 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,\n 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,\n 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,\n 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,\n 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,\n 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,\n 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,\n 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,\n 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,\n 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,\n 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,\n 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,\n 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,\n 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,\n 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,\n 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,\n 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,\n 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,\n 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,\n 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,\n 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,\n 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,\n 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,\n 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,\n 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,\n 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,\n 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,\n 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,\n 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,\n 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,\n 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,\n 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,\n 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,\n 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,\n 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,\n 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,\n 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,\n 0x2D02EF8D],\n\n crc32: function crc32(data) {\n var tbl = util.crypto.crc32Table;\n var crc = 0 ^ -1;\n\n if (typeof data === 'string') {\n data = util.buffer.toBuffer(data);\n }\n\n for (var i = 0; i < data.length; i++) {\n var code = data.readUInt8(i);\n crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];\n }\n return (crc ^ -1) >>> 0;\n },\n\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n if (digest === 'buffer') { digest = undefined; }\n if (!fn) fn = 'sha256';\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n return util.crypto.lib.createHmac(fn, key).update(string).digest(digest);\n },\n\n md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n\n hash: function(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n if (!digest) { digest = 'binary'; }\n if (digest === 'buffer') { digest = undefined; }\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data);\n //Identifying objects with an ArrayBuffer as buffers\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' &&\n typeof data.on === 'function' && !isBuffer) {\n data.on('data', function(chunk) { hash.update(chunk); });\n data.on('error', function(err) { callback(err); });\n data.on('end', function() { callback(null, hash.digest(digest)); });\n } else if (callback && sliceFn && !isBuffer &&\n typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0, size = 1024 * 512;\n var reader = new FileReader();\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n reader.onload = function() {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n return;\n }\n\n var back = index + size;\n if (back > data.size) back = data.size;\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if (util.isBrowser() && typeof data === 'object' && !isBuffer) {\n data = new util.Buffer(new Uint8Array(data));\n }\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n\n toHex: function toHex(data) {\n var out = [];\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n return out.join('');\n },\n\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\n\n each: function each(object, iterFunction) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n var ret = iterFunction.call(this, key, object[key]);\n if (ret === util.abort) break;\n }\n }\n },\n\n arrayEach: function arrayEach(array, iterFunction) {\n for (var idx in array) {\n if (Object.prototype.hasOwnProperty.call(array, idx)) {\n var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));\n if (ret === util.abort) break;\n }\n }\n },\n\n update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {};\n // jshint forin:false\n for (var key in object) {\n dupe[key] = object[key];\n }\n return dupe;\n },\n\n isEmpty: function isEmpty(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n },\n\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\n },\n\n isType: function isType(obj, type) {\n // handle cross-\"frame\" objects\n if (typeof type === 'function') type = util.typeName(type);\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n typeName: function typeName(type) {\n if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name;\n var str = type.toString();\n var match = str.match(/^\\s*function (.+)\\(/);\n return match ? match[1] : str;\n },\n\n error: function error(err, options) {\n var originalError = null;\n if (typeof err.message === 'string' && err.message !== '') {\n if (typeof options === 'string' || (options && options.message)) {\n originalError = util.copy(err);\n originalError.message = err.message;\n }\n }\n err.message = err.message || null;\n\n if (typeof options === 'string') {\n err.message = options;\n } else if (typeof options === 'object' && options !== null) {\n util.update(err, options);\n if (options.message)\n err.message = options.message;\n if (options.code || options.name)\n err.code = options.code || options.name;\n if (options.stack)\n err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {writable: true, enumerable: false});\n Object.defineProperty(err, 'message', {enumerable: true});\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n\n if (originalError) {\n err.originalError = originalError;\n }\n\n\n for (var key in options || {}) {\n if (key[0] === '[' && key[key.length - 1] === ']') {\n key = key.slice(1, -1);\n if (key === 'code' || key === 'message') {\n continue;\n }\n err['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(err, key, {\n value: err[key] || (options && options[key]) || (originalError && originalError[key]),\n enumerable: false,\n writable: true\n });\n }\n }\n\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n }\n\n // constructor not supplied, create pass-through ctor\n if (features.constructor === Object) {\n features.constructor = function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n };\n }\n\n features.constructor.prototype = newObject;\n util.update(features.constructor.prototype, features);\n features.constructor.__super__ = klass;\n return features.constructor;\n },\n\n /**\n * @api private\n */\n mixin: function mixin() {\n var klass = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n // jshint forin:false\n for (var prop in arguments[i].prototype) {\n var fn = arguments[i].prototype[prop];\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\n }\n }\n return klass;\n },\n\n /**\n * @api private\n */\n hideProperties: function hideProperties(obj, props) {\n if (typeof Object.defineProperty !== 'function') return;\n\n util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false, writable: true, configurable: true });\n });\n },\n\n /**\n * @api private\n */\n property: function property(obj, name, value, enumerable, isValue) {\n var opts = {\n configurable: true,\n enumerable: enumerable !== undefined ? enumerable : true\n };\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n }\n else {\n opts.value = value; opts.writable = true;\n }\n\n Object.defineProperty(obj, name, opts);\n },\n\n /**\n * @api private\n */\n memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {\n var cachedValue = null;\n\n // build enumerable attribute for each value with lazy accessor.\n util.property(obj, name, function() {\n if (cachedValue === null) {\n cachedValue = get();\n }\n return cachedValue;\n }, enumerable);\n },\n\n /**\n * TODO Remove in major version revision\n * This backfill populates response data without the\n * top-level payload name.\n *\n * @api private\n */\n hoistPayloadMember: function hoistPayloadMember(resp) {\n var req = resp.request;\n var operationName = req.operation;\n var operation = req.service.api.operations[operationName];\n var output = operation.output;\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n if (payloadMember.type === 'structure') {\n util.each(responsePayload, function(key, value) {\n util.property(resp.data, key, value, false);\n });\n }\n }\n },\n\n /**\n * Compute SHA-256 checksums of streams\n *\n * @api private\n */\n computeSha256: function computeSha256(body, done) {\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n var fs = require('fs');\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') { // assume file object\n var settings = {};\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n body = fs.createReadStream(body.path, settings);\n } else { // TODO support other stream types\n return done(new Error('Non-file stream objects are ' +\n 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function(err, sha) {\n if (err) done(err);\n else done(null, sha);\n });\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(serverTime) {\n if (serverTime) {\n util.property(AWS.config, 'isClockSkewed',\n Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime)\n AWS.config.systemClockOffset = serverTime - new Date().getTime();\n },\n\n /**\n * @api private\n */\n extractRequestId: function extractRequestId(resp) {\n var requestId = resp.httpResponse.headers['x-amz-request-id'] ||\n resp.httpResponse.headers['x-amzn-requestid'];\n\n if (!requestId && resp.data && resp.data.ResponseMetadata) {\n requestId = resp.data.ResponseMetadata.RequestId;\n }\n\n if (requestId) {\n resp.requestId = requestId;\n }\n\n if (resp.error) {\n resp.error.requestId = requestId;\n }\n },\n\n /**\n * @api private\n */\n addPromises: function addPromises(constructors, PromiseDependency) {\n var deletePromises = false;\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\n if (typeof PromiseDependency !== 'function') deletePromises = true;\n if (!Array.isArray(constructors)) constructors = [constructors];\n\n for (var ind = 0; ind < constructors.length; ind++) {\n var constructor = constructors[ind];\n if (deletePromises) {\n if (constructor.deletePromisesFromClass) {\n constructor.deletePromisesFromClass();\n }\n } else if (constructor.addPromisesToClass) {\n constructor.addPromisesToClass(PromiseDependency);\n }\n }\n },\n\n /**\n * @api private\n * Return a function that will return a promise whose fate is decided by the\n * callback behavior of the given method with `methodName`. The method to be\n * promisified should conform to node.js convention of accepting a callback as\n * last argument and calling that callback with error as the first argument\n * and success value on the second argument.\n */\n promisifyMethod: function promisifyMethod(methodName, PromiseDependency) {\n return function promise() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n return new PromiseDependency(function(resolve, reject) {\n args.push(function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n self[methodName].apply(self, args);\n });\n };\n },\n\n /**\n * @api private\n */\n isDualstackAvailable: function isDualstackAvailable(service) {\n if (!service) return false;\n var metadata = require('../apis/metadata.json');\n if (typeof service !== 'string') service = service.serviceIdentifier;\n if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false;\n return !!metadata[service].dualstackAvailable;\n },\n\n /**\n * @api private\n */\n calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) {\n if (!retryDelayOptions) retryDelayOptions = {};\n var customBackoff = retryDelayOptions.customBackoff || null;\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\n var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100;\n var delay = Math.random() * (Math.pow(2, retryCount) * base);\n return delay;\n },\n\n /**\n * @api private\n */\n handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) {\n if (!options) options = {};\n var http = AWS.HttpClient.getInstance();\n var httpOptions = options.httpOptions || {};\n var retryCount = 0;\n\n var errCallback = function(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true;\n\n // Call `calculateRetryDelay()` only when relevant, see #3401\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n cb(err);\n };\n\n var sendRequest = function() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function(httpResponse) {\n httpResponse.on('data', function(chunk) { data += chunk.toString(); });\n httpResponse.on('end', function() {\n var statusCode = httpResponse.statusCode;\n if (statusCode < 300) {\n cb(null, data);\n } else {\n var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0;\n var err = util.error(new Error(),\n {\n statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\n }\n );\n if (retryAfter && err.retryable) err.retryAfter = retryAfter;\n errCallback(err);\n }\n });\n }, errCallback);\n };\n\n AWS.util.defer(sendRequest);\n },\n\n /**\n * @api private\n */\n uuid: {\n v4: function uuidV4() {\n return require('uuid').v4();\n }\n },\n\n /**\n * @api private\n */\n convertPayloadToString: function convertPayloadToString(resp) {\n var req = resp.request;\n var operation = req.operation;\n var rules = req.service.api.operations[operation].output || {};\n if (rules.payload && resp.data[rules.payload]) {\n resp.data[rules.payload] = resp.data[rules.payload].toString();\n }\n },\n\n /**\n * @api private\n */\n defer: function defer(callback) {\n if (typeof process === 'object' && typeof process.nextTick === 'function') {\n process.nextTick(callback);\n } else if (typeof setImmediate === 'function') {\n setImmediate(callback);\n } else {\n setTimeout(callback, 0);\n }\n },\n\n /**\n * @api private\n */\n getRequestPayloadShape: function getRequestPayloadShape(req) {\n var operations = req.service.api.operations;\n if (!operations) return undefined;\n var operation = (operations || {})[req.operation];\n if (!operation || !operation.input || !operation.input.payload) return undefined;\n return operation.input.members[operation.input.payload];\n },\n\n getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n var profilesFromCreds= {};\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename ||\n (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv])\n });\n } catch (error) {\n // if using config, assume it is fully descriptive without a credentials file:\n if (!process.env[util.configOptInEnv]) throw error;\n }\n for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]);\n }\n for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]);\n }\n return profiles;\n\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\n function objectAssign(target, source) {\n for (var i = 0, keys = Object.keys(source); i < keys.length; i++) {\n target[keys[i]] = source[keys[i]];\n }\n return target;\n }\n },\n\n /**\n * @api private\n */\n ARN: {\n validate: function validateARN(str) {\n return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6;\n },\n parse: function parseARN(arn) {\n var matched = arn.split(':');\n return {\n partition: matched[1],\n service: matched[2],\n region: matched[3],\n accountId: matched[4],\n resource: matched.slice(5).join(':')\n };\n },\n build: function buildARN(arnObject) {\n if (\n arnObject.service === undefined ||\n arnObject.region === undefined ||\n arnObject.accountId === undefined ||\n arnObject.resource === undefined\n ) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service +\n ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource;\n }\n },\n\n /**\n * @api private\n */\n defaultProfile: 'default',\n\n /**\n * @api private\n */\n configOptInEnv: 'AWS_SDK_LOAD_CONFIG',\n\n /**\n * @api private\n */\n sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE',\n\n /**\n * @api private\n */\n sharedConfigFileEnv: 'AWS_CONFIG_FILE',\n\n /**\n * @api private\n */\n imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED'\n};\n\n/**\n * @api private\n */\nmodule.exports = util;\n","var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (\n !memberShape.flattened &&\n memberShape.type === 'list' &&\n !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","var util = require('../util');\nvar XmlNode = require('./xml-node').XmlNode;\nvar XmlText = require('./xml-text').XmlText;\n\nfunction XmlBuilder() { }\n\nXmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {\n var xml = new XmlNode(rootElement);\n applyNamespaces(xml, shape, true);\n serialize(xml, params, shape);\n return xml.children.length > 0 || noEmpty ? xml.toString() : '';\n};\n\nfunction serialize(xml, value, shape) {\n switch (shape.type) {\n case 'structure': return serializeStructure(xml, value, shape);\n case 'map': return serializeMap(xml, value, shape);\n case 'list': return serializeList(xml, value, shape);\n default: return serializeScalar(xml, value, shape);\n }\n}\n\nfunction serializeStructure(xml, params, shape) {\n util.arrayEach(shape.memberNames, function(memberName) {\n var memberShape = shape.members[memberName];\n if (memberShape.location !== 'body') return;\n\n var value = params[memberName];\n var name = memberShape.name;\n if (value !== undefined && value !== null) {\n if (memberShape.isXmlAttribute) {\n xml.addAttribute(name, value);\n } else if (memberShape.flattened) {\n serialize(xml, value, memberShape);\n } else {\n var element = new XmlNode(name);\n xml.addChildNode(element);\n applyNamespaces(element, memberShape);\n serialize(element, value, memberShape);\n }\n }\n });\n}\n\nfunction serializeMap(xml, map, shape) {\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n\n util.each(map, function(key, value) {\n var entry = new XmlNode(shape.flattened ? shape.name : 'entry');\n xml.addChildNode(entry);\n\n var entryKey = new XmlNode(xmlKey);\n var entryValue = new XmlNode(xmlValue);\n entry.addChildNode(entryKey);\n entry.addChildNode(entryValue);\n\n serialize(entryKey, key, shape.key);\n serialize(entryValue, value, shape.value);\n });\n}\n\nfunction serializeList(xml, list, shape) {\n if (shape.flattened) {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || shape.name;\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n } else {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || 'member';\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n }\n}\n\nfunction serializeScalar(xml, value, shape) {\n xml.addChildNode(\n new XmlText(shape.toWireFormat(value))\n );\n}\n\nfunction applyNamespaces(xml, shape, isRoot) {\n var uri, prefix = 'xmlns';\n if (shape.xmlNamespaceUri) {\n uri = shape.xmlNamespaceUri;\n if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;\n } else if (isRoot && shape.api.xmlNamespaceUri) {\n uri = shape.api.xmlNamespaceUri;\n }\n\n if (uri) xml.addAttribute(prefix, uri);\n}\n\n/**\n * @api private\n */\nmodule.exports = XmlBuilder;\n","/**\n * Escapes characters that can not be in an XML attribute.\n */\nfunction escapeAttribute(value) {\n return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/\"/g, '"');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeAttribute: escapeAttribute\n};\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\r/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\u0085/g, '…')\n .replace(/\\u2028/, '
');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\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\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\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.\nEventEmitter.defaultMaxListeners = 10;\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(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\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\nvar punycode = require('punycode');\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 // 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 && 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 (!isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\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 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 puny coded representation of \"domain\".\n // It only converts the part of the domain name that\n // has non ASCII characters. I.e. it dosent matter if\n // you call it with a domain that already is in ASCII.\n var domainArray = this.hostname.split('.');\n var newOut = [];\n for (var i = 0; i < domainArray.length; ++i) {\n var s = domainArray[i];\n newOut.push(s.match(/[^A-Za-z0-9_-]/) ?\n 'xn--' + punycode.encode(s) : s);\n }\n this.hostname = newOut.join('.');\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 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 (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 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 (isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n Object.keys(this).forEach(function(k) {\n result[k] = this[k];\n }, this);\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 Object.keys(relative).forEach(function(k) {\n if (k !== 'protocol')\n result[k] = relative[k];\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 Object.keys(relative).forEach(function(k) {\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 (!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 especialy 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 (!isNull(result.pathname) || !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) && (last === '.' || last === '..') ||\n 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 especialy 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 (!isNull(result.pathname) || !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\nfunction isString(arg) {\n return typeof arg === \"string\";\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\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; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nvar _default = bytesToUuid;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var i;\n var x;\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n var hex;\n\n for (i = 0; i < length32; i += 8) {\n x = input[i >> 5] >>> i % 32 & 0xff;\n hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[(len + 64 >>> 9 << 4) + 14] = len;\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n\n var length8 = input.length * 8;\n\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\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()).\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.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var i = 0; i < N; i++) {\n M[i] = new Array(16);\n\n for (var j = 0; j < 16; j++) {\n M[i][j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var i = 0; i < N; i++) {\n var W = new Array(80);\n\n for (var t = 0; t < 16; t++) W[t] = M[i][t];\n\n for (var t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var t = 0; t < 80; t++) {\n var s = Math.floor(t / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // 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\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, 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 } // 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\n\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\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; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\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; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : (0, _bytesToUuid.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {\n bytes.push(parseInt(hex, 16));\n });\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = new Array(str.length);\n\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n var generateUUID = function (value, namespace, buf, offset) {\n var off = buf && offset || 0;\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); // Per 4.3\n\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(bytes);\n }; // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name;\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\n options = options || {};\n\n var rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\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 for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRU_1 = require(\"./utils/LRU\");\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\nvar EndpointCache = /** @class */ (function () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) { maxSize = CACHE_SIZE; }\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function () {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\n EndpointCache.prototype.put = function (key, value) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var endpointRecord = this.populateValue(value);\n this.cache.put(keyString, endpointRecord);\n };\n EndpointCache.prototype.get = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var now = Date.now();\n var records = this.cache.get(keyString);\n if (records) {\n for (var i = records.length-1; i >= 0; i--) {\n var record = records[i];\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n return records;\n };\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined)\n continue;\n identifiers.push(key[identifierName]);\n }\n return identifiers.join(' ');\n };\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) { return ({\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n }); });\n };\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n return EndpointCache;\n}());\nexports.EndpointCache = EndpointCache;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedListNode = /** @class */ (function () {\n function LinkedListNode(key, value) {\n this.key = key;\n this.value = value;\n }\n return LinkedListNode;\n}());\nvar LRUCache = /** @class */ (function () {\n function LRUCache(size) {\n this.nodeMap = {};\n this.size = 0;\n if (typeof size !== 'number' || size < 1) {\n throw new Error('Cache size can only be positive number');\n }\n this.sizeLimit = size;\n }\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function () {\n return this.size;\n },\n enumerable: true,\n configurable: true\n });\n LRUCache.prototype.prependToList = function (node) {\n if (!this.headerNode) {\n this.tailNode = node;\n }\n else {\n this.headerNode.prev = node;\n node.next = this.headerNode;\n }\n this.headerNode = node;\n this.size++;\n };\n LRUCache.prototype.removeFromTail = function () {\n if (!this.tailNode) {\n return undefined;\n }\n var node = this.tailNode;\n var prevNode = node.prev;\n if (prevNode) {\n prevNode.next = undefined;\n }\n node.prev = undefined;\n this.tailNode = prevNode;\n this.size--;\n return node;\n };\n LRUCache.prototype.detachFromList = function (node) {\n if (this.headerNode === node) {\n this.headerNode = node.next;\n }\n if (this.tailNode === node) {\n this.tailNode = node.prev;\n }\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n node.next = undefined;\n node.prev = undefined;\n this.size--;\n };\n LRUCache.prototype.get = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n this.prependToList(node);\n return node.value;\n }\n };\n LRUCache.prototype.remove = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n LRUCache.prototype.put = function (key, value) {\n if (this.nodeMap[key]) {\n this.remove(key);\n }\n else if (this.size === this.sizeLimit) {\n var tailNode = this.removeFromTail();\n var key_1 = tailNode.key;\n delete this.nodeMap[key_1];\n }\n var newNode = new LinkedListNode(key, value);\n this.nodeMap[key] = newNode;\n this.prependToList(newNode);\n };\n LRUCache.prototype.empty = function () {\n var keys = Object.keys(this.nodeMap);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n return LRUCache;\n}());\nexports.LRUCache = LRUCache;","import { VSpacer, VIcon, VBtn, VCardTitle, VTextField, VFileInput, VCardText, VCardActions, VCard, VDialog, VMenu, VContainer, VDivider, VColorPicker, VExpandTransition, VList, VAvatar, VInput, VImg, VListItem, VListItemContent, VListItemAvatar, VListItemTitle, VProgressLinear, VSelect, VToolbar, VTooltip } from 'vuetify/lib';\nimport Vue from 'vue';\nimport Vuetify from 'vuetify';\n\nconst DEFAULT_OPTIONS = {\n uploadImage: null,\n mentionItems: null\n};\nconst options = {\n ...DEFAULT_OPTIONS\n};\nfunction mergeOptions(newOptions) {\n Object.assign(options, newOptions);\n}\nfunction getOption(key) {\n return options[key];\n}\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\r\nfunction __decorate$1(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}\n\n/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\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 _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nvar __spreadArrays = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n// Code copied from Vue/src/shared/util.js\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };\n/**\n * decorator of an event-emitter function\n * @param event The name of the event\n * @return MethodDecorator\n */\nfunction Emit(event) {\n return function (_target, propertyKey, descriptor) {\n var key = hyphenate(propertyKey);\n var original = descriptor.value;\n descriptor.value = function emitter() {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var emit = function (returnValue) {\n var emitName = event || key;\n if (returnValue === undefined) {\n if (args.length === 0) {\n _this.$emit(emitName);\n }\n else if (args.length === 1) {\n _this.$emit(emitName, args[0]);\n }\n else {\n _this.$emit.apply(_this, __spreadArrays([emitName], args));\n }\n }\n else {\n args.unshift(returnValue);\n _this.$emit.apply(_this, __spreadArrays([emitName], args));\n }\n };\n var returnValue = original.apply(this, args);\n if (isPromise(returnValue)) {\n returnValue.then(emit);\n }\n else {\n emit(returnValue);\n }\n return returnValue;\n };\n };\n}\nfunction isPromise(obj) {\n return obj instanceof Promise || (obj && typeof obj.then === 'function');\n}\n\n/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\nvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\nfunction applyMetadata(options, target, key) {\n if (reflectMetadataIsSupported) {\n if (!Array.isArray(options) &&\n typeof options !== 'function' &&\n !options.hasOwnProperty('type') &&\n typeof options.type === 'undefined') {\n var type = Reflect.getMetadata('design:type', target, key);\n if (type !== Object) {\n options.type = type;\n }\n }\n }\n}\n\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nfunction Prop(options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\n\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nfunction Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n }\n else if (typeof watch[path] === 'undefined') {\n watch[path] = [];\n }\n watch[path].push({ handler: handler, deep: deep, immediate: immediate });\n });\n}\n\n// ::- Persistent data structure representing an ordered mapping from\n// strings to values, with some convenient update methods.\nfunction OrderedMap(content) {\n this.content = content;\n}\n\nOrderedMap.prototype = {\n constructor: OrderedMap,\n\n find: function(key) {\n for (var i = 0; i < this.content.length; i += 2)\n if (this.content[i] === key) return i\n return -1\n },\n\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function(key) {\n var found = this.find(key);\n return found == -1 ? undefined : this.content[found + 1]\n },\n\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function(key, value, newKey) {\n var self = newKey && newKey != key ? this.remove(newKey) : this;\n var found = self.find(key), content = self.content.slice();\n if (found == -1) {\n content.push(newKey || key, value);\n } else {\n content[found + 1] = value;\n if (newKey) content[found] = newKey;\n }\n return new OrderedMap(content)\n },\n\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function(key) {\n var found = this.find(key);\n if (found == -1) return this\n var content = this.content.slice();\n content.splice(found, 2);\n return new OrderedMap(content)\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function(key, value) {\n return new OrderedMap([key, value].concat(this.remove(key).content))\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function(key, value) {\n var content = this.remove(key).content.slice();\n content.push(key, value);\n return new OrderedMap(content)\n },\n\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function(place, key, value) {\n var without = this.remove(key), content = without.content.slice();\n var found = without.find(place);\n content.splice(found == -1 ? content.length : found, 0, key, value);\n return new OrderedMap(content)\n },\n\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function(f) {\n for (var i = 0; i < this.content.length; i += 2)\n f(this.content[i], this.content[i + 1]);\n },\n\n // :: (union) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(map.content.concat(this.subtract(map).content))\n },\n\n // :: (union) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(this.subtract(map).content.concat(map.content))\n },\n\n // :: (union) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function(map) {\n var result = this;\n map = OrderedMap.from(map);\n for (var i = 0; i < map.content.length; i += 2)\n result = result.remove(map.content[i]);\n return result\n },\n\n // :: () → Object\n // Turn ordered map into a plain object.\n toObject: function() {\n var result = {};\n this.forEach(function(key, value) { result[key] = value; });\n return result\n },\n\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1\n }\n};\n\n// :: (?union) → OrderedMap\n// Return a map with the given content. If null, create an empty\n// map. If given an ordered map, return that map itself. If given an\n// object, create a map from the object's properties.\nOrderedMap.from = function(value) {\n if (value instanceof OrderedMap) return value\n var content = [];\n if (value) for (var prop in value) content.push(prop, value[prop]);\n return new OrderedMap(content)\n};\n\nfunction findDiffStart(a, b, pos) {\n for (let i = 0;; i++) {\n if (i == a.childCount || i == b.childCount)\n return a.childCount == b.childCount ? null : pos;\n let childA = a.child(i), childB = b.child(i);\n if (childA == childB) {\n pos += childA.nodeSize;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return pos;\n if (childA.isText && childA.text != childB.text) {\n for (let j = 0; childA.text[j] == childB.text[j]; j++)\n pos++;\n return pos;\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffStart(childA.content, childB.content, pos + 1);\n if (inner != null)\n return inner;\n }\n pos += childA.nodeSize;\n }\n}\nfunction findDiffEnd(a, b, posA, posB) {\n for (let iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0)\n return iA == iB ? null : { a: posA, b: posB };\n let childA = a.child(--iA), childB = b.child(--iB), size = childA.nodeSize;\n if (childA == childB) {\n posA -= size;\n posB -= size;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return { a: posA, b: posB };\n if (childA.isText && childA.text != childB.text) {\n let same = 0, minSize = Math.min(childA.text.length, childB.text.length);\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++;\n posA--;\n posB--;\n }\n return { a: posA, b: posB };\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n if (inner)\n return inner;\n }\n posA -= size;\n posB -= size;\n }\n}\n\n/**\nA fragment represents a node's collection of child nodes.\n\nLike nodes, fragments are persistent data structures, and you\nshould not mutate them or their content. Rather, you create new\ninstances whenever needed. The API tries to make this easy.\n*/\nclass Fragment {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n content, size) {\n this.content = content;\n this.size = size || 0;\n if (size == null)\n for (let i = 0; i < content.length; i++)\n this.size += content[i].nodeSize;\n }\n /**\n Invoke a callback for all descendant nodes between the given two\n positions (relative to start of this fragment). Doesn't descend\n into a node when the callback returns `false`.\n */\n nodesBetween(from, to, f, nodeStart = 0, parent) {\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from && f(child, nodeStart + pos, parent || null, i) !== false && child.content.size) {\n let start = pos + 1;\n child.nodesBetween(Math.max(0, from - start), Math.min(child.content.size, to - start), f, nodeStart + start);\n }\n pos = end;\n }\n }\n /**\n Call the given callback for every descendant node. `pos` will be\n relative to the start of the fragment. The callback may return\n `false` to prevent traversal of a given node's children.\n */\n descendants(f) {\n this.nodesBetween(0, this.size, f);\n }\n /**\n Extract the text between `from` and `to`. See the same method on\n [`Node`](https://prosemirror.net/docs/ref/#model.Node.textBetween).\n */\n textBetween(from, to, blockSeparator, leafText) {\n let text = \"\", separated = true;\n this.nodesBetween(from, to, (node, pos) => {\n if (node.isText) {\n text += node.text.slice(Math.max(from, pos) - pos, to - pos);\n separated = !blockSeparator;\n }\n else if (node.isLeaf) {\n if (leafText) {\n text += typeof leafText === \"function\" ? leafText(node) : leafText;\n }\n else if (node.type.spec.leafText) {\n text += node.type.spec.leafText(node);\n }\n separated = !blockSeparator;\n }\n else if (!separated && node.isBlock) {\n text += blockSeparator;\n separated = true;\n }\n }, 0);\n return text;\n }\n /**\n Create a new fragment containing the combined content of this\n fragment and the other.\n */\n append(other) {\n if (!other.size)\n return this;\n if (!this.size)\n return other;\n let last = this.lastChild, first = other.firstChild, content = this.content.slice(), i = 0;\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n for (; i < other.content.length; i++)\n content.push(other.content[i]);\n return new Fragment(content, this.size + other.size);\n }\n /**\n Cut out the sub-fragment between the two given positions.\n */\n cut(from, to = this.size) {\n if (from == 0 && to == this.size)\n return this;\n let result = [], size = 0;\n if (to > from)\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText)\n child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos));\n else\n child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1));\n }\n result.push(child);\n size += child.nodeSize;\n }\n pos = end;\n }\n return new Fragment(result, size);\n }\n /**\n @internal\n */\n cutByIndex(from, to) {\n if (from == to)\n return Fragment.empty;\n if (from == 0 && to == this.content.length)\n return this;\n return new Fragment(this.content.slice(from, to));\n }\n /**\n Create a new fragment in which the node at the given index is\n replaced by the given node.\n */\n replaceChild(index, node) {\n let current = this.content[index];\n if (current == node)\n return this;\n let copy = this.content.slice();\n let size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size);\n }\n /**\n Create a new fragment by prepending the given node to this\n fragment.\n */\n addToStart(node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize);\n }\n /**\n Create a new fragment by appending the given node to this\n fragment.\n */\n addToEnd(node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize);\n }\n /**\n Compare this fragment to another one.\n */\n eq(other) {\n if (this.content.length != other.content.length)\n return false;\n for (let i = 0; i < this.content.length; i++)\n if (!this.content[i].eq(other.content[i]))\n return false;\n return true;\n }\n /**\n The first child of the fragment, or `null` if it is empty.\n */\n get firstChild() { return this.content.length ? this.content[0] : null; }\n /**\n The last child of the fragment, or `null` if it is empty.\n */\n get lastChild() { return this.content.length ? this.content[this.content.length - 1] : null; }\n /**\n The number of child nodes in this fragment.\n */\n get childCount() { return this.content.length; }\n /**\n Get the child node at the given index. Raise an error when the\n index is out of range.\n */\n child(index) {\n let found = this.content[index];\n if (!found)\n throw new RangeError(\"Index \" + index + \" out of range for \" + this);\n return found;\n }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) {\n return this.content[index] || null;\n }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) {\n for (let i = 0, p = 0; i < this.content.length; i++) {\n let child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n }\n /**\n Find the first position at which this fragment and another\n fragment differ, or `null` if they are the same.\n */\n findDiffStart(other, pos = 0) {\n return findDiffStart(this, other, pos);\n }\n /**\n Find the first position, searching from the end, at which this\n fragment and the given fragment differ, or `null` if they are\n the same. Since this position will not be the same in both\n nodes, an object with two separate positions is returned.\n */\n findDiffEnd(other, pos = this.size, otherPos = other.size) {\n return findDiffEnd(this, other, pos, otherPos);\n }\n /**\n Find the index and inner offset corresponding to a given relative\n position in this fragment. The result object will be reused\n (overwritten) the next time the function is called. (Not public.)\n */\n findIndex(pos, round = -1) {\n if (pos == 0)\n return retIndex(0, pos);\n if (pos == this.size)\n return retIndex(this.content.length, pos);\n if (pos > this.size || pos < 0)\n throw new RangeError(`Position ${pos} outside of fragment (${this})`);\n for (let i = 0, curPos = 0;; i++) {\n let cur = this.child(i), end = curPos + cur.nodeSize;\n if (end >= pos) {\n if (end == pos || round > 0)\n return retIndex(i + 1, end);\n return retIndex(i, curPos);\n }\n curPos = end;\n }\n }\n /**\n Return a debugging string that describes this fragment.\n */\n toString() { return \"<\" + this.toStringInner() + \">\"; }\n /**\n @internal\n */\n toStringInner() { return this.content.join(\", \"); }\n /**\n Create a JSON-serializeable representation of this fragment.\n */\n toJSON() {\n return this.content.length ? this.content.map(n => n.toJSON()) : null;\n }\n /**\n Deserialize a fragment from its JSON representation.\n */\n static fromJSON(schema, value) {\n if (!value)\n return Fragment.empty;\n if (!Array.isArray(value))\n throw new RangeError(\"Invalid input for Fragment.fromJSON\");\n return new Fragment(value.map(schema.nodeFromJSON));\n }\n /**\n Build a fragment from an array of nodes. Ensures that adjacent\n text nodes with the same marks are joined together.\n */\n static fromArray(array) {\n if (!array.length)\n return Fragment.empty;\n let joined, size = 0;\n for (let i = 0; i < array.length; i++) {\n let node = array[i];\n size += node.nodeSize;\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined)\n joined = array.slice(0, i);\n joined[joined.length - 1] = node\n .withText(joined[joined.length - 1].text + node.text);\n }\n else if (joined) {\n joined.push(node);\n }\n }\n return new Fragment(joined || array, size);\n }\n /**\n Create a fragment from something that can be interpreted as a\n set of nodes. For `null`, it returns the empty fragment. For a\n fragment, the fragment itself. For a node or array of nodes, a\n fragment containing those nodes.\n */\n static from(nodes) {\n if (!nodes)\n return Fragment.empty;\n if (nodes instanceof Fragment)\n return nodes;\n if (Array.isArray(nodes))\n return this.fromArray(nodes);\n if (nodes.attrs)\n return new Fragment([nodes], nodes.nodeSize);\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" +\n (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"));\n }\n}\n/**\nAn empty fragment. Intended to be reused whenever a node doesn't\ncontain anything (rather than allocating a new empty fragment for\neach leaf node).\n*/\nFragment.empty = new Fragment([], 0);\nconst found = { index: 0, offset: 0 };\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found;\n}\n\nfunction compareDeep(a, b) {\n if (a === b)\n return true;\n if (!(a && typeof a == \"object\") ||\n !(b && typeof b == \"object\"))\n return false;\n let array = Array.isArray(a);\n if (Array.isArray(b) != array)\n return false;\n if (array) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compareDeep(a[i], b[i]))\n return false;\n }\n else {\n for (let p in a)\n if (!(p in b) || !compareDeep(a[p], b[p]))\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n }\n return true;\n}\n\n/**\nA mark is a piece of information that can be attached to a node,\nsuch as it being emphasized, in code font, or a link. It has a\ntype and optionally a set of attributes that provide further\ninformation (such as the target of the link). Marks are created\nthrough a `Schema`, which controls which types exist and which\nattributes they have.\n*/\nclass Mark$1 {\n /**\n @internal\n */\n constructor(\n /**\n The type of this mark.\n */\n type, \n /**\n The attributes associated with this mark.\n */\n attrs) {\n this.type = type;\n this.attrs = attrs;\n }\n /**\n Given a set of marks, create a new set which contains this one as\n well, in the right position. If this mark is already in the set,\n the set itself is returned. If any marks that are set to be\n [exclusive](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) with this mark are present,\n those are replaced by this one.\n */\n addToSet(set) {\n let copy, placed = false;\n for (let i = 0; i < set.length; i++) {\n let other = set[i];\n if (this.eq(other))\n return set;\n if (this.type.excludes(other.type)) {\n if (!copy)\n copy = set.slice(0, i);\n }\n else if (other.type.excludes(this.type)) {\n return set;\n }\n else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy)\n copy = set.slice(0, i);\n copy.push(this);\n placed = true;\n }\n if (copy)\n copy.push(other);\n }\n }\n if (!copy)\n copy = set.slice();\n if (!placed)\n copy.push(this);\n return copy;\n }\n /**\n Remove this mark from the given set, returning a new set. If this\n mark is not in the set, the set itself is returned.\n */\n removeFromSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return set.slice(0, i).concat(set.slice(i + 1));\n return set;\n }\n /**\n Test whether this mark is in the given set of marks.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return true;\n return false;\n }\n /**\n Test whether this mark has the same type and attributes as\n another mark.\n */\n eq(other) {\n return this == other ||\n (this.type == other.type && compareDeep(this.attrs, other.attrs));\n }\n /**\n Convert this mark to a JSON-serializeable representation.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n return obj;\n }\n /**\n Deserialize a mark from JSON.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Mark.fromJSON\");\n let type = schema.marks[json.type];\n if (!type)\n throw new RangeError(`There is no mark type ${json.type} in this schema`);\n return type.create(json.attrs);\n }\n /**\n Test whether two sets of marks are identical.\n */\n static sameSet(a, b) {\n if (a == b)\n return true;\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].eq(b[i]))\n return false;\n return true;\n }\n /**\n Create a properly sorted mark set from null, a single mark, or an\n unsorted array of marks.\n */\n static setFrom(marks) {\n if (!marks || Array.isArray(marks) && marks.length == 0)\n return Mark$1.none;\n if (marks instanceof Mark$1)\n return [marks];\n let copy = marks.slice();\n copy.sort((a, b) => a.type.rank - b.type.rank);\n return copy;\n }\n}\n/**\nThe empty set of marks.\n*/\nMark$1.none = [];\n\n/**\nError type raised by [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) when\ngiven an invalid replacement.\n*/\nclass ReplaceError extends Error {\n}\n/*\nReplaceError = function(this: any, message: string) {\n let err = Error.call(this, message)\n ;(err as any).__proto__ = ReplaceError.prototype\n return err\n} as any\n\nReplaceError.prototype = Object.create(Error.prototype)\nReplaceError.prototype.constructor = ReplaceError\nReplaceError.prototype.name = \"ReplaceError\"\n*/\n/**\nA slice represents a piece cut out of a larger document. It\nstores not only a fragment, but also the depth up to which nodes on\nboth side are ‘open’ (cut through).\n*/\nclass Slice {\n /**\n Create a slice. When specifying a non-zero open depth, you must\n make sure that there are nodes of at least that depth at the\n appropriate side of the fragment—i.e. if the fragment is an\n empty paragraph node, `openStart` and `openEnd` can't be greater\n than 1.\n \n It is not necessary for the content of open nodes to conform to\n the schema's content constraints, though it should be a valid\n start/end/middle for such a node, depending on which sides are\n open.\n */\n constructor(\n /**\n The slice's content.\n */\n content, \n /**\n The open depth at the start of the fragment.\n */\n openStart, \n /**\n The open depth at the end.\n */\n openEnd) {\n this.content = content;\n this.openStart = openStart;\n this.openEnd = openEnd;\n }\n /**\n The size this slice would add when inserted into a document.\n */\n get size() {\n return this.content.size - this.openStart - this.openEnd;\n }\n /**\n @internal\n */\n insertAt(pos, fragment) {\n let content = insertInto(this.content, pos + this.openStart, fragment);\n return content && new Slice(content, this.openStart, this.openEnd);\n }\n /**\n @internal\n */\n removeBetween(from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd);\n }\n /**\n Tests whether this slice is equal to another slice.\n */\n eq(other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd;\n }\n /**\n @internal\n */\n toString() {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\";\n }\n /**\n Convert a slice to a JSON-serializable representation.\n */\n toJSON() {\n if (!this.content.size)\n return null;\n let json = { content: this.content.toJSON() };\n if (this.openStart > 0)\n json.openStart = this.openStart;\n if (this.openEnd > 0)\n json.openEnd = this.openEnd;\n return json;\n }\n /**\n Deserialize a slice from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n return Slice.empty;\n let openStart = json.openStart || 0, openEnd = json.openEnd || 0;\n if (typeof openStart != \"number\" || typeof openEnd != \"number\")\n throw new RangeError(\"Invalid input for Slice.fromJSON\");\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd);\n }\n /**\n Create a slice from a fragment by taking the maximum possible\n open value on both side of the fragment.\n */\n static maxOpen(fragment, openIsolating = true) {\n let openStart = 0, openEnd = 0;\n for (let n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild)\n openStart++;\n for (let n = fragment.lastChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.lastChild)\n openEnd++;\n return new Slice(fragment, openStart, openEnd);\n }\n}\n/**\nThe empty slice.\n*/\nSlice.empty = new Slice(Fragment.empty, 0, 0);\nfunction removeRange(content, from, to) {\n let { index, offset } = content.findIndex(from), child = content.maybeChild(index);\n let { index: indexTo, offset: offsetTo } = content.findIndex(to);\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText)\n throw new RangeError(\"Removing non-flat range\");\n return content.cut(0, from).append(content.cut(to));\n }\n if (index != indexTo)\n throw new RangeError(\"Removing non-flat range\");\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)));\n}\nfunction insertInto(content, dist, insert, parent) {\n let { index, offset } = content.findIndex(dist), child = content.maybeChild(index);\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert))\n return null;\n return content.cut(0, dist).append(insert).append(content.cut(dist));\n }\n let inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner));\n}\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth)\n throw new ReplaceError(\"Inserted content deeper than insertion position\");\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd)\n throw new ReplaceError(\"Inconsistent open depths\");\n return replaceOuter($from, $to, slice, 0);\n}\nfunction replaceOuter($from, $to, slice, depth) {\n let index = $from.index(depth), node = $from.node(depth);\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n let inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner));\n }\n else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth));\n }\n else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) { // Simple, flat case\n let parent = $from.parent, content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)));\n }\n else {\n let { start, end } = prepareSliceForReplace(slice, $from);\n return close(node, replaceThreeWay($from, start, end, $to, depth));\n }\n}\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type))\n throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name);\n}\nfunction joinable$1($before, $after, depth) {\n let node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node;\n}\nfunction addNode(child, target) {\n let last = target.length - 1;\n if (last >= 0 && child.isText && child.sameMarkup(target[last]))\n target[last] = child.withText(target[last].text + child.text);\n else\n target.push(child);\n}\nfunction addRange($start, $end, depth, target) {\n let node = ($end || $start).node(depth);\n let startIndex = 0, endIndex = $end ? $end.index(depth) : node.childCount;\n if ($start) {\n startIndex = $start.index(depth);\n if ($start.depth > depth) {\n startIndex++;\n }\n else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n for (let i = startIndex; i < endIndex; i++)\n addNode(node.child(i), target);\n if ($end && $end.depth == depth && $end.textOffset)\n addNode($end.nodeBefore, target);\n}\nfunction close(node, content) {\n node.type.checkContent(content);\n return node.copy(content);\n}\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n let openStart = $from.depth > depth && joinable$1($from, $start, depth + 1);\n let openEnd = $to.depth > depth && joinable$1($end, $to, depth + 1);\n let content = [];\n addRange(null, $from, depth, content);\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n }\n else {\n if (openStart)\n addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content);\n addRange($start, $end, depth, content);\n if (openEnd)\n addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction replaceTwoWay($from, $to, depth) {\n let content = [];\n addRange(null, $from, depth, content);\n if ($from.depth > depth) {\n let type = joinable$1($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction prepareSliceForReplace(slice, $along) {\n let extra = $along.depth - slice.openStart, parent = $along.node(extra);\n let node = parent.copy(slice.content);\n for (let i = extra - 1; i >= 0; i--)\n node = $along.node(i).copy(Fragment.from(node));\n return { start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra) };\n}\n\n/**\nYou can [_resolve_](https://prosemirror.net/docs/ref/#model.Node.resolve) a position to get more\ninformation about it. Objects of this class represent such a\nresolved position, providing various pieces of context\ninformation, and some helper methods.\n\nThroughout this interface, methods that take an optional `depth`\nparameter will interpret undefined as `this.depth` and negative\nnumbers as `this.depth + value`.\n*/\nclass ResolvedPos {\n /**\n @internal\n */\n constructor(\n /**\n The position that was resolved.\n */\n pos, \n /**\n @internal\n */\n path, \n /**\n The offset this position has into its parent node.\n */\n parentOffset) {\n this.pos = pos;\n this.path = path;\n this.parentOffset = parentOffset;\n this.depth = path.length / 3 - 1;\n }\n /**\n @internal\n */\n resolveDepth(val) {\n if (val == null)\n return this.depth;\n if (val < 0)\n return this.depth + val;\n return val;\n }\n /**\n The parent node that the position points into. Note that even if\n a position points into a text node, that node is not considered\n the parent—text nodes are ‘flat’ in this model, and have no content.\n */\n get parent() { return this.node(this.depth); }\n /**\n The root node in which the position was resolved.\n */\n get doc() { return this.node(0); }\n /**\n The ancestor node at the given level. `p.node(p.depth)` is the\n same as `p.parent`.\n */\n node(depth) { return this.path[this.resolveDepth(depth) * 3]; }\n /**\n The index into the ancestor at the given level. If this points\n at the 3rd node in the 2nd paragraph on the top level, for\n example, `p.index(0)` is 1 and `p.index(1)` is 2.\n */\n index(depth) { return this.path[this.resolveDepth(depth) * 3 + 1]; }\n /**\n The index pointing after this position into the ancestor at the\n given level.\n */\n indexAfter(depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1);\n }\n /**\n The (absolute) position at the start of the node at the given\n level.\n */\n start(depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n }\n /**\n The (absolute) position at the end of the node at the given\n level.\n */\n end(depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size;\n }\n /**\n The (absolute) position directly before the wrapping node at the\n given level, or, when `depth` is `this.depth + 1`, the original\n position.\n */\n before(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position before the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1];\n }\n /**\n The (absolute) position directly after the wrapping node at the\n given level, or the original position when `depth` is `this.depth + 1`.\n */\n after(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position after the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize;\n }\n /**\n When this position points into a text node, this returns the\n distance between the position and the start of the text node.\n Will be zero for positions that point between nodes.\n */\n get textOffset() { return this.pos - this.path[this.path.length - 1]; }\n /**\n Get the node directly after the position, if any. If the position\n points into a text node, only the part of that node after the\n position is returned.\n */\n get nodeAfter() {\n let parent = this.parent, index = this.index(this.depth);\n if (index == parent.childCount)\n return null;\n let dOff = this.pos - this.path[this.path.length - 1], child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child;\n }\n /**\n Get the node directly before the position, if any. If the\n position points into a text node, only the part of that node\n before the position is returned.\n */\n get nodeBefore() {\n let index = this.index(this.depth);\n let dOff = this.pos - this.path[this.path.length - 1];\n if (dOff)\n return this.parent.child(index).cut(0, dOff);\n return index == 0 ? null : this.parent.child(index - 1);\n }\n /**\n Get the position at the given index in the parent node at the\n given depth (which defaults to `this.depth`).\n */\n posAtIndex(index, depth) {\n depth = this.resolveDepth(depth);\n let node = this.path[depth * 3], pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n for (let i = 0; i < index; i++)\n pos += node.child(i).nodeSize;\n return pos;\n }\n /**\n Get the marks at this position, factoring in the surrounding\n marks' [`inclusive`](https://prosemirror.net/docs/ref/#model.MarkSpec.inclusive) property. If the\n position is at the start of a non-empty node, the marks of the\n node after it (if any) are returned.\n */\n marks() {\n let parent = this.parent, index = this.index();\n // In an empty parent, return the empty array\n if (parent.content.size == 0)\n return Mark$1.none;\n // When inside a text node, just return the text node's marks\n if (this.textOffset)\n return parent.child(index).marks;\n let main = parent.maybeChild(index - 1), other = parent.maybeChild(index);\n // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n if (!main) {\n let tmp = main;\n main = other;\n other = tmp;\n }\n // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n let marks = main.marks;\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n Get the marks after the current position, if any, except those\n that are non-inclusive and not present at position `$end`. This\n is mostly useful for getting the set of marks to preserve after a\n deletion. Will return `null` if this position is at the end of\n its parent node or its parent node isn't a textblock (in which\n case no marks should be preserved).\n */\n marksAcross($end) {\n let after = this.parent.maybeChild(this.index());\n if (!after || !after.isInline)\n return null;\n let marks = after.marks, next = $end.parent.maybeChild($end.index());\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n The depth up to which this position and the given (non-resolved)\n position share the same parent nodes.\n */\n sharedDepth(pos) {\n for (let depth = this.depth; depth > 0; depth--)\n if (this.start(depth) <= pos && this.end(depth) >= pos)\n return depth;\n return 0;\n }\n /**\n Returns a range based on the place where this position and the\n given position diverge around block content. If both point into\n the same textblock, for example, a range around that textblock\n will be returned. If they point into different blocks, the range\n around those blocks in their shared ancestor is returned. You can\n pass in an optional predicate that will be called with a parent\n node to see if a range into that parent is acceptable.\n */\n blockRange(other = this, pred) {\n if (other.pos < this.pos)\n return other.blockRange(this);\n for (let d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--)\n if (other.pos <= this.end(d) && (!pred || pred(this.node(d))))\n return new NodeRange(this, other, d);\n return null;\n }\n /**\n Query whether the given position shares the same parent node.\n */\n sameParent(other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset;\n }\n /**\n Return the greater of this and the given position.\n */\n max(other) {\n return other.pos > this.pos ? other : this;\n }\n /**\n Return the smaller of this and the given position.\n */\n min(other) {\n return other.pos < this.pos ? other : this;\n }\n /**\n @internal\n */\n toString() {\n let str = \"\";\n for (let i = 1; i <= this.depth; i++)\n str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1);\n return str + \":\" + this.parentOffset;\n }\n /**\n @internal\n */\n static resolve(doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size))\n throw new RangeError(\"Position \" + pos + \" out of range\");\n let path = [];\n let start = 0, parentOffset = pos;\n for (let node = doc;;) {\n let { index, offset } = node.content.findIndex(parentOffset);\n let rem = parentOffset - offset;\n path.push(node, index, start + offset);\n if (!rem)\n break;\n node = node.child(index);\n if (node.isText)\n break;\n parentOffset = rem - 1;\n start += offset + 1;\n }\n return new ResolvedPos(pos, path, parentOffset);\n }\n /**\n @internal\n */\n static resolveCached(doc, pos) {\n for (let i = 0; i < resolveCache.length; i++) {\n let cached = resolveCache[i];\n if (cached.pos == pos && cached.doc == doc)\n return cached;\n }\n let result = resolveCache[resolveCachePos] = ResolvedPos.resolve(doc, pos);\n resolveCachePos = (resolveCachePos + 1) % resolveCacheSize;\n return result;\n }\n}\nlet resolveCache = [], resolveCachePos = 0, resolveCacheSize = 12;\n/**\nRepresents a flat range of content, i.e. one that starts and\nends in the same node.\n*/\nclass NodeRange {\n /**\n Construct a node range. `$from` and `$to` should point into the\n same node until at least the given `depth`, since a node range\n denotes an adjacent set of nodes in a single parent node.\n */\n constructor(\n /**\n A resolved position along the start of the content. May have a\n `depth` greater than this object's `depth` property, since\n these are the positions that were used to compute the range,\n not re-resolved positions directly at its boundaries.\n */\n $from, \n /**\n A position along the end of the content. See\n caveat for [`$from`](https://prosemirror.net/docs/ref/#model.NodeRange.$from).\n */\n $to, \n /**\n The depth of the node that this range points into.\n */\n depth) {\n this.$from = $from;\n this.$to = $to;\n this.depth = depth;\n }\n /**\n The position at the start of the range.\n */\n get start() { return this.$from.before(this.depth + 1); }\n /**\n The position at the end of the range.\n */\n get end() { return this.$to.after(this.depth + 1); }\n /**\n The parent node that the range points into.\n */\n get parent() { return this.$from.node(this.depth); }\n /**\n The start index of the range in the parent node.\n */\n get startIndex() { return this.$from.index(this.depth); }\n /**\n The end index of the range in the parent node.\n */\n get endIndex() { return this.$to.indexAfter(this.depth); }\n}\n\nconst emptyAttrs = Object.create(null);\n/**\nThis class represents a node in the tree that makes up a\nProseMirror document. So a document is an instance of `Node`, with\nchildren that are also instances of `Node`.\n\nNodes are persistent data structures. Instead of changing them, you\ncreate new ones with the content you want. Old ones keep pointing\nat the old document shape. This is made cheaper by sharing\nstructure between the old and new data as much as possible, which a\ntree shape like this (without back pointers) makes easy.\n\n**Do not** directly mutate the properties of a `Node` object. See\n[the guide](/docs/guide/#doc) for more information.\n*/\nclass Node$1 {\n /**\n @internal\n */\n constructor(\n /**\n The type of node that this is.\n */\n type, \n /**\n An object mapping attribute names to values. The kind of\n attributes allowed and required are\n [determined](https://prosemirror.net/docs/ref/#model.NodeSpec.attrs) by the node type.\n */\n attrs, \n // A fragment holding the node's children.\n content, \n /**\n The marks (things like whether it is emphasized or part of a\n link) applied to this node.\n */\n marks = Mark$1.none) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.content = content || Fragment.empty;\n }\n /**\n The size of this node, as defined by the integer-based [indexing\n scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n amount of characters. For other leaf nodes, it is one. For\n non-leaf nodes, it is the size of the content plus two (the\n start and end token).\n */\n get nodeSize() { return this.isLeaf ? 1 : 2 + this.content.size; }\n /**\n The number of children that the node has.\n */\n get childCount() { return this.content.childCount; }\n /**\n Get the child node at the given index. Raises an error when the\n index is out of range.\n */\n child(index) { return this.content.child(index); }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) { return this.content.maybeChild(index); }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) { this.content.forEach(f); }\n /**\n Invoke a callback for all descendant nodes recursively between\n the given two positions that are relative to start of this\n node's content. The callback is invoked with the node, its\n position relative to the original node (method receiver),\n its parent node, and its child index. When the callback returns\n false for a given node, that node's children will not be\n recursed over. The last parameter can be used to specify a\n starting position to count from.\n */\n nodesBetween(from, to, f, startPos = 0) {\n this.content.nodesBetween(from, to, f, startPos, this);\n }\n /**\n Call the given callback for every descendant node. Doesn't\n descend into a node when the callback returns `false`.\n */\n descendants(f) {\n this.nodesBetween(0, this.content.size, f);\n }\n /**\n Concatenates all the text nodes found in this fragment and its\n children.\n */\n get textContent() {\n return (this.isLeaf && this.type.spec.leafText)\n ? this.type.spec.leafText(this)\n : this.textBetween(0, this.content.size, \"\");\n }\n /**\n Get all text between positions `from` and `to`. When\n `blockSeparator` is given, it will be inserted to separate text\n from different block nodes. If `leafText` is given, it'll be\n inserted for every non-text leaf node encountered, otherwise\n [`leafText`](https://prosemirror.net/docs/ref/#model.NodeSpec^leafText) will be used.\n */\n textBetween(from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText);\n }\n /**\n Returns this node's first child, or `null` if there are no\n children.\n */\n get firstChild() { return this.content.firstChild; }\n /**\n Returns this node's last child, or `null` if there are no\n children.\n */\n get lastChild() { return this.content.lastChild; }\n /**\n Test whether two nodes represent the same piece of document.\n */\n eq(other) {\n return this == other || (this.sameMarkup(other) && this.content.eq(other.content));\n }\n /**\n Compare the markup (type, attributes, and marks) of this node to\n those of another. Returns `true` if both have the same markup.\n */\n sameMarkup(other) {\n return this.hasMarkup(other.type, other.attrs, other.marks);\n }\n /**\n Check whether this node's markup correspond to the given type,\n attributes, and marks.\n */\n hasMarkup(type, attrs, marks) {\n return this.type == type &&\n compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) &&\n Mark$1.sameSet(this.marks, marks || Mark$1.none);\n }\n /**\n Create a new node with the same markup as this node, containing\n the given content (or empty, if no content is given).\n */\n copy(content = null) {\n if (content == this.content)\n return this;\n return new Node$1(this.type, this.attrs, content, this.marks);\n }\n /**\n Create a copy of this node, with the given set of marks instead\n of the node's own marks.\n */\n mark(marks) {\n return marks == this.marks ? this : new Node$1(this.type, this.attrs, this.content, marks);\n }\n /**\n Create a copy of this node with only the content between the\n given positions. If `to` is not given, it defaults to the end of\n the node.\n */\n cut(from, to = this.content.size) {\n if (from == 0 && to == this.content.size)\n return this;\n return this.copy(this.content.cut(from, to));\n }\n /**\n Cut out the part of the document between the given positions, and\n return it as a `Slice` object.\n */\n slice(from, to = this.content.size, includeParents = false) {\n if (from == to)\n return Slice.empty;\n let $from = this.resolve(from), $to = this.resolve(to);\n let depth = includeParents ? 0 : $from.sharedDepth(to);\n let start = $from.start(depth), node = $from.node(depth);\n let content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth);\n }\n /**\n Replace the part of the document between the given positions with\n the given slice. The slice must 'fit', meaning its open sides\n must be able to connect to the surrounding content, and its\n content nodes must be valid children for the node they are placed\n into. If any of this is violated, an error of type\n [`ReplaceError`](https://prosemirror.net/docs/ref/#model.ReplaceError) is thrown.\n */\n replace(from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice);\n }\n /**\n Find the node directly after the given position.\n */\n nodeAt(pos) {\n for (let node = this;;) {\n let { index, offset } = node.content.findIndex(pos);\n node = node.maybeChild(index);\n if (!node)\n return null;\n if (offset == pos || node.isText)\n return node;\n pos -= offset + 1;\n }\n }\n /**\n Find the (direct) child node after the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childAfter(pos) {\n let { index, offset } = this.content.findIndex(pos);\n return { node: this.content.maybeChild(index), index, offset };\n }\n /**\n Find the (direct) child node before the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childBefore(pos) {\n if (pos == 0)\n return { node: null, index: 0, offset: 0 };\n let { index, offset } = this.content.findIndex(pos);\n if (offset < pos)\n return { node: this.content.child(index), index, offset };\n let node = this.content.child(index - 1);\n return { node, index: index - 1, offset: offset - node.nodeSize };\n }\n /**\n Resolve the given position in the document, returning an\n [object](https://prosemirror.net/docs/ref/#model.ResolvedPos) with information about its context.\n */\n resolve(pos) { return ResolvedPos.resolveCached(this, pos); }\n /**\n @internal\n */\n resolveNoCache(pos) { return ResolvedPos.resolve(this, pos); }\n /**\n Test whether a given mark or mark type occurs in this document\n between the two given positions.\n */\n rangeHasMark(from, to, type) {\n let found = false;\n if (to > from)\n this.nodesBetween(from, to, node => {\n if (type.isInSet(node.marks))\n found = true;\n return !found;\n });\n return found;\n }\n /**\n True when this is a block (non-inline node)\n */\n get isBlock() { return this.type.isBlock; }\n /**\n True when this is a textblock node, a block node with inline\n content.\n */\n get isTextblock() { return this.type.isTextblock; }\n /**\n True when this node allows inline content.\n */\n get inlineContent() { return this.type.inlineContent; }\n /**\n True when this is an inline node (a text node or a node that can\n appear among text).\n */\n get isInline() { return this.type.isInline; }\n /**\n True when this is a text node.\n */\n get isText() { return this.type.isText; }\n /**\n True when this is a leaf node.\n */\n get isLeaf() { return this.type.isLeaf; }\n /**\n True when this is an atom, i.e. when it does not have directly\n editable content. This is usually the same as `isLeaf`, but can\n be configured with the [`atom` property](https://prosemirror.net/docs/ref/#model.NodeSpec.atom)\n on a node's spec (typically used when the node is displayed as\n an uneditable [node view](https://prosemirror.net/docs/ref/#view.NodeView)).\n */\n get isAtom() { return this.type.isAtom; }\n /**\n Return a string representation of this node for debugging\n purposes.\n */\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n let name = this.type.name;\n if (this.content.size)\n name += \"(\" + this.content.toStringInner() + \")\";\n return wrapMarks(this.marks, name);\n }\n /**\n Get the content match in this node at the given index.\n */\n contentMatchAt(index) {\n let match = this.type.contentMatch.matchFragment(this.content, 0, index);\n if (!match)\n throw new Error(\"Called contentMatchAt on a node with invalid content\");\n return match;\n }\n /**\n Test whether replacing the range between `from` and `to` (by\n child index) with the given replacement fragment (which defaults\n to the empty fragment) would leave the node's content valid. You\n can optionally pass `start` and `end` indices into the\n replacement fragment.\n */\n canReplace(from, to, replacement = Fragment.empty, start = 0, end = replacement.childCount) {\n let one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n let two = one && one.matchFragment(this.content, to);\n if (!two || !two.validEnd)\n return false;\n for (let i = start; i < end; i++)\n if (!this.type.allowsMarks(replacement.child(i).marks))\n return false;\n return true;\n }\n /**\n Test whether replacing the range `from` to `to` (by index) with\n a node of the given type would leave the node's content valid.\n */\n canReplaceWith(from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks))\n return false;\n let start = this.contentMatchAt(from).matchType(type);\n let end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false;\n }\n /**\n Test whether the given node's content could be appended to this\n node. If that node is empty, this will only return true if there\n is at least one node type that can appear in both nodes (to avoid\n merging completely incompatible nodes).\n */\n canAppend(other) {\n if (other.content.size)\n return this.canReplace(this.childCount, this.childCount, other.content);\n else\n return this.type.compatibleContent(other.type);\n }\n /**\n Check whether this node and its descendants conform to the\n schema, and raise error when they do not.\n */\n check() {\n this.type.checkContent(this.content);\n let copy = Mark$1.none;\n for (let i = 0; i < this.marks.length; i++)\n copy = this.marks[i].addToSet(copy);\n if (!Mark$1.sameSet(copy, this.marks))\n throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(m => m.type.name)}`);\n this.content.forEach(node => node.check());\n }\n /**\n Return a JSON-serializeable representation of this node.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n if (this.content.size)\n obj.content = this.content.toJSON();\n if (this.marks.length)\n obj.marks = this.marks.map(n => n.toJSON());\n return obj;\n }\n /**\n Deserialize a node from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Node.fromJSON\");\n let marks = null;\n if (json.marks) {\n if (!Array.isArray(json.marks))\n throw new RangeError(\"Invalid mark data for Node.fromJSON\");\n marks = json.marks.map(schema.markFromJSON);\n }\n if (json.type == \"text\") {\n if (typeof json.text != \"string\")\n throw new RangeError(\"Invalid text node in JSON\");\n return schema.text(json.text, marks);\n }\n let content = Fragment.fromJSON(schema, json.content);\n return schema.nodeType(json.type).create(json.attrs, content, marks);\n }\n}\nNode$1.prototype.text = undefined;\nclass TextNode extends Node$1 {\n /**\n @internal\n */\n constructor(type, attrs, content, marks) {\n super(type, attrs, null, marks);\n if (!content)\n throw new RangeError(\"Empty text nodes are not allowed\");\n this.text = content;\n }\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n return wrapMarks(this.marks, JSON.stringify(this.text));\n }\n get textContent() { return this.text; }\n textBetween(from, to) { return this.text.slice(from, to); }\n get nodeSize() { return this.text.length; }\n mark(marks) {\n return marks == this.marks ? this : new TextNode(this.type, this.attrs, this.text, marks);\n }\n withText(text) {\n if (text == this.text)\n return this;\n return new TextNode(this.type, this.attrs, text, this.marks);\n }\n cut(from = 0, to = this.text.length) {\n if (from == 0 && to == this.text.length)\n return this;\n return this.withText(this.text.slice(from, to));\n }\n eq(other) {\n return this.sameMarkup(other) && this.text == other.text;\n }\n toJSON() {\n let base = super.toJSON();\n base.text = this.text;\n return base;\n }\n}\nfunction wrapMarks(marks, str) {\n for (let i = marks.length - 1; i >= 0; i--)\n str = marks[i].type.name + \"(\" + str + \")\";\n return str;\n}\n\n/**\nInstances of this class represent a match state of a node type's\n[content expression](https://prosemirror.net/docs/ref/#model.NodeSpec.content), and can be used to\nfind out whether further content matches here, and whether a given\nposition is a valid end of the node.\n*/\nclass ContentMatch {\n /**\n @internal\n */\n constructor(\n /**\n True when this match state represents a valid end of the node.\n */\n validEnd) {\n this.validEnd = validEnd;\n /**\n @internal\n */\n this.next = [];\n /**\n @internal\n */\n this.wrapCache = [];\n }\n /**\n @internal\n */\n static parse(string, nodeTypes) {\n let stream = new TokenStream(string, nodeTypes);\n if (stream.next == null)\n return ContentMatch.empty;\n let expr = parseExpr(stream);\n if (stream.next)\n stream.err(\"Unexpected trailing text\");\n let match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match;\n }\n /**\n Match a node type, returning a match after that node if\n successful.\n */\n matchType(type) {\n for (let i = 0; i < this.next.length; i++)\n if (this.next[i].type == type)\n return this.next[i].next;\n return null;\n }\n /**\n Try to match a fragment. Returns the resulting match when\n successful.\n */\n matchFragment(frag, start = 0, end = frag.childCount) {\n let cur = this;\n for (let i = start; cur && i < end; i++)\n cur = cur.matchType(frag.child(i).type);\n return cur;\n }\n /**\n @internal\n */\n get inlineContent() {\n return this.next.length != 0 && this.next[0].type.isInline;\n }\n /**\n Get the first matching node type at this match position that can\n be generated.\n */\n get defaultType() {\n for (let i = 0; i < this.next.length; i++) {\n let { type } = this.next[i];\n if (!(type.isText || type.hasRequiredAttrs()))\n return type;\n }\n return null;\n }\n /**\n @internal\n */\n compatible(other) {\n for (let i = 0; i < this.next.length; i++)\n for (let j = 0; j < other.next.length; j++)\n if (this.next[i].type == other.next[j].type)\n return true;\n return false;\n }\n /**\n Try to match the given fragment, and if that fails, see if it can\n be made to match by inserting nodes in front of it. When\n successful, return a fragment of inserted nodes (which may be\n empty if nothing had to be inserted). When `toEnd` is true, only\n return a fragment if the resulting match goes to the end of the\n content expression.\n */\n fillBefore(after, toEnd = false, startIndex = 0) {\n let seen = [this];\n function search(match, types) {\n let finished = match.matchFragment(after, startIndex);\n if (finished && (!toEnd || finished.validEnd))\n return Fragment.from(types.map(tp => tp.createAndFill()));\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n let found = search(next, types.concat(type));\n if (found)\n return found;\n }\n }\n return null;\n }\n return search(this, []);\n }\n /**\n Find a set of wrapping node types that would allow a node of the\n given type to appear at this position. The result may be empty\n (when it fits directly) and will be null when no such wrapping\n exists.\n */\n findWrapping(target) {\n for (let i = 0; i < this.wrapCache.length; i += 2)\n if (this.wrapCache[i] == target)\n return this.wrapCache[i + 1];\n let computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed;\n }\n /**\n @internal\n */\n computeWrapping(target) {\n let seen = Object.create(null), active = [{ match: this, type: null, via: null }];\n while (active.length) {\n let current = active.shift(), match = current.match;\n if (match.matchType(target)) {\n let result = [];\n for (let obj = current; obj.type; obj = obj.via)\n result.push(obj.type);\n return result.reverse();\n }\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || next.validEnd)) {\n active.push({ match: type.contentMatch, type, via: current });\n seen[type.name] = true;\n }\n }\n }\n return null;\n }\n /**\n The number of outgoing edges this node has in the finite\n automaton that describes the content expression.\n */\n get edgeCount() {\n return this.next.length;\n }\n /**\n Get the _n_​th outgoing edge from this node in the finite\n automaton that describes the content expression.\n */\n edge(n) {\n if (n >= this.next.length)\n throw new RangeError(`There's no ${n}th edge in this content match`);\n return this.next[n];\n }\n /**\n @internal\n */\n toString() {\n let seen = [];\n function scan(m) {\n seen.push(m);\n for (let i = 0; i < m.next.length; i++)\n if (seen.indexOf(m.next[i].next) == -1)\n scan(m.next[i].next);\n }\n scan(this);\n return seen.map((m, i) => {\n let out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n for (let i = 0; i < m.next.length; i++)\n out += (i ? \", \" : \"\") + m.next[i].type.name + \"->\" + seen.indexOf(m.next[i].next);\n return out;\n }).join(\"\\n\");\n }\n}\n/**\n@internal\n*/\nContentMatch.empty = new ContentMatch(true);\nclass TokenStream {\n constructor(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n if (this.tokens[this.tokens.length - 1] == \"\")\n this.tokens.pop();\n if (this.tokens[0] == \"\")\n this.tokens.shift();\n }\n get next() { return this.tokens[this.pos]; }\n eat(tok) { return this.next == tok && (this.pos++ || true); }\n err(str) { throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\"); }\n}\nfunction parseExpr(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSeq(stream));\n } while (stream.eat(\"|\"));\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n}\nfunction parseExprSeq(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSubscript(stream));\n } while (stream.next && stream.next != \")\" && stream.next != \"|\");\n return exprs.length == 1 ? exprs[0] : { type: \"seq\", exprs };\n}\nfunction parseExprSubscript(stream) {\n let expr = parseExprAtom(stream);\n for (;;) {\n if (stream.eat(\"+\"))\n expr = { type: \"plus\", expr };\n else if (stream.eat(\"*\"))\n expr = { type: \"star\", expr };\n else if (stream.eat(\"?\"))\n expr = { type: \"opt\", expr };\n else if (stream.eat(\"{\"))\n expr = parseExprRange(stream, expr);\n else\n break;\n }\n return expr;\n}\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next))\n stream.err(\"Expected number, got '\" + stream.next + \"'\");\n let result = Number(stream.next);\n stream.pos++;\n return result;\n}\nfunction parseExprRange(stream, expr) {\n let min = parseNum(stream), max = min;\n if (stream.eat(\",\")) {\n if (stream.next != \"}\")\n max = parseNum(stream);\n else\n max = -1;\n }\n if (!stream.eat(\"}\"))\n stream.err(\"Unclosed braced range\");\n return { type: \"range\", min, max, expr };\n}\nfunction resolveName(stream, name) {\n let types = stream.nodeTypes, type = types[name];\n if (type)\n return [type];\n let result = [];\n for (let typeName in types) {\n let type = types[typeName];\n if (type.groups.indexOf(name) > -1)\n result.push(type);\n }\n if (result.length == 0)\n stream.err(\"No node type or group '\" + name + \"' found\");\n return result;\n}\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n let expr = parseExpr(stream);\n if (!stream.eat(\")\"))\n stream.err(\"Missing closing paren\");\n return expr;\n }\n else if (!/\\W/.test(stream.next)) {\n let exprs = resolveName(stream, stream.next).map(type => {\n if (stream.inline == null)\n stream.inline = type.isInline;\n else if (stream.inline != type.isInline)\n stream.err(\"Mixing inline and block content\");\n return { type: \"name\", value: type };\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n }\n else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n}\n/**\nConstruct an NFA from an expression as returned by the parser. The\nNFA is represented as an array of states, which are themselves\narrays of edges, which are `{term, to}` objects. The first state is\nthe entry state and the last node is the success state.\n\nNote that unlike typical NFAs, the edge ordering in this one is\nsignificant, in that it is used to contruct filler content when\nnecessary.\n*/\nfunction nfa(expr) {\n let nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa;\n function node() { return nfa.push([]) - 1; }\n function edge(from, to, term) {\n let edge = { term, to };\n nfa[from].push(edge);\n return edge;\n }\n function connect(edges, to) {\n edges.forEach(edge => edge.to = to);\n }\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce((out, expr) => out.concat(compile(expr, from)), []);\n }\n else if (expr.type == \"seq\") {\n for (let i = 0;; i++) {\n let next = compile(expr.exprs[i], from);\n if (i == expr.exprs.length - 1)\n return next;\n connect(next, from = node());\n }\n }\n else if (expr.type == \"star\") {\n let loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"plus\") {\n let loop = node();\n connect(compile(expr.expr, from), loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from));\n }\n else if (expr.type == \"range\") {\n let cur = from;\n for (let i = 0; i < expr.min; i++) {\n let next = node();\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n }\n else {\n for (let i = expr.min; i < expr.max; i++) {\n let next = node();\n edge(cur, next);\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n }\n return [edge(cur)];\n }\n else if (expr.type == \"name\") {\n return [edge(from, undefined, expr.value)];\n }\n else {\n throw new Error(\"Unknown expr type\");\n }\n }\n}\nfunction cmp(a, b) { return b - a; }\n// Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\nfunction nullFrom(nfa, node) {\n let result = [];\n scan(node);\n return result.sort(cmp);\n function scan(node) {\n let edges = nfa[node];\n if (edges.length == 1 && !edges[0].term)\n return scan(edges[0].to);\n result.push(node);\n for (let i = 0; i < edges.length; i++) {\n let { term, to } = edges[i];\n if (!term && result.indexOf(to) == -1)\n scan(to);\n }\n }\n}\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\nfunction dfa(nfa) {\n let labeled = Object.create(null);\n return explore(nullFrom(nfa, 0));\n function explore(states) {\n let out = [];\n states.forEach(node => {\n nfa[node].forEach(({ term, to }) => {\n if (!term)\n return;\n let set;\n for (let i = 0; i < out.length; i++)\n if (out[i][0] == term)\n set = out[i][1];\n nullFrom(nfa, to).forEach(node => {\n if (!set)\n out.push([term, set = []]);\n if (set.indexOf(node) == -1)\n set.push(node);\n });\n });\n });\n let state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n for (let i = 0; i < out.length; i++) {\n let states = out[i][1].sort(cmp);\n state.next.push({ type: out[i][0], next: labeled[states.join(\",\")] || explore(states) });\n }\n return state;\n }\n}\nfunction checkForDeadEnds(match, stream) {\n for (let i = 0, work = [match]; i < work.length; i++) {\n let state = work[i], dead = !state.validEnd, nodes = [];\n for (let j = 0; j < state.next.length; j++) {\n let { type, next } = state.next[j];\n nodes.push(type.name);\n if (dead && !(type.isText || type.hasRequiredAttrs()))\n dead = false;\n if (work.indexOf(next) == -1)\n work.push(next);\n }\n if (dead)\n stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\");\n }\n}\n\n// For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\nfunction defaultAttrs(attrs) {\n let defaults = Object.create(null);\n for (let attrName in attrs) {\n let attr = attrs[attrName];\n if (!attr.hasDefault)\n return null;\n defaults[attrName] = attr.default;\n }\n return defaults;\n}\nfunction computeAttrs(attrs, value) {\n let built = Object.create(null);\n for (let name in attrs) {\n let given = value && value[name];\n if (given === undefined) {\n let attr = attrs[name];\n if (attr.hasDefault)\n given = attr.default;\n else\n throw new RangeError(\"No value supplied for attribute \" + name);\n }\n built[name] = given;\n }\n return built;\n}\nfunction initAttrs(attrs) {\n let result = Object.create(null);\n if (attrs)\n for (let name in attrs)\n result[name] = new Attribute(attrs[name]);\n return result;\n}\n/**\nNode types are objects allocated once per `Schema` and used to\n[tag](https://prosemirror.net/docs/ref/#model.Node.type) `Node` instances. They contain information\nabout the node type, such as its name and what kind of node it\nrepresents.\n*/\nclass NodeType$1 {\n /**\n @internal\n */\n constructor(\n /**\n The name the node type has in this schema.\n */\n name, \n /**\n A link back to the `Schema` the node type belongs to.\n */\n schema, \n /**\n The spec that this type is based on\n */\n spec) {\n this.name = name;\n this.schema = schema;\n this.spec = spec;\n /**\n The set of marks allowed in this node. `null` means all marks\n are allowed.\n */\n this.markSet = null;\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(spec.attrs);\n this.defaultAttrs = defaultAttrs(this.attrs);\n this.contentMatch = null;\n this.inlineContent = null;\n this.isBlock = !(spec.inline || name == \"text\");\n this.isText = name == \"text\";\n }\n /**\n True if this is an inline type.\n */\n get isInline() { return !this.isBlock; }\n /**\n True if this is a textblock type, a block that contains inline\n content.\n */\n get isTextblock() { return this.isBlock && this.inlineContent; }\n /**\n True for node types that allow no content.\n */\n get isLeaf() { return this.contentMatch == ContentMatch.empty; }\n /**\n True when this node is an atom, i.e. when it does not have\n directly editable content.\n */\n get isAtom() { return this.isLeaf || !!this.spec.atom; }\n /**\n The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.\n */\n get whitespace() {\n return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\");\n }\n /**\n Tells you whether this node type has any required attributes.\n */\n hasRequiredAttrs() {\n for (let n in this.attrs)\n if (this.attrs[n].isRequired)\n return true;\n return false;\n }\n /**\n Indicates whether this node allows some of the same content as\n the given node type.\n */\n compatibleContent(other) {\n return this == other || this.contentMatch.compatible(other.contentMatch);\n }\n /**\n @internal\n */\n computeAttrs(attrs) {\n if (!attrs && this.defaultAttrs)\n return this.defaultAttrs;\n else\n return computeAttrs(this.attrs, attrs);\n }\n /**\n Create a `Node` of this type. The given attributes are\n checked and defaulted (you can pass `null` to use the type's\n defaults entirely, if no required attributes exist). `content`\n may be a `Fragment`, a node, an array of nodes, or\n `null`. Similarly `marks` may be `null` to default to the empty\n set of marks.\n */\n create(attrs = null, content, marks) {\n if (this.isText)\n throw new Error(\"NodeType.create can't construct text nodes\");\n return new Node$1(this, this.computeAttrs(attrs), Fragment.from(content), Mark$1.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but check the given content\n against the node type's content restrictions, and throw an error\n if it doesn't match.\n */\n createChecked(attrs = null, content, marks) {\n content = Fragment.from(content);\n this.checkContent(content);\n return new Node$1(this, this.computeAttrs(attrs), content, Mark$1.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but see if it is\n necessary to add nodes to the start or end of the given fragment\n to make it fit the node. If no fitting wrapping can be found,\n return null. Note that, due to the fact that required nodes can\n always be created, this will always succeed if you pass null or\n `Fragment.empty` as content.\n */\n createAndFill(attrs = null, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n if (content.size) {\n let before = this.contentMatch.fillBefore(content);\n if (!before)\n return null;\n content = before.append(content);\n }\n let matched = this.contentMatch.matchFragment(content);\n let after = matched && matched.fillBefore(Fragment.empty, true);\n if (!after)\n return null;\n return new Node$1(this, attrs, content.append(after), Mark$1.setFrom(marks));\n }\n /**\n Returns true if the given fragment is valid content for this node\n type with the given attributes.\n */\n validContent(content) {\n let result = this.contentMatch.matchFragment(content);\n if (!result || !result.validEnd)\n return false;\n for (let i = 0; i < content.childCount; i++)\n if (!this.allowsMarks(content.child(i).marks))\n return false;\n return true;\n }\n /**\n Throws a RangeError if the given fragment is not valid content for this\n node type.\n @internal\n */\n checkContent(content) {\n if (!this.validContent(content))\n throw new RangeError(`Invalid content for node ${this.name}: ${content.toString().slice(0, 50)}`);\n }\n /**\n Check whether the given mark type is allowed in this node.\n */\n allowsMarkType(markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1;\n }\n /**\n Test whether the given set of marks are allowed in this node.\n */\n allowsMarks(marks) {\n if (this.markSet == null)\n return true;\n for (let i = 0; i < marks.length; i++)\n if (!this.allowsMarkType(marks[i].type))\n return false;\n return true;\n }\n /**\n Removes the marks that are not allowed in this node from the given set.\n */\n allowedMarks(marks) {\n if (this.markSet == null)\n return marks;\n let copy;\n for (let i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy)\n copy = marks.slice(0, i);\n }\n else if (copy) {\n copy.push(marks[i]);\n }\n }\n return !copy ? marks : copy.length ? copy : Mark$1.none;\n }\n /**\n @internal\n */\n static compile(nodes, schema) {\n let result = Object.create(null);\n nodes.forEach((name, spec) => result[name] = new NodeType$1(name, schema, spec));\n let topType = schema.spec.topNode || \"doc\";\n if (!result[topType])\n throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\");\n if (!result.text)\n throw new RangeError(\"Every schema needs a 'text' type\");\n for (let _ in result.text.attrs)\n throw new RangeError(\"The text node type should not have attributes\");\n return result;\n }\n}\n// Attribute descriptors\nclass Attribute {\n constructor(options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this.default = options.default;\n }\n get isRequired() {\n return !this.hasDefault;\n }\n}\n// Marks\n/**\nLike nodes, marks (which are associated with nodes to signify\nthings like emphasis or being part of a link) are\n[tagged](https://prosemirror.net/docs/ref/#model.Mark.type) with type objects, which are\ninstantiated once per `Schema`.\n*/\nclass MarkType {\n /**\n @internal\n */\n constructor(\n /**\n The name of the mark type.\n */\n name, \n /**\n @internal\n */\n rank, \n /**\n The schema that this mark type instance is part of.\n */\n schema, \n /**\n The spec on which the type is based.\n */\n spec) {\n this.name = name;\n this.rank = rank;\n this.schema = schema;\n this.spec = spec;\n this.attrs = initAttrs(spec.attrs);\n this.excluded = null;\n let defaults = defaultAttrs(this.attrs);\n this.instance = defaults ? new Mark$1(this, defaults) : null;\n }\n /**\n Create a mark of this type. `attrs` may be `null` or an object\n containing only some of the mark's attributes. The others, if\n they have defaults, will be added.\n */\n create(attrs = null) {\n if (!attrs && this.instance)\n return this.instance;\n return new Mark$1(this, computeAttrs(this.attrs, attrs));\n }\n /**\n @internal\n */\n static compile(marks, schema) {\n let result = Object.create(null), rank = 0;\n marks.forEach((name, spec) => result[name] = new MarkType(name, rank++, schema, spec));\n return result;\n }\n /**\n When there is a mark of this type in the given set, a new set\n without it is returned. Otherwise, the input set is returned.\n */\n removeFromSet(set) {\n for (var i = 0; i < set.length; i++)\n if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n }\n return set;\n }\n /**\n Tests whether there is a mark of this type in the given set.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (set[i].type == this)\n return set[i];\n }\n /**\n Queries whether a given mark type is\n [excluded](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) by this one.\n */\n excludes(other) {\n return this.excluded.indexOf(other) > -1;\n }\n}\n/**\nA document schema. Holds [node](https://prosemirror.net/docs/ref/#model.NodeType) and [mark\ntype](https://prosemirror.net/docs/ref/#model.MarkType) objects for the nodes and marks that may\noccur in conforming documents, and provides functionality for\ncreating and deserializing such documents.\n\nWhen given, the type parameters provide the names of the nodes and\nmarks in this schema.\n*/\nclass Schema {\n /**\n Construct a schema from a schema [specification](https://prosemirror.net/docs/ref/#model.SchemaSpec).\n */\n constructor(spec) {\n /**\n An object for storing whatever values modules may want to\n compute and cache per schema. (If you want to store something\n in it, try to use property names unlikely to clash.)\n */\n this.cached = Object.create(null);\n let instanceSpec = this.spec = {};\n for (let prop in spec)\n instanceSpec[prop] = spec[prop];\n instanceSpec.nodes = OrderedMap.from(spec.nodes),\n instanceSpec.marks = OrderedMap.from(spec.marks || {}),\n this.nodes = NodeType$1.compile(this.spec.nodes, this);\n this.marks = MarkType.compile(this.spec.marks, this);\n let contentExprCache = Object.create(null);\n for (let prop in this.nodes) {\n if (prop in this.marks)\n throw new RangeError(prop + \" can not be both a node and a mark\");\n let type = this.nodes[prop], contentExpr = type.spec.content || \"\", markExpr = type.spec.marks;\n type.contentMatch = contentExprCache[contentExpr] ||\n (contentExprCache[contentExpr] = ContentMatch.parse(contentExpr, this.nodes));\n type.inlineContent = type.contentMatch.inlineContent;\n type.markSet = markExpr == \"_\" ? null :\n markExpr ? gatherMarks(this, markExpr.split(\" \")) :\n markExpr == \"\" || !type.inlineContent ? [] : null;\n }\n for (let prop in this.marks) {\n let type = this.marks[prop], excl = type.spec.excludes;\n type.excluded = excl == null ? [type] : excl == \"\" ? [] : gatherMarks(this, excl.split(\" \"));\n }\n this.nodeFromJSON = this.nodeFromJSON.bind(this);\n this.markFromJSON = this.markFromJSON.bind(this);\n this.topNodeType = this.nodes[this.spec.topNode || \"doc\"];\n this.cached.wrappings = Object.create(null);\n }\n /**\n Create a node in this schema. The `type` may be a string or a\n `NodeType` instance. Attributes will be extended with defaults,\n `content` may be a `Fragment`, `null`, a `Node`, or an array of\n nodes.\n */\n node(type, attrs = null, content, marks) {\n if (typeof type == \"string\")\n type = this.nodeType(type);\n else if (!(type instanceof NodeType$1))\n throw new RangeError(\"Invalid node type: \" + type);\n else if (type.schema != this)\n throw new RangeError(\"Node type from different schema used (\" + type.name + \")\");\n return type.createChecked(attrs, content, marks);\n }\n /**\n Create a text node in the schema. Empty text nodes are not\n allowed.\n */\n text(text, marks) {\n let type = this.nodes.text;\n return new TextNode(type, type.defaultAttrs, text, Mark$1.setFrom(marks));\n }\n /**\n Create a mark with the given type and attributes.\n */\n mark(type, attrs) {\n if (typeof type == \"string\")\n type = this.marks[type];\n return type.create(attrs);\n }\n /**\n Deserialize a node from its JSON representation. This method is\n bound.\n */\n nodeFromJSON(json) {\n return Node$1.fromJSON(this, json);\n }\n /**\n Deserialize a mark from its JSON representation. This method is\n bound.\n */\n markFromJSON(json) {\n return Mark$1.fromJSON(this, json);\n }\n /**\n @internal\n */\n nodeType(name) {\n let found = this.nodes[name];\n if (!found)\n throw new RangeError(\"Unknown node type: \" + name);\n return found;\n }\n}\nfunction gatherMarks(schema, marks) {\n let found = [];\n for (let i = 0; i < marks.length; i++) {\n let name = marks[i], mark = schema.marks[name], ok = mark;\n if (mark) {\n found.push(mark);\n }\n else {\n for (let prop in schema.marks) {\n let mark = schema.marks[prop];\n if (name == \"_\" || (mark.spec.group && mark.spec.group.split(\" \").indexOf(name) > -1))\n found.push(ok = mark);\n }\n }\n if (!ok)\n throw new SyntaxError(\"Unknown mark type: '\" + marks[i] + \"'\");\n }\n return found;\n}\n\n/**\nA DOM parser represents a strategy for parsing DOM content into a\nProseMirror document conforming to a given schema. Its behavior is\ndefined by an array of [rules](https://prosemirror.net/docs/ref/#model.ParseRule).\n*/\nclass DOMParser {\n /**\n Create a parser that targets the given schema, using the given\n parsing rules.\n */\n constructor(\n /**\n The schema into which the parser parses.\n */\n schema, \n /**\n The set of [parse rules](https://prosemirror.net/docs/ref/#model.ParseRule) that the parser\n uses, in order of precedence.\n */\n rules) {\n this.schema = schema;\n this.rules = rules;\n /**\n @internal\n */\n this.tags = [];\n /**\n @internal\n */\n this.styles = [];\n rules.forEach(rule => {\n if (rule.tag)\n this.tags.push(rule);\n else if (rule.style)\n this.styles.push(rule);\n });\n // Only normalize list elements when lists in the schema can't directly contain themselves\n this.normalizeLists = !this.tags.some(r => {\n if (!/^(ul|ol)\\b/.test(r.tag) || !r.node)\n return false;\n let node = schema.nodes[r.node];\n return node.contentMatch.matchType(node);\n });\n }\n /**\n Parse a document from the content of a DOM node.\n */\n parse(dom, options = {}) {\n let context = new ParseContext(this, options, false);\n context.addAll(dom, options.from, options.to);\n return context.finish();\n }\n /**\n Parses the content of the given DOM node, like\n [`parse`](https://prosemirror.net/docs/ref/#model.DOMParser.parse), and takes the same set of\n options. But unlike that method, which produces a whole node,\n this one returns a slice that is open at the sides, meaning that\n the schema constraints aren't applied to the start of nodes to\n the left of the input and the end of nodes at the end.\n */\n parseSlice(dom, options = {}) {\n let context = new ParseContext(this, options, true);\n context.addAll(dom, options.from, options.to);\n return Slice.maxOpen(context.finish());\n }\n /**\n @internal\n */\n matchTag(dom, context, after) {\n for (let i = after ? this.tags.indexOf(after) + 1 : 0; i < this.tags.length; i++) {\n let rule = this.tags[i];\n if (matches(dom, rule.tag) &&\n (rule.namespace === undefined || dom.namespaceURI == rule.namespace) &&\n (!rule.context || context.matchesContext(rule.context))) {\n if (rule.getAttrs) {\n let result = rule.getAttrs(dom);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n }\n /**\n @internal\n */\n matchStyle(prop, value, context, after) {\n for (let i = after ? this.styles.indexOf(after) + 1 : 0; i < this.styles.length; i++) {\n let rule = this.styles[i], style = rule.style;\n if (style.indexOf(prop) != 0 ||\n rule.context && !context.matchesContext(rule.context) ||\n // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n style.length > prop.length &&\n (style.charCodeAt(prop.length) != 61 || style.slice(prop.length + 1) != value))\n continue;\n if (rule.getAttrs) {\n let result = rule.getAttrs(value);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n /**\n @internal\n */\n static schemaRules(schema) {\n let result = [];\n function insert(rule) {\n let priority = rule.priority == null ? 50 : rule.priority, i = 0;\n for (; i < result.length; i++) {\n let next = result[i], nextPriority = next.priority == null ? 50 : next.priority;\n if (nextPriority < priority)\n break;\n }\n result.splice(i, 0, rule);\n }\n for (let name in schema.marks) {\n let rules = schema.marks[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.mark || rule.ignore || rule.clearMark))\n rule.mark = name;\n });\n }\n for (let name in schema.nodes) {\n let rules = schema.nodes[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.node || rule.ignore || rule.mark))\n rule.node = name;\n });\n }\n return result;\n }\n /**\n Construct a DOM parser using the parsing rules listed in a\n schema's [node specs](https://prosemirror.net/docs/ref/#model.NodeSpec.parseDOM), reordered by\n [priority](https://prosemirror.net/docs/ref/#model.ParseRule.priority).\n */\n static fromSchema(schema) {\n return schema.cached.domParser ||\n (schema.cached.domParser = new DOMParser(schema, DOMParser.schemaRules(schema)));\n }\n}\nconst blockTags = {\n address: true, article: true, aside: true, blockquote: true, canvas: true,\n dd: true, div: true, dl: true, fieldset: true, figcaption: true, figure: true,\n footer: true, form: true, h1: true, h2: true, h3: true, h4: true, h5: true,\n h6: true, header: true, hgroup: true, hr: true, li: true, noscript: true, ol: true,\n output: true, p: true, pre: true, section: true, table: true, tfoot: true, ul: true\n};\nconst ignoreTags = {\n head: true, noscript: true, object: true, script: true, style: true, title: true\n};\nconst listTags = { ol: true, ul: true };\n// Using a bitfield for node context options\nconst OPT_PRESERVE_WS = 1, OPT_PRESERVE_WS_FULL = 2, OPT_OPEN_LEFT = 4;\nfunction wsOptionsFor(type, preserveWhitespace, base) {\n if (preserveWhitespace != null)\n return (preserveWhitespace ? OPT_PRESERVE_WS : 0) |\n (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0);\n return type && type.whitespace == \"pre\" ? OPT_PRESERVE_WS | OPT_PRESERVE_WS_FULL : base & ~OPT_OPEN_LEFT;\n}\nclass NodeContext {\n constructor(type, attrs, \n // Marks applied to this node itself\n marks, \n // Marks that can't apply here, but will be used in children if possible\n pendingMarks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.pendingMarks = pendingMarks;\n this.solid = solid;\n this.options = options;\n this.content = [];\n // Marks applied to the node's children\n this.activeMarks = Mark$1.none;\n // Nested Marks with same type\n this.stashMarks = [];\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n }\n findWrapping(node) {\n if (!this.match) {\n if (!this.type)\n return [];\n let fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n }\n else {\n let start = this.type.contentMatch, wrap;\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap;\n }\n else {\n return null;\n }\n }\n }\n return this.match.findWrapping(node.type);\n }\n finish(openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) { // Strip trailing whitespace\n let last = this.content[this.content.length - 1], m;\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n let text = last;\n if (last.text.length == m[0].length)\n this.content.pop();\n else\n this.content[this.content.length - 1] = text.withText(text.text.slice(0, text.text.length - m[0].length));\n }\n }\n let content = Fragment.from(this.content);\n if (!openEnd && this.match)\n content = content.append(this.match.fillBefore(Fragment.empty, true));\n return this.type ? this.type.create(this.attrs, content, this.marks) : content;\n }\n popFromStashMark(mark) {\n for (let i = this.stashMarks.length - 1; i >= 0; i--)\n if (mark.eq(this.stashMarks[i]))\n return this.stashMarks.splice(i, 1)[0];\n }\n applyPending(nextType) {\n for (let i = 0, pending = this.pendingMarks; i < pending.length; i++) {\n let mark = pending[i];\n if ((this.type ? this.type.allowsMarkType(mark.type) : markMayApply(mark.type, nextType)) &&\n !mark.isInSet(this.activeMarks)) {\n this.activeMarks = mark.addToSet(this.activeMarks);\n this.pendingMarks = mark.removeFromSet(this.pendingMarks);\n }\n }\n }\n inlineContext(node) {\n if (this.type)\n return this.type.inlineContent;\n if (this.content.length)\n return this.content[0].isInline;\n return node.parentNode && !blockTags.hasOwnProperty(node.parentNode.nodeName.toLowerCase());\n }\n}\nclass ParseContext {\n constructor(\n // The parser we are using.\n parser, \n // The options passed to this parse.\n options, isOpen) {\n this.parser = parser;\n this.options = options;\n this.isOpen = isOpen;\n this.open = 0;\n let topNode = options.topNode, topContext;\n let topOptions = wsOptionsFor(null, options.preserveWhitespace, 0) | (isOpen ? OPT_OPEN_LEFT : 0);\n if (topNode)\n topContext = new NodeContext(topNode.type, topNode.attrs, Mark$1.none, Mark$1.none, true, options.topMatch || topNode.type.contentMatch, topOptions);\n else if (isOpen)\n topContext = new NodeContext(null, null, Mark$1.none, Mark$1.none, true, null, topOptions);\n else\n topContext = new NodeContext(parser.schema.topNodeType, null, Mark$1.none, Mark$1.none, true, null, topOptions);\n this.nodes = [topContext];\n this.find = options.findPositions;\n this.needsBlock = false;\n }\n get top() {\n return this.nodes[this.open];\n }\n // Add a DOM node to the content. Text is inserted as text node,\n // otherwise, the node is passed to `addElement` or, if it has a\n // `style` attribute, `addElementWithStyles`.\n addDOM(dom) {\n if (dom.nodeType == 3) {\n this.addTextNode(dom);\n }\n else if (dom.nodeType == 1) {\n let style = dom.getAttribute(\"style\");\n if (!style) {\n this.addElement(dom);\n }\n else {\n let marks = this.readStyles(parseStyles(style));\n if (!marks)\n return; // A style with ignore: true\n let [addMarks, removeMarks] = marks, top = this.top;\n for (let i = 0; i < removeMarks.length; i++)\n this.removePendingMark(removeMarks[i], top);\n for (let i = 0; i < addMarks.length; i++)\n this.addPendingMark(addMarks[i]);\n this.addElement(dom);\n for (let i = 0; i < addMarks.length; i++)\n this.removePendingMark(addMarks[i], top);\n for (let i = 0; i < removeMarks.length; i++)\n this.addPendingMark(removeMarks[i]);\n }\n }\n }\n addTextNode(dom) {\n let value = dom.nodeValue;\n let top = this.top;\n if (top.options & OPT_PRESERVE_WS_FULL ||\n top.inlineContext(dom) ||\n /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!(top.options & OPT_PRESERVE_WS)) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \");\n // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n let nodeBefore = top.content[top.content.length - 1];\n let domNodeBefore = dom.previousSibling;\n if (!nodeBefore ||\n (domNodeBefore && domNodeBefore.nodeName == 'BR') ||\n (nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)))\n value = value.slice(1);\n }\n }\n else if (!(top.options & OPT_PRESERVE_WS_FULL)) {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n }\n else {\n value = value.replace(/\\r\\n?/g, \"\\n\");\n }\n if (value)\n this.insertNode(this.parser.schema.text(value));\n this.findInText(dom);\n }\n else {\n this.findInside(dom);\n }\n }\n // Try to find a handler for the given tag and use that to parse. If\n // none is found, the element's content nodes are added directly.\n addElement(dom, matchAfter) {\n let name = dom.nodeName.toLowerCase(), ruleID;\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists)\n normalizeList(dom);\n let rule = (this.options.ruleFromNode && this.options.ruleFromNode(dom)) ||\n (ruleID = this.parser.matchTag(dom, this, matchAfter));\n if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n this.ignoreFallback(dom);\n }\n else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent)\n this.open = Math.max(0, this.open - 1);\n else if (rule && rule.skip.nodeType)\n dom = rule.skip;\n let sync, top = this.top, oldNeedsBlock = this.needsBlock;\n if (blockTags.hasOwnProperty(name)) {\n if (top.content.length && top.content[0].isInline && this.open) {\n this.open--;\n top = this.top;\n }\n sync = true;\n if (!top.type)\n this.needsBlock = true;\n }\n else if (!dom.firstChild) {\n this.leafFallback(dom);\n return;\n }\n this.addAll(dom);\n if (sync)\n this.sync(top);\n this.needsBlock = oldNeedsBlock;\n }\n else {\n this.addElementByRule(dom, rule, rule.consuming === false ? ruleID : undefined);\n }\n }\n // Called for leaf DOM nodes that would otherwise be ignored\n leafFallback(dom) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent)\n this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\"));\n }\n // Called for ignored nodes\n ignoreFallback(dom) {\n // Ignored BR nodes should at least create an inline context\n if (dom.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent))\n this.findPlace(this.parser.schema.text(\"-\"));\n }\n // Run any style parser associated with the node's styles. Either\n // return an array of marks, or null to indicate some of the styles\n // had a rule with `ignore` set.\n readStyles(styles) {\n let add = Mark$1.none, remove = Mark$1.none;\n for (let i = 0; i < styles.length; i += 2) {\n for (let after = undefined;;) {\n let rule = this.parser.matchStyle(styles[i], styles[i + 1], this, after);\n if (!rule)\n break;\n if (rule.ignore)\n return null;\n if (rule.clearMark) {\n this.top.pendingMarks.concat(this.top.activeMarks).forEach(m => {\n if (rule.clearMark(m))\n remove = m.addToSet(remove);\n });\n }\n else {\n add = this.parser.schema.marks[rule.mark].create(rule.attrs).addToSet(add);\n }\n if (rule.consuming === false)\n after = rule;\n else\n break;\n }\n }\n return [add, remove];\n }\n // Look up a handler for the given node. If none are found, return\n // false. Otherwise, apply it, use its return value to drive the way\n // the node's content is wrapped, and return true.\n addElementByRule(dom, rule, continueAfter) {\n let sync, nodeType, mark;\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n if (!nodeType.isLeaf) {\n sync = this.enter(nodeType, rule.attrs || null, rule.preserveWhitespace);\n }\n else if (!this.insertNode(nodeType.create(rule.attrs))) {\n this.leafFallback(dom);\n }\n }\n else {\n let markType = this.parser.schema.marks[rule.mark];\n mark = markType.create(rule.attrs);\n this.addPendingMark(mark);\n }\n let startIn = this.top;\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n }\n else if (continueAfter) {\n this.addElement(dom, continueAfter);\n }\n else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(node => this.insertNode(node));\n }\n else {\n let contentDOM = dom;\n if (typeof rule.contentElement == \"string\")\n contentDOM = dom.querySelector(rule.contentElement);\n else if (typeof rule.contentElement == \"function\")\n contentDOM = rule.contentElement(dom);\n else if (rule.contentElement)\n contentDOM = rule.contentElement;\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM);\n }\n if (sync && this.sync(startIn))\n this.open--;\n if (mark)\n this.removePendingMark(mark, startIn);\n }\n // Add all child nodes between `startIndex` and `endIndex` (or the\n // whole node, if not given). If `sync` is passed, use it to\n // synchronize after every block element.\n addAll(parent, startIndex, endIndex) {\n let index = startIndex || 0;\n for (let dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild, end = endIndex == null ? null : parent.childNodes[endIndex]; dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom);\n }\n this.findAtPoint(parent, index);\n }\n // Try to find a way to fit the given node type into the current\n // context. May add intermediate wrappers and/or leave non-solid\n // nodes that we're in.\n findPlace(node) {\n let route, sync;\n for (let depth = this.open; depth >= 0; depth--) {\n let cx = this.nodes[depth];\n let found = cx.findWrapping(node);\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n if (!found.length)\n break;\n }\n if (cx.solid)\n break;\n }\n if (!route)\n return false;\n this.sync(sync);\n for (let i = 0; i < route.length; i++)\n this.enterInner(route[i], null, false);\n return true;\n }\n // Try to insert the given node, adjusting the context when needed.\n insertNode(node) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n let block = this.textblockFromContext();\n if (block)\n this.enterInner(block);\n }\n if (this.findPlace(node)) {\n this.closeExtra();\n let top = this.top;\n top.applyPending(node.type);\n if (top.match)\n top.match = top.match.matchType(node.type);\n let marks = top.activeMarks;\n for (let i = 0; i < node.marks.length; i++)\n if (!top.type || top.type.allowsMarkType(node.marks[i].type))\n marks = node.marks[i].addToSet(marks);\n top.content.push(node.mark(marks));\n return true;\n }\n return false;\n }\n // Try to start a node of the given type, adjusting the context when\n // necessary.\n enter(type, attrs, preserveWS) {\n let ok = this.findPlace(type.create(attrs));\n if (ok)\n this.enterInner(type, attrs, true, preserveWS);\n return ok;\n }\n // Open a node of the given type\n enterInner(type, attrs = null, solid = false, preserveWS) {\n this.closeExtra();\n let top = this.top;\n top.applyPending(type);\n top.match = top.match && top.match.matchType(type);\n let options = wsOptionsFor(type, preserveWS, top.options);\n if ((top.options & OPT_OPEN_LEFT) && top.content.length == 0)\n options |= OPT_OPEN_LEFT;\n this.nodes.push(new NodeContext(type, attrs, top.activeMarks, top.pendingMarks, solid, null, options));\n this.open++;\n }\n // Make sure all nodes above this.open are finished and added to\n // their parents\n closeExtra(openEnd = false) {\n let i = this.nodes.length - 1;\n if (i > this.open) {\n for (; i > this.open; i--)\n this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd));\n this.nodes.length = this.open + 1;\n }\n }\n finish() {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(this.isOpen || this.options.topOpen);\n }\n sync(to) {\n for (let i = this.open; i >= 0; i--)\n if (this.nodes[i] == to) {\n this.open = i;\n return true;\n }\n return false;\n }\n get currentPos() {\n this.closeExtra();\n let pos = 0;\n for (let i = this.open; i >= 0; i--) {\n let content = this.nodes[i].content;\n for (let j = content.length - 1; j >= 0; j--)\n pos += content[j].nodeSize;\n if (i)\n pos++;\n }\n return pos;\n }\n findAtPoint(parent, offset) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset)\n this.find[i].pos = this.currentPos;\n }\n }\n findInside(parent) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node))\n this.find[i].pos = this.currentPos;\n }\n }\n findAround(parent, content, before) {\n if (parent != content && this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n let pos = content.compareDocumentPosition(this.find[i].node);\n if (pos & (before ? 2 : 4))\n this.find[i].pos = this.currentPos;\n }\n }\n }\n findInText(textNode) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode)\n this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset);\n }\n }\n // Determines whether the given context string matches this context.\n matchesContext(context) {\n if (context.indexOf(\"|\") > -1)\n return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this);\n let parts = context.split(\"/\");\n let option = this.options.context;\n let useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n let minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n let match = (i, depth) => {\n for (; i >= 0; i--) {\n let part = parts[i];\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0)\n continue;\n for (; depth >= minDepth; depth--)\n if (match(i - 1, depth))\n return true;\n return false;\n }\n else {\n let next = depth > 0 || (depth == 0 && useRoot) ? this.nodes[depth].type\n : option && depth >= minDepth ? option.node(depth - minDepth).type\n : null;\n if (!next || (next.name != part && next.groups.indexOf(part) == -1))\n return false;\n depth--;\n }\n }\n return true;\n };\n return match(parts.length - 1, this.open);\n }\n textblockFromContext() {\n let $context = this.options.context;\n if ($context)\n for (let d = $context.depth; d >= 0; d--) {\n let deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n if (deflt && deflt.isTextblock && deflt.defaultAttrs)\n return deflt;\n }\n for (let name in this.parser.schema.nodes) {\n let type = this.parser.schema.nodes[name];\n if (type.isTextblock && type.defaultAttrs)\n return type;\n }\n }\n addPendingMark(mark) {\n let found = findSameMarkInSet(mark, this.top.pendingMarks);\n if (found)\n this.top.stashMarks.push(found);\n this.top.pendingMarks = mark.addToSet(this.top.pendingMarks);\n }\n removePendingMark(mark, upto) {\n for (let depth = this.open; depth >= 0; depth--) {\n let level = this.nodes[depth];\n let found = level.pendingMarks.lastIndexOf(mark);\n if (found > -1) {\n level.pendingMarks = mark.removeFromSet(level.pendingMarks);\n }\n else {\n level.activeMarks = mark.removeFromSet(level.activeMarks);\n let stashMark = level.popFromStashMark(mark);\n if (stashMark && level.type && level.type.allowsMarkType(stashMark.type))\n level.activeMarks = stashMark.addToSet(level.activeMarks);\n }\n if (level == upto)\n break;\n }\n }\n}\n// Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\nfunction normalizeList(dom) {\n for (let child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n let name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n }\n else if (name == \"li\") {\n prevItem = child;\n }\n else if (name) {\n prevItem = null;\n }\n }\n}\n// Apply a CSS selector.\nfunction matches(dom, selector) {\n return (dom.matches || dom.msMatchesSelector || dom.webkitMatchesSelector || dom.mozMatchesSelector).call(dom, selector);\n}\n// Tokenize a style attribute into property/value pairs.\nfunction parseStyles(style) {\n let re = /\\s*([\\w-]+)\\s*:\\s*([^;]+)/g, m, result = [];\n while (m = re.exec(style))\n result.push(m[1], m[2].trim());\n return result;\n}\nfunction copy(obj) {\n let copy = {};\n for (let prop in obj)\n copy[prop] = obj[prop];\n return copy;\n}\n// Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\nfunction markMayApply(markType, nodeType) {\n let nodes = nodeType.schema.nodes;\n for (let name in nodes) {\n let parent = nodes[name];\n if (!parent.allowsMarkType(markType))\n continue;\n let seen = [], scan = (match) => {\n seen.push(match);\n for (let i = 0; i < match.edgeCount; i++) {\n let { type, next } = match.edge(i);\n if (type == nodeType)\n return true;\n if (seen.indexOf(next) < 0 && scan(next))\n return true;\n }\n };\n if (scan(parent.contentMatch))\n return true;\n }\n}\nfunction findSameMarkInSet(mark, set) {\n for (let i = 0; i < set.length; i++) {\n if (mark.eq(set[i]))\n return set[i];\n }\n}\n\n/**\nA DOM serializer knows how to convert ProseMirror nodes and\nmarks of various types to DOM nodes.\n*/\nclass DOMSerializer {\n /**\n Create a serializer. `nodes` should map node names to functions\n that take a node and return a description of the corresponding\n DOM. `marks` does the same for mark names, but also gets an\n argument that tells it whether the mark's content is block or\n inline content (for typical use, it'll always be inline). A mark\n serializer may be `null` to indicate that marks of that type\n should not be serialized.\n */\n constructor(\n /**\n The node serialization functions.\n */\n nodes, \n /**\n The mark serialization functions.\n */\n marks) {\n this.nodes = nodes;\n this.marks = marks;\n }\n /**\n Serialize the content of this fragment to a DOM fragment. When\n not in the browser, the `document` option, containing a DOM\n document, should be passed so that the serializer can create\n nodes.\n */\n serializeFragment(fragment, options = {}, target) {\n if (!target)\n target = doc$1(options).createDocumentFragment();\n let top = target, active = [];\n fragment.forEach(node => {\n if (active.length || node.marks.length) {\n let keep = 0, rendered = 0;\n while (keep < active.length && rendered < node.marks.length) {\n let next = node.marks[rendered];\n if (!this.marks[next.type.name]) {\n rendered++;\n continue;\n }\n if (!next.eq(active[keep][0]) || next.type.spec.spanning === false)\n break;\n keep++;\n rendered++;\n }\n while (keep < active.length)\n top = active.pop()[1];\n while (rendered < node.marks.length) {\n let add = node.marks[rendered++];\n let markDOM = this.serializeMark(add, node.isInline, options);\n if (markDOM) {\n active.push([add, top]);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n top.appendChild(this.serializeNodeInner(node, options));\n });\n return target;\n }\n /**\n @internal\n */\n serializeNodeInner(node, options) {\n let { dom, contentDOM } = DOMSerializer.renderSpec(doc$1(options), this.nodes[node.type.name](node));\n if (contentDOM) {\n if (node.isLeaf)\n throw new RangeError(\"Content hole not allowed in a leaf node spec\");\n this.serializeFragment(node.content, options, contentDOM);\n }\n return dom;\n }\n /**\n Serialize this node to a DOM node. This can be useful when you\n need to serialize a part of a document, as opposed to the whole\n document. To serialize a whole document, use\n [`serializeFragment`](https://prosemirror.net/docs/ref/#model.DOMSerializer.serializeFragment) on\n its [content](https://prosemirror.net/docs/ref/#model.Node.content).\n */\n serializeNode(node, options = {}) {\n let dom = this.serializeNodeInner(node, options);\n for (let i = node.marks.length - 1; i >= 0; i--) {\n let wrap = this.serializeMark(node.marks[i], node.isInline, options);\n if (wrap) {\n (wrap.contentDOM || wrap.dom).appendChild(dom);\n dom = wrap.dom;\n }\n }\n return dom;\n }\n /**\n @internal\n */\n serializeMark(mark, inline, options = {}) {\n let toDOM = this.marks[mark.type.name];\n return toDOM && DOMSerializer.renderSpec(doc$1(options), toDOM(mark, inline));\n }\n /**\n Render an [output spec](https://prosemirror.net/docs/ref/#model.DOMOutputSpec) to a DOM node. If\n the spec has a hole (zero) in it, `contentDOM` will point at the\n node with the hole.\n */\n static renderSpec(doc, structure, xmlNS = null) {\n if (typeof structure == \"string\")\n return { dom: doc.createTextNode(structure) };\n if (structure.nodeType != null)\n return { dom: structure };\n if (structure.dom && structure.dom.nodeType != null)\n return structure;\n let tagName = structure[0], space = tagName.indexOf(\" \");\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n let contentDOM;\n let dom = (xmlNS ? doc.createElementNS(xmlNS, tagName) : doc.createElement(tagName));\n let attrs = structure[1], start = 1;\n if (attrs && typeof attrs == \"object\" && attrs.nodeType == null && !Array.isArray(attrs)) {\n start = 2;\n for (let name in attrs)\n if (attrs[name] != null) {\n let space = name.indexOf(\" \");\n if (space > 0)\n dom.setAttributeNS(name.slice(0, space), name.slice(space + 1), attrs[name]);\n else\n dom.setAttribute(name, attrs[name]);\n }\n }\n for (let i = start; i < structure.length; i++) {\n let child = structure[i];\n if (child === 0) {\n if (i < structure.length - 1 || i > start)\n throw new RangeError(\"Content hole must be the only child of its parent node\");\n return { dom, contentDOM: dom };\n }\n else {\n let { dom: inner, contentDOM: innerContent } = DOMSerializer.renderSpec(doc, child, xmlNS);\n dom.appendChild(inner);\n if (innerContent) {\n if (contentDOM)\n throw new RangeError(\"Multiple content holes\");\n contentDOM = innerContent;\n }\n }\n }\n return { dom, contentDOM };\n }\n /**\n Build a serializer using the [`toDOM`](https://prosemirror.net/docs/ref/#model.NodeSpec.toDOM)\n properties in a schema's node and mark specs.\n */\n static fromSchema(schema) {\n return schema.cached.domSerializer ||\n (schema.cached.domSerializer = new DOMSerializer(this.nodesFromSchema(schema), this.marksFromSchema(schema)));\n }\n /**\n Gather the serializers in a schema's node specs into an object.\n This can be useful as a base to build a custom serializer from.\n */\n static nodesFromSchema(schema) {\n let result = gatherToDOM(schema.nodes);\n if (!result.text)\n result.text = node => node.text;\n return result;\n }\n /**\n Gather the serializers in a schema's mark specs into an object.\n */\n static marksFromSchema(schema) {\n return gatherToDOM(schema.marks);\n }\n}\nfunction gatherToDOM(obj) {\n let result = {};\n for (let name in obj) {\n let toDOM = obj[name].spec.toDOM;\n if (toDOM)\n result[name] = toDOM;\n }\n return result;\n}\nfunction doc$1(options) {\n return options.document || window.document;\n}\n\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\nconst lower16 = 0xffff;\nconst factor16 = Math.pow(2, 16);\nfunction makeRecover(index, offset) { return index + offset * factor16; }\nfunction recoverIndex(value) { return value & lower16; }\nfunction recoverOffset(value) { return (value - (value & lower16)) / factor16; }\nconst DEL_BEFORE = 1, DEL_AFTER = 2, DEL_ACROSS = 4, DEL_SIDE = 8;\n/**\nAn object representing a mapped position with extra\ninformation.\n*/\nclass MapResult {\n /**\n @internal\n */\n constructor(\n /**\n The mapped version of the position.\n */\n pos, \n /**\n @internal\n */\n delInfo, \n /**\n @internal\n */\n recover) {\n this.pos = pos;\n this.delInfo = delInfo;\n this.recover = recover;\n }\n /**\n Tells you whether the position was deleted, that is, whether the\n step removed the token on the side queried (via the `assoc`)\n argument from the document.\n */\n get deleted() { return (this.delInfo & DEL_SIDE) > 0; }\n /**\n Tells you whether the token before the mapped position was deleted.\n */\n get deletedBefore() { return (this.delInfo & (DEL_BEFORE | DEL_ACROSS)) > 0; }\n /**\n True when the token after the mapped position was deleted.\n */\n get deletedAfter() { return (this.delInfo & (DEL_AFTER | DEL_ACROSS)) > 0; }\n /**\n Tells whether any of the steps mapped through deletes across the\n position (including both the token before and after the\n position).\n */\n get deletedAcross() { return (this.delInfo & DEL_ACROSS) > 0; }\n}\n/**\nA map describing the deletions and insertions made by a step, which\ncan be used to find the correspondence between positions in the\npre-step version of a document and the same position in the\npost-step version.\n*/\nclass StepMap {\n /**\n Create a position map. The modifications to the document are\n represented as an array of numbers, in which each group of three\n represents a modified chunk as `[start, oldSize, newSize]`.\n */\n constructor(\n /**\n @internal\n */\n ranges, \n /**\n @internal\n */\n inverted = false) {\n this.ranges = ranges;\n this.inverted = inverted;\n if (!ranges.length && StepMap.empty)\n return StepMap.empty;\n }\n /**\n @internal\n */\n recover(value) {\n let diff = 0, index = recoverIndex(value);\n if (!this.inverted)\n for (let i = 0; i < index; i++)\n diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1];\n return this.ranges[index * 3] + diff + recoverOffset(value);\n }\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n map(pos, assoc = 1) { return this._map(pos, assoc, true); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let diff = 0, oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex], end = start + oldSize;\n if (pos <= end) {\n let side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n let result = start + diff + (side < 0 ? 0 : newSize);\n if (simple)\n return result;\n let recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n let del = pos == start ? DEL_AFTER : pos == end ? DEL_BEFORE : DEL_ACROSS;\n if (assoc < 0 ? pos != start : pos != end)\n del |= DEL_SIDE;\n return new MapResult(result, del, recover);\n }\n diff += newSize - oldSize;\n }\n return simple ? pos + diff : new MapResult(pos + diff, 0, null);\n }\n /**\n @internal\n */\n touches(pos, recover) {\n let diff = 0, index = recoverIndex(recover);\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], end = start + oldSize;\n if (pos <= end && i == index * 3)\n return true;\n diff += this.ranges[i + newIndex] - oldSize;\n }\n return false;\n }\n /**\n Calls the given function on each of the changed ranges included in\n this map.\n */\n forEach(f) {\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0, diff = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i], oldStart = start - (this.inverted ? diff : 0), newStart = start + (this.inverted ? 0 : diff);\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n }\n /**\n Create an inverted version of this map. The result can be used to\n map positions in the post-step document to the pre-step document.\n */\n invert() {\n return new StepMap(this.ranges, !this.inverted);\n }\n /**\n @internal\n */\n toString() {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges);\n }\n /**\n Create a map that moves all positions by offset `n` (which may be\n negative). This can be useful when applying steps meant for a\n sub-document to a larger document, or vice-versa.\n */\n static offset(n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n]);\n }\n}\n/**\nA StepMap that contains no changed ranges.\n*/\nStepMap.empty = new StepMap([]);\n/**\nA mapping represents a pipeline of zero or more [step\nmaps](https://prosemirror.net/docs/ref/#transform.StepMap). It has special provisions for losslessly\nhandling mapping positions through a series of steps in which some\nsteps are inverted versions of earlier steps. (This comes up when\n‘[rebasing](/docs/guide/#transform.rebasing)’ steps for\ncollaboration or history management.)\n*/\nclass Mapping {\n /**\n Create a new mapping with the given position maps.\n */\n constructor(\n /**\n The step maps in this mapping.\n */\n maps = [], \n /**\n @internal\n */\n mirror, \n /**\n The starting position in the `maps` array, used when `map` or\n `mapResult` is called.\n */\n from = 0, \n /**\n The end position in the `maps` array.\n */\n to = maps.length) {\n this.maps = maps;\n this.mirror = mirror;\n this.from = from;\n this.to = to;\n }\n /**\n Create a mapping that maps only through a part of this one.\n */\n slice(from = 0, to = this.maps.length) {\n return new Mapping(this.maps, this.mirror, from, to);\n }\n /**\n @internal\n */\n copy() {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to);\n }\n /**\n Add a step map to the end of this mapping. If `mirrors` is\n given, it should be the index of the step map that is the mirror\n image of this one.\n */\n appendMap(map, mirrors) {\n this.to = this.maps.push(map);\n if (mirrors != null)\n this.setMirror(this.maps.length - 1, mirrors);\n }\n /**\n Add all the step maps in a given mapping to this one (preserving\n mirroring information).\n */\n appendMapping(mapping) {\n for (let i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : undefined);\n }\n }\n /**\n Finds the offset of the step map that mirrors the map at the\n given offset, in this mapping (as per the second argument to\n `appendMap`).\n */\n getMirror(n) {\n if (this.mirror)\n for (let i = 0; i < this.mirror.length; i++)\n if (this.mirror[i] == n)\n return this.mirror[i + (i % 2 ? -1 : 1)];\n }\n /**\n @internal\n */\n setMirror(n, m) {\n if (!this.mirror)\n this.mirror = [];\n this.mirror.push(n, m);\n }\n /**\n Append the inverse of the given mapping to this one.\n */\n appendMappingInverted(mapping) {\n for (let i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : undefined);\n }\n }\n /**\n Create an inverted version of this mapping.\n */\n invert() {\n let inverse = new Mapping;\n inverse.appendMappingInverted(this);\n return inverse;\n }\n /**\n Map a position through this mapping.\n */\n map(pos, assoc = 1) {\n if (this.mirror)\n return this._map(pos, assoc, true);\n for (let i = this.from; i < this.to; i++)\n pos = this.maps[i].map(pos, assoc);\n return pos;\n }\n /**\n Map a position through this mapping, returning a mapping\n result.\n */\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let delInfo = 0;\n for (let i = this.from; i < this.to; i++) {\n let map = this.maps[i], result = map.mapResult(pos, assoc);\n if (result.recover != null) {\n let corr = this.getMirror(i);\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue;\n }\n }\n delInfo |= result.delInfo;\n pos = result.pos;\n }\n return simple ? pos : new MapResult(pos, delInfo, null);\n }\n}\n\nconst stepsByID = Object.create(null);\n/**\nA step object represents an atomic change. It generally applies\nonly to the document it was created for, since the positions\nstored in it will only make sense for that document.\n\nNew steps are defined by creating classes that extend `Step`,\noverriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\nmethods, and registering your class with a unique\nJSON-serialization identifier using\n[`Step.jsonID`](https://prosemirror.net/docs/ref/#transform.Step^jsonID).\n*/\nclass Step {\n /**\n Get the step map that represents the changes made by this step,\n and which can be used to transform between positions in the old\n and the new document.\n */\n getMap() { return StepMap.empty; }\n /**\n Try to merge this step with another one, to be applied directly\n after it. Returns the merged step when possible, null if the\n steps can't be merged.\n */\n merge(other) { return null; }\n /**\n Deserialize a step from its JSON representation. Will call\n through to the step class' own implementation of this method.\n */\n static fromJSON(schema, json) {\n if (!json || !json.stepType)\n throw new RangeError(\"Invalid input for Step.fromJSON\");\n let type = stepsByID[json.stepType];\n if (!type)\n throw new RangeError(`No step type ${json.stepType} defined`);\n return type.fromJSON(schema, json);\n }\n /**\n To be able to serialize steps to JSON, each step needs a string\n ID to attach to its JSON representation. Use this method to\n register an ID for your step classes. Try to pick something\n that's unlikely to clash with steps from other modules.\n */\n static jsonID(id, stepClass) {\n if (id in stepsByID)\n throw new RangeError(\"Duplicate use of step JSON ID \" + id);\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass;\n }\n}\n/**\nThe result of [applying](https://prosemirror.net/docs/ref/#transform.Step.apply) a step. Contains either a\nnew document or a failure value.\n*/\nclass StepResult {\n /**\n @internal\n */\n constructor(\n /**\n The transformed document, if successful.\n */\n doc, \n /**\n The failure message, if unsuccessful.\n */\n failed) {\n this.doc = doc;\n this.failed = failed;\n }\n /**\n Create a successful step result.\n */\n static ok(doc) { return new StepResult(doc, null); }\n /**\n Create a failed step result.\n */\n static fail(message) { return new StepResult(null, message); }\n /**\n Call [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) with the given\n arguments. Create a successful result if it succeeds, and a\n failed one if it throws a `ReplaceError`.\n */\n static fromReplace(doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice));\n }\n catch (e) {\n if (e instanceof ReplaceError)\n return StepResult.fail(e.message);\n throw e;\n }\n }\n}\n\nfunction mapFragment(fragment, f, parent) {\n let mapped = [];\n for (let i = 0; i < fragment.childCount; i++) {\n let child = fragment.child(i);\n if (child.content.size)\n child = child.copy(mapFragment(child.content, f, child));\n if (child.isInline)\n child = f(child, parent, i);\n mapped.push(child);\n }\n return Fragment.fromArray(mapped);\n}\n/**\nAdd a mark to all inline content between two positions.\n*/\nclass AddMarkStep extends Step {\n /**\n Create a mark step.\n */\n constructor(\n /**\n The start of the marked range.\n */\n from, \n /**\n The end of the marked range.\n */\n to, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to), $from = doc.resolve(this.from);\n let parent = $from.node($from.sharedDepth(this.to));\n let slice = new Slice(mapFragment(oldSlice.content, (node, parent) => {\n if (!node.isAtom || !parent.type.allowsMarkType(this.mark.type))\n return node;\n return node.mark(this.mark.addToSet(node.marks));\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new RemoveMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new AddMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof AddMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new AddMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"addMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\");\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addMark\", AddMarkStep);\n/**\nRemove a mark from all inline content between two positions.\n*/\nclass RemoveMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The start of the unmarked range.\n */\n from, \n /**\n The end of the unmarked range.\n */\n to, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to);\n let slice = new Slice(mapFragment(oldSlice.content, node => {\n return node.mark(this.mark.removeFromSet(node.marks));\n }, doc), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new AddMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new RemoveMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof RemoveMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new RemoveMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"removeMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\");\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeMark\", RemoveMarkStep);\n/**\nAdd a mark to a specific node.\n*/\nclass AddNodeMarkStep extends Step {\n /**\n Create a node mark step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.addToSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (node) {\n let newSet = this.mark.addToSet(node.marks);\n if (newSet.length == node.marks.length) {\n for (let i = 0; i < node.marks.length; i++)\n if (!node.marks[i].isInSet(newSet))\n return new AddNodeMarkStep(this.pos, node.marks[i]);\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n }\n return new RemoveNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AddNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"addNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for AddNodeMarkStep.fromJSON\");\n return new AddNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addNodeMark\", AddNodeMarkStep);\n/**\nRemove a mark from a specific node.\n*/\nclass RemoveNodeMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.removeFromSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node || !this.mark.isInSet(node.marks))\n return this;\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new RemoveNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"removeNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for RemoveNodeMarkStep.fromJSON\");\n return new RemoveNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeNodeMark\", RemoveNodeMarkStep);\n\n/**\nReplace a part of the document with a slice of new content.\n*/\nclass ReplaceStep extends Step {\n /**\n The given `slice` should fit the 'gap' between `from` and\n `to`—the depths must line up, and the surrounding nodes must be\n able to be joined with the open sides of the slice. When\n `structure` is true, the step will fail if the content between\n from and to is not just a sequence of closing and then opening\n tokens (this is to guard against rebased replace steps\n overwriting something they weren't supposed to).\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The slice to insert.\n */\n slice, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.slice = slice;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && contentBetween(doc, this.from, this.to))\n return StepResult.fail(\"Structure replace would overwrite content\");\n return StepResult.fromReplace(doc, this.from, this.to, this.slice);\n }\n getMap() {\n return new StepMap([this.from, this.to - this.from, this.slice.size]);\n }\n invert(doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to));\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deletedAcross && to.deletedAcross)\n return null;\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice);\n }\n merge(other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure)\n return null;\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure);\n }\n else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice, this.structure);\n }\n else {\n return null;\n }\n }\n toJSON() {\n let json = { stepType: \"replace\", from: this.from, to: this.to };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\");\n return new ReplaceStep(json.from, json.to, Slice.fromJSON(schema, json.slice), !!json.structure);\n }\n}\nStep.jsonID(\"replace\", ReplaceStep);\n/**\nReplace a part of the document with a slice of content, but\npreserve a range of the replaced content by moving it into the\nslice.\n*/\nclass ReplaceAroundStep extends Step {\n /**\n Create a replace-around step with the given range and gap.\n `insert` should be the point in the slice into which the content\n of the gap should be moved. `structure` has the same meaning as\n it has in the [`ReplaceStep`](https://prosemirror.net/docs/ref/#transform.ReplaceStep) class.\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The start of preserved range.\n */\n gapFrom, \n /**\n The end of preserved range.\n */\n gapTo, \n /**\n The slice to insert.\n */\n slice, \n /**\n The position in the slice where the preserved range should be\n inserted.\n */\n insert, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.gapFrom = gapFrom;\n this.gapTo = gapTo;\n this.slice = slice;\n this.insert = insert;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) ||\n contentBetween(doc, this.gapTo, this.to)))\n return StepResult.fail(\"Structure gap-replace would overwrite content\");\n let gap = doc.slice(this.gapFrom, this.gapTo);\n if (gap.openStart || gap.openEnd)\n return StepResult.fail(\"Gap is not a flat range\");\n let inserted = this.slice.insertAt(this.insert, gap.content);\n if (!inserted)\n return StepResult.fail(\"Content does not fit in gap\");\n return StepResult.fromReplace(doc, this.from, this.to, inserted);\n }\n getMap() {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert,\n this.gapTo, this.to - this.gapTo, this.slice.size - this.insert]);\n }\n invert(doc) {\n let gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap, this.from + this.insert, this.from + this.insert + gap, doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from), this.gapFrom - this.from, this.structure);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n let gapFrom = mapping.map(this.gapFrom, -1), gapTo = mapping.map(this.gapTo, 1);\n if ((from.deletedAcross && to.deletedAcross) || gapFrom < from.pos || gapTo > to.pos)\n return null;\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure);\n }\n toJSON() {\n let json = { stepType: \"replaceAround\", from: this.from, to: this.to,\n gapFrom: this.gapFrom, gapTo: this.gapTo, insert: this.insert };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" ||\n typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\")\n throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\");\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo, Slice.fromJSON(schema, json.slice), json.insert, !!json.structure);\n }\n}\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\nfunction contentBetween(doc, from, to) {\n let $from = doc.resolve(from), dist = to - from, depth = $from.depth;\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n if (dist > 0) {\n let next = $from.node(depth).maybeChild($from.indexAfter(depth));\n while (dist > 0) {\n if (!next || next.isLeaf)\n return true;\n next = next.firstChild;\n dist--;\n }\n }\n return false;\n}\n\nfunction addMark(tr, from, to, mark) {\n let removed = [], added = [];\n let removing, adding;\n tr.doc.nodesBetween(from, to, (node, pos, parent) => {\n if (!node.isInline)\n return;\n let marks = node.marks;\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n let start = Math.max(pos, from), end = Math.min(pos + node.nodeSize, to);\n let newSet = mark.addToSet(marks);\n for (let i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i]))\n removing.to = end;\n else\n removed.push(removing = new RemoveMarkStep(start, end, marks[i]));\n }\n }\n if (adding && adding.to == start)\n adding.to = end;\n else\n added.push(adding = new AddMarkStep(start, end, mark));\n }\n });\n removed.forEach(s => tr.step(s));\n added.forEach(s => tr.step(s));\n}\nfunction removeMark(tr, from, to, mark) {\n let matched = [], step = 0;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isInline)\n return;\n step++;\n let toRemove = null;\n if (mark instanceof MarkType) {\n let set = node.marks, found;\n while (found = mark.isInSet(set)) {\n (toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n }\n else if (mark) {\n if (mark.isInSet(node.marks))\n toRemove = [mark];\n }\n else {\n toRemove = node.marks;\n }\n if (toRemove && toRemove.length) {\n let end = Math.min(pos + node.nodeSize, to);\n for (let i = 0; i < toRemove.length; i++) {\n let style = toRemove[i], found;\n for (let j = 0; j < matched.length; j++) {\n let m = matched[j];\n if (m.step == step - 1 && style.eq(matched[j].style))\n found = m;\n }\n if (found) {\n found.to = end;\n found.step = step;\n }\n else {\n matched.push({ style, from: Math.max(pos, from), to: end, step });\n }\n }\n }\n });\n matched.forEach(m => tr.step(new RemoveMarkStep(m.from, m.to, m.style)));\n}\nfunction clearIncompatible(tr, pos, parentType, match = parentType.contentMatch) {\n let node = tr.doc.nodeAt(pos);\n let delSteps = [], cur = pos + 1;\n for (let i = 0; i < node.childCount; i++) {\n let child = node.child(i), end = cur + child.nodeSize;\n let allowed = match.matchType(child.type);\n if (!allowed) {\n delSteps.push(new ReplaceStep(cur, end, Slice.empty));\n }\n else {\n match = allowed;\n for (let j = 0; j < child.marks.length; j++)\n if (!parentType.allowsMarkType(child.marks[j].type))\n tr.step(new RemoveMarkStep(cur, end, child.marks[j]));\n }\n cur = end;\n }\n if (!match.validEnd) {\n let fill = match.fillBefore(Fragment.empty, true);\n tr.replace(cur, cur, new Slice(fill, 0, 0));\n }\n for (let i = delSteps.length - 1; i >= 0; i--)\n tr.step(delSteps[i]);\n}\n\nfunction canCut(node, start, end) {\n return (start == 0 || node.canReplace(start, node.childCount)) &&\n (end == node.childCount || node.canReplace(0, end));\n}\n/**\nTry to find a target depth to which the content in the given range\ncan be lifted. Will not go across\n[isolating](https://prosemirror.net/docs/ref/#model.NodeSpec.isolating) parent nodes.\n*/\nfunction liftTarget(range) {\n let parent = range.parent;\n let content = parent.content.cutByIndex(range.startIndex, range.endIndex);\n for (let depth = range.depth;; --depth) {\n let node = range.$from.node(depth);\n let index = range.$from.index(depth), endIndex = range.$to.indexAfter(depth);\n if (depth < range.depth && node.canReplace(index, endIndex, content))\n return depth;\n if (depth == 0 || node.type.spec.isolating || !canCut(node, index, endIndex))\n break;\n }\n return null;\n}\nfunction lift$2(tr, range, target) {\n let { $from, $to, depth } = range;\n let gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);\n let start = gapStart, end = gapEnd;\n let before = Fragment.empty, openStart = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = Fragment.from($from.node(d).copy(before));\n openStart++;\n }\n else {\n start--;\n }\n let after = Fragment.empty, openEnd = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $to.after(d + 1) < $to.end(d)) {\n splitting = true;\n after = Fragment.from($to.node(d).copy(after));\n openEnd++;\n }\n else {\n end++;\n }\n tr.step(new ReplaceAroundStep(start, end, gapStart, gapEnd, new Slice(before.append(after), openStart, openEnd), before.size - openStart, true));\n}\n/**\nTry to find a valid way to wrap the content in the given range in a\nnode of the given type. May introduce extra nodes around and inside\nthe wrapper node, if necessary. Returns null if no valid wrapping\ncould be found. When `innerRange` is given, that range's content is\nused as the content to fit into the wrapping, instead of the\ncontent of `range`.\n*/\nfunction findWrapping(range, nodeType, attrs = null, innerRange = range) {\n let around = findWrappingOutside(range, nodeType);\n let inner = around && findWrappingInside(innerRange, nodeType);\n if (!inner)\n return null;\n return around.map(withAttrs)\n .concat({ type: nodeType, attrs }).concat(inner.map(withAttrs));\n}\nfunction withAttrs(type) { return { type, attrs: null }; }\nfunction findWrappingOutside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let around = parent.contentMatchAt(startIndex).findWrapping(type);\n if (!around)\n return null;\n let outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null;\n}\nfunction findWrappingInside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let inner = parent.child(startIndex);\n let inside = type.contentMatch.findWrapping(inner.type);\n if (!inside)\n return null;\n let lastType = inside.length ? inside[inside.length - 1] : type;\n let innerMatch = lastType.contentMatch;\n for (let i = startIndex; innerMatch && i < endIndex; i++)\n innerMatch = innerMatch.matchType(parent.child(i).type);\n if (!innerMatch || !innerMatch.validEnd)\n return null;\n return inside;\n}\nfunction wrap(tr, range, wrappers) {\n let content = Fragment.empty;\n for (let i = wrappers.length - 1; i >= 0; i--) {\n if (content.size) {\n let match = wrappers[i].type.contentMatch.matchFragment(content);\n if (!match || !match.validEnd)\n throw new RangeError(\"Wrapper type given to Transform.wrap does not form valid content of its parent wrapper\");\n }\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n }\n let start = range.start, end = range.end;\n tr.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true));\n}\nfunction setBlockType$1(tr, from, to, type, attrs) {\n if (!type.isTextblock)\n throw new RangeError(\"Type given to setBlockType should be a textblock\");\n let mapFrom = tr.steps.length;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n if (node.isTextblock && !node.hasMarkup(type, attrs) && canChangeType(tr.doc, tr.mapping.slice(mapFrom).map(pos), type)) {\n // Ensure all markup that isn't allowed in the new node type is cleared\n tr.clearIncompatible(tr.mapping.slice(mapFrom).map(pos, 1), type);\n let mapping = tr.mapping.slice(mapFrom);\n let startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);\n tr.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice(Fragment.from(type.create(attrs, null, node.marks)), 0, 0), 1, true));\n return false;\n }\n });\n}\nfunction canChangeType(doc, pos, type) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type);\n}\n/**\nChange the type, attributes, and/or marks of the node at `pos`.\nWhen `type` isn't given, the existing node type is preserved,\n*/\nfunction setNodeMarkup(tr, pos, type, attrs, marks) {\n let node = tr.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at given position\");\n if (!type)\n type = node.type;\n let newNode = type.create(attrs, null, marks || node.marks);\n if (node.isLeaf)\n return tr.replaceWith(pos, pos + node.nodeSize, newNode);\n if (!type.validContent(node.content))\n throw new RangeError(\"Invalid content for node type \" + type.name);\n tr.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice(Fragment.from(newNode), 0, 0), 1, true));\n}\n/**\nCheck whether splitting at the given position is allowed.\n*/\nfunction canSplit(doc, pos, depth = 1, typesAfter) {\n let $pos = doc.resolve(pos), base = $pos.depth - depth;\n let innerType = (typesAfter && typesAfter[typesAfter.length - 1]) || $pos.parent;\n if (base < 0 || $pos.parent.type.spec.isolating ||\n !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) ||\n !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount)))\n return false;\n for (let d = $pos.depth - 1, i = depth - 2; d > base; d--, i--) {\n let node = $pos.node(d), index = $pos.index(d);\n if (node.type.spec.isolating)\n return false;\n let rest = node.content.cutByIndex(index, node.childCount);\n let overrideChild = typesAfter && typesAfter[i + 1];\n if (overrideChild)\n rest = rest.replaceChild(0, overrideChild.type.create(overrideChild.attrs));\n let after = (typesAfter && typesAfter[i]) || node;\n if (!node.canReplace(index + 1, node.childCount) || !after.type.validContent(rest))\n return false;\n }\n let index = $pos.indexAfter(base);\n let baseType = typesAfter && typesAfter[0];\n return $pos.node(base).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base + 1).type);\n}\nfunction split(tr, pos, depth = 1, typesAfter) {\n let $pos = tr.doc.resolve(pos), before = Fragment.empty, after = Fragment.empty;\n for (let d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = Fragment.from($pos.node(d).copy(before));\n let typeAfter = typesAfter && typesAfter[i];\n after = Fragment.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n tr.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true));\n}\n/**\nTest whether the blocks before and after a given position can be\njoined.\n*/\nfunction canJoin(doc, pos) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return joinable($pos.nodeBefore, $pos.nodeAfter) &&\n $pos.parent.canReplace(index, index + 1);\n}\nfunction joinable(a, b) {\n return !!(a && b && !a.isLeaf && a.canAppend(b));\n}\n/**\nFind an ancestor of the given position that can be joined to the\nblock before (or after if `dir` is positive). Returns the joinable\npoint, if any.\n*/\nfunction joinPoint(doc, pos, dir = -1) {\n let $pos = doc.resolve(pos);\n for (let d = $pos.depth;; d--) {\n let before, after, index = $pos.index(d);\n if (d == $pos.depth) {\n before = $pos.nodeBefore;\n after = $pos.nodeAfter;\n }\n else if (dir > 0) {\n before = $pos.node(d + 1);\n index++;\n after = $pos.node(d).maybeChild(index);\n }\n else {\n before = $pos.node(d).maybeChild(index - 1);\n after = $pos.node(d + 1);\n }\n if (before && !before.isTextblock && joinable(before, after) &&\n $pos.node(d).canReplace(index, index + 1))\n return pos;\n if (d == 0)\n break;\n pos = dir < 0 ? $pos.before(d) : $pos.after(d);\n }\n}\nfunction join(tr, pos, depth) {\n let step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);\n tr.step(step);\n}\n/**\nTry to find a point where a node of the given type can be inserted\nnear `pos`, by searching up the node hierarchy when `pos` itself\nisn't a valid place but is at the start or end of a node. Return\nnull if no position was found.\n*/\nfunction insertPoint(doc, pos, nodeType) {\n let $pos = doc.resolve(pos);\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType))\n return pos;\n if ($pos.parentOffset == 0)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.index(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.before(d + 1);\n if (index > 0)\n return null;\n }\n if ($pos.parentOffset == $pos.parent.content.size)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.indexAfter(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.after(d + 1);\n if (index < $pos.node(d).childCount)\n return null;\n }\n return null;\n}\n/**\nFinds a position at or around the given position where the given\nslice can be inserted. Will look at parent nodes' nearest boundary\nand try there, even if the original position wasn't directly at the\nstart or end of that node. Returns null when no position was found.\n*/\nfunction dropPoint(doc, pos, slice) {\n let $pos = doc.resolve(pos);\n if (!slice.content.size)\n return pos;\n let content = slice.content;\n for (let i = 0; i < slice.openStart; i++)\n content = content.firstChild.content;\n for (let pass = 1; pass <= (slice.openStart == 0 && slice.size ? 2 : 1); pass++) {\n for (let d = $pos.depth; d >= 0; d--) {\n let bias = d == $pos.depth ? 0 : $pos.pos <= ($pos.start(d + 1) + $pos.end(d + 1)) / 2 ? -1 : 1;\n let insertPos = $pos.index(d) + (bias > 0 ? 1 : 0);\n let parent = $pos.node(d), fits = false;\n if (pass == 1) {\n fits = parent.canReplace(insertPos, insertPos, content);\n }\n else {\n let wrapping = parent.contentMatchAt(insertPos).findWrapping(content.firstChild.type);\n fits = wrapping && parent.canReplaceWith(insertPos, insertPos, wrapping[0]);\n }\n if (fits)\n return bias == 0 ? $pos.pos : bias < 0 ? $pos.before(d + 1) : $pos.after(d + 1);\n }\n }\n return null;\n}\n\n/**\n‘Fit’ a slice into a given position in the document, producing a\n[step](https://prosemirror.net/docs/ref/#transform.Step) that inserts it. Will return null if\nthere's no meaningful way to insert the slice here, or inserting it\nwould be a no-op (an empty slice over an empty range).\n*/\nfunction replaceStep(doc, from, to = from, slice = Slice.empty) {\n if (from == to && !slice.size)\n return null;\n let $from = doc.resolve(from), $to = doc.resolve(to);\n // Optimization -- avoid work if it's obvious that it's not needed.\n if (fitsTrivially($from, $to, slice))\n return new ReplaceStep(from, to, slice);\n return new Fitter($from, $to, slice).fit();\n}\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() &&\n $from.parent.canReplace($from.index(), $to.index(), slice.content);\n}\n// Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in , when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\nclass Fitter {\n constructor($from, $to, unplaced) {\n this.$from = $from;\n this.$to = $to;\n this.unplaced = unplaced;\n this.frontier = [];\n this.placed = Fragment.empty;\n for (let i = 0; i <= $from.depth; i++) {\n let node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n for (let i = $from.depth; i > 0; i--)\n this.placed = Fragment.from($from.node(i).copy(this.placed));\n }\n get depth() { return this.frontier.length - 1; }\n fit() {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n let fit = this.findFittable();\n if (fit)\n this.placeNodes(fit);\n else\n this.openMore() || this.dropNode();\n }\n // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n let moveInline = this.mustMoveInline(), placedSize = this.placed.size - this.depth - this.$from.depth;\n let $from = this.$from, $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n if (!$to)\n return null;\n // If closing to `$to` succeeded, create a step\n let content = this.placed, openStart = $from.depth, openEnd = $to.depth;\n while (openStart && openEnd && content.childCount == 1) { // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--;\n openEnd--;\n }\n let slice = new Slice(content, openStart, openEnd);\n if (moveInline > -1)\n return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize);\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n return new ReplaceStep($from.pos, $to.pos, slice);\n return null;\n }\n // Find a position on the start spine of `this.unplaced` that has\n // content that can be moved somewhere on the frontier. Returns two\n // depths, one for the slice and one for the frontier.\n findFittable() {\n let startDepth = this.unplaced.openStart;\n for (let cur = this.unplaced.content, d = 0, openEnd = this.unplaced.openEnd; d < startDepth; d++) {\n let node = cur.firstChild;\n if (cur.childCount > 1)\n openEnd = 0;\n if (node.type.spec.isolating && openEnd <= d) {\n startDepth = d;\n break;\n }\n cur = node.content;\n }\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (let pass = 1; pass <= 2; pass++) {\n for (let sliceDepth = pass == 1 ? startDepth : this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n let fragment, parent = null;\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n }\n else {\n fragment = this.unplaced.content;\n }\n let first = fragment.firstChild;\n for (let frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n let { type, match } = this.frontier[frontierDepth], wrap, inject = null;\n // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(Fragment.from(first), false))\n : parent && type.compatibleContent(parent.type)))\n return { sliceDepth, frontierDepth, parent, inject };\n // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type)))\n return { sliceDepth, frontierDepth, parent, wrap };\n // Don't continue looking further up if the parent node\n // would fit here.\n if (parent && match.matchType(parent.type))\n break;\n }\n }\n }\n }\n openMore() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (!inner.childCount || inner.firstChild.isLeaf)\n return false;\n this.unplaced = new Slice(content, openStart + 1, Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true;\n }\n dropNode() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (inner.childCount <= 1 && openStart > 0) {\n let openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new Slice(dropFromFragment(content, openStart - 1, 1), openStart - 1, openAtEnd ? openStart - 1 : openEnd);\n }\n else {\n this.unplaced = new Slice(dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n }\n // Move content from the unplaced slice at `sliceDepth` to the\n // frontier node at `frontierDepth`. Close that frontier node when\n // applicable.\n placeNodes({ sliceDepth, frontierDepth, parent, inject, wrap }) {\n while (this.depth > frontierDepth)\n this.closeFrontierNode();\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n this.openFrontierNode(wrap[i]);\n let slice = this.unplaced, fragment = parent ? parent.content : slice.content;\n let openStart = slice.openStart - sliceDepth;\n let taken = 0, add = [];\n let { match, type } = this.frontier[frontierDepth];\n if (inject) {\n for (let i = 0; i < inject.childCount; i++)\n add.push(inject.child(i));\n match = match.matchFragment(inject);\n }\n // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n let openEndCount = (fragment.size + sliceDepth) - (slice.content.size - slice.openEnd);\n // Scan over the fragment, fitting as many child nodes as\n // possible.\n while (taken < fragment.childCount) {\n let next = fragment.child(taken), matches = match.matchType(next.type);\n if (!matches)\n break;\n taken++;\n if (taken > 1 || openStart == 0 || next.content.size) { // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0, taken == fragment.childCount ? openEndCount : -1));\n }\n }\n let toEnd = taken == fragment.childCount;\n if (!toEnd)\n openEndCount = -1;\n this.placed = addToFragment(this.placed, frontierDepth, Fragment.from(add));\n this.frontier[frontierDepth].match = match;\n // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)\n this.closeFrontierNode();\n // Add new frontier nodes for any open nodes at the end.\n for (let i = 0, cur = fragment; i < openEndCount; i++) {\n let node = cur.lastChild;\n this.frontier.push({ type: node.type, match: node.contentMatchAt(node.childCount) });\n cur = node.content;\n }\n // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n this.unplaced = !toEnd ? new Slice(dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd)\n : sliceDepth == 0 ? Slice.empty\n : new Slice(dropFromFragment(slice.content, sliceDepth - 1, 1), sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n }\n mustMoveInline() {\n if (!this.$to.parent.isTextblock)\n return -1;\n let top = this.frontier[this.depth], level;\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) ||\n (this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth))\n return -1;\n let { depth } = this.$to, after = this.$to.after(depth);\n while (depth > 1 && after == this.$to.end(--depth))\n ++after;\n return after;\n }\n findCloseLevel($to) {\n scan: for (let i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n let { match, type } = this.frontier[i];\n let dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n let fit = contentAfterFits($to, i, type, match, dropInner);\n if (!fit)\n continue;\n for (let d = i - 1; d >= 0; d--) {\n let { match, type } = this.frontier[d];\n let matches = contentAfterFits($to, d, type, match, true);\n if (!matches || matches.childCount)\n continue scan;\n }\n return { depth: i, fit, move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to };\n }\n }\n close($to) {\n let close = this.findCloseLevel($to);\n if (!close)\n return null;\n while (this.depth > close.depth)\n this.closeFrontierNode();\n if (close.fit.childCount)\n this.placed = addToFragment(this.placed, close.depth, close.fit);\n $to = close.move;\n for (let d = close.depth + 1; d <= $to.depth; d++) {\n let node = $to.node(d), add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n return $to;\n }\n openFrontierNode(type, attrs = null, content) {\n let top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, Fragment.from(type.create(attrs, content)));\n this.frontier.push({ type, match: type.contentMatch });\n }\n closeFrontierNode() {\n let open = this.frontier.pop();\n let add = open.match.fillBefore(Fragment.empty, true);\n if (add.childCount)\n this.placed = addToFragment(this.placed, this.frontier.length, add);\n }\n}\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0)\n return fragment.cutByIndex(count, fragment.childCount);\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)));\n}\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0)\n return fragment.append(content);\n return fragment.replaceChild(fragment.childCount - 1, fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)));\n}\nfunction contentAt(fragment, depth) {\n for (let i = 0; i < depth; i++)\n fragment = fragment.firstChild.content;\n return fragment;\n}\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0)\n return node;\n let frag = node.content;\n if (openStart > 1)\n frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0));\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n if (openEnd <= 0)\n frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment.empty, true));\n }\n return node.copy(frag);\n}\nfunction contentAfterFits($to, depth, type, match, open) {\n let node = $to.node(depth), index = open ? $to.indexAfter(depth) : $to.index(depth);\n if (index == node.childCount && !type.compatibleContent(node.type))\n return null;\n let fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null;\n}\nfunction invalidMarks(type, fragment, start) {\n for (let i = start; i < fragment.childCount; i++)\n if (!type.allowsMarks(fragment.child(i).marks))\n return true;\n return false;\n}\nfunction definesContent(type) {\n return type.spec.defining || type.spec.definingForContent;\n}\nfunction replaceRange(tr, from, to, slice) {\n if (!slice.size)\n return tr.deleteRange(from, to);\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n if (fitsTrivially($from, $to, slice))\n return tr.step(new ReplaceStep(from, to, slice));\n let targetDepths = coveredDepths($from, tr.doc.resolve(to));\n // Can't replace the whole document, so remove 0 if it's present\n if (targetDepths[targetDepths.length - 1] == 0)\n targetDepths.pop();\n // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n let preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget);\n // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n for (let d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n let spec = $from.node(d).type.spec;\n if (spec.defining || spec.definingAsContext || spec.isolating)\n break;\n if (targetDepths.indexOf(d) > -1)\n preferredTarget = d;\n else if ($from.before(d) == pos)\n targetDepths.splice(1, 0, -d);\n }\n // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n let preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n let leftNodes = [], preferredDepth = slice.openStart;\n for (let content = slice.content, i = 0;; i++) {\n let node = content.firstChild;\n leftNodes.push(node);\n if (i == slice.openStart)\n break;\n content = node.content;\n }\n // Back up preferredDepth to cover defining textblocks directly\n // above it, possibly skipping a non-defining textblock.\n for (let d = preferredDepth - 1; d >= 0; d--) {\n let type = leftNodes[d].type, def = definesContent(type);\n if (def && $from.node(preferredTargetIndex).type != type)\n preferredDepth = d;\n else if (def || !type.isTextblock)\n break;\n }\n for (let j = slice.openStart; j >= 0; j--) {\n let openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n let insert = leftNodes[openDepth];\n if (!insert)\n continue;\n for (let i = 0; i < targetDepths.length; i++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n let targetDepth = targetDepths[(i + preferredTargetIndex) % targetDepths.length], expand = true;\n if (targetDepth < 0) {\n expand = false;\n targetDepth = -targetDepth;\n }\n let parent = $from.node(targetDepth - 1), index = $from.index(targetDepth - 1);\n if (parent.canReplaceWith(index, index, insert.type, insert.marks))\n return tr.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to, new Slice(closeFragment(slice.content, 0, slice.openStart, openDepth), openDepth, slice.openEnd));\n }\n }\n let startSteps = tr.steps.length;\n for (let i = targetDepths.length - 1; i >= 0; i--) {\n tr.replace(from, to, slice);\n if (tr.steps.length > startSteps)\n break;\n let depth = targetDepths[i];\n if (depth < 0)\n continue;\n from = $from.before(depth);\n to = $to.after(depth);\n }\n}\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n let first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n if (depth > newOpen) {\n let match = parent.contentMatchAt(0);\n let start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(Fragment.empty, true));\n }\n return fragment;\n}\nfunction replaceRangeWith(tr, from, to, node) {\n if (!node.isInline && from == to && tr.doc.resolve(from).parent.content.size) {\n let point = insertPoint(tr.doc, from, node.type);\n if (point != null)\n from = to = point;\n }\n tr.replaceRange(from, to, new Slice(Fragment.from(node), 0, 0));\n}\nfunction deleteRange$1(tr, from, to) {\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n let covered = coveredDepths($from, $to);\n for (let i = 0; i < covered.length; i++) {\n let depth = covered[i], last = i == covered.length - 1;\n if ((last && depth == 0) || $from.node(depth).type.contentMatch.validEnd)\n return tr.delete($from.start(depth), $to.end(depth));\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1))))\n return tr.delete($from.before(depth), $to.after(depth));\n }\n for (let d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d)\n return tr.delete($from.before(d), to);\n }\n tr.delete(from, to);\n}\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\nfunction coveredDepths($from, $to) {\n let result = [], minDepth = Math.min($from.depth, $to.depth);\n for (let d = minDepth; d >= 0; d--) {\n let start = $from.start(d);\n if (start < $from.pos - ($from.depth - d) ||\n $to.end(d) > $to.pos + ($to.depth - d) ||\n $from.node(d).type.spec.isolating ||\n $to.node(d).type.spec.isolating)\n break;\n if (start == $to.start(d) ||\n (d == $from.depth && d == $to.depth && $from.parent.inlineContent && $to.parent.inlineContent &&\n d && $to.start(d - 1) == start - 1))\n result.push(d);\n }\n return result;\n}\n\n/**\nUpdate an attribute in a specific node.\n*/\nclass AttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.pos = pos;\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at attribute step's position\");\n let attrs = Object.create(null);\n for (let name in node.attrs)\n attrs[name] = node.attrs[name];\n attrs[this.attr] = this.value;\n let updated = node.type.create(attrs, null, node.marks);\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new AttrStep(this.pos, this.attr, doc.nodeAt(this.pos).attrs[this.attr]);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AttrStep(pos.pos, this.attr, this.value);\n }\n toJSON() {\n return { stepType: \"attr\", pos: this.pos, attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\" || typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for AttrStep.fromJSON\");\n return new AttrStep(json.pos, json.attr, json.value);\n }\n}\nStep.jsonID(\"attr\", AttrStep);\n\n/**\n@internal\n*/\nlet TransformError = class extends Error {\n};\nTransformError = function TransformError(message) {\n let err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err;\n};\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\";\n/**\nAbstraction to build up and track an array of\n[steps](https://prosemirror.net/docs/ref/#transform.Step) representing a document transformation.\n\nMost transforming methods return the `Transform` object itself, so\nthat they can be chained.\n*/\nclass Transform {\n /**\n Create a transform that starts with the given document.\n */\n constructor(\n /**\n The current document (the result of applying the steps in the\n transform).\n */\n doc) {\n this.doc = doc;\n /**\n The steps in this transform.\n */\n this.steps = [];\n /**\n The documents before each of the steps.\n */\n this.docs = [];\n /**\n A mapping with the maps for each of the steps in this transform.\n */\n this.mapping = new Mapping;\n }\n /**\n The starting document.\n */\n get before() { return this.docs.length ? this.docs[0] : this.doc; }\n /**\n Apply a new step in this transform, saving the result. Throws an\n error when the step fails.\n */\n step(step) {\n let result = this.maybeStep(step);\n if (result.failed)\n throw new TransformError(result.failed);\n return this;\n }\n /**\n Try to apply a step in this transformation, ignoring it if it\n fails. Returns the step result.\n */\n maybeStep(step) {\n let result = step.apply(this.doc);\n if (!result.failed)\n this.addStep(step, result.doc);\n return result;\n }\n /**\n True when the document has been changed (when there are any\n steps).\n */\n get docChanged() {\n return this.steps.length > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n }\n /**\n Replace the part of the document between `from` and `to` with the\n given `slice`.\n */\n replace(from, to = from, slice = Slice.empty) {\n let step = replaceStep(this.doc, from, to, slice);\n if (step)\n this.step(step);\n return this;\n }\n /**\n Replace the given range with the given content, which may be a\n fragment, node, or array of nodes.\n */\n replaceWith(from, to, content) {\n return this.replace(from, to, new Slice(Fragment.from(content), 0, 0));\n }\n /**\n Delete the content between the given positions.\n */\n delete(from, to) {\n return this.replace(from, to, Slice.empty);\n }\n /**\n Insert the given content at the given position.\n */\n insert(pos, content) {\n return this.replaceWith(pos, pos, content);\n }\n /**\n Replace a range of the document with a given slice, using\n `from`, `to`, and the slice's\n [`openStart`](https://prosemirror.net/docs/ref/#model.Slice.openStart) property as hints, rather\n than fixed start and end points. This method may grow the\n replaced area or close open nodes in the slice in order to get a\n fit that is more in line with WYSIWYG expectations, by dropping\n fully covered parent nodes of the replaced region when they are\n marked [non-defining as\n context](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext), or including an\n open parent node from the slice that _is_ marked as [defining\n its content](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n \n This is the method, for example, to handle paste. The similar\n [`replace`](https://prosemirror.net/docs/ref/#transform.Transform.replace) method is a more\n primitive tool which will _not_ move the start and end of its given\n range, and is useful in situations where you need more precise\n control over what happens.\n */\n replaceRange(from, to, slice) {\n replaceRange(this, from, to, slice);\n return this;\n }\n /**\n Replace the given range with a node, but use `from` and `to` as\n hints, rather than precise positions. When from and to are the same\n and are at the start or end of a parent node in which the given\n node doesn't fit, this method may _move_ them out towards a parent\n that does allow the given node to be placed. When the given range\n completely covers a parent node, this method may completely replace\n that parent node.\n */\n replaceRangeWith(from, to, node) {\n replaceRangeWith(this, from, to, node);\n return this;\n }\n /**\n Delete the given range, expanding it to cover fully covered\n parent nodes until a valid replace is found.\n */\n deleteRange(from, to) {\n deleteRange$1(this, from, to);\n return this;\n }\n /**\n Split the content in the given range off from its parent, if there\n is sibling content before or after it, and move it up the tree to\n the depth specified by `target`. You'll probably want to use\n [`liftTarget`](https://prosemirror.net/docs/ref/#transform.liftTarget) to compute `target`, to make\n sure the lift is valid.\n */\n lift(range, target) {\n lift$2(this, range, target);\n return this;\n }\n /**\n Join the blocks around the given position. If depth is 2, their\n last and first siblings are also joined, and so on.\n */\n join(pos, depth = 1) {\n join(this, pos, depth);\n return this;\n }\n /**\n Wrap the given [range](https://prosemirror.net/docs/ref/#model.NodeRange) in the given set of wrappers.\n The wrappers are assumed to be valid in this position, and should\n probably be computed with [`findWrapping`](https://prosemirror.net/docs/ref/#transform.findWrapping).\n */\n wrap(range, wrappers) {\n wrap(this, range, wrappers);\n return this;\n }\n /**\n Set the type of all textblocks (partly) between `from` and `to` to\n the given node type with the given attributes.\n */\n setBlockType(from, to = from, type, attrs = null) {\n setBlockType$1(this, from, to, type, attrs);\n return this;\n }\n /**\n Change the type, attributes, and/or marks of the node at `pos`.\n When `type` isn't given, the existing node type is preserved,\n */\n setNodeMarkup(pos, type, attrs = null, marks) {\n setNodeMarkup(this, pos, type, attrs, marks);\n return this;\n }\n /**\n Set a single attribute on a given node to a new value.\n */\n setNodeAttribute(pos, attr, value) {\n this.step(new AttrStep(pos, attr, value));\n return this;\n }\n /**\n Add a mark to the node at position `pos`.\n */\n addNodeMark(pos, mark) {\n this.step(new AddNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Remove a mark (or a mark of the given type) from the node at\n position `pos`.\n */\n removeNodeMark(pos, mark) {\n if (!(mark instanceof Mark$1)) {\n let node = this.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at position \" + pos);\n mark = mark.isInSet(node.marks);\n if (!mark)\n return this;\n }\n this.step(new RemoveNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Split the node at the given position, and optionally, if `depth` is\n greater than one, any number of nodes above that. By default, the\n parts split off will inherit the node type of the original node.\n This can be changed by passing an array of types and attributes to\n use after the split.\n */\n split(pos, depth = 1, typesAfter) {\n split(this, pos, depth, typesAfter);\n return this;\n }\n /**\n Add the given mark to the inline content between `from` and `to`.\n */\n addMark(from, to, mark) {\n addMark(this, from, to, mark);\n return this;\n }\n /**\n Remove marks from inline nodes between `from` and `to`. When\n `mark` is a single mark, remove precisely that mark. When it is\n a mark type, remove all marks of that type. When it is null,\n remove all marks of any type.\n */\n removeMark(from, to, mark) {\n removeMark(this, from, to, mark);\n return this;\n }\n /**\n Removes all marks and nodes from the content of the node at\n `pos` that don't match the given new parent node type. Accepts\n an optional starting [content match](https://prosemirror.net/docs/ref/#model.ContentMatch) as\n third argument.\n */\n clearIncompatible(pos, parentType, match) {\n clearIncompatible(this, pos, parentType, match);\n return this;\n }\n}\n\nconst classesById = Object.create(null);\n/**\nSuperclass for editor selections. Every selection type should\nextend this. Should not be instantiated directly.\n*/\nclass Selection {\n /**\n Initialize a selection with the head and anchor and ranges. If no\n ranges are given, constructs a single range across `$anchor` and\n `$head`.\n */\n constructor(\n /**\n The resolved anchor of the selection (the side that stays in\n place when the selection is modified).\n */\n $anchor, \n /**\n The resolved head of the selection (the side that moves when\n the selection is modified).\n */\n $head, ranges) {\n this.$anchor = $anchor;\n this.$head = $head;\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))];\n }\n /**\n The selection's anchor, as an unresolved position.\n */\n get anchor() { return this.$anchor.pos; }\n /**\n The selection's head.\n */\n get head() { return this.$head.pos; }\n /**\n The lower bound of the selection's main range.\n */\n get from() { return this.$from.pos; }\n /**\n The upper bound of the selection's main range.\n */\n get to() { return this.$to.pos; }\n /**\n The resolved lower bound of the selection's main range.\n */\n get $from() {\n return this.ranges[0].$from;\n }\n /**\n The resolved upper bound of the selection's main range.\n */\n get $to() {\n return this.ranges[0].$to;\n }\n /**\n Indicates whether the selection contains any content.\n */\n get empty() {\n let ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++)\n if (ranges[i].$from.pos != ranges[i].$to.pos)\n return false;\n return true;\n }\n /**\n Get the content of this selection as a slice.\n */\n content() {\n return this.$from.doc.slice(this.from, this.to, true);\n }\n /**\n Replace the selection with a slice or, if no slice is given,\n delete the selection. Will append to the given transaction.\n */\n replace(tr, content = Slice.empty) {\n // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n let lastNode = content.content.lastChild, lastParent = null;\n for (let i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i ? Slice.empty : content);\n if (i == 0)\n selectionToInsertionEnd$1(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1);\n }\n }\n /**\n Replace the selection with the given node, appending the changes\n to the given transaction.\n */\n replaceWith(tr, node) {\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n let from = mapping.map($from.pos), to = mapping.map($to.pos);\n if (i) {\n tr.deleteRange(from, to);\n }\n else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd$1(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n }\n /**\n Find a valid cursor or leaf node selection starting at the given\n position and searching back if `dir` is negative, and forward if\n positive. When `textOnly` is true, only consider cursor\n selections. Will return null when no valid selection position is\n found.\n */\n static findFrom($pos, dir, textOnly = false) {\n let inner = $pos.parent.inlineContent ? new TextSelection($pos)\n : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n if (inner)\n return inner;\n for (let depth = $pos.depth - 1; depth >= 0; depth--) {\n let found = dir < 0\n ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly)\n : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n if (found)\n return found;\n }\n return null;\n }\n /**\n Find a valid cursor or leaf node selection near the given\n position. Searches forward first by default, but if `bias` is\n negative, it will search backwards first.\n */\n static near($pos, bias = 1) {\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0));\n }\n /**\n Find the cursor or leaf node selection closest to the start of\n the given document. Will return an\n [`AllSelection`](https://prosemirror.net/docs/ref/#state.AllSelection) if no valid position\n exists.\n */\n static atStart(doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc);\n }\n /**\n Find the cursor or leaf node selection closest to the end of the\n given document.\n */\n static atEnd(doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc);\n }\n /**\n Deserialize the JSON representation of a selection. Must be\n implemented for custom classes (as a static class method).\n */\n static fromJSON(doc, json) {\n if (!json || !json.type)\n throw new RangeError(\"Invalid input for Selection.fromJSON\");\n let cls = classesById[json.type];\n if (!cls)\n throw new RangeError(`No selection type ${json.type} defined`);\n return cls.fromJSON(doc, json);\n }\n /**\n To be able to deserialize selections from JSON, custom selection\n classes must register themselves with an ID string, so that they\n can be disambiguated. Try to pick something that's unlikely to\n clash with classes from other modules.\n */\n static jsonID(id, selectionClass) {\n if (id in classesById)\n throw new RangeError(\"Duplicate use of selection JSON ID \" + id);\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass;\n }\n /**\n Get a [bookmark](https://prosemirror.net/docs/ref/#state.SelectionBookmark) for this selection,\n which is a value that can be mapped without having access to a\n current document, and later resolved to a real selection for a\n given document again. (This is used mostly by the history to\n track and restore old selections.) The default implementation of\n this method just converts the selection to a text selection and\n returns the bookmark for that.\n */\n getBookmark() {\n return TextSelection.between(this.$anchor, this.$head).getBookmark();\n }\n}\nSelection.prototype.visible = true;\n/**\nRepresents a selected range in a document.\n*/\nclass SelectionRange {\n /**\n Create a range.\n */\n constructor(\n /**\n The lower bound of the range.\n */\n $from, \n /**\n The upper bound of the range.\n */\n $to) {\n this.$from = $from;\n this.$to = $to;\n }\n}\nlet warnedAboutTextSelection = false;\nfunction checkTextSelection($pos) {\n if (!warnedAboutTextSelection && !$pos.parent.inlineContent) {\n warnedAboutTextSelection = true;\n console[\"warn\"](\"TextSelection endpoint not pointing into a node with inline content (\" + $pos.parent.type.name + \")\");\n }\n}\n/**\nA text selection represents a classical editor selection, with a\nhead (the moving side) and anchor (immobile side), both of which\npoint into textblock nodes. It can be empty (a regular cursor\nposition).\n*/\nclass TextSelection extends Selection {\n /**\n Construct a text selection between the given points.\n */\n constructor($anchor, $head = $anchor) {\n checkTextSelection($anchor);\n checkTextSelection($head);\n super($anchor, $head);\n }\n /**\n Returns a resolved position if this is a cursor selection (an\n empty text selection), and null otherwise.\n */\n get $cursor() { return this.$anchor.pos == this.$head.pos ? this.$head : null; }\n map(doc, mapping) {\n let $head = doc.resolve(mapping.map(this.head));\n if (!$head.parent.inlineContent)\n return Selection.near($head);\n let $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head);\n }\n replace(tr, content = Slice.empty) {\n super.replace(tr, content);\n if (content == Slice.empty) {\n let marks = this.$from.marksAcross(this.$to);\n if (marks)\n tr.ensureMarks(marks);\n }\n }\n eq(other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head;\n }\n getBookmark() {\n return new TextBookmark(this.anchor, this.head);\n }\n toJSON() {\n return { type: \"text\", anchor: this.anchor, head: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid input for TextSelection.fromJSON\");\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head));\n }\n /**\n Create a text selection from non-resolved positions.\n */\n static create(doc, anchor, head = anchor) {\n let $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head));\n }\n /**\n Return a text selection that spans the given positions or, if\n they aren't text positions, find a text selection near them.\n `bias` determines whether the method searches forward (default)\n or backwards (negative number) first. Will fall back to calling\n [`Selection.near`](https://prosemirror.net/docs/ref/#state.Selection^near) when the document\n doesn't contain a valid text position.\n */\n static between($anchor, $head, bias) {\n let dPos = $anchor.pos - $head.pos;\n if (!bias || dPos)\n bias = dPos >= 0 ? 1 : -1;\n if (!$head.parent.inlineContent) {\n let found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n if (found)\n $head = found.$head;\n else\n return Selection.near($head, bias);\n }\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n }\n else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n if (($anchor.pos < $head.pos) != (dPos < 0))\n $anchor = $head;\n }\n }\n return new TextSelection($anchor, $head);\n }\n}\nSelection.jsonID(\"text\", TextSelection);\nclass TextBookmark {\n constructor(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n }\n map(mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head));\n }\n resolve(doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head));\n }\n}\n/**\nA node selection is a selection that points at a single node. All\nnodes marked [selectable](https://prosemirror.net/docs/ref/#model.NodeSpec.selectable) can be the\ntarget of a node selection. In such a selection, `from` and `to`\npoint directly before and after the selected node, `anchor` equals\n`from`, and `head` equals `to`..\n*/\nclass NodeSelection extends Selection {\n /**\n Create a node selection. Does not verify the validity of its\n argument.\n */\n constructor($pos) {\n let node = $pos.nodeAfter;\n let $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n super($pos, $end);\n this.node = node;\n }\n map(doc, mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n let $pos = doc.resolve(pos);\n if (deleted)\n return Selection.near($pos);\n return new NodeSelection($pos);\n }\n content() {\n return new Slice(Fragment.from(this.node), 0, 0);\n }\n eq(other) {\n return other instanceof NodeSelection && other.anchor == this.anchor;\n }\n toJSON() {\n return { type: \"node\", anchor: this.anchor };\n }\n getBookmark() { return new NodeBookmark(this.anchor); }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\")\n throw new RangeError(\"Invalid input for NodeSelection.fromJSON\");\n return new NodeSelection(doc.resolve(json.anchor));\n }\n /**\n Create a node selection from non-resolved positions.\n */\n static create(doc, from) {\n return new NodeSelection(doc.resolve(from));\n }\n /**\n Determines whether the given node may be selected as a node\n selection.\n */\n static isSelectable(node) {\n return !node.isText && node.type.spec.selectable !== false;\n }\n}\nNodeSelection.prototype.visible = false;\nSelection.jsonID(\"node\", NodeSelection);\nclass NodeBookmark {\n constructor(anchor) {\n this.anchor = anchor;\n }\n map(mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos);\n }\n resolve(doc) {\n let $pos = doc.resolve(this.anchor), node = $pos.nodeAfter;\n if (node && NodeSelection.isSelectable(node))\n return new NodeSelection($pos);\n return Selection.near($pos);\n }\n}\n/**\nA selection type that represents selecting the whole document\n(which can not necessarily be expressed with a text selection, when\nthere are for example leaf block nodes at the start or end of the\ndocument).\n*/\nclass AllSelection extends Selection {\n /**\n Create an all-selection over the given document.\n */\n constructor(doc) {\n super(doc.resolve(0), doc.resolve(doc.content.size));\n }\n replace(tr, content = Slice.empty) {\n if (content == Slice.empty) {\n tr.delete(0, tr.doc.content.size);\n let sel = Selection.atStart(tr.doc);\n if (!sel.eq(tr.selection))\n tr.setSelection(sel);\n }\n else {\n super.replace(tr, content);\n }\n }\n toJSON() { return { type: \"all\" }; }\n /**\n @internal\n */\n static fromJSON(doc) { return new AllSelection(doc); }\n map(doc) { return new AllSelection(doc); }\n eq(other) { return other instanceof AllSelection; }\n getBookmark() { return AllBookmark; }\n}\nSelection.jsonID(\"all\", AllSelection);\nconst AllBookmark = {\n map() { return this; },\n resolve(doc) { return new AllSelection(doc); }\n};\n// FIXME we'll need some awareness of text direction when scanning for selections\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\nfunction findSelectionIn(doc, node, pos, index, dir, text = false) {\n if (node.inlineContent)\n return TextSelection.create(doc, pos);\n for (let i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n let child = node.child(i);\n if (!child.isAtom) {\n let inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n if (inner)\n return inner;\n }\n else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0));\n }\n pos += child.nodeSize * dir;\n }\n return null;\n}\nfunction selectionToInsertionEnd$1(tr, startLen, bias) {\n let last = tr.steps.length - 1;\n if (last < startLen)\n return;\n let step = tr.steps[last];\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep))\n return;\n let map = tr.mapping.maps[last], end;\n map.forEach((_from, _to, _newFrom, newTo) => { if (end == null)\n end = newTo; });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nconst UPDATED_SEL = 1, UPDATED_MARKS = 2, UPDATED_SCROLL = 4;\n/**\nAn editor state transaction, which can be applied to a state to\ncreate an updated state. Use\n[`EditorState.tr`](https://prosemirror.net/docs/ref/#state.EditorState.tr) to create an instance.\n\nTransactions track changes to the document (they are a subclass of\n[`Transform`](https://prosemirror.net/docs/ref/#transform.Transform)), but also other state changes,\nlike selection updates and adjustments of the set of [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks). In addition, you can store\nmetadata properties in a transaction, which are extra pieces of\ninformation that client code or plugins can use to describe what a\ntransaction represents, so that they can update their [own\nstate](https://prosemirror.net/docs/ref/#state.StateField) accordingly.\n\nThe [editor view](https://prosemirror.net/docs/ref/#view.EditorView) uses a few metadata\nproperties: it will attach a property `\"pointer\"` with the value\n`true` to selection transactions directly caused by mouse or touch\ninput, a `\"composition\"` property holding an ID identifying the\ncomposition that caused it to transactions caused by composed DOM\ninput, and a `\"uiEvent\"` property of that may be `\"paste\"`,\n`\"cut\"`, or `\"drop\"`.\n*/\nclass Transaction extends Transform {\n /**\n @internal\n */\n constructor(state) {\n super(state.doc);\n // The step count for which the current selection is valid.\n this.curSelectionFor = 0;\n // Bitfield to track which aspects of the state were updated by\n // this transaction.\n this.updated = 0;\n // Object used to store metadata properties for the transaction.\n this.meta = Object.create(null);\n this.time = Date.now();\n this.curSelection = state.selection;\n this.storedMarks = state.storedMarks;\n }\n /**\n The transaction's current selection. This defaults to the editor\n selection [mapped](https://prosemirror.net/docs/ref/#state.Selection.map) through the steps in the\n transaction, but can be overwritten with\n [`setSelection`](https://prosemirror.net/docs/ref/#state.Transaction.setSelection).\n */\n get selection() {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n return this.curSelection;\n }\n /**\n Update the transaction's current selection. Will determine the\n selection that the editor gets when the transaction is applied.\n */\n setSelection(selection) {\n if (selection.$from.doc != this.doc)\n throw new RangeError(\"Selection passed to setSelection must point at the current document\");\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this;\n }\n /**\n Whether the selection was explicitly updated by this transaction.\n */\n get selectionSet() {\n return (this.updated & UPDATED_SEL) > 0;\n }\n /**\n Set the current stored marks.\n */\n setStoredMarks(marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this;\n }\n /**\n Make sure the current stored marks or, if that is null, the marks\n at the selection, match the given set of marks. Does nothing if\n this is already the case.\n */\n ensureMarks(marks) {\n if (!Mark$1.sameSet(this.storedMarks || this.selection.$from.marks(), marks))\n this.setStoredMarks(marks);\n return this;\n }\n /**\n Add a mark to the set of stored marks.\n */\n addStoredMark(mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Remove a mark or mark type from the set of stored marks.\n */\n removeStoredMark(mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Whether the stored marks were explicitly set for this transaction.\n */\n get storedMarksSet() {\n return (this.updated & UPDATED_MARKS) > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n super.addStep(step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n }\n /**\n Update the timestamp for the transaction.\n */\n setTime(time) {\n this.time = time;\n return this;\n }\n /**\n Replace the current selection with the given slice.\n */\n replaceSelection(slice) {\n this.selection.replace(this, slice);\n return this;\n }\n /**\n Replace the selection with the given node. When `inheritMarks` is\n true and the content is inline, it inherits the marks from the\n place where it is inserted.\n */\n replaceSelectionWith(node, inheritMarks = true) {\n let selection = this.selection;\n if (inheritMarks)\n node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : (selection.$from.marksAcross(selection.$to) || Mark$1.none)));\n selection.replaceWith(this, node);\n return this;\n }\n /**\n Delete the selection.\n */\n deleteSelection() {\n this.selection.replace(this);\n return this;\n }\n /**\n Replace the given range, or the selection if no range is given,\n with a text node containing the given string.\n */\n insertText(text, from, to) {\n let schema = this.doc.type.schema;\n if (from == null) {\n if (!text)\n return this.deleteSelection();\n return this.replaceSelectionWith(schema.text(text), true);\n }\n else {\n if (to == null)\n to = from;\n to = to == null ? from : to;\n if (!text)\n return this.deleteRange(from, to);\n let marks = this.storedMarks;\n if (!marks) {\n let $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n this.replaceRangeWith(from, to, schema.text(text, marks));\n if (!this.selection.empty)\n this.setSelection(Selection.near(this.selection.$to));\n return this;\n }\n }\n /**\n Store a metadata property in this transaction, keyed either by\n name or by plugin.\n */\n setMeta(key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this;\n }\n /**\n Retrieve a metadata property for a given name or plugin.\n */\n getMeta(key) {\n return this.meta[typeof key == \"string\" ? key : key.key];\n }\n /**\n Returns true if this transaction doesn't contain any metadata,\n and can thus safely be extended.\n */\n get isGeneric() {\n for (let _ in this.meta)\n return false;\n return true;\n }\n /**\n Indicate that the editor should scroll the selection into view\n when updated to the state produced by this transaction.\n */\n scrollIntoView() {\n this.updated |= UPDATED_SCROLL;\n return this;\n }\n /**\n True when this transaction has had `scrollIntoView` called on it.\n */\n get scrolledIntoView() {\n return (this.updated & UPDATED_SCROLL) > 0;\n }\n}\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self);\n}\nclass FieldDesc {\n constructor(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n }\n}\nconst baseFields = [\n new FieldDesc(\"doc\", {\n init(config) { return config.doc || config.schema.topNodeType.createAndFill(); },\n apply(tr) { return tr.doc; }\n }),\n new FieldDesc(\"selection\", {\n init(config, instance) { return config.selection || Selection.atStart(instance.doc); },\n apply(tr) { return tr.selection; }\n }),\n new FieldDesc(\"storedMarks\", {\n init(config) { return config.storedMarks || null; },\n apply(tr, _marks, _old, state) { return state.selection.$cursor ? tr.storedMarks : null; }\n }),\n new FieldDesc(\"scrollToSelection\", {\n init() { return 0; },\n apply(tr, prev) { return tr.scrolledIntoView ? prev + 1 : prev; }\n })\n];\n// Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\nclass Configuration {\n constructor(schema, plugins) {\n this.schema = schema;\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n this.fields = baseFields.slice();\n if (plugins)\n plugins.forEach(plugin => {\n if (this.pluginsByKey[plugin.key])\n throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\");\n this.plugins.push(plugin);\n this.pluginsByKey[plugin.key] = plugin;\n if (plugin.spec.state)\n this.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin));\n });\n }\n}\n/**\nThe state of a ProseMirror editor is represented by an object of\nthis type. A state is a persistent data structure—it isn't\nupdated, but rather a new state value is computed from an old one\nusing the [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) method.\n\nA state holds a number of built-in fields, and plugins can\n[define](https://prosemirror.net/docs/ref/#state.PluginSpec.state) additional fields.\n*/\nclass EditorState {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n config) {\n this.config = config;\n }\n /**\n The schema of the state's document.\n */\n get schema() {\n return this.config.schema;\n }\n /**\n The plugins that are active in this state.\n */\n get plugins() {\n return this.config.plugins;\n }\n /**\n Apply the given transaction to produce a new state.\n */\n apply(tr) {\n return this.applyTransaction(tr).state;\n }\n /**\n @internal\n */\n filterTransaction(tr, ignore = -1) {\n for (let i = 0; i < this.config.plugins.length; i++)\n if (i != ignore) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this))\n return false;\n }\n return true;\n }\n /**\n Verbose variant of [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) that\n returns the precise transactions that were applied (which might\n be influenced by the [transaction\n hooks](https://prosemirror.net/docs/ref/#state.PluginSpec.filterTransaction) of\n plugins) along with the new state.\n */\n applyTransaction(rootTr) {\n if (!this.filterTransaction(rootTr))\n return { state: this, transactions: [] };\n let trs = [rootTr], newState = this.applyInner(rootTr), seen = null;\n // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n for (;;) {\n let haveNew = false;\n for (let i = 0; i < this.config.plugins.length; i++) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.appendTransaction) {\n let n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this;\n let tr = n < trs.length &&\n plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n if (!seen) {\n seen = [];\n for (let j = 0; j < this.config.plugins.length; j++)\n seen.push(j < i ? { state: newState, n: trs.length } : { state: this, n: 0 });\n }\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n if (seen)\n seen[i] = { state: newState, n: trs.length };\n }\n }\n if (!haveNew)\n return { state: newState, transactions: trs };\n }\n }\n /**\n @internal\n */\n applyInner(tr) {\n if (!tr.before.eq(this.doc))\n throw new RangeError(\"Applying a mismatched transaction\");\n let newInstance = new EditorState(this.config), fields = this.config.fields;\n for (let i = 0; i < fields.length; i++) {\n let field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n return newInstance;\n }\n /**\n Start a [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.\n */\n get tr() { return new Transaction(this); }\n /**\n Create a new state.\n */\n static create(config) {\n let $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n let instance = new EditorState($config);\n for (let i = 0; i < $config.fields.length; i++)\n instance[$config.fields[i].name] = $config.fields[i].init(config, instance);\n return instance;\n }\n /**\n Create a new state based on this one, but with an adjusted set\n of active plugins. State fields that exist in both sets of\n plugins are kept unchanged. Those that no longer exist are\n dropped, and those that are new are initialized using their\n [`init`](https://prosemirror.net/docs/ref/#state.StateField.init) method, passing in the new\n configuration object..\n */\n reconfigure(config) {\n let $config = new Configuration(this.schema, config.plugins);\n let fields = $config.fields, instance = new EditorState($config);\n for (let i = 0; i < fields.length; i++) {\n let name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n return instance;\n }\n /**\n Serialize this state to JSON. If you want to serialize the state\n of plugins, pass an object mapping property names to use in the\n resulting JSON object to plugin objects. The argument may also be\n a string or number, in which case it is ignored, to support the\n way `JSON.stringify` calls `toString` methods.\n */\n toJSON(pluginFields) {\n let result = { doc: this.doc.toJSON(), selection: this.selection.toJSON() };\n if (this.storedMarks)\n result.storedMarks = this.storedMarks.map(m => m.toJSON());\n if (pluginFields && typeof pluginFields == 'object')\n for (let prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\")\n throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\");\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (state && state.toJSON)\n result[prop] = state.toJSON.call(plugin, this[plugin.key]);\n }\n return result;\n }\n /**\n Deserialize a JSON representation of a state. `config` should\n have at least a `schema` field, and should contain array of\n plugins to initialize the state with. `pluginFields` can be used\n to deserialize the state of plugins, by associating plugin\n instances with the property names they use in the JSON object.\n */\n static fromJSON(config, json, pluginFields) {\n if (!json)\n throw new RangeError(\"Invalid input for EditorState.fromJSON\");\n if (!config.schema)\n throw new RangeError(\"Required config field 'schema' missing\");\n let $config = new Configuration(config.schema, config.plugins);\n let instance = new EditorState($config);\n $config.fields.forEach(field => {\n if (field.name == \"doc\") {\n instance.doc = Node$1.fromJSON(config.schema, json.doc);\n }\n else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n }\n else if (field.name == \"storedMarks\") {\n if (json.storedMarks)\n instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON);\n }\n else {\n if (pluginFields)\n for (let prop in pluginFields) {\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (plugin.key == field.name && state && state.fromJSON &&\n Object.prototype.hasOwnProperty.call(json, prop)) {\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return;\n }\n }\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance;\n }\n}\n\nfunction bindProps(obj, self, target) {\n for (let prop in obj) {\n let val = obj[prop];\n if (val instanceof Function)\n val = val.bind(self);\n else if (prop == \"handleDOMEvents\")\n val = bindProps(val, self, {});\n target[prop] = val;\n }\n return target;\n}\n/**\nPlugins bundle functionality that can be added to an editor.\nThey are part of the [editor state](https://prosemirror.net/docs/ref/#state.EditorState) and\nmay influence that state and the view that contains it.\n*/\nclass Plugin {\n /**\n Create a plugin.\n */\n constructor(\n /**\n The plugin's [spec object](https://prosemirror.net/docs/ref/#state.PluginSpec).\n */\n spec) {\n this.spec = spec;\n /**\n The [props](https://prosemirror.net/docs/ref/#view.EditorProps) exported by this plugin.\n */\n this.props = {};\n if (spec.props)\n bindProps(spec.props, this, this.props);\n this.key = spec.key ? spec.key.key : createKey(\"plugin\");\n }\n /**\n Extract the plugin's state field from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\nconst keys = Object.create(null);\nfunction createKey(name) {\n if (name in keys)\n return name + \"$\" + ++keys[name];\n keys[name] = 0;\n return name + \"$\";\n}\n/**\nA key is used to [tag](https://prosemirror.net/docs/ref/#state.PluginSpec.key) plugins in a way\nthat makes it possible to find them, given an editor state.\nAssigning a key does mean only one plugin of that type can be\nactive in a state.\n*/\nclass PluginKey {\n /**\n Create a plugin key.\n */\n constructor(name = \"key\") { this.key = createKey(name); }\n /**\n Get the active plugin with this key, if any, from an editor\n state.\n */\n get(state) { return state.config.pluginsByKey[this.key]; }\n /**\n Get the plugin's state from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\n\nconst domIndex = function (node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node)\n return index;\n }\n};\nconst parentNode = function (node) {\n let parent = node.assignedSlot || node.parentNode;\n return parent && parent.nodeType == 11 ? parent.host : parent;\n};\nlet reusedRange = null;\n// Note that this will always return the same range, because DOM range\n// objects are every expensive, and keep slowing down subsequent DOM\n// updates, for some reason.\nconst textRange = function (node, from, to) {\n let range = reusedRange || (reusedRange = document.createRange());\n range.setEnd(node, to == null ? node.nodeValue.length : to);\n range.setStart(node, from || 0);\n return range;\n};\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nconst isEquivalentPosition = function (node, off, targetNode, targetOff) {\n return targetNode && (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1));\n};\nconst atomElements = /^(img|br|input|textarea|hr)$/i;\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff)\n return true;\n if (off == (dir < 0 ? 0 : nodeSize(node))) {\n let parent = node.parentNode;\n if (!parent || parent.nodeType != 1 || hasBlockDesc(node) || atomElements.test(node.nodeName) ||\n node.contentEditable == \"false\")\n return false;\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n }\n else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (node.contentEditable == \"false\")\n return false;\n off = dir < 0 ? nodeSize(node) : 0;\n }\n else {\n return false;\n }\n }\n}\nfunction nodeSize(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction isOnEdge(node, offset, parent) {\n for (let atStart = offset == 0, atEnd = offset == nodeSize(node); atStart || atEnd;) {\n if (node == parent)\n return true;\n let index = domIndex(node);\n node = node.parentNode;\n if (!node)\n return false;\n atStart = atStart && index == 0;\n atEnd = atEnd && index == nodeSize(node);\n }\n}\nfunction hasBlockDesc(dom) {\n let desc;\n for (let cur = dom; cur; cur = cur.parentNode)\n if (desc = cur.pmViewDesc)\n break;\n return desc && desc.node && desc.node.isBlock && (desc.dom == dom || desc.contentDOM == dom);\n}\n// Work around Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n// (isCollapsed inappropriately returns true in shadow dom)\nconst selectionCollapsed = function (domSel) {\n return domSel.focusNode && isEquivalentPosition(domSel.focusNode, domSel.focusOffset, domSel.anchorNode, domSel.anchorOffset);\n};\nfunction keyEvent(keyCode, key) {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"keydown\", true, true);\n event.keyCode = keyCode;\n event.key = event.code = key;\n return event;\n}\nfunction deepActiveElement(doc) {\n let elt = doc.activeElement;\n while (elt && elt.shadowRoot)\n elt = elt.shadowRoot.activeElement;\n return elt;\n}\nfunction caretFromPoint(doc, x, y) {\n if (doc.caretPositionFromPoint) {\n try { // Firefox throws for this call in hard-to-predict circumstances (#994)\n let pos = doc.caretPositionFromPoint(x, y);\n if (pos)\n return { node: pos.offsetNode, offset: pos.offset };\n }\n catch (_) { }\n }\n if (doc.caretRangeFromPoint) {\n let range = doc.caretRangeFromPoint(x, y);\n if (range)\n return { node: range.startContainer, offset: range.startOffset };\n }\n}\n\nconst nav = typeof navigator != \"undefined\" ? navigator : null;\nconst doc = typeof document != \"undefined\" ? document : null;\nconst agent = (nav && nav.userAgent) || \"\";\nconst ie_edge = /Edge\\/(\\d+)/.exec(agent);\nconst ie_upto10 = /MSIE \\d/.exec(agent);\nconst ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(agent);\nconst ie$1 = !!(ie_upto10 || ie_11up || ie_edge);\nconst ie_version = ie_upto10 ? document.documentMode : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : 0;\nconst gecko = !ie$1 && /gecko\\/(\\d+)/i.test(agent);\ngecko && +(/Firefox\\/(\\d+)/.exec(agent) || [0, 0])[1];\nconst _chrome = !ie$1 && /Chrome\\/(\\d+)/.exec(agent);\nconst chrome = !!_chrome;\nconst chrome_version = _chrome ? +_chrome[1] : 0;\nconst safari = !ie$1 && !!nav && /Apple Computer/.test(nav.vendor);\n// Is true for both iOS and iPadOS for convenience\nconst ios = safari && (/Mobile\\/\\w+/.test(agent) || !!nav && nav.maxTouchPoints > 2);\nconst mac$2 = ios || (nav ? /Mac/.test(nav.platform) : false);\nconst windows = nav ? /Win/.test(nav.platform) : false;\nconst android = /Android \\d/.test(agent);\nconst webkit = !!doc && \"webkitFontSmoothing\" in doc.documentElement.style;\nconst webkit_version = webkit ? +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0;\n\nfunction windowRect(doc) {\n return { left: 0, right: doc.documentElement.clientWidth,\n top: 0, bottom: doc.documentElement.clientHeight };\n}\nfunction getSide(value, side) {\n return typeof value == \"number\" ? value : value[side];\n}\nfunction clientRect(node) {\n let rect = node.getBoundingClientRect();\n // Adjust for elements with style \"transform: scale()\"\n let scaleX = (rect.width / node.offsetWidth) || 1;\n let scaleY = (rect.height / node.offsetHeight) || 1;\n // Make sure scrollbar width isn't included in the rectangle\n return { left: rect.left, right: rect.left + node.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + node.clientHeight * scaleY };\n}\nfunction scrollRectIntoView(view, rect, startDOM) {\n let scrollThreshold = view.someProp(\"scrollThreshold\") || 0, scrollMargin = view.someProp(\"scrollMargin\") || 5;\n let doc = view.dom.ownerDocument;\n for (let parent = startDOM || view.dom;; parent = parentNode(parent)) {\n if (!parent)\n break;\n if (parent.nodeType != 1)\n continue;\n let elt = parent;\n let atTop = elt == doc.body;\n let bounding = atTop ? windowRect(doc) : clientRect(elt);\n let moveX = 0, moveY = 0;\n if (rect.top < bounding.top + getSide(scrollThreshold, \"top\"))\n moveY = -(bounding.top - rect.top + getSide(scrollMargin, \"top\"));\n else if (rect.bottom > bounding.bottom - getSide(scrollThreshold, \"bottom\"))\n moveY = rect.bottom - bounding.bottom + getSide(scrollMargin, \"bottom\");\n if (rect.left < bounding.left + getSide(scrollThreshold, \"left\"))\n moveX = -(bounding.left - rect.left + getSide(scrollMargin, \"left\"));\n else if (rect.right > bounding.right - getSide(scrollThreshold, \"right\"))\n moveX = rect.right - bounding.right + getSide(scrollMargin, \"right\");\n if (moveX || moveY) {\n if (atTop) {\n doc.defaultView.scrollBy(moveX, moveY);\n }\n else {\n let startX = elt.scrollLeft, startY = elt.scrollTop;\n if (moveY)\n elt.scrollTop += moveY;\n if (moveX)\n elt.scrollLeft += moveX;\n let dX = elt.scrollLeft - startX, dY = elt.scrollTop - startY;\n rect = { left: rect.left - dX, top: rect.top - dY, right: rect.right - dX, bottom: rect.bottom - dY };\n }\n }\n if (atTop)\n break;\n }\n}\n// Store the scroll position of the editor's parent nodes, along with\n// the top position of an element near the top of the editor, which\n// will be used to make sure the visible viewport remains stable even\n// when the size of the content above changes.\nfunction storeScrollPos(view) {\n let rect = view.dom.getBoundingClientRect(), startY = Math.max(0, rect.top);\n let refDOM, refTop;\n for (let x = (rect.left + rect.right) / 2, y = startY + 1; y < Math.min(innerHeight, rect.bottom); y += 5) {\n let dom = view.root.elementFromPoint(x, y);\n if (!dom || dom == view.dom || !view.dom.contains(dom))\n continue;\n let localRect = dom.getBoundingClientRect();\n if (localRect.top >= startY - 20) {\n refDOM = dom;\n refTop = localRect.top;\n break;\n }\n }\n return { refDOM: refDOM, refTop: refTop, stack: scrollStack(view.dom) };\n}\nfunction scrollStack(dom) {\n let stack = [], doc = dom.ownerDocument;\n for (let cur = dom; cur; cur = parentNode(cur)) {\n stack.push({ dom: cur, top: cur.scrollTop, left: cur.scrollLeft });\n if (dom == doc)\n break;\n }\n return stack;\n}\n// Reset the scroll position of the editor's parent nodes to that what\n// it was before, when storeScrollPos was called.\nfunction resetScrollPos({ refDOM, refTop, stack }) {\n let newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0;\n restoreScrollStack(stack, newRefTop == 0 ? 0 : newRefTop - refTop);\n}\nfunction restoreScrollStack(stack, dTop) {\n for (let i = 0; i < stack.length; i++) {\n let { dom, top, left } = stack[i];\n if (dom.scrollTop != top + dTop)\n dom.scrollTop = top + dTop;\n if (dom.scrollLeft != left)\n dom.scrollLeft = left;\n }\n}\nlet preventScrollSupported = null;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive)\n return dom.setActive(); // in IE\n if (preventScrollSupported)\n return dom.focus(preventScrollSupported);\n let stored = scrollStack(dom);\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = { preventScroll: true };\n return true;\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n restoreScrollStack(stored, 0);\n }\n}\nfunction findOffsetInNode(node, coords) {\n let closest, dxClosest = 2e8, coordsClosest, offset = 0;\n let rowBot = coords.top, rowTop = coords.top;\n let firstBelow, coordsBelow;\n for (let child = node.firstChild, childIndex = 0; child; child = child.nextSibling, childIndex++) {\n let rects;\n if (child.nodeType == 1)\n rects = child.getClientRects();\n else if (child.nodeType == 3)\n rects = textRange(child).getClientRects();\n else\n continue;\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n rowBot = Math.max(rect.bottom, rowBot);\n rowTop = Math.min(rect.top, rowTop);\n let dx = rect.left > coords.left ? rect.left - coords.left\n : rect.right < coords.left ? coords.left - rect.right : 0;\n if (dx < dxClosest) {\n closest = child;\n dxClosest = dx;\n coordsClosest = dx && closest.nodeType == 3 ? {\n left: rect.right < coords.left ? rect.right : rect.left,\n top: coords.top\n } : coords;\n if (child.nodeType == 1 && dx)\n offset = childIndex + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0);\n continue;\n }\n }\n else if (rect.top > coords.top && !firstBelow && rect.left <= coords.left && rect.right >= coords.left) {\n firstBelow = child;\n coordsBelow = { left: Math.max(rect.left, Math.min(rect.right, coords.left)), top: rect.top };\n }\n if (!closest && (coords.left >= rect.right && coords.top >= rect.top ||\n coords.left >= rect.left && coords.top >= rect.bottom))\n offset = childIndex + 1;\n }\n }\n if (!closest && firstBelow) {\n closest = firstBelow;\n coordsClosest = coordsBelow;\n dxClosest = 0;\n }\n if (closest && closest.nodeType == 3)\n return findOffsetInText(closest, coordsClosest);\n if (!closest || (dxClosest && closest.nodeType == 1))\n return { node, offset };\n return findOffsetInNode(closest, coordsClosest);\n}\nfunction findOffsetInText(node, coords) {\n let len = node.nodeValue.length;\n let range = document.createRange();\n for (let i = 0; i < len; i++) {\n range.setEnd(node, i + 1);\n range.setStart(node, i);\n let rect = singleRect(range, 1);\n if (rect.top == rect.bottom)\n continue;\n if (inRect(coords, rect))\n return { node, offset: i + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0) };\n }\n return { node, offset: 0 };\n}\nfunction inRect(coords, rect) {\n return coords.left >= rect.left - 1 && coords.left <= rect.right + 1 &&\n coords.top >= rect.top - 1 && coords.top <= rect.bottom + 1;\n}\nfunction targetKludge(dom, coords) {\n let parent = dom.parentNode;\n if (parent && /^li$/i.test(parent.nodeName) && coords.left < dom.getBoundingClientRect().left)\n return parent;\n return dom;\n}\nfunction posFromElement(view, elt, coords) {\n let { node, offset } = findOffsetInNode(elt, coords), bias = -1;\n if (node.nodeType == 1 && !node.firstChild) {\n let rect = node.getBoundingClientRect();\n bias = rect.left != rect.right && coords.left > (rect.left + rect.right) / 2 ? 1 : -1;\n }\n return view.docView.posFromDOM(node, offset, bias);\n}\nfunction posFromCaret(view, node, offset, coords) {\n // Browser (in caretPosition/RangeFromPoint) will agressively\n // normalize towards nearby inline nodes. Since we are interested in\n // positions between block nodes too, we first walk up the hierarchy\n // of nodes to see if there are block nodes that the coordinates\n // fall outside of. If so, we take the position before/after that\n // block. If not, we call `posFromDOM` on the raw node/offset.\n let outsideBlock = -1;\n for (let cur = node, sawBlock = false;;) {\n if (cur == view.dom)\n break;\n let desc = view.docView.nearestDesc(cur, true);\n if (!desc)\n return null;\n if (desc.dom.nodeType == 1 && (desc.node.isBlock && desc.parent && !sawBlock || !desc.contentDOM)) {\n let rect = desc.dom.getBoundingClientRect();\n if (desc.node.isBlock && desc.parent && !sawBlock) {\n sawBlock = true;\n if (rect.left > coords.left || rect.top > coords.top)\n outsideBlock = desc.posBefore;\n else if (rect.right < coords.left || rect.bottom < coords.top)\n outsideBlock = desc.posAfter;\n }\n if (!desc.contentDOM && outsideBlock < 0) {\n // If we are inside a leaf, return the side of the leaf closer to the coords\n let before = desc.node.isBlock ? coords.top < (rect.top + rect.bottom) / 2\n : coords.left < (rect.left + rect.right) / 2;\n return before ? desc.posBefore : desc.posAfter;\n }\n }\n cur = desc.dom.parentNode;\n }\n return outsideBlock > -1 ? outsideBlock : view.docView.posFromDOM(node, offset, -1);\n}\nfunction elementFromPoint(element, coords, box) {\n let len = element.childNodes.length;\n if (len && box.top < box.bottom) {\n for (let startI = Math.max(0, Math.min(len - 1, Math.floor(len * (coords.top - box.top) / (box.bottom - box.top)) - 2)), i = startI;;) {\n let child = element.childNodes[i];\n if (child.nodeType == 1) {\n let rects = child.getClientRects();\n for (let j = 0; j < rects.length; j++) {\n let rect = rects[j];\n if (inRect(coords, rect))\n return elementFromPoint(child, coords, rect);\n }\n }\n if ((i = (i + 1) % len) == startI)\n break;\n }\n }\n return element;\n}\n// Given an x,y position on the editor, get the position in the document.\nfunction posAtCoords(view, coords) {\n let doc = view.dom.ownerDocument, node, offset = 0;\n let caret = caretFromPoint(doc, coords.left, coords.top);\n if (caret)\n ({ node, offset } = caret);\n let elt = (view.root.elementFromPoint ? view.root : doc)\n .elementFromPoint(coords.left, coords.top);\n let pos;\n if (!elt || !view.dom.contains(elt.nodeType != 1 ? elt.parentNode : elt)) {\n let box = view.dom.getBoundingClientRect();\n if (!inRect(coords, box))\n return null;\n elt = elementFromPoint(view.dom, coords, box);\n if (!elt)\n return null;\n }\n // Safari's caretRangeFromPoint returns nonsense when on a draggable element\n if (safari) {\n for (let p = elt; node && p; p = parentNode(p))\n if (p.draggable)\n node = undefined;\n }\n elt = targetKludge(elt, coords);\n if (node) {\n if (gecko && node.nodeType == 1) {\n // Firefox will sometimes return offsets into nodes, which\n // have no actual children, from caretPositionFromPoint (#953)\n offset = Math.min(offset, node.childNodes.length);\n // It'll also move the returned position before image nodes,\n // even if those are behind it.\n if (offset < node.childNodes.length) {\n let next = node.childNodes[offset], box;\n if (next.nodeName == \"IMG\" && (box = next.getBoundingClientRect()).right <= coords.left &&\n box.bottom > coords.top)\n offset++;\n }\n }\n // Suspiciously specific kludge to work around caret*FromPoint\n // never returning a position at the end of the document\n if (node == view.dom && offset == node.childNodes.length - 1 && node.lastChild.nodeType == 1 &&\n coords.top > node.lastChild.getBoundingClientRect().bottom)\n pos = view.state.doc.content.size;\n // Ignore positions directly after a BR, since caret*FromPoint\n // 'round up' positions that would be more accurately placed\n // before the BR node.\n else if (offset == 0 || node.nodeType != 1 || node.childNodes[offset - 1].nodeName != \"BR\")\n pos = posFromCaret(view, node, offset, coords);\n }\n if (pos == null)\n pos = posFromElement(view, elt, coords);\n let desc = view.docView.nearestDesc(elt, true);\n return { pos, inside: desc ? desc.posAtStart - desc.border : -1 };\n}\nfunction nonZero(rect) {\n return rect.top < rect.bottom || rect.left < rect.right;\n}\nfunction singleRect(target, bias) {\n let rects = target.getClientRects();\n if (rects.length) {\n let first = rects[bias < 0 ? 0 : rects.length - 1];\n if (nonZero(first))\n return first;\n }\n return Array.prototype.find.call(rects, nonZero) || target.getBoundingClientRect();\n}\nconst BIDI = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n// Given a position in the document model, get a bounding box of the\n// character at that position, relative to the window.\nfunction coordsAtPos(view, pos, side) {\n let { node, offset, atom } = view.docView.domFromPos(pos, side < 0 ? -1 : 1);\n let supportEmptyRange = webkit || gecko;\n if (node.nodeType == 3) {\n // These browsers support querying empty text ranges. Prefer that in\n // bidi context or when at the end of a node.\n if (supportEmptyRange && (BIDI.test(node.nodeValue) || (side < 0 ? !offset : offset == node.nodeValue.length))) {\n let rect = singleRect(textRange(node, offset, offset), side);\n // Firefox returns bad results (the position before the space)\n // when querying a position directly after line-broken\n // whitespace. Detect this situation and and kludge around it\n if (gecko && offset && /\\s/.test(node.nodeValue[offset - 1]) && offset < node.nodeValue.length) {\n let rectBefore = singleRect(textRange(node, offset - 1, offset - 1), -1);\n if (rectBefore.top == rect.top) {\n let rectAfter = singleRect(textRange(node, offset, offset + 1), -1);\n if (rectAfter.top != rect.top)\n return flattenV(rectAfter, rectAfter.left < rectBefore.left);\n }\n }\n return rect;\n }\n else {\n let from = offset, to = offset, takeSide = side < 0 ? 1 : -1;\n if (side < 0 && !offset) {\n to++;\n takeSide = -1;\n }\n else if (side >= 0 && offset == node.nodeValue.length) {\n from--;\n takeSide = 1;\n }\n else if (side < 0) {\n from--;\n }\n else {\n to++;\n }\n return flattenV(singleRect(textRange(node, from, to), takeSide), takeSide < 0);\n }\n }\n let $dom = view.state.doc.resolve(pos - (atom || 0));\n // Return a horizontal line in block context\n if (!$dom.parent.inlineContent) {\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n if (before.nodeType == 1)\n return flattenH(before.getBoundingClientRect(), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n if (after.nodeType == 1)\n return flattenH(after.getBoundingClientRect(), true);\n }\n return flattenH(node.getBoundingClientRect(), side >= 0);\n }\n // Inline, not in text node (this is not Bidi-safe)\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n let target = before.nodeType == 3 ? textRange(before, nodeSize(before) - (supportEmptyRange ? 0 : 1))\n // BR nodes tend to only return the rectangle before them.\n // Only use them if they are the last element in their parent\n : before.nodeType == 1 && (before.nodeName != \"BR\" || !before.nextSibling) ? before : null;\n if (target)\n return flattenV(singleRect(target, 1), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n while (after.pmViewDesc && after.pmViewDesc.ignoreForCoords)\n after = after.nextSibling;\n let target = !after ? null : after.nodeType == 3 ? textRange(after, 0, (supportEmptyRange ? 0 : 1))\n : after.nodeType == 1 ? after : null;\n if (target)\n return flattenV(singleRect(target, -1), true);\n }\n // All else failed, just try to get a rectangle for the target node\n return flattenV(singleRect(node.nodeType == 3 ? textRange(node) : node, -side), side >= 0);\n}\nfunction flattenV(rect, left) {\n if (rect.width == 0)\n return rect;\n let x = left ? rect.left : rect.right;\n return { top: rect.top, bottom: rect.bottom, left: x, right: x };\n}\nfunction flattenH(rect, top) {\n if (rect.height == 0)\n return rect;\n let y = top ? rect.top : rect.bottom;\n return { top: y, bottom: y, left: rect.left, right: rect.right };\n}\nfunction withFlushedState(view, state, f) {\n let viewState = view.state, active = view.root.activeElement;\n if (viewState != state)\n view.updateState(state);\n if (active != view.dom)\n view.focus();\n try {\n return f();\n }\n finally {\n if (viewState != state)\n view.updateState(viewState);\n if (active != view.dom && active)\n active.focus();\n }\n}\n// Whether vertical position motion in a given direction\n// from a position would leave a text block.\nfunction endOfTextblockVertical(view, state, dir) {\n let sel = state.selection;\n let $pos = dir == \"up\" ? sel.$from : sel.$to;\n return withFlushedState(view, state, () => {\n let { node: dom } = view.docView.domFromPos($pos.pos, dir == \"up\" ? -1 : 1);\n for (;;) {\n let nearest = view.docView.nearestDesc(dom, true);\n if (!nearest)\n break;\n if (nearest.node.isBlock) {\n dom = nearest.contentDOM || nearest.dom;\n break;\n }\n dom = nearest.dom.parentNode;\n }\n let coords = coordsAtPos(view, $pos.pos, 1);\n for (let child = dom.firstChild; child; child = child.nextSibling) {\n let boxes;\n if (child.nodeType == 1)\n boxes = child.getClientRects();\n else if (child.nodeType == 3)\n boxes = textRange(child, 0, child.nodeValue.length).getClientRects();\n else\n continue;\n for (let i = 0; i < boxes.length; i++) {\n let box = boxes[i];\n if (box.bottom > box.top + 1 &&\n (dir == \"up\" ? coords.top - box.top > (box.bottom - coords.top) * 2\n : box.bottom - coords.bottom > (coords.bottom - box.top) * 2))\n return false;\n }\n }\n return true;\n });\n}\nconst maybeRTL = /[\\u0590-\\u08ac]/;\nfunction endOfTextblockHorizontal(view, state, dir) {\n let { $head } = state.selection;\n if (!$head.parent.isTextblock)\n return false;\n let offset = $head.parentOffset, atStart = !offset, atEnd = offset == $head.parent.content.size;\n let sel = view.domSelection();\n // If the textblock is all LTR, or the browser doesn't support\n // Selection.modify (Edge), fall back to a primitive approach\n if (!maybeRTL.test($head.parent.textContent) || !sel.modify)\n return dir == \"left\" || dir == \"backward\" ? atStart : atEnd;\n return withFlushedState(view, state, () => {\n // This is a huge hack, but appears to be the best we can\n // currently do: use `Selection.modify` to move the selection by\n // one character, and see if that moves the cursor out of the\n // textblock (or doesn't move it at all, when at the start/end of\n // the document).\n let { focusNode: oldNode, focusOffset: oldOff, anchorNode, anchorOffset } = view.domSelectionRange();\n let oldBidiLevel = sel.caretBidiLevel // Only for Firefox\n ;\n sel.modify(\"move\", dir, \"character\");\n let parentDOM = $head.depth ? view.docView.domAfterPos($head.before()) : view.dom;\n let { focusNode: newNode, focusOffset: newOff } = view.domSelectionRange();\n let result = newNode && !parentDOM.contains(newNode.nodeType == 1 ? newNode : newNode.parentNode) ||\n (oldNode == newNode && oldOff == newOff);\n // Restore the previous selection\n try {\n sel.collapse(anchorNode, anchorOffset);\n if (oldNode && (oldNode != anchorNode || oldOff != anchorOffset) && sel.extend)\n sel.extend(oldNode, oldOff);\n }\n catch (_) { }\n if (oldBidiLevel != null)\n sel.caretBidiLevel = oldBidiLevel;\n return result;\n });\n}\nlet cachedState = null;\nlet cachedDir = null;\nlet cachedResult = false;\nfunction endOfTextblock(view, state, dir) {\n if (cachedState == state && cachedDir == dir)\n return cachedResult;\n cachedState = state;\n cachedDir = dir;\n return cachedResult = dir == \"up\" || dir == \"down\"\n ? endOfTextblockVertical(view, state, dir)\n : endOfTextblockHorizontal(view, state, dir);\n}\n\n// View descriptions are data structures that describe the DOM that is\n// used to represent the editor's content. They are used for:\n//\n// - Incremental redrawing when the document changes\n//\n// - Figuring out what part of the document a given DOM position\n// corresponds to\n//\n// - Wiring in custom implementations of the editing interface for a\n// given node\n//\n// They form a doubly-linked mutable tree, starting at `view.docView`.\nconst NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;\n// Superclass for the various kinds of descriptions. Defines their\n// basic structure and shared methods.\nclass ViewDesc {\n constructor(parent, children, dom, \n // This is the node that holds the child views. It may be null for\n // descs that don't have children.\n contentDOM) {\n this.parent = parent;\n this.children = children;\n this.dom = dom;\n this.contentDOM = contentDOM;\n this.dirty = NOT_DIRTY;\n // An expando property on the DOM node provides a link back to its\n // description.\n dom.pmViewDesc = this;\n }\n // Used to check whether a given description corresponds to a\n // widget/mark/node.\n matchesWidget(widget) { return false; }\n matchesMark(mark) { return false; }\n matchesNode(node, outerDeco, innerDeco) { return false; }\n matchesHack(nodeName) { return false; }\n // When parsing in-editor content (in domchange.js), we allow\n // descriptions to determine the parse rules that should be used to\n // parse them.\n parseRule() { return null; }\n // Used by the editor's event handler to ignore events that come\n // from certain descs.\n stopEvent(event) { return false; }\n // The size of the content represented by this desc.\n get size() {\n let size = 0;\n for (let i = 0; i < this.children.length; i++)\n size += this.children[i].size;\n return size;\n }\n // For block nodes, this represents the space taken up by their\n // start/end tokens.\n get border() { return 0; }\n destroy() {\n this.parent = undefined;\n if (this.dom.pmViewDesc == this)\n this.dom.pmViewDesc = undefined;\n for (let i = 0; i < this.children.length; i++)\n this.children[i].destroy();\n }\n posBeforeChild(child) {\n for (let i = 0, pos = this.posAtStart;; i++) {\n let cur = this.children[i];\n if (cur == child)\n return pos;\n pos += cur.size;\n }\n }\n get posBefore() {\n return this.parent.posBeforeChild(this);\n }\n get posAtStart() {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0;\n }\n get posAfter() {\n return this.posBefore + this.size;\n }\n get posAtEnd() {\n return this.posAtStart + this.size - 2 * this.border;\n }\n localPosFromDOM(dom, offset, bias) {\n // If the DOM position is in the content, use the child desc after\n // it to figure out a position.\n if (this.contentDOM && this.contentDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode)) {\n if (bias < 0) {\n let domBefore, desc;\n if (dom == this.contentDOM) {\n domBefore = dom.childNodes[offset - 1];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domBefore = dom.previousSibling;\n }\n while (domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this))\n domBefore = domBefore.previousSibling;\n return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart;\n }\n else {\n let domAfter, desc;\n if (dom == this.contentDOM) {\n domAfter = dom.childNodes[offset];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domAfter = dom.nextSibling;\n }\n while (domAfter && !((desc = domAfter.pmViewDesc) && desc.parent == this))\n domAfter = domAfter.nextSibling;\n return domAfter ? this.posBeforeChild(desc) : this.posAtEnd;\n }\n }\n // Otherwise, use various heuristics, falling back on the bias\n // parameter, to determine whether to return the position at the\n // start or at the end of this view desc.\n let atEnd;\n if (dom == this.dom && this.contentDOM) {\n atEnd = offset > domIndex(this.contentDOM);\n }\n else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM)) {\n atEnd = dom.compareDocumentPosition(this.contentDOM) & 2;\n }\n else if (this.dom.firstChild) {\n if (offset == 0)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = false;\n break;\n }\n if (search.previousSibling)\n break;\n }\n if (atEnd == null && offset == dom.childNodes.length)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = true;\n break;\n }\n if (search.nextSibling)\n break;\n }\n }\n return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart;\n }\n nearestDesc(dom, onlyNodes = false) {\n for (let first = true, cur = dom; cur; cur = cur.parentNode) {\n let desc = this.getDesc(cur), nodeDOM;\n if (desc && (!onlyNodes || desc.node)) {\n // If dom is outside of this desc's nodeDOM, don't count it.\n if (first && (nodeDOM = desc.nodeDOM) &&\n !(nodeDOM.nodeType == 1 ? nodeDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode) : nodeDOM == dom))\n first = false;\n else\n return desc;\n }\n }\n }\n getDesc(dom) {\n let desc = dom.pmViewDesc;\n for (let cur = desc; cur; cur = cur.parent)\n if (cur == this)\n return desc;\n }\n posFromDOM(dom, offset, bias) {\n for (let scan = dom; scan; scan = scan.parentNode) {\n let desc = this.getDesc(scan);\n if (desc)\n return desc.localPosFromDOM(dom, offset, bias);\n }\n return -1;\n }\n // Find the desc for the node after the given pos, if any. (When a\n // parent node overrode rendering, there might not be one.)\n descAt(pos) {\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == pos && end != offset) {\n while (!child.border && child.children.length)\n child = child.children[0];\n return child;\n }\n if (pos < end)\n return child.descAt(pos - offset - child.border);\n offset = end;\n }\n }\n domFromPos(pos, side) {\n if (!this.contentDOM)\n return { node: this.dom, offset: 0, atom: pos + 1 };\n // First find the position in the child array\n let i = 0, offset = 0;\n for (let curPos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = curPos + child.size;\n if (end > pos || child instanceof TrailingHackViewDesc) {\n offset = pos - curPos;\n break;\n }\n curPos = end;\n }\n // If this points into the middle of a child, call through\n if (offset)\n return this.children[i].domFromPos(offset - this.children[i].border, side);\n // Go back if there were any zero-length widgets with side >= 0 before this point\n for (let prev; i && !(prev = this.children[i - 1]).size && prev instanceof WidgetViewDesc && prev.side >= 0; i--) { }\n // Scan towards the first useable node\n if (side <= 0) {\n let prev, enter = true;\n for (;; i--, enter = false) {\n prev = i ? this.children[i - 1] : null;\n if (!prev || prev.dom.parentNode == this.contentDOM)\n break;\n }\n if (prev && side && enter && !prev.border && !prev.domAtom)\n return prev.domFromPos(prev.size, side);\n return { node: this.contentDOM, offset: prev ? domIndex(prev.dom) + 1 : 0 };\n }\n else {\n let next, enter = true;\n for (;; i++, enter = false) {\n next = i < this.children.length ? this.children[i] : null;\n if (!next || next.dom.parentNode == this.contentDOM)\n break;\n }\n if (next && enter && !next.border && !next.domAtom)\n return next.domFromPos(0, side);\n return { node: this.contentDOM, offset: next ? domIndex(next.dom) : this.contentDOM.childNodes.length };\n }\n }\n // Used to find a DOM range in a single parent for a given changed\n // range.\n parseRange(from, to, base = 0) {\n if (this.children.length == 0)\n return { node: this.contentDOM, from, to, fromOffset: 0, toOffset: this.contentDOM.childNodes.length };\n let fromOffset = -1, toOffset = -1;\n for (let offset = base, i = 0;; i++) {\n let child = this.children[i], end = offset + child.size;\n if (fromOffset == -1 && from <= end) {\n let childBase = offset + child.border;\n // FIXME maybe descend mark views to parse a narrower range?\n if (from >= childBase && to <= end - child.border && child.node &&\n child.contentDOM && this.contentDOM.contains(child.contentDOM))\n return child.parseRange(from, to, childBase);\n from = offset;\n for (let j = i; j > 0; j--) {\n let prev = this.children[j - 1];\n if (prev.size && prev.dom.parentNode == this.contentDOM && !prev.emptyChildAt(1)) {\n fromOffset = domIndex(prev.dom) + 1;\n break;\n }\n from -= prev.size;\n }\n if (fromOffset == -1)\n fromOffset = 0;\n }\n if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {\n to = end;\n for (let j = i + 1; j < this.children.length; j++) {\n let next = this.children[j];\n if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {\n toOffset = domIndex(next.dom);\n break;\n }\n to += next.size;\n }\n if (toOffset == -1)\n toOffset = this.contentDOM.childNodes.length;\n break;\n }\n offset = end;\n }\n return { node: this.contentDOM, from, to, fromOffset, toOffset };\n }\n emptyChildAt(side) {\n if (this.border || !this.contentDOM || !this.children.length)\n return false;\n let child = this.children[side < 0 ? 0 : this.children.length - 1];\n return child.size == 0 || child.emptyChildAt(side);\n }\n domAfterPos(pos) {\n let { node, offset } = this.domFromPos(pos, 0);\n if (node.nodeType != 1 || offset == node.childNodes.length)\n throw new RangeError(\"No node after pos \" + pos);\n return node.childNodes[offset];\n }\n // View descs are responsible for setting any selection that falls\n // entirely inside of them, so that custom implementations can do\n // custom things with the selection. Note that this falls apart when\n // a selection starts in such a node and ends in another, in which\n // case we just use whatever domFromPos produces as a best effort.\n setSelection(anchor, head, root, force = false) {\n // If the selection falls entirely in a child, give it to that child\n let from = Math.min(anchor, head), to = Math.max(anchor, head);\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (from > offset && to < end)\n return child.setSelection(anchor - offset - child.border, head - offset - child.border, root, force);\n offset = end;\n }\n let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);\n let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);\n let domSel = root.getSelection();\n let brKludge = false;\n // On Firefox, using Selection.collapse to put the cursor after a\n // BR node for some reason doesn't always work (#1073). On Safari,\n // the cursor sometimes inexplicable visually lags behind its\n // reported position in such situations (#1092).\n if ((gecko || safari) && anchor == head) {\n let { node, offset } = anchorDOM;\n if (node.nodeType == 3) {\n brKludge = !!(offset && node.nodeValue[offset - 1] == \"\\n\");\n // Issue #1128\n if (brKludge && offset == node.nodeValue.length) {\n for (let scan = node, after; scan; scan = scan.parentNode) {\n if (after = scan.nextSibling) {\n if (after.nodeName == \"BR\")\n anchorDOM = headDOM = { node: after.parentNode, offset: domIndex(after) + 1 };\n break;\n }\n let desc = scan.pmViewDesc;\n if (desc && desc.node && desc.node.isBlock)\n break;\n }\n }\n }\n else {\n let prev = node.childNodes[offset - 1];\n brKludge = prev && (prev.nodeName == \"BR\" || prev.contentEditable == \"false\");\n }\n }\n // Firefox can act strangely when the selection is in front of an\n // uneditable node. See #1163 and https://bugzilla.mozilla.org/show_bug.cgi?id=1709536\n if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {\n let after = domSel.focusNode.childNodes[domSel.focusOffset];\n if (after && after.contentEditable == \"false\")\n force = true;\n }\n if (!(force || brKludge && safari) &&\n isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) &&\n isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))\n return;\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n let domSelExtended = false;\n if ((domSel.extend || anchor == head) && !brKludge) {\n domSel.collapse(anchorDOM.node, anchorDOM.offset);\n try {\n if (anchor != head)\n domSel.extend(headDOM.node, headDOM.offset);\n domSelExtended = true;\n }\n catch (_) {\n // In some cases with Chrome the selection is empty after calling\n // collapse, even when it should be valid. This appears to be a bug, but\n // it is difficult to isolate. If this happens fallback to the old path\n // without using extend.\n // Similarly, this could crash on Safari if the editor is hidden, and\n // there was no selection.\n }\n }\n if (!domSelExtended) {\n if (anchor > head) {\n let tmp = anchorDOM;\n anchorDOM = headDOM;\n headDOM = tmp;\n }\n let range = document.createRange();\n range.setEnd(headDOM.node, headDOM.offset);\n range.setStart(anchorDOM.node, anchorDOM.offset);\n domSel.removeAllRanges();\n domSel.addRange(range);\n }\n }\n ignoreMutation(mutation) {\n return !this.contentDOM && mutation.type != \"selection\";\n }\n get contentLost() {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM);\n }\n // Remove a subtree of the element tree that has been touched\n // by a DOM change, so that the next update will redraw it.\n markDirty(from, to) {\n for (let offset = 0, i = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == end ? from <= end && to >= offset : from < end && to > offset) {\n let startInside = offset + child.border, endInside = end - child.border;\n if (from >= startInside && to <= endInside) {\n this.dirty = from == offset || to == end ? CONTENT_DIRTY : CHILD_DIRTY;\n if (from == startInside && to == endInside &&\n (child.contentLost || child.dom.parentNode != this.contentDOM))\n child.dirty = NODE_DIRTY;\n else\n child.markDirty(from - startInside, to - startInside);\n return;\n }\n else {\n child.dirty = child.dom == child.contentDOM && child.dom.parentNode == this.contentDOM && !child.children.length\n ? CONTENT_DIRTY : NODE_DIRTY;\n }\n }\n offset = end;\n }\n this.dirty = CONTENT_DIRTY;\n }\n markParentsDirty() {\n let level = 1;\n for (let node = this.parent; node; node = node.parent, level++) {\n let dirty = level == 1 ? CONTENT_DIRTY : CHILD_DIRTY;\n if (node.dirty < dirty)\n node.dirty = dirty;\n }\n }\n get domAtom() { return false; }\n get ignoreForCoords() { return false; }\n}\n// A widget desc represents a widget decoration, which is a DOM node\n// drawn between the document nodes.\nclass WidgetViewDesc extends ViewDesc {\n constructor(parent, widget, view, pos) {\n let self, dom = widget.type.toDOM;\n if (typeof dom == \"function\")\n dom = dom(view, () => {\n if (!self)\n return pos;\n if (self.parent)\n return self.parent.posBeforeChild(self);\n });\n if (!widget.type.spec.raw) {\n if (dom.nodeType != 1) {\n let wrap = document.createElement(\"span\");\n wrap.appendChild(dom);\n dom = wrap;\n }\n dom.contentEditable = \"false\";\n dom.classList.add(\"ProseMirror-widget\");\n }\n super(parent, [], dom, null);\n this.widget = widget;\n this.widget = widget;\n self = this;\n }\n matchesWidget(widget) {\n return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type);\n }\n parseRule() { return { ignore: true }; }\n stopEvent(event) {\n let stop = this.widget.spec.stopEvent;\n return stop ? stop(event) : false;\n }\n ignoreMutation(mutation) {\n return mutation.type != \"selection\" || this.widget.spec.ignoreSelection;\n }\n destroy() {\n this.widget.type.destroy(this.dom);\n super.destroy();\n }\n get domAtom() { return true; }\n get side() { return this.widget.type.side; }\n}\nclass CompositionViewDesc extends ViewDesc {\n constructor(parent, dom, textDOM, text) {\n super(parent, [], dom, null);\n this.textDOM = textDOM;\n this.text = text;\n }\n get size() { return this.text.length; }\n localPosFromDOM(dom, offset) {\n if (dom != this.textDOM)\n return this.posAtStart + (offset ? this.size : 0);\n return this.posAtStart + offset;\n }\n domFromPos(pos) {\n return { node: this.textDOM, offset: pos };\n }\n ignoreMutation(mut) {\n return mut.type === 'characterData' && mut.target.nodeValue == mut.oldValue;\n }\n}\n// A mark desc represents a mark. May have multiple children,\n// depending on how the mark is split. Note that marks are drawn using\n// a fixed nesting order, for simplicity and predictability, so in\n// some cases they will be split more often than would appear\n// necessary.\nclass MarkViewDesc extends ViewDesc {\n constructor(parent, mark, dom, contentDOM) {\n super(parent, [], dom, contentDOM);\n this.mark = mark;\n }\n static create(parent, mark, inline, view) {\n let custom = view.nodeViews[mark.type.name];\n let spec = custom && custom(mark, view, inline);\n if (!spec || !spec.dom)\n spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline));\n return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);\n }\n parseRule() {\n if ((this.dirty & NODE_DIRTY) || this.mark.type.spec.reparseInView)\n return null;\n return { mark: this.mark.type.name, attrs: this.mark.attrs, contentElement: this.contentDOM || undefined };\n }\n matchesMark(mark) { return this.dirty != NODE_DIRTY && this.mark.eq(mark); }\n markDirty(from, to) {\n super.markDirty(from, to);\n // Move dirty info to nearest node view\n if (this.dirty != NOT_DIRTY) {\n let parent = this.parent;\n while (!parent.node)\n parent = parent.parent;\n if (parent.dirty < this.dirty)\n parent.dirty = this.dirty;\n this.dirty = NOT_DIRTY;\n }\n }\n slice(from, to, view) {\n let copy = MarkViewDesc.create(this.parent, this.mark, true, view);\n let nodes = this.children, size = this.size;\n if (to < size)\n nodes = replaceNodes(nodes, to, size, view);\n if (from > 0)\n nodes = replaceNodes(nodes, 0, from, view);\n for (let i = 0; i < nodes.length; i++)\n nodes[i].parent = copy;\n copy.children = nodes;\n return copy;\n }\n}\n// Node view descs are the main, most common type of view desc, and\n// correspond to an actual node in the document. Unlike mark descs,\n// they populate their child array themselves.\nclass NodeViewDesc extends ViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {\n super(parent, [], dom, contentDOM);\n this.node = node;\n this.outerDeco = outerDeco;\n this.innerDeco = innerDeco;\n this.nodeDOM = nodeDOM;\n }\n // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finicky\n // implementation details to the user code that they probably will\n // never need.)\n static create(parent, node, outerDeco, innerDeco, view, pos) {\n let custom = view.nodeViews[node.type.name], descObj;\n let spec = custom && custom(node, view, () => {\n // (This is a function that allows the custom view to find its\n // own position)\n if (!descObj)\n return pos;\n if (descObj.parent)\n return descObj.parent.posBeforeChild(descObj);\n }, outerDeco, innerDeco);\n let dom = spec && spec.dom, contentDOM = spec && spec.contentDOM;\n if (node.isText) {\n if (!dom)\n dom = document.createTextNode(node.text);\n else if (dom.nodeType != 3)\n throw new RangeError(\"Text must be rendered as a DOM text node\");\n }\n else if (!dom) {\n ({ dom, contentDOM } = DOMSerializer.renderSpec(document, node.type.spec.toDOM(node)));\n }\n if (!contentDOM && !node.isText && dom.nodeName != \"BR\") { // Chrome gets confused by
\n if (!dom.hasAttribute(\"contenteditable\"))\n dom.contentEditable = \"false\";\n if (node.type.spec.draggable)\n dom.draggable = true;\n }\n let nodeDOM = dom;\n dom = applyOuterDeco(dom, outerDeco, node);\n if (spec)\n return descObj = new CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, spec, view, pos + 1);\n else if (node.isText)\n return new TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view);\n else\n return new NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, view, pos + 1);\n }\n parseRule() {\n // Experimental kludge to allow opt-in re-parsing of nodes\n if (this.node.type.spec.reparseInView)\n return null;\n // FIXME the assumption that this can always return the current\n // attrs means that if the user somehow manages to change the\n // attrs in the dom, that won't be picked up. Not entirely sure\n // whether this is a problem\n let rule = { node: this.node.type.name, attrs: this.node.attrs };\n if (this.node.type.whitespace == \"pre\")\n rule.preserveWhitespace = \"full\";\n if (!this.contentDOM) {\n rule.getContent = () => this.node.content;\n }\n else if (!this.contentLost) {\n rule.contentElement = this.contentDOM;\n }\n else {\n // Chrome likes to randomly recreate parent nodes when\n // backspacing things. When that happens, this tries to find the\n // new parent.\n for (let i = this.children.length - 1; i >= 0; i--) {\n let child = this.children[i];\n if (this.dom.contains(child.dom.parentNode)) {\n rule.contentElement = child.dom.parentNode;\n break;\n }\n }\n if (!rule.contentElement)\n rule.getContent = () => Fragment.empty;\n }\n return rule;\n }\n matchesNode(node, outerDeco, innerDeco) {\n return this.dirty == NOT_DIRTY && node.eq(this.node) &&\n sameOuterDeco(outerDeco, this.outerDeco) && innerDeco.eq(this.innerDeco);\n }\n get size() { return this.node.nodeSize; }\n get border() { return this.node.isLeaf ? 0 : 1; }\n // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n updateChildren(view, pos) {\n let inline = this.node.inlineContent, off = pos;\n let composition = view.composing ? this.localCompositionInfo(view, pos) : null;\n let localComposition = composition && composition.pos > -1 ? composition : null;\n let compositionInChild = composition && composition.pos < 0;\n let updater = new ViewTreeUpdater(this, localComposition && localComposition.node, view);\n iterDeco(this.node, this.innerDeco, (widget, i, insideNode) => {\n if (widget.spec.marks)\n updater.syncToMarks(widget.spec.marks, inline, view);\n else if (widget.type.side >= 0 && !insideNode)\n updater.syncToMarks(i == this.node.childCount ? Mark$1.none : this.node.child(i).marks, inline, view);\n // If the next node is a desc matching this widget, reuse it,\n // otherwise insert the widget as a new view desc.\n updater.placeWidget(widget, view, off);\n }, (child, outerDeco, innerDeco, i) => {\n // Make sure the wrapping mark descs match the node's marks.\n updater.syncToMarks(child.marks, inline, view);\n // Try several strategies for drawing this node\n let compIndex;\n if (updater.findNodeMatch(child, outerDeco, innerDeco, i)) ;\n else if (compositionInChild && view.state.selection.from > off &&\n view.state.selection.to < off + child.nodeSize &&\n (compIndex = updater.findIndexWithChild(composition.node)) > -1 &&\n updater.updateNodeAt(child, outerDeco, innerDeco, compIndex, view)) ;\n else if (updater.updateNextNode(child, outerDeco, innerDeco, view, i, off)) ;\n else {\n // Add it as a new view\n updater.addNode(child, outerDeco, innerDeco, view, off);\n }\n off += child.nodeSize;\n });\n // Drop all remaining descs after the current position.\n updater.syncToMarks([], inline, view);\n if (this.node.isTextblock)\n updater.addTextblockHacks();\n updater.destroyRest();\n // Sync the DOM if anything changed\n if (updater.changed || this.dirty == CONTENT_DIRTY) {\n // May have to protect focused DOM from being changed if a composition is active\n if (localComposition)\n this.protectLocalComposition(view, localComposition);\n renderDescs(this.contentDOM, this.children, view);\n if (ios)\n iosHacks(this.dom);\n }\n }\n localCompositionInfo(view, pos) {\n // Only do something if both the selection and a focused text node\n // are inside of this node\n let { from, to } = view.state.selection;\n if (!(view.state.selection instanceof TextSelection) || from < pos || to > pos + this.node.content.size)\n return null;\n let sel = view.domSelectionRange();\n let textNode = nearbyTextNode(sel.focusNode, sel.focusOffset);\n if (!textNode || !this.dom.contains(textNode.parentNode))\n return null;\n if (this.node.inlineContent) {\n // Find the text in the focused node in the node, stop if it's not\n // there (may have been modified through other means, in which\n // case it should overwritten)\n let text = textNode.nodeValue;\n let textPos = findTextInFragment(this.node.content, text, from - pos, to - pos);\n return textPos < 0 ? null : { node: textNode, pos: textPos, text };\n }\n else {\n return { node: textNode, pos: -1, text: \"\" };\n }\n }\n protectLocalComposition(view, { node, pos, text }) {\n // The node is already part of a local view desc, leave it there\n if (this.getDesc(node))\n return;\n // Create a composition view for the orphaned nodes\n let topNode = node;\n for (;; topNode = topNode.parentNode) {\n if (topNode.parentNode == this.contentDOM)\n break;\n while (topNode.previousSibling)\n topNode.parentNode.removeChild(topNode.previousSibling);\n while (topNode.nextSibling)\n topNode.parentNode.removeChild(topNode.nextSibling);\n if (topNode.pmViewDesc)\n topNode.pmViewDesc = undefined;\n }\n let desc = new CompositionViewDesc(this, topNode, node, text);\n view.input.compositionNodes.push(desc);\n // Patch up this.children to contain the composition view\n this.children = replaceNodes(this.children, pos, pos + text.length, view, desc);\n }\n // If this desc must be updated to match the given node decoration,\n // do so and return true.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY ||\n !node.sameMarkup(this.node))\n return false;\n this.updateInner(node, outerDeco, innerDeco, view);\n return true;\n }\n updateInner(node, outerDeco, innerDeco, view) {\n this.updateOuterDeco(outerDeco);\n this.node = node;\n this.innerDeco = innerDeco;\n if (this.contentDOM)\n this.updateChildren(view, this.posAtStart);\n this.dirty = NOT_DIRTY;\n }\n updateOuterDeco(outerDeco) {\n if (sameOuterDeco(outerDeco, this.outerDeco))\n return;\n let needsWrap = this.nodeDOM.nodeType != 1;\n let oldDOM = this.dom;\n this.dom = patchOuterDeco(this.dom, this.nodeDOM, computeOuterDeco(this.outerDeco, this.node, needsWrap), computeOuterDeco(outerDeco, this.node, needsWrap));\n if (this.dom != oldDOM) {\n oldDOM.pmViewDesc = undefined;\n this.dom.pmViewDesc = this;\n }\n this.outerDeco = outerDeco;\n }\n // Mark this node as being the selected node.\n selectNode() {\n if (this.nodeDOM.nodeType == 1)\n this.nodeDOM.classList.add(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.draggable = true;\n }\n // Remove selected node marking from this node.\n deselectNode() {\n if (this.nodeDOM.nodeType == 1)\n this.nodeDOM.classList.remove(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.removeAttribute(\"draggable\");\n }\n get domAtom() { return this.node.isAtom; }\n}\n// Create a view desc for the top-level document node, to be exported\n// and used by the view class.\nfunction docViewDesc(doc, outerDeco, innerDeco, dom, view) {\n applyOuterDeco(dom, outerDeco, doc);\n let docView = new NodeViewDesc(undefined, doc, outerDeco, innerDeco, dom, dom, dom, view, 0);\n if (docView.contentDOM)\n docView.updateChildren(view, 0);\n return docView;\n}\nclass TextViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) {\n super(parent, node, outerDeco, innerDeco, dom, null, nodeDOM, view, 0);\n }\n parseRule() {\n let skip = this.nodeDOM.parentNode;\n while (skip && skip != this.dom && !skip.pmIsDeco)\n skip = skip.parentNode;\n return { skip: (skip || true) };\n }\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY || (this.dirty != NOT_DIRTY && !this.inParent()) ||\n !node.sameMarkup(this.node))\n return false;\n this.updateOuterDeco(outerDeco);\n if ((this.dirty != NOT_DIRTY || node.text != this.node.text) && node.text != this.nodeDOM.nodeValue) {\n this.nodeDOM.nodeValue = node.text;\n if (view.trackWrites == this.nodeDOM)\n view.trackWrites = null;\n }\n this.node = node;\n this.dirty = NOT_DIRTY;\n return true;\n }\n inParent() {\n let parentDOM = this.parent.contentDOM;\n for (let n = this.nodeDOM; n; n = n.parentNode)\n if (n == parentDOM)\n return true;\n return false;\n }\n domFromPos(pos) {\n return { node: this.nodeDOM, offset: pos };\n }\n localPosFromDOM(dom, offset, bias) {\n if (dom == this.nodeDOM)\n return this.posAtStart + Math.min(offset, this.node.text.length);\n return super.localPosFromDOM(dom, offset, bias);\n }\n ignoreMutation(mutation) {\n return mutation.type != \"characterData\" && mutation.type != \"selection\";\n }\n slice(from, to, view) {\n let node = this.node.cut(from, to), dom = document.createTextNode(node.text);\n return new TextViewDesc(this.parent, node, this.outerDeco, this.innerDeco, dom, dom, view);\n }\n markDirty(from, to) {\n super.markDirty(from, to);\n if (this.dom != this.nodeDOM && (from == 0 || to == this.nodeDOM.nodeValue.length))\n this.dirty = NODE_DIRTY;\n }\n get domAtom() { return false; }\n}\n// A dummy desc used to tag trailing BR or IMG nodes created to work\n// around contentEditable terribleness.\nclass TrailingHackViewDesc extends ViewDesc {\n parseRule() { return { ignore: true }; }\n matchesHack(nodeName) { return this.dirty == NOT_DIRTY && this.dom.nodeName == nodeName; }\n get domAtom() { return true; }\n get ignoreForCoords() { return this.dom.nodeName == \"IMG\"; }\n}\n// A separate subclass is used for customized node views, so that the\n// extra checks only have to be made for nodes that are actually\n// customized.\nclass CustomNodeViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos) {\n super(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos);\n this.spec = spec;\n }\n // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY)\n return false;\n if (this.spec.update) {\n let result = this.spec.update(node, outerDeco, innerDeco);\n if (result)\n this.updateInner(node, outerDeco, innerDeco, view);\n return result;\n }\n else if (!this.contentDOM && !node.isLeaf) {\n return false;\n }\n else {\n return super.update(node, outerDeco, innerDeco, view);\n }\n }\n selectNode() {\n this.spec.selectNode ? this.spec.selectNode() : super.selectNode();\n }\n deselectNode() {\n this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();\n }\n setSelection(anchor, head, root, force) {\n this.spec.setSelection ? this.spec.setSelection(anchor, head, root)\n : super.setSelection(anchor, head, root, force);\n }\n destroy() {\n if (this.spec.destroy)\n this.spec.destroy();\n super.destroy();\n }\n stopEvent(event) {\n return this.spec.stopEvent ? this.spec.stopEvent(event) : false;\n }\n ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);\n }\n}\n// Sync the content of the given DOM node with the nodes associated\n// with the given array of view descs, recursing into mark descs\n// because this should sync the subtree for a whole node at a time.\nfunction renderDescs(parentDOM, descs, view) {\n let dom = parentDOM.firstChild, written = false;\n for (let i = 0; i < descs.length; i++) {\n let desc = descs[i], childDOM = desc.dom;\n if (childDOM.parentNode == parentDOM) {\n while (childDOM != dom) {\n dom = rm(dom);\n written = true;\n }\n dom = dom.nextSibling;\n }\n else {\n written = true;\n parentDOM.insertBefore(childDOM, dom);\n }\n if (desc instanceof MarkViewDesc) {\n let pos = dom ? dom.previousSibling : parentDOM.lastChild;\n renderDescs(desc.contentDOM, desc.children, view);\n dom = pos ? pos.nextSibling : parentDOM.firstChild;\n }\n }\n while (dom) {\n dom = rm(dom);\n written = true;\n }\n if (written && view.trackWrites == parentDOM)\n view.trackWrites = null;\n}\nconst OuterDecoLevel = function (nodeName) {\n if (nodeName)\n this.nodeName = nodeName;\n};\nOuterDecoLevel.prototype = Object.create(null);\nconst noDeco = [new OuterDecoLevel];\nfunction computeOuterDeco(outerDeco, node, needsWrap) {\n if (outerDeco.length == 0)\n return noDeco;\n let top = needsWrap ? noDeco[0] : new OuterDecoLevel, result = [top];\n for (let i = 0; i < outerDeco.length; i++) {\n let attrs = outerDeco[i].type.attrs;\n if (!attrs)\n continue;\n if (attrs.nodeName)\n result.push(top = new OuterDecoLevel(attrs.nodeName));\n for (let name in attrs) {\n let val = attrs[name];\n if (val == null)\n continue;\n if (needsWrap && result.length == 1)\n result.push(top = new OuterDecoLevel(node.isInline ? \"span\" : \"div\"));\n if (name == \"class\")\n top.class = (top.class ? top.class + \" \" : \"\") + val;\n else if (name == \"style\")\n top.style = (top.style ? top.style + \";\" : \"\") + val;\n else if (name != \"nodeName\")\n top[name] = val;\n }\n }\n return result;\n}\nfunction patchOuterDeco(outerDOM, nodeDOM, prevComputed, curComputed) {\n // Shortcut for trivial case\n if (prevComputed == noDeco && curComputed == noDeco)\n return nodeDOM;\n let curDOM = nodeDOM;\n for (let i = 0; i < curComputed.length; i++) {\n let deco = curComputed[i], prev = prevComputed[i];\n if (i) {\n let parent;\n if (prev && prev.nodeName == deco.nodeName && curDOM != outerDOM &&\n (parent = curDOM.parentNode) && parent.nodeName.toLowerCase() == deco.nodeName) {\n curDOM = parent;\n }\n else {\n parent = document.createElement(deco.nodeName);\n parent.pmIsDeco = true;\n parent.appendChild(curDOM);\n prev = noDeco[0];\n curDOM = parent;\n }\n }\n patchAttributes(curDOM, prev || noDeco[0], deco);\n }\n return curDOM;\n}\nfunction patchAttributes(dom, prev, cur) {\n for (let name in prev)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && !(name in cur))\n dom.removeAttribute(name);\n for (let name in cur)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && cur[name] != prev[name])\n dom.setAttribute(name, cur[name]);\n if (prev.class != cur.class) {\n let prevList = prev.class ? prev.class.split(\" \").filter(Boolean) : [];\n let curList = cur.class ? cur.class.split(\" \").filter(Boolean) : [];\n for (let i = 0; i < prevList.length; i++)\n if (curList.indexOf(prevList[i]) == -1)\n dom.classList.remove(prevList[i]);\n for (let i = 0; i < curList.length; i++)\n if (prevList.indexOf(curList[i]) == -1)\n dom.classList.add(curList[i]);\n if (dom.classList.length == 0)\n dom.removeAttribute(\"class\");\n }\n if (prev.style != cur.style) {\n if (prev.style) {\n let prop = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g, m;\n while (m = prop.exec(prev.style))\n dom.style.removeProperty(m[1]);\n }\n if (cur.style)\n dom.style.cssText += cur.style;\n }\n}\nfunction applyOuterDeco(dom, deco, node) {\n return patchOuterDeco(dom, dom, noDeco, computeOuterDeco(deco, node, dom.nodeType != 1));\n}\nfunction sameOuterDeco(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].type.eq(b[i].type))\n return false;\n return true;\n}\n// Remove a DOM node and return its next sibling.\nfunction rm(dom) {\n let next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next;\n}\n// Helper class for incrementally updating a tree of mark descs and\n// the widget and node descs inside of them.\nclass ViewTreeUpdater {\n constructor(top, lock, view) {\n this.lock = lock;\n this.view = view;\n // Index into `this.top`'s child array, represents the current\n // update position.\n this.index = 0;\n // When entering a mark, the current top and index are pushed\n // onto this.\n this.stack = [];\n // Tracks whether anything was changed\n this.changed = false;\n this.top = top;\n this.preMatch = preMatch(top.node.content, top);\n }\n // Destroy and remove the children between the given indices in\n // `this.top`.\n destroyBetween(start, end) {\n if (start == end)\n return;\n for (let i = start; i < end; i++)\n this.top.children[i].destroy();\n this.top.children.splice(start, end - start);\n this.changed = true;\n }\n // Destroy all remaining children in `this.top`.\n destroyRest() {\n this.destroyBetween(this.index, this.top.children.length);\n }\n // Sync the current stack of mark descs with the given array of\n // marks, reusing existing mark descs when possible.\n syncToMarks(marks, inline, view) {\n let keep = 0, depth = this.stack.length >> 1;\n let maxKeep = Math.min(depth, marks.length);\n while (keep < maxKeep &&\n (keep == depth - 1 ? this.top : this.stack[(keep + 1) << 1])\n .matchesMark(marks[keep]) && marks[keep].type.spec.spanning !== false)\n keep++;\n while (keep < depth) {\n this.destroyRest();\n this.top.dirty = NOT_DIRTY;\n this.index = this.stack.pop();\n this.top = this.stack.pop();\n depth--;\n }\n while (depth < marks.length) {\n this.stack.push(this.top, this.index + 1);\n let found = -1;\n for (let i = this.index; i < Math.min(this.index + 3, this.top.children.length); i++) {\n let next = this.top.children[i];\n if (next.matchesMark(marks[depth]) && !this.isLocked(next.dom)) {\n found = i;\n break;\n }\n }\n if (found > -1) {\n if (found > this.index) {\n this.changed = true;\n this.destroyBetween(this.index, found);\n }\n this.top = this.top.children[this.index];\n }\n else {\n let markDesc = MarkViewDesc.create(this.top, marks[depth], inline, view);\n this.top.children.splice(this.index, 0, markDesc);\n this.top = markDesc;\n this.changed = true;\n }\n this.index = 0;\n depth++;\n }\n }\n // Try to find a node desc matching the given data. Skip over it and\n // return true when successful.\n findNodeMatch(node, outerDeco, innerDeco, index) {\n let found = -1, targetDesc;\n if (index >= this.preMatch.index &&\n (targetDesc = this.preMatch.matches[index - this.preMatch.index]).parent == this.top &&\n targetDesc.matchesNode(node, outerDeco, innerDeco)) {\n found = this.top.children.indexOf(targetDesc, this.index);\n }\n else {\n for (let i = this.index, e = Math.min(this.top.children.length, i + 5); i < e; i++) {\n let child = this.top.children[i];\n if (child.matchesNode(node, outerDeco, innerDeco) && !this.preMatch.matched.has(child)) {\n found = i;\n break;\n }\n }\n }\n if (found < 0)\n return false;\n this.destroyBetween(this.index, found);\n this.index++;\n return true;\n }\n updateNodeAt(node, outerDeco, innerDeco, index, view) {\n let child = this.top.children[index];\n if (child.dirty == NODE_DIRTY && child.dom == child.contentDOM)\n child.dirty = CONTENT_DIRTY;\n if (!child.update(node, outerDeco, innerDeco, view))\n return false;\n this.destroyBetween(this.index, index);\n this.index++;\n return true;\n }\n findIndexWithChild(domNode) {\n for (;;) {\n let parent = domNode.parentNode;\n if (!parent)\n return -1;\n if (parent == this.top.contentDOM) {\n let desc = domNode.pmViewDesc;\n if (desc)\n for (let i = this.index; i < this.top.children.length; i++) {\n if (this.top.children[i] == desc)\n return i;\n }\n return -1;\n }\n domNode = parent;\n }\n }\n // Try to update the next node, if any, to the given data. Checks\n // pre-matches to avoid overwriting nodes that could still be used.\n updateNextNode(node, outerDeco, innerDeco, view, index, pos) {\n for (let i = this.index; i < this.top.children.length; i++) {\n let next = this.top.children[i];\n if (next instanceof NodeViewDesc) {\n let preMatch = this.preMatch.matched.get(next);\n if (preMatch != null && preMatch != index)\n return false;\n let nextDOM = next.dom, updated;\n // Can't update if nextDOM is or contains this.lock, except if\n // it's a text node whose content already matches the new text\n // and whose decorations match the new ones.\n let locked = this.isLocked(nextDOM) &&\n !(node.isText && next.node && next.node.isText && next.nodeDOM.nodeValue == node.text &&\n next.dirty != NODE_DIRTY && sameOuterDeco(outerDeco, next.outerDeco));\n if (!locked && next.update(node, outerDeco, innerDeco, view)) {\n this.destroyBetween(this.index, i);\n if (next.dom != nextDOM)\n this.changed = true;\n this.index++;\n return true;\n }\n else if (!locked && (updated = this.recreateWrapper(next, node, outerDeco, innerDeco, view, pos))) {\n this.top.children[this.index] = updated;\n updated.dirty = CONTENT_DIRTY;\n updated.updateChildren(view, pos + 1);\n updated.dirty = NOT_DIRTY;\n this.changed = true;\n this.index++;\n return true;\n }\n break;\n }\n }\n return false;\n }\n // When a node with content is replaced by a different node with\n // identical content, move over its children.\n recreateWrapper(next, node, outerDeco, innerDeco, view, pos) {\n if (next.dirty || node.isAtom || !next.children.length ||\n !next.node.content.eq(node.content))\n return null;\n let wrapper = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (!wrapper.contentDOM)\n return null;\n wrapper.children = next.children;\n next.children = [];\n next.destroy();\n for (let ch of wrapper.children)\n ch.parent = wrapper;\n return wrapper;\n }\n // Insert the node as a newly created node desc.\n addNode(node, outerDeco, innerDeco, view, pos) {\n let desc = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (desc.contentDOM)\n desc.updateChildren(view, pos + 1);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n placeWidget(widget, view, pos) {\n let next = this.index < this.top.children.length ? this.top.children[this.index] : null;\n if (next && next.matchesWidget(widget) &&\n (widget == next.widget || !next.widget.type.toDOM.parentNode)) {\n this.index++;\n }\n else {\n let desc = new WidgetViewDesc(this.top, widget, view, pos);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n }\n // Make sure a textblock looks and behaves correctly in\n // contentEditable.\n addTextblockHacks() {\n let lastChild = this.top.children[this.index - 1], parent = this.top;\n while (lastChild instanceof MarkViewDesc) {\n parent = lastChild;\n lastChild = parent.children[parent.children.length - 1];\n }\n if (!lastChild || // Empty textblock\n !(lastChild instanceof TextViewDesc) ||\n /\\n$/.test(lastChild.node.text) ||\n (this.view.requiresGeckoHackNode && /\\s$/.test(lastChild.node.text))) {\n // Avoid bugs in Safari's cursor drawing (#1165) and Chrome's mouse selection (#1152)\n if ((safari || chrome) && lastChild && lastChild.dom.contentEditable == \"false\")\n this.addHackNode(\"IMG\", parent);\n this.addHackNode(\"BR\", this.top);\n }\n }\n addHackNode(nodeName, parent) {\n if (parent == this.top && this.index < parent.children.length && parent.children[this.index].matchesHack(nodeName)) {\n this.index++;\n }\n else {\n let dom = document.createElement(nodeName);\n if (nodeName == \"IMG\") {\n dom.className = \"ProseMirror-separator\";\n dom.alt = \"\";\n }\n if (nodeName == \"BR\")\n dom.className = \"ProseMirror-trailingBreak\";\n let hack = new TrailingHackViewDesc(this.top, [], dom, null);\n if (parent != this.top)\n parent.children.push(hack);\n else\n parent.children.splice(this.index++, 0, hack);\n this.changed = true;\n }\n }\n isLocked(node) {\n return this.lock && (node == this.lock || node.nodeType == 1 && node.contains(this.lock.parentNode));\n }\n}\n// Iterate from the end of the fragment and array of descs to find\n// directly matching ones, in order to avoid overeagerly reusing those\n// for other nodes. Returns the fragment index of the first node that\n// is part of the sequence of matched nodes at the end of the\n// fragment.\nfunction preMatch(frag, parentDesc) {\n let curDesc = parentDesc, descI = curDesc.children.length;\n let fI = frag.childCount, matched = new Map, matches = [];\n outer: while (fI > 0) {\n let desc;\n for (;;) {\n if (descI) {\n let next = curDesc.children[descI - 1];\n if (next instanceof MarkViewDesc) {\n curDesc = next;\n descI = next.children.length;\n }\n else {\n desc = next;\n descI--;\n break;\n }\n }\n else if (curDesc == parentDesc) {\n break outer;\n }\n else {\n // FIXME\n descI = curDesc.parent.children.indexOf(curDesc);\n curDesc = curDesc.parent;\n }\n }\n let node = desc.node;\n if (!node)\n continue;\n if (node != frag.child(fI - 1))\n break;\n --fI;\n matched.set(desc, fI);\n matches.push(desc);\n }\n return { index: fI, matched, matches: matches.reverse() };\n}\nfunction compareSide(a, b) {\n return a.type.side - b.type.side;\n}\n// This function abstracts iterating over the nodes and decorations in\n// a fragment. Calls `onNode` for each node, with its local and child\n// decorations. Splits text nodes when there is a decoration starting\n// or ending inside of them. Calls `onWidget` for each widget.\nfunction iterDeco(parent, deco, onWidget, onNode) {\n let locals = deco.locals(parent), offset = 0;\n // Simple, cheap variant for when there are no local decorations\n if (locals.length == 0) {\n for (let i = 0; i < parent.childCount; i++) {\n let child = parent.child(i);\n onNode(child, locals, deco.forChild(offset, child), i);\n offset += child.nodeSize;\n }\n return;\n }\n let decoIndex = 0, active = [], restNode = null;\n for (let parentIndex = 0;;) {\n if (decoIndex < locals.length && locals[decoIndex].to == offset) {\n let widget = locals[decoIndex++], widgets;\n while (decoIndex < locals.length && locals[decoIndex].to == offset)\n (widgets || (widgets = [widget])).push(locals[decoIndex++]);\n if (widgets) {\n widgets.sort(compareSide);\n for (let i = 0; i < widgets.length; i++)\n onWidget(widgets[i], parentIndex, !!restNode);\n }\n else {\n onWidget(widget, parentIndex, !!restNode);\n }\n }\n let child, index;\n if (restNode) {\n index = -1;\n child = restNode;\n restNode = null;\n }\n else if (parentIndex < parent.childCount) {\n index = parentIndex;\n child = parent.child(parentIndex++);\n }\n else {\n break;\n }\n for (let i = 0; i < active.length; i++)\n if (active[i].to <= offset)\n active.splice(i--, 1);\n while (decoIndex < locals.length && locals[decoIndex].from <= offset && locals[decoIndex].to > offset)\n active.push(locals[decoIndex++]);\n let end = offset + child.nodeSize;\n if (child.isText) {\n let cutAt = end;\n if (decoIndex < locals.length && locals[decoIndex].from < cutAt)\n cutAt = locals[decoIndex].from;\n for (let i = 0; i < active.length; i++)\n if (active[i].to < cutAt)\n cutAt = active[i].to;\n if (cutAt < end) {\n restNode = child.cut(cutAt - offset);\n child = child.cut(0, cutAt - offset);\n end = cutAt;\n index = -1;\n }\n }\n let outerDeco = child.isInline && !child.isLeaf ? active.filter(d => !d.inline) : active.slice();\n onNode(child, outerDeco, deco.forChild(offset, child), index);\n offset = end;\n }\n}\n// List markers in Mobile Safari will mysteriously disappear\n// sometimes. This works around that.\nfunction iosHacks(dom) {\n if (dom.nodeName == \"UL\" || dom.nodeName == \"OL\") {\n let oldCSS = dom.style.cssText;\n dom.style.cssText = oldCSS + \"; list-style: square !important\";\n window.getComputedStyle(dom).listStyle;\n dom.style.cssText = oldCSS;\n }\n}\nfunction nearbyTextNode(node, offset) {\n for (;;) {\n if (node.nodeType == 3)\n return node;\n if (node.nodeType == 1 && offset > 0) {\n if (node.childNodes.length > offset && node.childNodes[offset].nodeType == 3)\n return node.childNodes[offset];\n node = node.childNodes[offset - 1];\n offset = nodeSize(node);\n }\n else if (node.nodeType == 1 && offset < node.childNodes.length) {\n node = node.childNodes[offset];\n offset = 0;\n }\n else {\n return null;\n }\n }\n}\n// Find a piece of text in an inline fragment, overlapping from-to\nfunction findTextInFragment(frag, text, from, to) {\n for (let i = 0, pos = 0; i < frag.childCount && pos <= to;) {\n let child = frag.child(i++), childStart = pos;\n pos += child.nodeSize;\n if (!child.isText)\n continue;\n let str = child.text;\n while (i < frag.childCount) {\n let next = frag.child(i++);\n pos += next.nodeSize;\n if (!next.isText)\n break;\n str += next.text;\n }\n if (pos >= from) {\n let found = childStart < to ? str.lastIndexOf(text, to - childStart - 1) : -1;\n if (found >= 0 && found + text.length + childStart >= from)\n return childStart + found;\n if (from == to && str.length >= (to + text.length) - childStart &&\n str.slice(to - childStart, to - childStart + text.length) == text)\n return to;\n }\n }\n return -1;\n}\n// Replace range from-to in an array of view descs with replacement\n// (may be null to just delete). This goes very much against the grain\n// of the rest of this code, which tends to create nodes with the\n// right shape in one go, rather than messing with them after\n// creation, but is necessary in the composition hack.\nfunction replaceNodes(nodes, from, to, view, replacement) {\n let result = [];\n for (let i = 0, off = 0; i < nodes.length; i++) {\n let child = nodes[i], start = off, end = off += child.size;\n if (start >= to || end <= from) {\n result.push(child);\n }\n else {\n if (start < from)\n result.push(child.slice(0, from - start, view));\n if (replacement) {\n result.push(replacement);\n replacement = undefined;\n }\n if (end > to)\n result.push(child.slice(to - start, child.size, view));\n }\n }\n return result;\n}\n\nfunction selectionFromDOM(view, origin = null) {\n let domSel = view.domSelectionRange(), doc = view.state.doc;\n if (!domSel.focusNode)\n return null;\n let nearestDesc = view.docView.nearestDesc(domSel.focusNode), inWidget = nearestDesc && nearestDesc.size == 0;\n let head = view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset, 1);\n if (head < 0)\n return null;\n let $head = doc.resolve(head), $anchor, selection;\n if (selectionCollapsed(domSel)) {\n $anchor = $head;\n while (nearestDesc && !nearestDesc.node)\n nearestDesc = nearestDesc.parent;\n let nearestDescNode = nearestDesc.node;\n if (nearestDesc && nearestDescNode.isAtom && NodeSelection.isSelectable(nearestDescNode) && nearestDesc.parent\n && !(nearestDescNode.isInline && isOnEdge(domSel.focusNode, domSel.focusOffset, nearestDesc.dom))) {\n let pos = nearestDesc.posBefore;\n selection = new NodeSelection(head == pos ? $head : doc.resolve(pos));\n }\n }\n else {\n let anchor = view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset, 1);\n if (anchor < 0)\n return null;\n $anchor = doc.resolve(anchor);\n }\n if (!selection) {\n let bias = origin == \"pointer\" || (view.state.selection.head < $head.pos && !inWidget) ? 1 : -1;\n selection = selectionBetween(view, $anchor, $head, bias);\n }\n return selection;\n}\nfunction editorOwnsSelection(view) {\n return view.editable ? view.hasFocus() :\n hasSelection(view) && document.activeElement && document.activeElement.contains(view.dom);\n}\nfunction selectionToDOM(view, force = false) {\n let sel = view.state.selection;\n syncNodeSelection(view, sel);\n if (!editorOwnsSelection(view))\n return;\n // The delayed drag selection causes issues with Cell Selections\n // in Safari. And the drag selection delay is to workarond issues\n // which only present in Chrome.\n if (!force && view.input.mouseDown && view.input.mouseDown.allowDefault && chrome) {\n let domSel = view.domSelectionRange(), curSel = view.domObserver.currentSelection;\n if (domSel.anchorNode && curSel.anchorNode &&\n isEquivalentPosition(domSel.anchorNode, domSel.anchorOffset, curSel.anchorNode, curSel.anchorOffset)) {\n view.input.mouseDown.delayedSelectionSync = true;\n view.domObserver.setCurSelection();\n return;\n }\n }\n view.domObserver.disconnectSelection();\n if (view.cursorWrapper) {\n selectCursorWrapper(view);\n }\n else {\n let { anchor, head } = sel, resetEditableFrom, resetEditableTo;\n if (brokenSelectBetweenUneditable && !(sel instanceof TextSelection)) {\n if (!sel.$from.parent.inlineContent)\n resetEditableFrom = temporarilyEditableNear(view, sel.from);\n if (!sel.empty && !sel.$from.parent.inlineContent)\n resetEditableTo = temporarilyEditableNear(view, sel.to);\n }\n view.docView.setSelection(anchor, head, view.root, force);\n if (brokenSelectBetweenUneditable) {\n if (resetEditableFrom)\n resetEditable(resetEditableFrom);\n if (resetEditableTo)\n resetEditable(resetEditableTo);\n }\n if (sel.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }\n else {\n view.dom.classList.add(\"ProseMirror-hideselection\");\n if (\"onselectionchange\" in document)\n removeClassOnSelectionChange(view);\n }\n }\n view.domObserver.setCurSelection();\n view.domObserver.connectSelection();\n}\n// Kludge to work around Webkit not allowing a selection to start/end\n// between non-editable block nodes. We briefly make something\n// editable, set the selection, then set it uneditable again.\nconst brokenSelectBetweenUneditable = safari || chrome && chrome_version < 63;\nfunction temporarilyEditableNear(view, pos) {\n let { node, offset } = view.docView.domFromPos(pos, 0);\n let after = offset < node.childNodes.length ? node.childNodes[offset] : null;\n let before = offset ? node.childNodes[offset - 1] : null;\n if (safari && after && after.contentEditable == \"false\")\n return setEditable(after);\n if ((!after || after.contentEditable == \"false\") &&\n (!before || before.contentEditable == \"false\")) {\n if (after)\n return setEditable(after);\n else if (before)\n return setEditable(before);\n }\n}\nfunction setEditable(element) {\n element.contentEditable = \"true\";\n if (safari && element.draggable) {\n element.draggable = false;\n element.wasDraggable = true;\n }\n return element;\n}\nfunction resetEditable(element) {\n element.contentEditable = \"false\";\n if (element.wasDraggable) {\n element.draggable = true;\n element.wasDraggable = null;\n }\n}\nfunction removeClassOnSelectionChange(view) {\n let doc = view.dom.ownerDocument;\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n let domSel = view.domSelectionRange();\n let node = domSel.anchorNode, offset = domSel.anchorOffset;\n doc.addEventListener(\"selectionchange\", view.input.hideSelectionGuard = () => {\n if (domSel.anchorNode != node || domSel.anchorOffset != offset) {\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n setTimeout(() => {\n if (!editorOwnsSelection(view) || view.state.selection.visible)\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }, 20);\n }\n });\n}\nfunction selectCursorWrapper(view) {\n let domSel = view.domSelection(), range = document.createRange();\n let node = view.cursorWrapper.dom, img = node.nodeName == \"IMG\";\n if (img)\n range.setEnd(node.parentNode, domIndex(node) + 1);\n else\n range.setEnd(node, 0);\n range.collapse(false);\n domSel.removeAllRanges();\n domSel.addRange(range);\n // Kludge to kill 'control selection' in IE11 when selecting an\n // invisible cursor wrapper, since that would result in those weird\n // resize handles and a selection that considers the absolutely\n // positioned wrapper, rather than the root editable node, the\n // focused element.\n if (!img && !view.state.selection.visible && ie$1 && ie_version <= 11) {\n node.disabled = true;\n node.disabled = false;\n }\n}\nfunction syncNodeSelection(view, sel) {\n if (sel instanceof NodeSelection) {\n let desc = view.docView.descAt(sel.from);\n if (desc != view.lastSelectedViewDesc) {\n clearNodeSelection(view);\n if (desc)\n desc.selectNode();\n view.lastSelectedViewDesc = desc;\n }\n }\n else {\n clearNodeSelection(view);\n }\n}\n// Clear all DOM statefulness of the last node selection.\nfunction clearNodeSelection(view) {\n if (view.lastSelectedViewDesc) {\n if (view.lastSelectedViewDesc.parent)\n view.lastSelectedViewDesc.deselectNode();\n view.lastSelectedViewDesc = undefined;\n }\n}\nfunction selectionBetween(view, $anchor, $head, bias) {\n return view.someProp(\"createSelectionBetween\", f => f(view, $anchor, $head))\n || TextSelection.between($anchor, $head, bias);\n}\nfunction hasFocusAndSelection(view) {\n if (view.editable && !view.hasFocus())\n return false;\n return hasSelection(view);\n}\nfunction hasSelection(view) {\n let sel = view.domSelectionRange();\n if (!sel.anchorNode)\n return false;\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return view.dom.contains(sel.anchorNode.nodeType == 3 ? sel.anchorNode.parentNode : sel.anchorNode) &&\n (view.editable || view.dom.contains(sel.focusNode.nodeType == 3 ? sel.focusNode.parentNode : sel.focusNode));\n }\n catch (_) {\n return false;\n }\n}\nfunction anchorInRightPlace(view) {\n let anchorDOM = view.docView.domFromPos(view.state.selection.anchor, 0);\n let domSel = view.domSelectionRange();\n return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset);\n}\n\nfunction moveSelectionBlock(state, dir) {\n let { $anchor, $head } = state.selection;\n let $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);\n let $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;\n return $start && Selection.findFrom($start, dir);\n}\nfunction apply(view, sel) {\n view.dispatch(view.state.tr.setSelection(sel).scrollIntoView());\n return true;\n}\nfunction selectHorizontally(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection) {\n if (!sel.empty || mods.indexOf(\"s\") > -1) {\n return false;\n }\n else if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n return false;\n }\n else if (!(mac$2 && mods.indexOf(\"m\") > -1)) {\n let $head = sel.$head, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter, desc;\n if (!node || node.isText)\n return false;\n let nodePos = dir < 0 ? $head.pos - node.nodeSize : $head.pos;\n if (!(node.isAtom || (desc = view.docView.descAt(nodePos)) && !desc.contentDOM))\n return false;\n if (NodeSelection.isSelectable(node)) {\n return apply(view, new NodeSelection(dir < 0 ? view.state.doc.resolve($head.pos - node.nodeSize) : $head));\n }\n else if (webkit) {\n // Chrome and Safari will introduce extra pointless cursor\n // positions around inline uneditable nodes, so we have to\n // take over and move the cursor past them (#937)\n return apply(view, new TextSelection(view.state.doc.resolve(dir < 0 ? nodePos : nodePos + node.nodeSize)));\n }\n else {\n return false;\n }\n }\n }\n else if (sel instanceof NodeSelection && sel.node.isInline) {\n return apply(view, new TextSelection(dir > 0 ? sel.$to : sel.$from));\n }\n else {\n let next = moveSelectionBlock(view.state, dir);\n if (next)\n return apply(view, next);\n return false;\n }\n}\nfunction nodeLen(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction isIgnorable(dom) {\n let desc = dom.pmViewDesc;\n return desc && desc.size == 0 && (dom.nextSibling || dom.nodeName != \"BR\");\n}\nfunction skipIgnoredNodes(view, dir) {\n return dir < 0 ? skipIgnoredNodesBefore(view) : skipIgnoredNodesAfter(view);\n}\n// Make sure the cursor isn't directly after one or more ignored\n// nodes, which will confuse the browser's cursor motion logic.\nfunction skipIgnoredNodesBefore(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let moveNode, moveOffset, force = false;\n // Gecko will do odd things when the selection is directly in front\n // of a non-editable node, so in that case, move it into the next\n // node if possible. Issue prosemirror/prosemirror#832.\n if (gecko && node.nodeType == 1 && offset < nodeLen(node) && isIgnorable(node.childNodes[offset]))\n force = true;\n for (;;) {\n if (offset > 0) {\n if (node.nodeType != 1) {\n break;\n }\n else {\n let before = node.childNodes[offset - 1];\n if (isIgnorable(before)) {\n moveNode = node;\n moveOffset = --offset;\n }\n else if (before.nodeType == 3) {\n node = before;\n offset = node.nodeValue.length;\n }\n else\n break;\n }\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let prev = node.previousSibling;\n while (prev && isIgnorable(prev)) {\n moveNode = node.parentNode;\n moveOffset = domIndex(prev);\n prev = prev.previousSibling;\n }\n if (!prev) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = 0;\n }\n else {\n node = prev;\n offset = nodeLen(node);\n }\n }\n }\n if (force)\n setSelFocus(view, node, offset);\n else if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\n// Make sure the cursor isn't directly before one or more ignored\n// nodes.\nfunction skipIgnoredNodesAfter(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let len = nodeLen(node);\n let moveNode, moveOffset;\n for (;;) {\n if (offset < len) {\n if (node.nodeType != 1)\n break;\n let after = node.childNodes[offset];\n if (isIgnorable(after)) {\n moveNode = node;\n moveOffset = ++offset;\n }\n else\n break;\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let next = node.nextSibling;\n while (next && isIgnorable(next)) {\n moveNode = next.parentNode;\n moveOffset = domIndex(next) + 1;\n next = next.nextSibling;\n }\n if (!next) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = len = 0;\n }\n else {\n node = next;\n offset = 0;\n len = nodeLen(node);\n }\n }\n }\n if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\nfunction isBlockNode(dom) {\n let desc = dom.pmViewDesc;\n return desc && desc.node && desc.node.isBlock;\n}\nfunction setSelFocus(view, node, offset) {\n let sel = view.domSelection();\n if (selectionCollapsed(sel)) {\n let range = document.createRange();\n range.setEnd(node, offset);\n range.setStart(node, offset);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n else if (sel.extend) {\n sel.extend(node, offset);\n }\n view.domObserver.setCurSelection();\n let { state } = view;\n // If no state update ends up happening, reset the selection.\n setTimeout(() => {\n if (view.state == state)\n selectionToDOM(view);\n }, 50);\n}\nfunction findDirection(view, pos) {\n let $pos = view.state.doc.resolve(pos);\n if (!(chrome || windows) && $pos.parent.inlineContent) {\n let coords = view.coordsAtPos(pos);\n if (pos > $pos.start()) {\n let before = view.coordsAtPos(pos - 1);\n let mid = (before.top + before.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(before.left - coords.left) > 1)\n return before.left < coords.left ? \"ltr\" : \"rtl\";\n }\n if (pos < $pos.end()) {\n let after = view.coordsAtPos(pos + 1);\n let mid = (after.top + after.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(after.left - coords.left) > 1)\n return after.left > coords.left ? \"ltr\" : \"rtl\";\n }\n }\n let computed = getComputedStyle(view.dom).direction;\n return computed == \"rtl\" ? \"rtl\" : \"ltr\";\n}\n// Check whether vertical selection motion would involve node\n// selections. If so, apply it (if not, the result is left to the\n// browser)\nfunction selectVertically(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection && !sel.empty || mods.indexOf(\"s\") > -1)\n return false;\n if (mac$2 && mods.indexOf(\"m\") > -1)\n return false;\n let { $from, $to } = sel;\n if (!$from.parent.inlineContent || view.endOfTextblock(dir < 0 ? \"up\" : \"down\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n }\n if (!$from.parent.inlineContent) {\n let side = dir < 0 ? $from : $to;\n let beyond = sel instanceof AllSelection ? Selection.near(side, dir) : Selection.findFrom(side, dir);\n return beyond ? apply(view, beyond) : false;\n }\n return false;\n}\nfunction stopNativeHorizontalDelete(view, dir) {\n if (!(view.state.selection instanceof TextSelection))\n return true;\n let { $head, $anchor, empty } = view.state.selection;\n if (!$head.sameParent($anchor))\n return true;\n if (!empty)\n return false;\n if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\"))\n return true;\n let nextNode = !$head.textOffset && (dir < 0 ? $head.nodeBefore : $head.nodeAfter);\n if (nextNode && !nextNode.isText) {\n let tr = view.state.tr;\n if (dir < 0)\n tr.delete($head.pos - nextNode.nodeSize, $head.pos);\n else\n tr.delete($head.pos, $head.pos + nextNode.nodeSize);\n view.dispatch(tr);\n return true;\n }\n return false;\n}\nfunction switchEditable(view, node, state) {\n view.domObserver.stop();\n node.contentEditable = state;\n view.domObserver.start();\n}\n// Issue #867 / #1090 / https://bugs.chromium.org/p/chromium/issues/detail?id=903821\n// In which Safari (and at some point in the past, Chrome) does really\n// wrong things when the down arrow is pressed when the cursor is\n// directly at the start of a textblock and has an uneditable node\n// after it\nfunction safariDownArrowBug(view) {\n if (!safari || view.state.selection.$head.parentOffset > 0)\n return false;\n let { focusNode, focusOffset } = view.domSelectionRange();\n if (focusNode && focusNode.nodeType == 1 && focusOffset == 0 &&\n focusNode.firstChild && focusNode.firstChild.contentEditable == \"false\") {\n let child = focusNode.firstChild;\n switchEditable(view, child, \"true\");\n setTimeout(() => switchEditable(view, child, \"false\"), 20);\n }\n return false;\n}\n// A backdrop key mapping used to make sure we always suppress keys\n// that have a dangerous default effect, even if the commands they are\n// bound to return false, and to make sure that cursor-motion keys\n// find a cursor (as opposed to a node selection) when pressed. For\n// cursor-motion keys, the code in the handlers also takes care of\n// block selections.\nfunction getMods(event) {\n let result = \"\";\n if (event.ctrlKey)\n result += \"c\";\n if (event.metaKey)\n result += \"m\";\n if (event.altKey)\n result += \"a\";\n if (event.shiftKey)\n result += \"s\";\n return result;\n}\nfunction captureKeyDown(view, event) {\n let code = event.keyCode, mods = getMods(event);\n if (code == 8 || (mac$2 && code == 72 && mods == \"c\")) { // Backspace, Ctrl-h on Mac\n return stopNativeHorizontalDelete(view, -1) || skipIgnoredNodes(view, -1);\n }\n else if ((code == 46 && !event.shiftKey) || (mac$2 && code == 68 && mods == \"c\")) { // Delete, Ctrl-d on Mac\n return stopNativeHorizontalDelete(view, 1) || skipIgnoredNodes(view, 1);\n }\n else if (code == 13 || code == 27) { // Enter, Esc\n return true;\n }\n else if (code == 37 || (mac$2 && code == 66 && mods == \"c\")) { // Left arrow, Ctrl-b on Mac\n let dir = code == 37 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? -1 : 1) : -1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 39 || (mac$2 && code == 70 && mods == \"c\")) { // Right arrow, Ctrl-f on Mac\n let dir = code == 39 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? 1 : -1) : 1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 38 || (mac$2 && code == 80 && mods == \"c\")) { // Up arrow, Ctrl-p on Mac\n return selectVertically(view, -1, mods) || skipIgnoredNodes(view, -1);\n }\n else if (code == 40 || (mac$2 && code == 78 && mods == \"c\")) { // Down arrow, Ctrl-n on Mac\n return safariDownArrowBug(view) || selectVertically(view, 1, mods) || skipIgnoredNodesAfter(view);\n }\n else if (mods == (mac$2 ? \"m\" : \"c\") &&\n (code == 66 || code == 73 || code == 89 || code == 90)) { // Mod-[biyz]\n return true;\n }\n return false;\n}\n\nfunction serializeForClipboard(view, slice) {\n view.someProp(\"transformCopied\", f => { slice = f(slice, view); });\n let context = [], { content, openStart, openEnd } = slice;\n while (openStart > 1 && openEnd > 1 && content.childCount == 1 && content.firstChild.childCount == 1) {\n openStart--;\n openEnd--;\n let node = content.firstChild;\n context.push(node.type.name, node.attrs != node.type.defaultAttrs ? node.attrs : null);\n content = node.content;\n }\n let serializer = view.someProp(\"clipboardSerializer\") || DOMSerializer.fromSchema(view.state.schema);\n let doc = detachedDoc(), wrap = doc.createElement(\"div\");\n wrap.appendChild(serializer.serializeFragment(content, { document: doc }));\n let firstChild = wrap.firstChild, needsWrap, wrappers = 0;\n while (firstChild && firstChild.nodeType == 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (let i = needsWrap.length - 1; i >= 0; i--) {\n let wrapper = doc.createElement(needsWrap[i]);\n while (wrap.firstChild)\n wrapper.appendChild(wrap.firstChild);\n wrap.appendChild(wrapper);\n wrappers++;\n }\n firstChild = wrap.firstChild;\n }\n if (firstChild && firstChild.nodeType == 1)\n firstChild.setAttribute(\"data-pm-slice\", `${openStart} ${openEnd}${wrappers ? ` -${wrappers}` : \"\"} ${JSON.stringify(context)}`);\n let text = view.someProp(\"clipboardTextSerializer\", f => f(slice, view)) ||\n slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n return { dom: wrap, text };\n}\n// Read a slice of content from the clipboard (or drop data).\nfunction parseFromClipboard(view, text, html, plainText, $context) {\n let inCode = $context.parent.type.spec.code;\n let dom, slice;\n if (!html && !text)\n return null;\n let asText = text && (plainText || inCode || !html);\n if (asText) {\n view.someProp(\"transformPastedText\", f => { text = f(text, inCode || plainText, view); });\n if (inCode)\n return text ? new Slice(Fragment.from(view.state.schema.text(text.replace(/\\r\\n?/g, \"\\n\"))), 0, 0) : Slice.empty;\n let parsed = view.someProp(\"clipboardTextParser\", f => f(text, $context, plainText, view));\n if (parsed) {\n slice = parsed;\n }\n else {\n let marks = $context.marks();\n let { schema } = view.state, serializer = DOMSerializer.fromSchema(schema);\n dom = document.createElement(\"div\");\n text.split(/(?:\\r\\n?|\\n)+/).forEach(block => {\n let p = dom.appendChild(document.createElement(\"p\"));\n if (block)\n p.appendChild(serializer.serializeNode(schema.text(block, marks)));\n });\n }\n }\n else {\n view.someProp(\"transformPastedHTML\", f => { html = f(html, view); });\n dom = readHTML(html);\n if (webkit)\n restoreReplacedSpaces(dom);\n }\n let contextNode = dom && dom.querySelector(\"[data-pm-slice]\");\n let sliceData = contextNode && /^(\\d+) (\\d+)(?: -(\\d+))? (.*)/.exec(contextNode.getAttribute(\"data-pm-slice\") || \"\");\n if (sliceData && sliceData[3])\n for (let i = +sliceData[3]; i > 0; i--) {\n let child = dom.firstChild;\n while (child && child.nodeType != 1)\n child = child.nextSibling;\n if (!child)\n break;\n dom = child;\n }\n if (!slice) {\n let parser = view.someProp(\"clipboardParser\") || view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: !!(asText || sliceData),\n context: $context,\n ruleFromNode(dom) {\n if (dom.nodeName == \"BR\" && !dom.nextSibling &&\n dom.parentNode && !inlineParents.test(dom.parentNode.nodeName))\n return { ignore: true };\n return null;\n }\n });\n }\n if (sliceData) {\n slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[4]);\n }\n else { // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n slice = Slice.maxOpen(normalizeSiblings(slice.content, $context), true);\n if (slice.openStart || slice.openEnd) {\n let openStart = 0, openEnd = 0;\n for (let node = slice.content.firstChild; openStart < slice.openStart && !node.type.spec.isolating; openStart++, node = node.firstChild) { }\n for (let node = slice.content.lastChild; openEnd < slice.openEnd && !node.type.spec.isolating; openEnd++, node = node.lastChild) { }\n slice = closeSlice(slice, openStart, openEnd);\n }\n }\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n return slice;\n}\nconst inlineParents = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;\n// Takes a slice parsed with parseSlice, which means there hasn't been\n// any content-expression checking done on the top nodes, tries to\n// find a parent node in the current context that might fit the nodes,\n// and if successful, rebuilds the slice so that it fits into that parent.\n//\n// This addresses the problem that Transform.replace expects a\n// coherent slice, and will fail to place a set of siblings that don't\n// fit anywhere in the schema.\nfunction normalizeSiblings(fragment, $context) {\n if (fragment.childCount < 2)\n return fragment;\n for (let d = $context.depth; d >= 0; d--) {\n let parent = $context.node(d);\n let match = parent.contentMatchAt($context.index(d));\n let lastWrap, result = [];\n fragment.forEach(node => {\n if (!result)\n return;\n let wrap = match.findWrapping(node.type), inLast;\n if (!wrap)\n return result = null;\n if (inLast = result.length && lastWrap.length && addToSibling(wrap, lastWrap, node, result[result.length - 1], 0)) {\n result[result.length - 1] = inLast;\n }\n else {\n if (result.length)\n result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length);\n let wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type);\n lastWrap = wrap;\n }\n });\n if (result)\n return Fragment.from(result);\n }\n return fragment;\n}\nfunction withWrappers(node, wrap, from = 0) {\n for (let i = wrap.length - 1; i >= from; i--)\n node = wrap[i].create(null, Fragment.from(node));\n return node;\n}\n// Used to group adjacent nodes wrapped in similar parents by\n// normalizeSiblings into the same parent node\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (depth < wrap.length && depth < lastWrap.length && wrap[depth] == lastWrap[depth]) {\n let inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);\n if (inner)\n return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));\n let match = sibling.contentMatchAt(sibling.childCount);\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1]))\n return sibling.copy(sibling.content.append(Fragment.from(withWrappers(node, wrap, depth + 1))));\n }\n}\nfunction closeRight(node, depth) {\n if (depth == 0)\n return node;\n let fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));\n let fill = node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true);\n return node.copy(fragment.append(fill));\n}\nfunction closeRange(fragment, side, from, to, depth, openEnd) {\n let node = side < 0 ? fragment.firstChild : fragment.lastChild, inner = node.content;\n if (fragment.childCount > 1)\n openEnd = 0;\n if (depth < to - 1)\n inner = closeRange(inner, side, from, to, depth + 1, openEnd);\n if (depth >= from)\n inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner)\n : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true));\n return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));\n}\nfunction closeSlice(slice, openStart, openEnd) {\n if (openStart < slice.openStart)\n slice = new Slice(closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd);\n if (openEnd < slice.openEnd)\n slice = new Slice(closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd);\n return slice;\n}\n// Trick from jQuery -- some elements must be wrapped in other\n// elements for innerHTML to work. I.e. if you do `div.innerHTML =\n// \"..\"` the table cells are ignored.\nconst wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\nlet _detachedDoc = null;\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument(\"title\"));\n}\nfunction readHTML(html) {\n let metas = /^(\\s*]*>)*/.exec(html);\n if (metas)\n html = html.slice(metas[0].length);\n let elt = detachedDoc().createElement(\"div\");\n let firstTag = /<([a-z][^>\\s]+)/i.exec(html), wrap;\n if (wrap = firstTag && wrapMap[firstTag[1].toLowerCase()])\n html = wrap.map(n => \"<\" + n + \">\").join(\"\") + html + wrap.map(n => \"\").reverse().join(\"\");\n elt.innerHTML = html;\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n elt = elt.querySelector(wrap[i]) || elt;\n return elt;\n}\n// Webkit browsers do some hard-to-predict replacement of regular\n// spaces with non-breaking spaces when putting content on the\n// clipboard. This tries to convert such non-breaking spaces (which\n// will be wrapped in a plain span on Chrome, a span with class\n// Apple-converted-space on Safari) back to regular spaces.\nfunction restoreReplacedSpaces(dom) {\n let nodes = dom.querySelectorAll(chrome ? \"span:not([class]):not([style])\" : \"span.Apple-converted-space\");\n for (let i = 0; i < nodes.length; i++) {\n let node = nodes[i];\n if (node.childNodes.length == 1 && node.textContent == \"\\u00a0\" && node.parentNode)\n node.parentNode.replaceChild(dom.ownerDocument.createTextNode(\" \"), node);\n }\n}\nfunction addContext(slice, context) {\n if (!slice.size)\n return slice;\n let schema = slice.content.firstChild.type.schema, array;\n try {\n array = JSON.parse(context);\n }\n catch (e) {\n return slice;\n }\n let { content, openStart, openEnd } = slice;\n for (let i = array.length - 2; i >= 0; i -= 2) {\n let type = schema.nodes[array[i]];\n if (!type || type.hasRequiredAttrs())\n break;\n content = Fragment.from(type.create(array[i + 1], content));\n openStart++;\n openEnd++;\n }\n return new Slice(content, openStart, openEnd);\n}\n\n// A collection of DOM events that occur within the editor, and callback functions\n// to invoke when the event fires.\nconst handlers = {};\nconst editHandlers = {};\nconst passiveHandlers = { touchstart: true, touchmove: true };\nclass InputState {\n constructor() {\n this.shiftKey = false;\n this.mouseDown = null;\n this.lastKeyCode = null;\n this.lastKeyCodeTime = 0;\n this.lastClick = { time: 0, x: 0, y: 0, type: \"\" };\n this.lastSelectionOrigin = null;\n this.lastSelectionTime = 0;\n this.lastIOSEnter = 0;\n this.lastIOSEnterFallbackTimeout = -1;\n this.lastFocus = 0;\n this.lastTouch = 0;\n this.lastAndroidDelete = 0;\n this.composing = false;\n this.composingTimeout = -1;\n this.compositionNodes = [];\n this.compositionEndedAt = -2e8;\n this.compositionID = 1;\n this.domChangeCount = 0;\n this.eventHandlers = Object.create(null);\n this.hideSelectionGuard = null;\n }\n}\nfunction initInput(view) {\n for (let event in handlers) {\n let handler = handlers[event];\n view.dom.addEventListener(event, view.input.eventHandlers[event] = (event) => {\n if (eventBelongsToView(view, event) && !runCustomHandler(view, event) &&\n (view.editable || !(event.type in editHandlers)))\n handler(view, event);\n }, passiveHandlers[event] ? { passive: true } : undefined);\n }\n // On Safari, for reasons beyond my understanding, adding an input\n // event handler makes an issue where the composition vanishes when\n // you press enter go away.\n if (safari)\n view.dom.addEventListener(\"input\", () => null);\n ensureListeners(view);\n}\nfunction setSelectionOrigin(view, origin) {\n view.input.lastSelectionOrigin = origin;\n view.input.lastSelectionTime = Date.now();\n}\nfunction destroyInput(view) {\n view.domObserver.stop();\n for (let type in view.input.eventHandlers)\n view.dom.removeEventListener(type, view.input.eventHandlers[type]);\n clearTimeout(view.input.composingTimeout);\n clearTimeout(view.input.lastIOSEnterFallbackTimeout);\n}\nfunction ensureListeners(view) {\n view.someProp(\"handleDOMEvents\", currentHandlers => {\n for (let type in currentHandlers)\n if (!view.input.eventHandlers[type])\n view.dom.addEventListener(type, view.input.eventHandlers[type] = event => runCustomHandler(view, event));\n });\n}\nfunction runCustomHandler(view, event) {\n return view.someProp(\"handleDOMEvents\", handlers => {\n let handler = handlers[event.type];\n return handler ? handler(view, event) || event.defaultPrevented : false;\n });\n}\nfunction eventBelongsToView(view, event) {\n if (!event.bubbles)\n return true;\n if (event.defaultPrevented)\n return false;\n for (let node = event.target; node != view.dom; node = node.parentNode)\n if (!node || node.nodeType == 11 ||\n (node.pmViewDesc && node.pmViewDesc.stopEvent(event)))\n return false;\n return true;\n}\nfunction dispatchEvent(view, event) {\n if (!runCustomHandler(view, event) && handlers[event.type] &&\n (view.editable || !(event.type in editHandlers)))\n handlers[event.type](view, event);\n}\neditHandlers.keydown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.keyCode == 16 || event.shiftKey;\n if (inOrNearComposition(view, event))\n return;\n view.input.lastKeyCode = event.keyCode;\n view.input.lastKeyCodeTime = Date.now();\n // Suppress enter key events on Chrome Android, because those tend\n // to be part of a confused sequence of composition events fired,\n // and handling them eagerly tends to corrupt the input.\n if (android && chrome && event.keyCode == 13)\n return;\n if (event.keyCode != 229)\n view.domObserver.forceFlush();\n // On iOS, if we preventDefault enter key presses, the virtual\n // keyboard gets confused. So the hack here is to set a flag that\n // makes the DOM change code recognize that what just happens should\n // be replaced by whatever the Enter key handlers do.\n if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {\n let now = Date.now();\n view.input.lastIOSEnter = now;\n view.input.lastIOSEnterFallbackTimeout = setTimeout(() => {\n if (view.input.lastIOSEnter == now) {\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")));\n view.input.lastIOSEnter = 0;\n }\n }, 200);\n }\n else if (view.someProp(\"handleKeyDown\", f => f(view, event)) || captureKeyDown(view, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"key\");\n }\n};\neditHandlers.keyup = (view, event) => {\n if (event.keyCode == 16)\n view.input.shiftKey = false;\n};\neditHandlers.keypress = (view, _event) => {\n let event = _event;\n if (inOrNearComposition(view, event) || !event.charCode ||\n event.ctrlKey && !event.altKey || mac$2 && event.metaKey)\n return;\n if (view.someProp(\"handleKeyPress\", f => f(view, event))) {\n event.preventDefault();\n return;\n }\n let sel = view.state.selection;\n if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {\n let text = String.fromCharCode(event.charCode);\n if (!/[\\r\\n]/.test(text) && !view.someProp(\"handleTextInput\", f => f(view, sel.$from.pos, sel.$to.pos, text)))\n view.dispatch(view.state.tr.insertText(text).scrollIntoView());\n event.preventDefault();\n }\n};\nfunction eventCoords(event) { return { left: event.clientX, top: event.clientY }; }\nfunction isNear(event, click) {\n let dx = click.x - event.clientX, dy = click.y - event.clientY;\n return dx * dx + dy * dy < 100;\n}\nfunction runHandlerOnContext(view, propName, pos, inside, event) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n if (view.someProp(propName, f => i > $pos.depth ? f(view, pos, $pos.nodeAfter, $pos.before(i), event, true)\n : f(view, pos, $pos.node(i), $pos.before(i), event, false)))\n return true;\n }\n return false;\n}\nfunction updateSelection(view, selection, origin) {\n if (!view.focused)\n view.focus();\n let tr = view.state.tr.setSelection(selection);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n view.dispatch(tr);\n}\nfunction selectClickedLeaf(view, inside) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside), node = $pos.nodeAfter;\n if (node && node.isAtom && NodeSelection.isSelectable(node)) {\n updateSelection(view, new NodeSelection($pos), \"pointer\");\n return true;\n }\n return false;\n}\nfunction selectClickedNode(view, inside) {\n if (inside == -1)\n return false;\n let sel = view.state.selection, selectedNode, selectAt;\n if (sel instanceof NodeSelection)\n selectedNode = sel.node;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n if (NodeSelection.isSelectable(node)) {\n if (selectedNode && sel.$from.depth > 0 &&\n i >= sel.$from.depth && $pos.before(sel.$from.depth + 1) == sel.$from.pos)\n selectAt = $pos.before(sel.$from.depth);\n else\n selectAt = $pos.before(i);\n break;\n }\n }\n if (selectAt != null) {\n updateSelection(view, NodeSelection.create(view.state.doc, selectAt), \"pointer\");\n return true;\n }\n else {\n return false;\n }\n}\nfunction handleSingleClick(view, pos, inside, event, selectNode) {\n return runHandlerOnContext(view, \"handleClickOn\", pos, inside, event) ||\n view.someProp(\"handleClick\", f => f(view, pos, event)) ||\n (selectNode ? selectClickedNode(view, inside) : selectClickedLeaf(view, inside));\n}\nfunction handleDoubleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleDoubleClickOn\", pos, inside, event) ||\n view.someProp(\"handleDoubleClick\", f => f(view, pos, event));\n}\nfunction handleTripleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleTripleClickOn\", pos, inside, event) ||\n view.someProp(\"handleTripleClick\", f => f(view, pos, event)) ||\n defaultTripleClick(view, inside, event);\n}\nfunction defaultTripleClick(view, inside, event) {\n if (event.button != 0)\n return false;\n let doc = view.state.doc;\n if (inside == -1) {\n if (doc.inlineContent) {\n updateSelection(view, TextSelection.create(doc, 0, doc.content.size), \"pointer\");\n return true;\n }\n return false;\n }\n let $pos = doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n let nodePos = $pos.before(i);\n if (node.inlineContent)\n updateSelection(view, TextSelection.create(doc, nodePos + 1, nodePos + 1 + node.content.size), \"pointer\");\n else if (NodeSelection.isSelectable(node))\n updateSelection(view, NodeSelection.create(doc, nodePos), \"pointer\");\n else\n continue;\n return true;\n }\n}\nfunction forceDOMFlush(view) {\n return endComposition(view);\n}\nconst selectNodeModifier = mac$2 ? \"metaKey\" : \"ctrlKey\";\nhandlers.mousedown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.shiftKey;\n let flushed = forceDOMFlush(view);\n let now = Date.now(), type = \"singleClick\";\n if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier]) {\n if (view.input.lastClick.type == \"singleClick\")\n type = \"doubleClick\";\n else if (view.input.lastClick.type == \"doubleClick\")\n type = \"tripleClick\";\n }\n view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type };\n let pos = view.posAtCoords(eventCoords(event));\n if (!pos)\n return;\n if (type == \"singleClick\") {\n if (view.input.mouseDown)\n view.input.mouseDown.done();\n view.input.mouseDown = new MouseDown(view, pos, event, !!flushed);\n }\n else if ((type == \"doubleClick\" ? handleDoubleClick : handleTripleClick)(view, pos.pos, pos.inside, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"pointer\");\n }\n};\nclass MouseDown {\n constructor(view, pos, event, flushed) {\n this.view = view;\n this.pos = pos;\n this.event = event;\n this.flushed = flushed;\n this.delayedSelectionSync = false;\n this.mightDrag = null;\n this.startDoc = view.state.doc;\n this.selectNode = !!event[selectNodeModifier];\n this.allowDefault = event.shiftKey;\n let targetNode, targetPos;\n if (pos.inside > -1) {\n targetNode = view.state.doc.nodeAt(pos.inside);\n targetPos = pos.inside;\n }\n else {\n let $pos = view.state.doc.resolve(pos.pos);\n targetNode = $pos.parent;\n targetPos = $pos.depth ? $pos.before() : 0;\n }\n const target = flushed ? null : event.target;\n const targetDesc = target ? view.docView.nearestDesc(target, true) : null;\n this.target = targetDesc ? targetDesc.dom : null;\n let { selection } = view.state;\n if (event.button == 0 &&\n targetNode.type.spec.draggable && targetNode.type.spec.selectable !== false ||\n selection instanceof NodeSelection && selection.from <= targetPos && selection.to > targetPos)\n this.mightDrag = {\n node: targetNode,\n pos: targetPos,\n addAttr: !!(this.target && !this.target.draggable),\n setUneditable: !!(this.target && gecko && !this.target.hasAttribute(\"contentEditable\"))\n };\n if (this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable)) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.draggable = true;\n if (this.mightDrag.setUneditable)\n setTimeout(() => {\n if (this.view.input.mouseDown == this)\n this.target.setAttribute(\"contentEditable\", \"false\");\n }, 20);\n this.view.domObserver.start();\n }\n view.root.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n view.root.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n setSelectionOrigin(view, \"pointer\");\n }\n done() {\n this.view.root.removeEventListener(\"mouseup\", this.up);\n this.view.root.removeEventListener(\"mousemove\", this.move);\n if (this.mightDrag && this.target) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.removeAttribute(\"draggable\");\n if (this.mightDrag.setUneditable)\n this.target.removeAttribute(\"contentEditable\");\n this.view.domObserver.start();\n }\n if (this.delayedSelectionSync)\n setTimeout(() => selectionToDOM(this.view));\n this.view.input.mouseDown = null;\n }\n up(event) {\n this.done();\n if (!this.view.dom.contains(event.target))\n return;\n let pos = this.pos;\n if (this.view.state.doc != this.startDoc)\n pos = this.view.posAtCoords(eventCoords(event));\n this.updateAllowDefault(event);\n if (this.allowDefault || !pos) {\n setSelectionOrigin(this.view, \"pointer\");\n }\n else if (handleSingleClick(this.view, pos.pos, pos.inside, event, this.selectNode)) {\n event.preventDefault();\n }\n else if (event.button == 0 &&\n (this.flushed ||\n // Safari ignores clicks on draggable elements\n (safari && this.mightDrag && !this.mightDrag.node.isAtom) ||\n // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n (chrome && !this.view.state.selection.visible &&\n Math.min(Math.abs(pos.pos - this.view.state.selection.from), Math.abs(pos.pos - this.view.state.selection.to)) <= 2))) {\n updateSelection(this.view, Selection.near(this.view.state.doc.resolve(pos.pos)), \"pointer\");\n event.preventDefault();\n }\n else {\n setSelectionOrigin(this.view, \"pointer\");\n }\n }\n move(event) {\n this.updateAllowDefault(event);\n setSelectionOrigin(this.view, \"pointer\");\n if (event.buttons == 0)\n this.done();\n }\n updateAllowDefault(event) {\n if (!this.allowDefault && (Math.abs(this.event.x - event.clientX) > 4 ||\n Math.abs(this.event.y - event.clientY) > 4))\n this.allowDefault = true;\n }\n}\nhandlers.touchstart = view => {\n view.input.lastTouch = Date.now();\n forceDOMFlush(view);\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.touchmove = view => {\n view.input.lastTouch = Date.now();\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.contextmenu = view => forceDOMFlush(view);\nfunction inOrNearComposition(view, event) {\n if (view.composing)\n return true;\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On Japanese input method editors (IMEs), the Enter key is used to confirm character\n // selection. On Safari, when Enter is pressed, compositionend and keydown events are\n // emitted. The keydown event triggers newline insertion, which we don't want.\n // This method returns true if the keydown event should be ignored.\n // We only ignore it once, as pressing Enter a second time *should* insert a newline.\n // Furthermore, the keydown event timestamp must be close to the compositionEndedAt timestamp.\n // This guards against the case where compositionend is triggered without the keyboard\n // (e.g. character confirmation may be done with the mouse), and keydown is triggered\n // afterwards- we wouldn't want to ignore the keydown event in this case.\n if (safari && Math.abs(event.timeStamp - view.input.compositionEndedAt) < 500) {\n view.input.compositionEndedAt = -2e8;\n return true;\n }\n return false;\n}\n// Drop active composition after 5 seconds of inactivity on Android\nconst timeoutComposition = android ? 5000 : -1;\neditHandlers.compositionstart = editHandlers.compositionupdate = view => {\n if (!view.composing) {\n view.domObserver.flush();\n let { state } = view, $pos = state.selection.$from;\n if (state.selection.empty &&\n (state.storedMarks ||\n (!$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(m => m.type.spec.inclusive === false)))) {\n // Need to wrap the cursor in mark nodes different from the ones in the DOM context\n view.markCursor = view.state.storedMarks || $pos.marks();\n endComposition(view, true);\n view.markCursor = null;\n }\n else {\n endComposition(view);\n // In firefox, if the cursor is after but outside a marked node,\n // the inserted text won't inherit the marks. So this moves it\n // inside if necessary.\n if (gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {\n let sel = view.domSelectionRange();\n for (let node = sel.focusNode, offset = sel.focusOffset; node && node.nodeType == 1 && offset != 0;) {\n let before = offset < 0 ? node.lastChild : node.childNodes[offset - 1];\n if (!before)\n break;\n if (before.nodeType == 3) {\n view.domSelection().collapse(before, before.nodeValue.length);\n break;\n }\n else {\n node = before;\n offset = -1;\n }\n }\n }\n }\n view.input.composing = true;\n }\n scheduleComposeEnd(view, timeoutComposition);\n};\neditHandlers.compositionend = (view, event) => {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = event.timeStamp;\n view.input.compositionID++;\n scheduleComposeEnd(view, 20);\n }\n};\nfunction scheduleComposeEnd(view, delay) {\n clearTimeout(view.input.composingTimeout);\n if (delay > -1)\n view.input.composingTimeout = setTimeout(() => endComposition(view), delay);\n}\nfunction clearComposition(view) {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = timestampFromCustomEvent();\n }\n while (view.input.compositionNodes.length > 0)\n view.input.compositionNodes.pop().markParentsDirty();\n}\nfunction timestampFromCustomEvent() {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"event\", true, true);\n return event.timeStamp;\n}\n/**\n@internal\n*/\nfunction endComposition(view, forceUpdate = false) {\n if (android && view.domObserver.flushingSoon >= 0)\n return;\n view.domObserver.forceFlush();\n clearComposition(view);\n if (forceUpdate || view.docView && view.docView.dirty) {\n let sel = selectionFromDOM(view);\n if (sel && !sel.eq(view.state.selection))\n view.dispatch(view.state.tr.setSelection(sel));\n else\n view.updateState(view.state);\n return true;\n }\n return false;\n}\nfunction captureCopy(view, dom) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n if (!view.dom.parentNode)\n return;\n let wrap = view.dom.parentNode.appendChild(document.createElement(\"div\"));\n wrap.appendChild(dom);\n wrap.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n let sel = getSelection(), range = document.createRange();\n range.selectNodeContents(dom);\n // Done because IE will fire a selectionchange moving the selection\n // to its start when removeAllRanges is called and the editor still\n // has focus (which will mess up the editor's selection state).\n view.dom.blur();\n sel.removeAllRanges();\n sel.addRange(range);\n setTimeout(() => {\n if (wrap.parentNode)\n wrap.parentNode.removeChild(wrap);\n view.focus();\n }, 50);\n}\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nconst brokenClipboardAPI = (ie$1 && ie_version < 15) ||\n (ios && webkit_version < 604);\nhandlers.copy = editHandlers.cut = (view, _event) => {\n let event = _event;\n let sel = view.state.selection, cut = event.type == \"cut\";\n if (sel.empty)\n return;\n // IE and Edge's clipboard interface is completely broken\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let slice = sel.content(), { dom, text } = serializeForClipboard(view, slice);\n if (data) {\n event.preventDefault();\n data.clearData();\n data.setData(\"text/html\", dom.innerHTML);\n data.setData(\"text/plain\", text);\n }\n else {\n captureCopy(view, dom);\n }\n if (cut)\n view.dispatch(view.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\"));\n};\nfunction sliceSingleNode(slice) {\n return slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1 ? slice.content.firstChild : null;\n}\nfunction capturePaste(view, event) {\n if (!view.dom.parentNode)\n return;\n let plainText = view.input.shiftKey || view.state.selection.$from.parent.type.spec.code;\n let target = view.dom.parentNode.appendChild(document.createElement(plainText ? \"textarea\" : \"div\"));\n if (!plainText)\n target.contentEditable = \"true\";\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n setTimeout(() => {\n view.focus();\n if (target.parentNode)\n target.parentNode.removeChild(target);\n if (plainText)\n doPaste(view, target.value, null, plain, event);\n else\n doPaste(view, target.textContent, target.innerHTML, plain, event);\n }, 50);\n}\nfunction doPaste(view, text, html, preferPlain, event) {\n let slice = parseFromClipboard(view, text, html, preferPlain, view.state.selection.$from);\n if (view.someProp(\"handlePaste\", f => f(view, event, slice || Slice.empty)))\n return true;\n if (!slice)\n return false;\n let singleNode = sliceSingleNode(slice);\n let tr = singleNode\n ? view.state.tr.replaceSelectionWith(singleNode, preferPlain)\n : view.state.tr.replaceSelection(slice);\n view.dispatch(tr.scrollIntoView().setMeta(\"paste\", true).setMeta(\"uiEvent\", \"paste\"));\n return true;\n}\neditHandlers.paste = (view, _event) => {\n let event = _event;\n // Handling paste from JavaScript during composition is very poorly\n // handled by browsers, so as a dodgy but preferable kludge, we just\n // let the browser do its native thing there, except on Android,\n // where the editor is almost always composing.\n if (view.composing && !android)\n return;\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n if (data && doPaste(view, data.getData(\"text/plain\"), data.getData(\"text/html\"), plain, event))\n event.preventDefault();\n else\n capturePaste(view, event);\n};\nclass Dragging {\n constructor(slice, move) {\n this.slice = slice;\n this.move = move;\n }\n}\nconst dragCopyModifier = mac$2 ? \"altKey\" : \"ctrlKey\";\nhandlers.dragstart = (view, _event) => {\n let event = _event;\n let mouseDown = view.input.mouseDown;\n if (mouseDown)\n mouseDown.done();\n if (!event.dataTransfer)\n return;\n let sel = view.state.selection;\n let pos = sel.empty ? null : view.posAtCoords(eventCoords(event));\n if (pos && pos.pos >= sel.from && pos.pos <= (sel instanceof NodeSelection ? sel.to - 1 : sel.to)) ;\n else if (mouseDown && mouseDown.mightDrag) {\n view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, mouseDown.mightDrag.pos)));\n }\n else if (event.target && event.target.nodeType == 1) {\n let desc = view.docView.nearestDesc(event.target, true);\n if (desc && desc.node.type.spec.draggable && desc != view.docView)\n view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, desc.posBefore)));\n }\n let slice = view.state.selection.content(), { dom, text } = serializeForClipboard(view, slice);\n event.dataTransfer.clearData();\n event.dataTransfer.setData(brokenClipboardAPI ? \"Text\" : \"text/html\", dom.innerHTML);\n // See https://github.com/ProseMirror/prosemirror/issues/1156\n event.dataTransfer.effectAllowed = \"copyMove\";\n if (!brokenClipboardAPI)\n event.dataTransfer.setData(\"text/plain\", text);\n view.dragging = new Dragging(slice, !event[dragCopyModifier]);\n};\nhandlers.dragend = view => {\n let dragging = view.dragging;\n window.setTimeout(() => {\n if (view.dragging == dragging)\n view.dragging = null;\n }, 50);\n};\neditHandlers.dragover = editHandlers.dragenter = (_, e) => e.preventDefault();\neditHandlers.drop = (view, _event) => {\n let event = _event;\n let dragging = view.dragging;\n view.dragging = null;\n if (!event.dataTransfer)\n return;\n let eventPos = view.posAtCoords(eventCoords(event));\n if (!eventPos)\n return;\n let $mouse = view.state.doc.resolve(eventPos.pos);\n let slice = dragging && dragging.slice;\n if (slice) {\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n }\n else {\n slice = parseFromClipboard(view, event.dataTransfer.getData(brokenClipboardAPI ? \"Text\" : \"text/plain\"), brokenClipboardAPI ? null : event.dataTransfer.getData(\"text/html\"), false, $mouse);\n }\n let move = !!(dragging && !event[dragCopyModifier]);\n if (view.someProp(\"handleDrop\", f => f(view, event, slice || Slice.empty, move))) {\n event.preventDefault();\n return;\n }\n if (!slice)\n return;\n event.preventDefault();\n let insertPos = slice ? dropPoint(view.state.doc, $mouse.pos, slice) : $mouse.pos;\n if (insertPos == null)\n insertPos = $mouse.pos;\n let tr = view.state.tr;\n if (move)\n tr.deleteSelection();\n let pos = tr.mapping.map(insertPos);\n let isNode = slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1;\n let beforeInsert = tr.doc;\n if (isNode)\n tr.replaceRangeWith(pos, pos, slice.content.firstChild);\n else\n tr.replaceRange(pos, pos, slice);\n if (tr.doc.eq(beforeInsert))\n return;\n let $pos = tr.doc.resolve(pos);\n if (isNode && NodeSelection.isSelectable(slice.content.firstChild) &&\n $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice.content.firstChild)) {\n tr.setSelection(new NodeSelection($pos));\n }\n else {\n let end = tr.mapping.map(insertPos);\n tr.mapping.maps[tr.mapping.maps.length - 1].forEach((_from, _to, _newFrom, newTo) => end = newTo);\n tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end)));\n }\n view.focus();\n view.dispatch(tr.setMeta(\"uiEvent\", \"drop\"));\n};\nhandlers.focus = view => {\n view.input.lastFocus = Date.now();\n if (!view.focused) {\n view.domObserver.stop();\n view.dom.classList.add(\"ProseMirror-focused\");\n view.domObserver.start();\n view.focused = true;\n setTimeout(() => {\n if (view.docView && view.hasFocus() && !view.domObserver.currentSelection.eq(view.domSelectionRange()))\n selectionToDOM(view);\n }, 20);\n }\n};\nhandlers.blur = (view, _event) => {\n let event = _event;\n if (view.focused) {\n view.domObserver.stop();\n view.dom.classList.remove(\"ProseMirror-focused\");\n view.domObserver.start();\n if (event.relatedTarget && view.dom.contains(event.relatedTarget))\n view.domObserver.currentSelection.clear();\n view.focused = false;\n }\n};\nhandlers.beforeinput = (view, _event) => {\n let event = _event;\n // We should probably do more with beforeinput events, but support\n // is so spotty that I'm still waiting to see where they are going.\n // Very specific hack to deal with backspace sometimes failing on\n // Chrome Android when after an uneditable node.\n if (chrome && android && event.inputType == \"deleteContentBackward\") {\n view.domObserver.flushSoon();\n let { domChangeCount } = view.input;\n setTimeout(() => {\n if (view.input.domChangeCount != domChangeCount)\n return; // Event already had some effect\n // This bug tends to close the virtual keyboard, so we refocus\n view.dom.blur();\n view.focus();\n if (view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\"))))\n return;\n let { $cursor } = view.state.selection;\n // Crude approximation of backspace behavior when no command handled it\n if ($cursor && $cursor.pos > 0)\n view.dispatch(view.state.tr.delete($cursor.pos - 1, $cursor.pos).scrollIntoView());\n }, 50);\n }\n};\n// Make sure all handlers get registered\nfor (let prop in editHandlers)\n handlers[prop] = editHandlers[prop];\n\nfunction compareObjs(a, b) {\n if (a == b)\n return true;\n for (let p in a)\n if (a[p] !== b[p])\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n return true;\n}\nclass WidgetType {\n constructor(toDOM, spec) {\n this.toDOM = toDOM;\n this.spec = spec || noSpec;\n this.side = this.spec.side || 0;\n }\n map(mapping, span, offset, oldOffset) {\n let { pos, deleted } = mapping.mapResult(span.from + oldOffset, this.side < 0 ? -1 : 1);\n return deleted ? null : new Decoration(pos - offset, pos - offset, this);\n }\n valid() { return true; }\n eq(other) {\n return this == other ||\n (other instanceof WidgetType &&\n (this.spec.key && this.spec.key == other.spec.key ||\n this.toDOM == other.toDOM && compareObjs(this.spec, other.spec)));\n }\n destroy(node) {\n if (this.spec.destroy)\n this.spec.destroy(node);\n }\n}\nclass InlineType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.map(span.from + oldOffset, this.spec.inclusiveStart ? -1 : 1) - offset;\n let to = mapping.map(span.to + oldOffset, this.spec.inclusiveEnd ? 1 : -1) - offset;\n return from >= to ? null : new Decoration(from, to, this);\n }\n valid(_, span) { return span.from < span.to; }\n eq(other) {\n return this == other ||\n (other instanceof InlineType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n static is(span) { return span.type instanceof InlineType; }\n destroy() { }\n}\nclass NodeType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.mapResult(span.from + oldOffset, 1);\n if (from.deleted)\n return null;\n let to = mapping.mapResult(span.to + oldOffset, -1);\n if (to.deleted || to.pos <= from.pos)\n return null;\n return new Decoration(from.pos - offset, to.pos - offset, this);\n }\n valid(node, span) {\n let { index, offset } = node.content.findIndex(span.from), child;\n return offset == span.from && !(child = node.child(index)).isText && offset + child.nodeSize == span.to;\n }\n eq(other) {\n return this == other ||\n (other instanceof NodeType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n destroy() { }\n}\n/**\nDecoration objects can be provided to the view through the\n[`decorations` prop](https://prosemirror.net/docs/ref/#view.EditorProps.decorations). They come in\nseveral variants—see the static members of this class for details.\n*/\nclass Decoration {\n /**\n @internal\n */\n constructor(\n /**\n The start position of the decoration.\n */\n from, \n /**\n The end position. Will be the same as `from` for [widget\n decorations](https://prosemirror.net/docs/ref/#view.Decoration^widget).\n */\n to, \n /**\n @internal\n */\n type) {\n this.from = from;\n this.to = to;\n this.type = type;\n }\n /**\n @internal\n */\n copy(from, to) {\n return new Decoration(from, to, this.type);\n }\n /**\n @internal\n */\n eq(other, offset = 0) {\n return this.type.eq(other.type) && this.from + offset == other.from && this.to + offset == other.to;\n }\n /**\n @internal\n */\n map(mapping, offset, oldOffset) {\n return this.type.map(mapping, this, offset, oldOffset);\n }\n /**\n Creates a widget decoration, which is a DOM node that's shown in\n the document at the given position. It is recommended that you\n delay rendering the widget by passing a function that will be\n called when the widget is actually drawn in a view, but you can\n also directly pass a DOM node. `getPos` can be used to find the\n widget's current document position.\n */\n static widget(pos, toDOM, spec) {\n return new Decoration(pos, pos, new WidgetType(toDOM, spec));\n }\n /**\n Creates an inline decoration, which adds the given attributes to\n each inline node between `from` and `to`.\n */\n static inline(from, to, attrs, spec) {\n return new Decoration(from, to, new InlineType(attrs, spec));\n }\n /**\n Creates a node decoration. `from` and `to` should point precisely\n before and after a node in the document. That node, and only that\n node, will receive the given attributes.\n */\n static node(from, to, attrs, spec) {\n return new Decoration(from, to, new NodeType(attrs, spec));\n }\n /**\n The spec provided when creating this decoration. Can be useful\n if you've stored extra information in that object.\n */\n get spec() { return this.type.spec; }\n /**\n @internal\n */\n get inline() { return this.type instanceof InlineType; }\n}\nconst none = [], noSpec = {};\n/**\nA collection of [decorations](https://prosemirror.net/docs/ref/#view.Decoration), organized in such\na way that the drawing algorithm can efficiently use and compare\nthem. This is a persistent data structure—it is not modified,\nupdates create a new value.\n*/\nclass DecorationSet {\n /**\n @internal\n */\n constructor(local, children) {\n this.local = local.length ? local : none;\n this.children = children.length ? children : none;\n }\n /**\n Create a set of decorations, using the structure of the given\n document.\n */\n static create(doc, decorations) {\n return decorations.length ? buildTree(decorations, doc, 0, noSpec) : empty;\n }\n /**\n Find all decorations in this set which touch the given range\n (including decorations that start or end directly at the\n boundaries) and match the given predicate on their spec. When\n `start` and `end` are omitted, all decorations in the set are\n considered. When `predicate` isn't given, all decorations are\n assumed to match.\n */\n find(start, end, predicate) {\n let result = [];\n this.findInner(start == null ? 0 : start, end == null ? 1e9 : end, result, 0, predicate);\n return result;\n }\n findInner(start, end, result, offset, predicate) {\n for (let i = 0; i < this.local.length; i++) {\n let span = this.local[i];\n if (span.from <= end && span.to >= start && (!predicate || predicate(span.spec)))\n result.push(span.copy(span.from + offset, span.to + offset));\n }\n for (let i = 0; i < this.children.length; i += 3) {\n if (this.children[i] < end && this.children[i + 1] > start) {\n let childOff = this.children[i] + 1;\n this.children[i + 2].findInner(start - childOff, end - childOff, result, offset + childOff, predicate);\n }\n }\n }\n /**\n Map the set of decorations in response to a change in the\n document.\n */\n map(mapping, doc, options) {\n if (this == empty || mapping.maps.length == 0)\n return this;\n return this.mapInner(mapping, doc, 0, 0, options || noSpec);\n }\n /**\n @internal\n */\n mapInner(mapping, node, offset, oldOffset, options) {\n let newLocal;\n for (let i = 0; i < this.local.length; i++) {\n let mapped = this.local[i].map(mapping, offset, oldOffset);\n if (mapped && mapped.type.valid(node, mapped))\n (newLocal || (newLocal = [])).push(mapped);\n else if (options.onRemove)\n options.onRemove(this.local[i].spec);\n }\n if (this.children.length)\n return mapChildren(this.children, newLocal || [], mapping, node, offset, oldOffset, options);\n else\n return newLocal ? new DecorationSet(newLocal.sort(byPos), none) : empty;\n }\n /**\n Add the given array of decorations to the ones in the set,\n producing a new set. Needs access to the current document to\n create the appropriate tree structure.\n */\n add(doc, decorations) {\n if (!decorations.length)\n return this;\n if (this == empty)\n return DecorationSet.create(doc, decorations);\n return this.addInner(doc, decorations, 0);\n }\n addInner(doc, decorations, offset) {\n let children, childIndex = 0;\n doc.forEach((childNode, childOffset) => {\n let baseOffset = childOffset + offset, found;\n if (!(found = takeSpansForNode(decorations, childNode, baseOffset)))\n return;\n if (!children)\n children = this.children.slice();\n while (childIndex < children.length && children[childIndex] < childOffset)\n childIndex += 3;\n if (children[childIndex] == childOffset)\n children[childIndex + 2] = children[childIndex + 2].addInner(childNode, found, baseOffset + 1);\n else\n children.splice(childIndex, 0, childOffset, childOffset + childNode.nodeSize, buildTree(found, childNode, baseOffset + 1, noSpec));\n childIndex += 3;\n });\n let local = moveSpans(childIndex ? withoutNulls(decorations) : decorations, -offset);\n for (let i = 0; i < local.length; i++)\n if (!local[i].type.valid(doc, local[i]))\n local.splice(i--, 1);\n return new DecorationSet(local.length ? this.local.concat(local).sort(byPos) : this.local, children || this.children);\n }\n /**\n Create a new set that contains the decorations in this set, minus\n the ones in the given array.\n */\n remove(decorations) {\n if (decorations.length == 0 || this == empty)\n return this;\n return this.removeInner(decorations, 0);\n }\n removeInner(decorations, offset) {\n let children = this.children, local = this.local;\n for (let i = 0; i < children.length; i += 3) {\n let found;\n let from = children[i] + offset, to = children[i + 1] + offset;\n for (let j = 0, span; j < decorations.length; j++)\n if (span = decorations[j]) {\n if (span.from > from && span.to < to) {\n decorations[j] = null;\n (found || (found = [])).push(span);\n }\n }\n if (!found)\n continue;\n if (children == this.children)\n children = this.children.slice();\n let removed = children[i + 2].removeInner(found, from + 1);\n if (removed != empty) {\n children[i + 2] = removed;\n }\n else {\n children.splice(i, 3);\n i -= 3;\n }\n }\n if (local.length)\n for (let i = 0, span; i < decorations.length; i++)\n if (span = decorations[i]) {\n for (let j = 0; j < local.length; j++)\n if (local[j].eq(span, offset)) {\n if (local == this.local)\n local = this.local.slice();\n local.splice(j--, 1);\n }\n }\n if (children == this.children && local == this.local)\n return this;\n return local.length || children.length ? new DecorationSet(local, children) : empty;\n }\n /**\n @internal\n */\n forChild(offset, node) {\n if (this == empty)\n return this;\n if (node.isLeaf)\n return DecorationSet.empty;\n let child, local;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] >= offset) {\n if (this.children[i] == offset)\n child = this.children[i + 2];\n break;\n }\n let start = offset + 1, end = start + node.content.size;\n for (let i = 0; i < this.local.length; i++) {\n let dec = this.local[i];\n if (dec.from < end && dec.to > start && (dec.type instanceof InlineType)) {\n let from = Math.max(start, dec.from) - start, to = Math.min(end, dec.to) - start;\n if (from < to)\n (local || (local = [])).push(dec.copy(from, to));\n }\n }\n if (local) {\n let localSet = new DecorationSet(local.sort(byPos), none);\n return child ? new DecorationGroup([localSet, child]) : localSet;\n }\n return child || empty;\n }\n /**\n @internal\n */\n eq(other) {\n if (this == other)\n return true;\n if (!(other instanceof DecorationSet) ||\n this.local.length != other.local.length ||\n this.children.length != other.children.length)\n return false;\n for (let i = 0; i < this.local.length; i++)\n if (!this.local[i].eq(other.local[i]))\n return false;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] != other.children[i] ||\n this.children[i + 1] != other.children[i + 1] ||\n !this.children[i + 2].eq(other.children[i + 2]))\n return false;\n return true;\n }\n /**\n @internal\n */\n locals(node) {\n return removeOverlap(this.localsInner(node));\n }\n /**\n @internal\n */\n localsInner(node) {\n if (this == empty)\n return none;\n if (node.inlineContent || !this.local.some(InlineType.is))\n return this.local;\n let result = [];\n for (let i = 0; i < this.local.length; i++) {\n if (!(this.local[i].type instanceof InlineType))\n result.push(this.local[i]);\n }\n return result;\n }\n}\n/**\nThe empty set of decorations.\n*/\nDecorationSet.empty = new DecorationSet([], []);\n/**\n@internal\n*/\nDecorationSet.removeOverlap = removeOverlap;\nconst empty = DecorationSet.empty;\n// An abstraction that allows the code dealing with decorations to\n// treat multiple DecorationSet objects as if it were a single object\n// with (a subset of) the same interface.\nclass DecorationGroup {\n constructor(members) {\n this.members = members;\n }\n map(mapping, doc) {\n const mappedDecos = this.members.map(member => member.map(mapping, doc, noSpec));\n return DecorationGroup.from(mappedDecos);\n }\n forChild(offset, child) {\n if (child.isLeaf)\n return DecorationSet.empty;\n let found = [];\n for (let i = 0; i < this.members.length; i++) {\n let result = this.members[i].forChild(offset, child);\n if (result == empty)\n continue;\n if (result instanceof DecorationGroup)\n found = found.concat(result.members);\n else\n found.push(result);\n }\n return DecorationGroup.from(found);\n }\n eq(other) {\n if (!(other instanceof DecorationGroup) ||\n other.members.length != this.members.length)\n return false;\n for (let i = 0; i < this.members.length; i++)\n if (!this.members[i].eq(other.members[i]))\n return false;\n return true;\n }\n locals(node) {\n let result, sorted = true;\n for (let i = 0; i < this.members.length; i++) {\n let locals = this.members[i].localsInner(node);\n if (!locals.length)\n continue;\n if (!result) {\n result = locals;\n }\n else {\n if (sorted) {\n result = result.slice();\n sorted = false;\n }\n for (let j = 0; j < locals.length; j++)\n result.push(locals[j]);\n }\n }\n return result ? removeOverlap(sorted ? result : result.sort(byPos)) : none;\n }\n // Create a group for the given array of decoration sets, or return\n // a single set when possible.\n static from(members) {\n switch (members.length) {\n case 0: return empty;\n case 1: return members[0];\n default: return new DecorationGroup(members.every(m => m instanceof DecorationSet) ? members :\n members.reduce((r, m) => r.concat(m instanceof DecorationSet ? m : m.members), []));\n }\n }\n}\nfunction mapChildren(oldChildren, newLocal, mapping, node, offset, oldOffset, options) {\n let children = oldChildren.slice();\n // Mark the children that are directly touched by changes, and\n // move those that are after the changes.\n for (let i = 0, baseOffset = oldOffset; i < mapping.maps.length; i++) {\n let moved = 0;\n mapping.maps[i].forEach((oldStart, oldEnd, newStart, newEnd) => {\n let dSize = (newEnd - newStart) - (oldEnd - oldStart);\n for (let i = 0; i < children.length; i += 3) {\n let end = children[i + 1];\n if (end < 0 || oldStart > end + baseOffset - moved)\n continue;\n let start = children[i] + baseOffset - moved;\n if (oldEnd >= start) {\n children[i + 1] = oldStart <= start ? -2 : -1;\n }\n else if (newStart >= offset && dSize) {\n children[i] += dSize;\n children[i + 1] += dSize;\n }\n }\n moved += dSize;\n });\n baseOffset = mapping.maps[i].map(baseOffset, -1);\n }\n // Find the child nodes that still correspond to a single node,\n // recursively call mapInner on them and update their positions.\n let mustRebuild = false;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) { // Touched nodes\n if (children[i + 1] == -2) {\n mustRebuild = true;\n children[i + 1] = -1;\n continue;\n }\n let from = mapping.map(oldChildren[i] + oldOffset), fromLocal = from - offset;\n if (fromLocal < 0 || fromLocal >= node.content.size) {\n mustRebuild = true;\n continue;\n }\n // Must read oldChildren because children was tagged with -1\n let to = mapping.map(oldChildren[i + 1] + oldOffset, -1), toLocal = to - offset;\n let { index, offset: childOffset } = node.content.findIndex(fromLocal);\n let childNode = node.maybeChild(index);\n if (childNode && childOffset == fromLocal && childOffset + childNode.nodeSize == toLocal) {\n let mapped = children[i + 2]\n .mapInner(mapping, childNode, from + 1, oldChildren[i] + oldOffset + 1, options);\n if (mapped != empty) {\n children[i] = fromLocal;\n children[i + 1] = toLocal;\n children[i + 2] = mapped;\n }\n else {\n children[i + 1] = -2;\n mustRebuild = true;\n }\n }\n else {\n mustRebuild = true;\n }\n }\n // Remaining children must be collected and rebuilt into the appropriate structure\n if (mustRebuild) {\n let decorations = mapAndGatherRemainingDecorations(children, oldChildren, newLocal, mapping, offset, oldOffset, options);\n let built = buildTree(decorations, node, 0, options);\n newLocal = built.local;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) {\n children.splice(i, 3);\n i -= 3;\n }\n for (let i = 0, j = 0; i < built.children.length; i += 3) {\n let from = built.children[i];\n while (j < children.length && children[j] < from)\n j += 3;\n children.splice(j, 0, built.children[i], built.children[i + 1], built.children[i + 2]);\n }\n }\n return new DecorationSet(newLocal.sort(byPos), children);\n}\nfunction moveSpans(spans, offset) {\n if (!offset || !spans.length)\n return spans;\n let result = [];\n for (let i = 0; i < spans.length; i++) {\n let span = spans[i];\n result.push(new Decoration(span.from + offset, span.to + offset, span.type));\n }\n return result;\n}\nfunction mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {\n // Gather all decorations from the remaining marked children\n function gather(set, oldOffset) {\n for (let i = 0; i < set.local.length; i++) {\n let mapped = set.local[i].map(mapping, offset, oldOffset);\n if (mapped)\n decorations.push(mapped);\n else if (options.onRemove)\n options.onRemove(set.local[i].spec);\n }\n for (let i = 0; i < set.children.length; i += 3)\n gather(set.children[i + 2], set.children[i] + oldOffset + 1);\n }\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] == -1)\n gather(children[i + 2], oldChildren[i] + oldOffset + 1);\n return decorations;\n}\nfunction takeSpansForNode(spans, node, offset) {\n if (node.isLeaf)\n return null;\n let end = offset + node.nodeSize, found = null;\n for (let i = 0, span; i < spans.length; i++) {\n if ((span = spans[i]) && span.from > offset && span.to < end) {\n (found || (found = [])).push(span);\n spans[i] = null;\n }\n }\n return found;\n}\nfunction withoutNulls(array) {\n let result = [];\n for (let i = 0; i < array.length; i++)\n if (array[i] != null)\n result.push(array[i]);\n return result;\n}\n// Build up a tree that corresponds to a set of decorations. `offset`\n// is a base offset that should be subtracted from the `from` and `to`\n// positions in the spans (so that we don't have to allocate new spans\n// for recursive calls).\nfunction buildTree(spans, node, offset, options) {\n let children = [], hasNulls = false;\n node.forEach((childNode, localStart) => {\n let found = takeSpansForNode(spans, childNode, localStart + offset);\n if (found) {\n hasNulls = true;\n let subtree = buildTree(found, childNode, offset + localStart + 1, options);\n if (subtree != empty)\n children.push(localStart, localStart + childNode.nodeSize, subtree);\n }\n });\n let locals = moveSpans(hasNulls ? withoutNulls(spans) : spans, -offset).sort(byPos);\n for (let i = 0; i < locals.length; i++)\n if (!locals[i].type.valid(node, locals[i])) {\n if (options.onRemove)\n options.onRemove(locals[i].spec);\n locals.splice(i--, 1);\n }\n return locals.length || children.length ? new DecorationSet(locals, children) : empty;\n}\n// Used to sort decorations so that ones with a low start position\n// come first, and within a set with the same start position, those\n// with an smaller end position come first.\nfunction byPos(a, b) {\n return a.from - b.from || a.to - b.to;\n}\n// Scan a sorted array of decorations for partially overlapping spans,\n// and split those so that only fully overlapping spans are left (to\n// make subsequent rendering easier). Will return the input array if\n// no partially overlapping spans are found (the common case).\nfunction removeOverlap(spans) {\n let working = spans;\n for (let i = 0; i < working.length - 1; i++) {\n let span = working[i];\n if (span.from != span.to)\n for (let j = i + 1; j < working.length; j++) {\n let next = working[j];\n if (next.from == span.from) {\n if (next.to != span.to) {\n if (working == spans)\n working = spans.slice();\n // Followed by a partially overlapping larger span. Split that\n // span.\n working[j] = next.copy(next.from, span.to);\n insertAhead(working, j + 1, next.copy(span.to, next.to));\n }\n continue;\n }\n else {\n if (next.from < span.to) {\n if (working == spans)\n working = spans.slice();\n // The end of this one overlaps with a subsequent span. Split\n // this one.\n working[i] = span.copy(span.from, next.from);\n insertAhead(working, j, span.copy(next.from, span.to));\n }\n break;\n }\n }\n }\n return working;\n}\nfunction insertAhead(array, i, deco) {\n while (i < array.length && byPos(deco, array[i]) > 0)\n i++;\n array.splice(i, 0, deco);\n}\n// Get the decorations associated with the current props of a view.\nfunction viewDecorations(view) {\n let found = [];\n view.someProp(\"decorations\", f => {\n let result = f(view.state);\n if (result && result != empty)\n found.push(result);\n });\n if (view.cursorWrapper)\n found.push(DecorationSet.create(view.state.doc, [view.cursorWrapper.deco]));\n return DecorationGroup.from(found);\n}\n\nconst observeOptions = {\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n attributes: true,\n attributeOldValue: true,\n subtree: true\n};\n// IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\nconst useCharData = ie$1 && ie_version <= 11;\nclass SelectionState {\n constructor() {\n this.anchorNode = null;\n this.anchorOffset = 0;\n this.focusNode = null;\n this.focusOffset = 0;\n }\n set(sel) {\n this.anchorNode = sel.anchorNode;\n this.anchorOffset = sel.anchorOffset;\n this.focusNode = sel.focusNode;\n this.focusOffset = sel.focusOffset;\n }\n clear() {\n this.anchorNode = this.focusNode = null;\n }\n eq(sel) {\n return sel.anchorNode == this.anchorNode && sel.anchorOffset == this.anchorOffset &&\n sel.focusNode == this.focusNode && sel.focusOffset == this.focusOffset;\n }\n}\nclass DOMObserver {\n constructor(view, handleDOMChange) {\n this.view = view;\n this.handleDOMChange = handleDOMChange;\n this.queue = [];\n this.flushingSoon = -1;\n this.observer = null;\n this.currentSelection = new SelectionState;\n this.onCharData = null;\n this.suppressingSelectionUpdates = false;\n this.observer = window.MutationObserver &&\n new window.MutationObserver(mutations => {\n for (let i = 0; i < mutations.length; i++)\n this.queue.push(mutations[i]);\n // IE11 will sometimes (on backspacing out a single character\n // text node after a BR node) call the observer callback\n // before actually updating the DOM, which will cause\n // ProseMirror to miss the change (see #930)\n if (ie$1 && ie_version <= 11 && mutations.some(m => m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length))\n this.flushSoon();\n else\n this.flush();\n });\n if (useCharData) {\n this.onCharData = e => {\n this.queue.push({ target: e.target, type: \"characterData\", oldValue: e.prevValue });\n this.flushSoon();\n };\n }\n this.onSelectionChange = this.onSelectionChange.bind(this);\n }\n flushSoon() {\n if (this.flushingSoon < 0)\n this.flushingSoon = window.setTimeout(() => { this.flushingSoon = -1; this.flush(); }, 20);\n }\n forceFlush() {\n if (this.flushingSoon > -1) {\n window.clearTimeout(this.flushingSoon);\n this.flushingSoon = -1;\n this.flush();\n }\n }\n start() {\n if (this.observer) {\n this.observer.takeRecords();\n this.observer.observe(this.view.dom, observeOptions);\n }\n if (this.onCharData)\n this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.connectSelection();\n }\n stop() {\n if (this.observer) {\n let take = this.observer.takeRecords();\n if (take.length) {\n for (let i = 0; i < take.length; i++)\n this.queue.push(take[i]);\n window.setTimeout(() => this.flush(), 20);\n }\n this.observer.disconnect();\n }\n if (this.onCharData)\n this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.disconnectSelection();\n }\n connectSelection() {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n }\n disconnectSelection() {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n }\n suppressSelectionUpdates() {\n this.suppressingSelectionUpdates = true;\n setTimeout(() => this.suppressingSelectionUpdates = false, 50);\n }\n onSelectionChange() {\n if (!hasFocusAndSelection(this.view))\n return;\n if (this.suppressingSelectionUpdates)\n return selectionToDOM(this.view);\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n if (ie$1 && ie_version <= 11 && !this.view.state.selection.empty) {\n let sel = this.view.domSelectionRange();\n // Selection.isCollapsed isn't reliable on IE\n if (sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n return this.flushSoon();\n }\n this.flush();\n }\n setCurSelection() {\n this.currentSelection.set(this.view.domSelectionRange());\n }\n ignoreSelectionChange(sel) {\n if (!sel.focusNode)\n return true;\n let ancestors = new Set, container;\n for (let scan = sel.focusNode; scan; scan = parentNode(scan))\n ancestors.add(scan);\n for (let scan = sel.anchorNode; scan; scan = parentNode(scan))\n if (ancestors.has(scan)) {\n container = scan;\n break;\n }\n let desc = container && this.view.docView.nearestDesc(container);\n if (desc && desc.ignoreMutation({\n type: \"selection\",\n target: container.nodeType == 3 ? container.parentNode : container\n })) {\n this.setCurSelection();\n return true;\n }\n }\n flush() {\n let { view } = this;\n if (!view.docView || this.flushingSoon > -1)\n return;\n let mutations = this.observer ? this.observer.takeRecords() : [];\n if (this.queue.length) {\n mutations = this.queue.concat(mutations);\n this.queue.length = 0;\n }\n let sel = view.domSelectionRange();\n let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);\n let from = -1, to = -1, typeOver = false, added = [];\n if (view.editable) {\n for (let i = 0; i < mutations.length; i++) {\n let result = this.registerMutation(mutations[i], added);\n if (result) {\n from = from < 0 ? result.from : Math.min(result.from, from);\n to = to < 0 ? result.to : Math.max(result.to, to);\n if (result.typeOver)\n typeOver = true;\n }\n }\n }\n if (gecko && added.length > 1) {\n let brs = added.filter(n => n.nodeName == \"BR\");\n if (brs.length == 2) {\n let a = brs[0], b = brs[1];\n if (a.parentNode && a.parentNode.parentNode == b.parentNode)\n b.remove();\n else\n a.remove();\n }\n }\n let readSel = null;\n // If it looks like the browser has reset the selection to the\n // start of the document after focus, restore the selection from\n // the state\n if (from < 0 && newSel && view.input.lastFocus > Date.now() - 200 &&\n Math.max(view.input.lastTouch, view.input.lastClick.time) < Date.now() - 300 &&\n selectionCollapsed(sel) && (readSel = selectionFromDOM(view)) &&\n readSel.eq(Selection.near(view.state.doc.resolve(0), 1))) {\n view.input.lastFocus = 0;\n selectionToDOM(view);\n this.currentSelection.set(sel);\n view.scrollToSelection();\n }\n else if (from > -1 || newSel) {\n if (from > -1) {\n view.docView.markDirty(from, to);\n checkCSS(view);\n }\n this.handleDOMChange(from, to, typeOver, added);\n if (view.docView && view.docView.dirty)\n view.updateState(view.state);\n else if (!this.currentSelection.eq(sel))\n selectionToDOM(view);\n this.currentSelection.set(sel);\n }\n }\n registerMutation(mut, added) {\n // Ignore mutations inside nodes that were already noted as inserted\n if (added.indexOf(mut.target) > -1)\n return null;\n let desc = this.view.docView.nearestDesc(mut.target);\n if (mut.type == \"attributes\" &&\n (desc == this.view.docView || mut.attributeName == \"contenteditable\" ||\n // Firefox sometimes fires spurious events for null/empty styles\n (mut.attributeName == \"style\" && !mut.oldValue && !mut.target.getAttribute(\"style\"))))\n return null;\n if (!desc || desc.ignoreMutation(mut))\n return null;\n if (mut.type == \"childList\") {\n for (let i = 0; i < mut.addedNodes.length; i++)\n added.push(mut.addedNodes[i]);\n if (desc.contentDOM && desc.contentDOM != desc.dom && !desc.contentDOM.contains(mut.target))\n return { from: desc.posBefore, to: desc.posAfter };\n let prev = mut.previousSibling, next = mut.nextSibling;\n if (ie$1 && ie_version <= 11 && mut.addedNodes.length) {\n // IE11 gives us incorrect next/prev siblings for some\n // insertions, so if there are added nodes, recompute those\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let { previousSibling, nextSibling } = mut.addedNodes[i];\n if (!previousSibling || Array.prototype.indexOf.call(mut.addedNodes, previousSibling) < 0)\n prev = previousSibling;\n if (!nextSibling || Array.prototype.indexOf.call(mut.addedNodes, nextSibling) < 0)\n next = nextSibling;\n }\n }\n let fromOffset = prev && prev.parentNode == mut.target\n ? domIndex(prev) + 1 : 0;\n let from = desc.localPosFromDOM(mut.target, fromOffset, -1);\n let toOffset = next && next.parentNode == mut.target\n ? domIndex(next) : mut.target.childNodes.length;\n let to = desc.localPosFromDOM(mut.target, toOffset, 1);\n return { from, to };\n }\n else if (mut.type == \"attributes\") {\n return { from: desc.posAtStart - desc.border, to: desc.posAtEnd + desc.border };\n }\n else { // \"characterData\"\n return {\n from: desc.posAtStart,\n to: desc.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: mut.target.nodeValue == mut.oldValue\n };\n }\n }\n}\nlet cssChecked = new WeakMap();\nlet cssCheckWarned = false;\nfunction checkCSS(view) {\n if (cssChecked.has(view))\n return;\n cssChecked.set(view, null);\n if (['normal', 'nowrap', 'pre-line'].indexOf(getComputedStyle(view.dom).whiteSpace) !== -1) {\n view.requiresGeckoHackNode = gecko;\n if (cssCheckWarned)\n return;\n console[\"warn\"](\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\");\n cssCheckWarned = true;\n }\n}\n// Used to work around a Safari Selection/shadow DOM bug\n// Based on https://github.com/codemirror/dev/issues/414 fix\nfunction safariShadowSelectionRange(view) {\n let found;\n function read(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n found = event.getTargetRanges()[0];\n }\n // Because Safari (at least in 2018-2022) doesn't provide regular\n // access to the selection inside a shadowRoot, we have to perform a\n // ridiculous hack to get at it—using `execCommand` to trigger a\n // `beforeInput` event so that we can read the target range from the\n // event.\n view.dom.addEventListener(\"beforeinput\", read, true);\n document.execCommand(\"indent\");\n view.dom.removeEventListener(\"beforeinput\", read, true);\n let anchorNode = found.startContainer, anchorOffset = found.startOffset;\n let focusNode = found.endContainer, focusOffset = found.endOffset;\n let currentAnchor = view.domAtPos(view.state.selection.anchor);\n // Since such a range doesn't distinguish between anchor and head,\n // use a heuristic that flips it around if its end matches the\n // current anchor.\n if (isEquivalentPosition(currentAnchor.node, currentAnchor.offset, focusNode, focusOffset))\n [anchorNode, anchorOffset, focusNode, focusOffset] = [focusNode, focusOffset, anchorNode, anchorOffset];\n return { anchorNode, anchorOffset, focusNode, focusOffset };\n}\n\n// Note that all referencing and parsing is done with the\n// start-of-operation selection and document, since that's the one\n// that the DOM represents. If any changes came in in the meantime,\n// the modification is mapped over those before it is applied, in\n// readDOMChange.\nfunction parseBetween(view, from_, to_) {\n let { node: parent, fromOffset, toOffset, from, to } = view.docView.parseRange(from_, to_);\n let domSel = view.domSelectionRange();\n let find;\n let anchor = domSel.anchorNode;\n if (anchor && view.dom.contains(anchor.nodeType == 1 ? anchor : anchor.parentNode)) {\n find = [{ node: anchor, offset: domSel.anchorOffset }];\n if (!selectionCollapsed(domSel))\n find.push({ node: domSel.focusNode, offset: domSel.focusOffset });\n }\n // Work around issue in Chrome where backspacing sometimes replaces\n // the deleted content with a random BR node (issues #799, #831)\n if (chrome && view.input.lastKeyCode === 8) {\n for (let off = toOffset; off > fromOffset; off--) {\n let node = parent.childNodes[off - 1], desc = node.pmViewDesc;\n if (node.nodeName == \"BR\" && !desc) {\n toOffset = off;\n break;\n }\n if (!desc || desc.size)\n break;\n }\n }\n let startDoc = view.state.doc;\n let parser = view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n let $from = startDoc.resolve(from);\n let sel = null, doc = parser.parse(parent, {\n topNode: $from.parent,\n topMatch: $from.parent.contentMatchAt($from.index()),\n topOpen: true,\n from: fromOffset,\n to: toOffset,\n preserveWhitespace: $from.parent.type.whitespace == \"pre\" ? \"full\" : true,\n findPositions: find,\n ruleFromNode,\n context: $from\n });\n if (find && find[0].pos != null) {\n let anchor = find[0].pos, head = find[1] && find[1].pos;\n if (head == null)\n head = anchor;\n sel = { anchor: anchor + from, head: head + from };\n }\n return { doc, sel, from, to };\n}\nfunction ruleFromNode(dom) {\n let desc = dom.pmViewDesc;\n if (desc) {\n return desc.parseRule();\n }\n else if (dom.nodeName == \"BR\" && dom.parentNode) {\n // Safari replaces the list item or table cell with a BR\n // directly in the list node (?!) if you delete the last\n // character in a list item or table cell (#708, #862)\n if (safari && /^(ul|ol)$/i.test(dom.parentNode.nodeName)) {\n let skip = document.createElement(\"div\");\n skip.appendChild(document.createElement(\"li\"));\n return { skip };\n }\n else if (dom.parentNode.lastChild == dom || safari && /^(tr|table)$/i.test(dom.parentNode.nodeName)) {\n return { ignore: true };\n }\n }\n else if (dom.nodeName == \"IMG\" && dom.getAttribute(\"mark-placeholder\")) {\n return { ignore: true };\n }\n return null;\n}\nconst isInline = /^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;\nfunction readDOMChange(view, from, to, typeOver, addedNodes) {\n if (from < 0) {\n let origin = view.input.lastSelectionTime > Date.now() - 50 ? view.input.lastSelectionOrigin : null;\n let newSel = selectionFromDOM(view, origin);\n if (newSel && !view.state.selection.eq(newSel)) {\n if (chrome && android &&\n view.input.lastKeyCode === 13 && Date.now() - 100 < view.input.lastKeyCodeTime &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\"))))\n return;\n let tr = view.state.tr.setSelection(newSel);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n else if (origin == \"key\")\n tr.scrollIntoView();\n if (view.composing)\n tr.setMeta(\"composition\", view.input.compositionID);\n view.dispatch(tr);\n }\n return;\n }\n let $before = view.state.doc.resolve(from);\n let shared = $before.sharedDepth(to);\n from = $before.before(shared + 1);\n to = view.state.doc.resolve(to).after(shared + 1);\n let sel = view.state.selection;\n let parse = parseBetween(view, from, to);\n let doc = view.state.doc, compare = doc.slice(parse.from, parse.to);\n let preferredPos, preferredSide;\n // Prefer anchoring to end when Backspace is pressed\n if (view.input.lastKeyCode === 8 && Date.now() - 100 < view.input.lastKeyCodeTime) {\n preferredPos = view.state.selection.to;\n preferredSide = \"end\";\n }\n else {\n preferredPos = view.state.selection.from;\n preferredSide = \"start\";\n }\n view.input.lastKeyCode = null;\n let change = findDiff(compare.content, parse.doc.content, parse.from, preferredPos, preferredSide);\n if ((ios && view.input.lastIOSEnter > Date.now() - 225 || android) &&\n addedNodes.some(n => n.nodeType == 1 && !isInline.test(n.nodeName)) &&\n (!change || change.endA >= change.endB) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n if (!change) {\n if (typeOver && sel instanceof TextSelection && !sel.empty && sel.$head.sameParent(sel.$anchor) &&\n !view.composing && !(parse.sel && parse.sel.anchor != parse.sel.head)) {\n change = { start: sel.from, endA: sel.to, endB: sel.to };\n }\n else {\n if (parse.sel) {\n let sel = resolveSelection(view, view.state.doc, parse.sel);\n if (sel && !sel.eq(view.state.selection)) {\n let tr = view.state.tr.setSelection(sel);\n if (view.composing)\n tr.setMeta(\"composition\", view.input.compositionID);\n view.dispatch(tr);\n }\n }\n return;\n }\n }\n // Chrome sometimes leaves the cursor before the inserted text when\n // composing after a cursor wrapper. This moves it forward.\n if (chrome && view.cursorWrapper && parse.sel && parse.sel.anchor == view.cursorWrapper.deco.from &&\n parse.sel.head == parse.sel.anchor) {\n let size = change.endB - change.start;\n parse.sel = { anchor: parse.sel.anchor + size, head: parse.sel.anchor + size };\n }\n view.input.domChangeCount++;\n // Handle the case where overwriting a selection by typing matches\n // the start or end of the selected content, creating a change\n // that's smaller than what was actually overwritten.\n if (view.state.selection.from < view.state.selection.to &&\n change.start == change.endB &&\n view.state.selection instanceof TextSelection) {\n if (change.start > view.state.selection.from && change.start <= view.state.selection.from + 2 &&\n view.state.selection.from >= parse.from) {\n change.start = view.state.selection.from;\n }\n else if (change.endA < view.state.selection.to && change.endA >= view.state.selection.to - 2 &&\n view.state.selection.to <= parse.to) {\n change.endB += (view.state.selection.to - change.endA);\n change.endA = view.state.selection.to;\n }\n }\n // IE11 will insert a non-breaking space _ahead_ of the space after\n // the cursor space when adding a space before another space. When\n // that happened, adjust the change to cover the space instead.\n if (ie$1 && ie_version <= 11 && change.endB == change.start + 1 &&\n change.endA == change.start && change.start > parse.from &&\n parse.doc.textBetween(change.start - parse.from - 1, change.start - parse.from + 1) == \" \\u00a0\") {\n change.start--;\n change.endA--;\n change.endB--;\n }\n let $from = parse.doc.resolveNoCache(change.start - parse.from);\n let $to = parse.doc.resolveNoCache(change.endB - parse.from);\n let $fromA = doc.resolve(change.start);\n let inlineChange = $from.sameParent($to) && $from.parent.inlineContent && $fromA.end() >= change.endA;\n let nextSel;\n // If this looks like the effect of pressing Enter (or was recorded\n // as being an iOS enter press), just dispatch an Enter key instead.\n if (((ios && view.input.lastIOSEnter > Date.now() - 225 &&\n (!inlineChange || addedNodes.some(n => n.nodeName == \"DIV\" || n.nodeName == \"P\"))) ||\n (!inlineChange && $from.pos < parse.doc.content.size && !$from.sameParent($to) &&\n (nextSel = Selection.findFrom(parse.doc.resolve($from.pos + 1), 1, true)) &&\n nextSel.head == $to.pos)) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n // Same for backspace\n if (view.state.selection.anchor > change.start &&\n looksLikeJoin(doc, change.start, change.endA, $from, $to) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\")))) {\n if (android && chrome)\n view.domObserver.suppressSelectionUpdates(); // #820\n return;\n }\n // Chrome Android will occasionally, during composition, delete the\n // entire composition and then immediately insert it again. This is\n // used to detect that situation.\n if (chrome && android && change.endB == change.start)\n view.input.lastAndroidDelete = Date.now();\n // This tries to detect Android virtual keyboard\n // enter-and-pick-suggestion action. That sometimes (see issue\n // #1059) first fires a DOM mutation, before moving the selection to\n // the newly created block. And then, because ProseMirror cleans up\n // the DOM selection, it gives up moving the selection entirely,\n // leaving the cursor in the wrong place. When that happens, we drop\n // the new paragraph from the initial change, and fire a simulated\n // enter key afterwards.\n if (android && !inlineChange && $from.start() != $to.start() && $to.parentOffset == 0 && $from.depth == $to.depth &&\n parse.sel && parse.sel.anchor == parse.sel.head && parse.sel.head == change.endA) {\n change.endB -= 2;\n $to = parse.doc.resolveNoCache(change.endB - parse.from);\n setTimeout(() => {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n }, 20);\n }\n let chFrom = change.start, chTo = change.endA;\n let tr, storedMarks, markChange;\n if (inlineChange) {\n if ($from.pos == $to.pos) { // Deletion\n // IE11 sometimes weirdly moves the DOM selection around after\n // backspacing out the first element in a textblock\n if (ie$1 && ie_version <= 11 && $from.parentOffset == 0) {\n view.domObserver.suppressSelectionUpdates();\n setTimeout(() => selectionToDOM(view), 20);\n }\n tr = view.state.tr.delete(chFrom, chTo);\n storedMarks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));\n }\n else if ( // Adding or removing a mark\n change.endA == change.endB &&\n (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset), $fromA.parent.content.cut($fromA.parentOffset, change.endA - $fromA.start())))) {\n tr = view.state.tr;\n if (markChange.type == \"add\")\n tr.addMark(chFrom, chTo, markChange.mark);\n else\n tr.removeMark(chFrom, chTo, markChange.mark);\n }\n else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {\n // Both positions in the same text node -- simply insert text\n let text = $from.parent.textBetween($from.parentOffset, $to.parentOffset);\n if (view.someProp(\"handleTextInput\", f => f(view, chFrom, chTo, text)))\n return;\n tr = view.state.tr.insertText(text, chFrom, chTo);\n }\n }\n if (!tr)\n tr = view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));\n if (parse.sel) {\n let sel = resolveSelection(view, tr.doc, parse.sel);\n // Chrome Android will sometimes, during composition, report the\n // selection in the wrong place. If it looks like that is\n // happening, don't update the selection.\n // Edge just doesn't move the cursor forward when you start typing\n // in an empty block or between br nodes.\n if (sel && !(chrome && android && view.composing && sel.empty &&\n (change.start != change.endB || view.input.lastAndroidDelete < Date.now() - 100) &&\n (sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||\n ie$1 && sel.empty && sel.head == chFrom))\n tr.setSelection(sel);\n }\n if (storedMarks)\n tr.ensureMarks(storedMarks);\n if (view.composing)\n tr.setMeta(\"composition\", view.input.compositionID);\n view.dispatch(tr.scrollIntoView());\n}\nfunction resolveSelection(view, doc, parsedSel) {\n if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size)\n return null;\n return selectionBetween(view, doc.resolve(parsedSel.anchor), doc.resolve(parsedSel.head));\n}\n// Given two same-length, non-empty fragments of inline content,\n// determine whether the first could be created from the second by\n// removing or adding a single mark type.\nfunction isMarkChange(cur, prev) {\n let curMarks = cur.firstChild.marks, prevMarks = prev.firstChild.marks;\n let added = curMarks, removed = prevMarks, type, mark, update;\n for (let i = 0; i < prevMarks.length; i++)\n added = prevMarks[i].removeFromSet(added);\n for (let i = 0; i < curMarks.length; i++)\n removed = curMarks[i].removeFromSet(removed);\n if (added.length == 1 && removed.length == 0) {\n mark = added[0];\n type = \"add\";\n update = (node) => node.mark(mark.addToSet(node.marks));\n }\n else if (added.length == 0 && removed.length == 1) {\n mark = removed[0];\n type = \"remove\";\n update = (node) => node.mark(mark.removeFromSet(node.marks));\n }\n else {\n return null;\n }\n let updated = [];\n for (let i = 0; i < prev.childCount; i++)\n updated.push(update(prev.child(i)));\n if (Fragment.from(updated).eq(cur))\n return { mark, type };\n}\nfunction looksLikeJoin(old, start, end, $newStart, $newEnd) {\n if (!$newStart.parent.isTextblock ||\n // The content must have shrunk\n end - start <= $newEnd.pos - $newStart.pos ||\n // newEnd must point directly at or after the end of the block that newStart points into\n skipClosingAndOpening($newStart, true, false) < $newEnd.pos)\n return false;\n let $start = old.resolve(start);\n // Start must be at the end of a block\n if ($start.parentOffset < $start.parent.content.size || !$start.parent.isTextblock)\n return false;\n let $next = old.resolve(skipClosingAndOpening($start, true, true));\n // The next textblock must start before end and end near it\n if (!$next.parent.isTextblock || $next.pos > end ||\n skipClosingAndOpening($next, true, false) < end)\n return false;\n // The fragments after the join point must match\n return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content);\n}\nfunction skipClosingAndOpening($pos, fromEnd, mayOpen) {\n let depth = $pos.depth, end = fromEnd ? $pos.end() : $pos.pos;\n while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {\n depth--;\n end++;\n fromEnd = false;\n }\n if (mayOpen) {\n let next = $pos.node(depth).maybeChild($pos.indexAfter(depth));\n while (next && !next.isLeaf) {\n next = next.firstChild;\n end++;\n }\n }\n return end;\n}\nfunction findDiff(a, b, pos, preferredPos, preferredSide) {\n let start = a.findDiffStart(b, pos);\n if (start == null)\n return null;\n let { a: endA, b: endB } = a.findDiffEnd(b, pos + a.size, pos + b.size);\n if (preferredSide == \"end\") {\n let adjust = Math.max(0, start - Math.min(endA, endB));\n preferredPos -= endA + adjust - start;\n }\n if (endA < start && a.size < b.size) {\n let move = preferredPos <= start && preferredPos >= endA ? start - preferredPos : 0;\n start -= move;\n endB = start + (endB - endA);\n endA = start;\n }\n else if (endB < start) {\n let move = preferredPos <= start && preferredPos >= endB ? start - preferredPos : 0;\n start -= move;\n endA = start + (endA - endB);\n endB = start;\n }\n return { start, endA, endB };\n}\n/**\nAn editor view manages the DOM structure that represents an\neditable document. Its state and behavior are determined by its\n[props](https://prosemirror.net/docs/ref/#view.DirectEditorProps).\n*/\nclass EditorView {\n /**\n Create a view. `place` may be a DOM node that the editor should\n be appended to, a function that will place it into the document,\n or an object whose `mount` property holds the node to use as the\n document container. If it is `null`, the editor will not be\n added to the document.\n */\n constructor(place, props) {\n this._root = null;\n /**\n @internal\n */\n this.focused = false;\n /**\n Kludge used to work around a Chrome bug @internal\n */\n this.trackWrites = null;\n this.mounted = false;\n /**\n @internal\n */\n this.markCursor = null;\n /**\n @internal\n */\n this.cursorWrapper = null;\n /**\n @internal\n */\n this.lastSelectedViewDesc = undefined;\n /**\n @internal\n */\n this.input = new InputState;\n this.prevDirectPlugins = [];\n this.pluginViews = [];\n /**\n Holds `true` when a hack node is needed in Firefox to prevent the\n [space is eaten issue](https://github.com/ProseMirror/prosemirror/issues/651)\n @internal\n */\n this.requiresGeckoHackNode = false;\n /**\n When editor content is being dragged, this object contains\n information about the dragged slice and whether it is being\n copied or moved. At any other time, it is null.\n */\n this.dragging = null;\n this._props = props;\n this.state = props.state;\n this.directPlugins = props.plugins || [];\n this.directPlugins.forEach(checkStateComponent);\n this.dispatch = this.dispatch.bind(this);\n this.dom = (place && place.mount) || document.createElement(\"div\");\n if (place) {\n if (place.appendChild)\n place.appendChild(this.dom);\n else if (typeof place == \"function\")\n place(this.dom);\n else if (place.mount)\n this.mounted = true;\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n this.nodeViews = buildNodeViews(this);\n this.docView = docViewDesc(this.state.doc, computeDocDeco(this), viewDecorations(this), this.dom, this);\n this.domObserver = new DOMObserver(this, (from, to, typeOver, added) => readDOMChange(this, from, to, typeOver, added));\n this.domObserver.start();\n initInput(this);\n this.updatePluginViews();\n }\n /**\n Holds `true` when a\n [composition](https://w3c.github.io/uievents/#events-compositionevents)\n is active.\n */\n get composing() { return this.input.composing; }\n /**\n The view's current [props](https://prosemirror.net/docs/ref/#view.EditorProps).\n */\n get props() {\n if (this._props.state != this.state) {\n let prev = this._props;\n this._props = {};\n for (let name in prev)\n this._props[name] = prev[name];\n this._props.state = this.state;\n }\n return this._props;\n }\n /**\n Update the view's props. Will immediately cause an update to\n the DOM.\n */\n update(props) {\n if (props.handleDOMEvents != this._props.handleDOMEvents)\n ensureListeners(this);\n let prevProps = this._props;\n this._props = props;\n if (props.plugins) {\n props.plugins.forEach(checkStateComponent);\n this.directPlugins = props.plugins;\n }\n this.updateStateInner(props.state, prevProps);\n }\n /**\n Update the view by updating existing props object with the object\n given as argument. Equivalent to `view.update(Object.assign({},\n view.props, props))`.\n */\n setProps(props) {\n let updated = {};\n for (let name in this._props)\n updated[name] = this._props[name];\n updated.state = this.state;\n for (let name in props)\n updated[name] = props[name];\n this.update(updated);\n }\n /**\n Update the editor's `state` prop, without touching any of the\n other props.\n */\n updateState(state) {\n this.updateStateInner(state, this._props);\n }\n updateStateInner(state, prevProps) {\n let prev = this.state, redraw = false, updateSel = false;\n // When stored marks are added, stop composition, so that they can\n // be displayed.\n if (state.storedMarks && this.composing) {\n clearComposition(this);\n updateSel = true;\n }\n this.state = state;\n let pluginsChanged = prev.plugins != state.plugins || this._props.plugins != prevProps.plugins;\n if (pluginsChanged || this._props.plugins != prevProps.plugins || this._props.nodeViews != prevProps.nodeViews) {\n let nodeViews = buildNodeViews(this);\n if (changedNodeViews(nodeViews, this.nodeViews)) {\n this.nodeViews = nodeViews;\n redraw = true;\n }\n }\n if (pluginsChanged || prevProps.handleDOMEvents != this._props.handleDOMEvents) {\n ensureListeners(this);\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n let innerDeco = viewDecorations(this), outerDeco = computeDocDeco(this);\n let scroll = prev.plugins != state.plugins && !prev.doc.eq(state.doc) ? \"reset\"\n : state.scrollToSelection > prev.scrollToSelection ? \"to selection\" : \"preserve\";\n let updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);\n if (updateDoc || !state.selection.eq(prev.selection))\n updateSel = true;\n let oldScrollPos = scroll == \"preserve\" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);\n if (updateSel) {\n this.domObserver.stop();\n // Work around an issue in Chrome, IE, and Edge where changing\n // the DOM around an active selection puts it into a broken\n // state where the thing the user sees differs from the\n // selection reported by the Selection object (#710, #973,\n // #1011, #1013, #1035).\n let forceSelUpdate = updateDoc && (ie$1 || chrome) && !this.composing &&\n !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);\n if (updateDoc) {\n // If the node that the selection points into is written to,\n // Chrome sometimes starts misreporting the selection, so this\n // tracks that and forces a selection reset when our update\n // did write to the node.\n let chromeKludge = chrome ? (this.trackWrites = this.domSelectionRange().focusNode) : null;\n if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {\n this.docView.updateOuterDeco([]);\n this.docView.destroy();\n this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);\n }\n if (chromeKludge && !this.trackWrites)\n forceSelUpdate = true;\n }\n // Work around for an issue where an update arriving right between\n // a DOM selection change and the \"selectionchange\" event for it\n // can cause a spurious DOM selection update, disrupting mouse\n // drag selection.\n if (forceSelUpdate ||\n !(this.input.mouseDown && this.domObserver.currentSelection.eq(this.domSelectionRange()) &&\n anchorInRightPlace(this))) {\n selectionToDOM(this, forceSelUpdate);\n }\n else {\n syncNodeSelection(this, state.selection);\n this.domObserver.setCurSelection();\n }\n this.domObserver.start();\n }\n this.updatePluginViews(prev);\n if (scroll == \"reset\") {\n this.dom.scrollTop = 0;\n }\n else if (scroll == \"to selection\") {\n this.scrollToSelection();\n }\n else if (oldScrollPos) {\n resetScrollPos(oldScrollPos);\n }\n }\n /**\n @internal\n */\n scrollToSelection() {\n let startDOM = this.domSelectionRange().focusNode;\n if (this.someProp(\"handleScrollToSelection\", f => f(this))) ;\n else if (this.state.selection instanceof NodeSelection) {\n let target = this.docView.domAfterPos(this.state.selection.from);\n if (target.nodeType == 1)\n scrollRectIntoView(this, target.getBoundingClientRect(), startDOM);\n }\n else {\n scrollRectIntoView(this, this.coordsAtPos(this.state.selection.head, 1), startDOM);\n }\n }\n destroyPluginViews() {\n let view;\n while (view = this.pluginViews.pop())\n if (view.destroy)\n view.destroy();\n }\n updatePluginViews(prevState) {\n if (!prevState || prevState.plugins != this.state.plugins || this.directPlugins != this.prevDirectPlugins) {\n this.prevDirectPlugins = this.directPlugins;\n this.destroyPluginViews();\n for (let i = 0; i < this.directPlugins.length; i++) {\n let plugin = this.directPlugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n for (let i = 0; i < this.state.plugins.length; i++) {\n let plugin = this.state.plugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n }\n else {\n for (let i = 0; i < this.pluginViews.length; i++) {\n let pluginView = this.pluginViews[i];\n if (pluginView.update)\n pluginView.update(this, prevState);\n }\n }\n }\n someProp(propName, f) {\n let prop = this._props && this._props[propName], value;\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n for (let i = 0; i < this.directPlugins.length; i++) {\n let prop = this.directPlugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n let plugins = this.state.plugins;\n if (plugins)\n for (let i = 0; i < plugins.length; i++) {\n let prop = plugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n }\n /**\n Query whether the view has focus.\n */\n hasFocus() {\n // Work around IE not handling focus correctly if resize handles are shown.\n // If the cursor is inside an element with resize handles, activeElement\n // will be that element instead of this.dom.\n if (ie$1) {\n // If activeElement is within this.dom, and there are no other elements\n // setting `contenteditable` to false in between, treat it as focused.\n let node = this.root.activeElement;\n if (node == this.dom)\n return true;\n if (!node || !this.dom.contains(node))\n return false;\n while (node && this.dom != node && this.dom.contains(node)) {\n if (node.contentEditable == 'false')\n return false;\n node = node.parentElement;\n }\n return true;\n }\n return this.root.activeElement == this.dom;\n }\n /**\n Focus the editor.\n */\n focus() {\n this.domObserver.stop();\n if (this.editable)\n focusPreventScroll(this.dom);\n selectionToDOM(this);\n this.domObserver.start();\n }\n /**\n Get the document root in which the editor exists. This will\n usually be the top-level `document`, but might be a [shadow\n DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n root if the editor is inside one.\n */\n get root() {\n let cached = this._root;\n if (cached == null)\n for (let search = this.dom.parentNode; search; search = search.parentNode) {\n if (search.nodeType == 9 || (search.nodeType == 11 && search.host)) {\n if (!search.getSelection)\n Object.getPrototypeOf(search).getSelection = () => search.ownerDocument.getSelection();\n return this._root = search;\n }\n }\n return cached || document;\n }\n /**\n Given a pair of viewport coordinates, return the document\n position that corresponds to them. May return null if the given\n coordinates aren't inside of the editor. When an object is\n returned, its `pos` property is the position nearest to the\n coordinates, and its `inside` property holds the position of the\n inner node that the position falls inside of, or -1 if it is at\n the top level, not in any node.\n */\n posAtCoords(coords) {\n return posAtCoords(this, coords);\n }\n /**\n Returns the viewport rectangle at a given document position.\n `left` and `right` will be the same number, as this returns a\n flat cursor-ish rectangle. If the position is between two things\n that aren't directly adjacent, `side` determines which element\n is used. When < 0, the element before the position is used,\n otherwise the element after.\n */\n coordsAtPos(pos, side = 1) {\n return coordsAtPos(this, pos, side);\n }\n /**\n Find the DOM position that corresponds to the given document\n position. When `side` is negative, find the position as close as\n possible to the content before the position. When positive,\n prefer positions close to the content after the position. When\n zero, prefer as shallow a position as possible.\n \n Note that you should **not** mutate the editor's internal DOM,\n only inspect it (and even that is usually not necessary).\n */\n domAtPos(pos, side = 0) {\n return this.docView.domFromPos(pos, side);\n }\n /**\n Find the DOM node that represents the document node after the\n given position. May return `null` when the position doesn't point\n in front of a node or if the node is inside an opaque node view.\n \n This is intended to be able to call things like\n `getBoundingClientRect` on that DOM node. Do **not** mutate the\n editor DOM directly, or add styling this way, since that will be\n immediately overriden by the editor as it redraws the node.\n */\n nodeDOM(pos) {\n let desc = this.docView.descAt(pos);\n return desc ? desc.nodeDOM : null;\n }\n /**\n Find the document position that corresponds to a given DOM\n position. (Whenever possible, it is preferable to inspect the\n document structure directly, rather than poking around in the\n DOM, but sometimes—for example when interpreting an event\n target—you don't have a choice.)\n \n The `bias` parameter can be used to influence which side of a DOM\n node to use when the position is inside a leaf node.\n */\n posAtDOM(node, offset, bias = -1) {\n let pos = this.docView.posFromDOM(node, offset, bias);\n if (pos == null)\n throw new RangeError(\"DOM position not inside the editor\");\n return pos;\n }\n /**\n Find out whether the selection is at the end of a textblock when\n moving in a given direction. When, for example, given `\"left\"`,\n it will return true if moving left from the current cursor\n position would leave that position's parent textblock. Will apply\n to the view's current state by default, but it is possible to\n pass a different state.\n */\n endOfTextblock(dir, state) {\n return endOfTextblock(this, state || this.state, dir);\n }\n /**\n Run the editor's paste logic with the given HTML string. The\n `event`, if given, will be passed to the\n [`handlePaste`](https://prosemirror.net/docs/ref/#view.EditorProps.handlePaste) hook.\n */\n pasteHTML(html, event) {\n return doPaste(this, \"\", html, false, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Run the editor's paste logic with the given plain-text input.\n */\n pasteText(text, event) {\n return doPaste(this, text, null, true, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Removes the editor from the DOM and destroys all [node\n views](https://prosemirror.net/docs/ref/#view.NodeView).\n */\n destroy() {\n if (!this.docView)\n return;\n destroyInput(this);\n this.destroyPluginViews();\n if (this.mounted) {\n this.docView.update(this.state.doc, [], viewDecorations(this), this);\n this.dom.textContent = \"\";\n }\n else if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n this.docView.destroy();\n this.docView = null;\n }\n /**\n This is true when the view has been\n [destroyed](https://prosemirror.net/docs/ref/#view.EditorView.destroy) (and thus should not be\n used anymore).\n */\n get isDestroyed() {\n return this.docView == null;\n }\n /**\n Used for testing.\n */\n dispatchEvent(event) {\n return dispatchEvent(this, event);\n }\n /**\n Dispatch a transaction. Will call\n [`dispatchTransaction`](https://prosemirror.net/docs/ref/#view.DirectEditorProps.dispatchTransaction)\n when given, and otherwise defaults to applying the transaction to\n the current state and calling\n [`updateState`](https://prosemirror.net/docs/ref/#view.EditorView.updateState) with the result.\n This method is bound to the view instance, so that it can be\n easily passed around.\n */\n dispatch(tr) {\n let dispatchTransaction = this._props.dispatchTransaction;\n if (dispatchTransaction)\n dispatchTransaction.call(this, tr);\n else\n this.updateState(this.state.apply(tr));\n }\n /**\n @internal\n */\n domSelectionRange() {\n return safari && this.root.nodeType === 11 && deepActiveElement(this.dom.ownerDocument) == this.dom\n ? safariShadowSelectionRange(this) : this.domSelection();\n }\n /**\n @internal\n */\n domSelection() {\n return this.root.getSelection();\n }\n}\nfunction computeDocDeco(view) {\n let attrs = Object.create(null);\n attrs.class = \"ProseMirror\";\n attrs.contenteditable = String(view.editable);\n view.someProp(\"attributes\", value => {\n if (typeof value == \"function\")\n value = value(view.state);\n if (value)\n for (let attr in value) {\n if (attr == \"class\")\n attrs.class += \" \" + value[attr];\n else if (attr == \"style\")\n attrs.style = (attrs.style ? attrs.style + \";\" : \"\") + value[attr];\n else if (!attrs[attr] && attr != \"contenteditable\" && attr != \"nodeName\")\n attrs[attr] = String(value[attr]);\n }\n });\n if (!attrs.translate)\n attrs.translate = \"no\";\n return [Decoration.node(0, view.state.doc.content.size, attrs)];\n}\nfunction updateCursorWrapper(view) {\n if (view.markCursor) {\n let dom = document.createElement(\"img\");\n dom.className = \"ProseMirror-separator\";\n dom.setAttribute(\"mark-placeholder\", \"true\");\n dom.setAttribute(\"alt\", \"\");\n view.cursorWrapper = { dom, deco: Decoration.widget(view.state.selection.head, dom, { raw: true, marks: view.markCursor }) };\n }\n else {\n view.cursorWrapper = null;\n }\n}\nfunction getEditable(view) {\n return !view.someProp(\"editable\", value => value(view.state) === false);\n}\nfunction selectionContextChanged(sel1, sel2) {\n let depth = Math.min(sel1.$anchor.sharedDepth(sel1.head), sel2.$anchor.sharedDepth(sel2.head));\n return sel1.$anchor.start(depth) != sel2.$anchor.start(depth);\n}\nfunction buildNodeViews(view) {\n let result = Object.create(null);\n function add(obj) {\n for (let prop in obj)\n if (!Object.prototype.hasOwnProperty.call(result, prop))\n result[prop] = obj[prop];\n }\n view.someProp(\"nodeViews\", add);\n view.someProp(\"markViews\", add);\n return result;\n}\nfunction changedNodeViews(a, b) {\n let nA = 0, nB = 0;\n for (let prop in a) {\n if (a[prop] != b[prop])\n return true;\n nA++;\n }\n for (let _ in b)\n nB++;\n return nA != nB;\n}\nfunction checkStateComponent(plugin) {\n if (plugin.spec.state || plugin.spec.filterTransaction || plugin.spec.appendTransaction)\n throw new RangeError(\"Plugins passed directly to the view must not have a state component\");\n}\n\nvar base = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 10: \"Enter\",\n 12: \"NumLock\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 44: \"PrintScreen\",\n 45: \"Insert\",\n 46: \"Delete\",\n 59: \";\",\n 61: \"=\",\n 91: \"Meta\",\n 92: \"Meta\",\n 106: \"*\",\n 107: \"+\",\n 108: \",\",\n 109: \"-\",\n 110: \".\",\n 111: \"/\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 160: \"Shift\",\n 161: \"Shift\",\n 162: \"Control\",\n 163: \"Control\",\n 164: \"Alt\",\n 165: \"Alt\",\n 173: \"-\",\n 186: \";\",\n 187: \"=\",\n 188: \",\",\n 189: \"-\",\n 190: \".\",\n 191: \"/\",\n 192: \"`\",\n 219: \"[\",\n 220: \"\\\\\",\n 221: \"]\",\n 222: \"'\"\n};\n\nvar shift = {\n 48: \")\",\n 49: \"!\",\n 50: \"@\",\n 51: \"#\",\n 52: \"$\",\n 53: \"%\",\n 54: \"^\",\n 55: \"&\",\n 56: \"*\",\n 57: \"(\",\n 59: \":\",\n 61: \"+\",\n 173: \"_\",\n 186: \":\",\n 187: \"+\",\n 188: \"<\",\n 189: \"_\",\n 190: \">\",\n 191: \"?\",\n 192: \"~\",\n 219: \"{\",\n 220: \"|\",\n 221: \"}\",\n 222: \"\\\"\"\n};\n\nvar mac$1 = typeof navigator != \"undefined\" && /Mac/.test(navigator.platform);\nvar ie = typeof navigator != \"undefined\" && /MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);\n\n// Fill in the digit keys\nfor (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i);\n\n// The function keys\nfor (var i = 1; i <= 24; i++) base[i + 111] = \"F\" + i;\n\n// And the alphabetic keys\nfor (var i = 65; i <= 90; i++) {\n base[i] = String.fromCharCode(i + 32);\n shift[i] = String.fromCharCode(i);\n}\n\n// For each code that doesn't have a shift-equivalent, copy the base name\nfor (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code];\n\nfunction keyName(event) {\n // On macOS, keys held with Shift and Cmd don't reflect the effect of Shift in `.key`.\n // On IE, shift effect is never included in `.key`.\n var ignoreKey = mac$1 && event.metaKey && event.shiftKey && !event.ctrlKey && !event.altKey ||\n ie && event.shiftKey && event.key && event.key.length == 1 ||\n event.key == \"Unidentified\";\n var name = (!ignoreKey && event.key) ||\n (event.shiftKey ? shift : base)[event.keyCode] ||\n event.key || \"Unidentified\";\n // Edge sometimes produces wrong names (Issue #3)\n if (name == \"Esc\") name = \"Escape\";\n if (name == \"Del\") name = \"Delete\";\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/\n if (name == \"Left\") name = \"ArrowLeft\";\n if (name == \"Up\") name = \"ArrowUp\";\n if (name == \"Right\") name = \"ArrowRight\";\n if (name == \"Down\") name = \"ArrowDown\";\n return name\n}\n\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false;\nfunction normalizeKeyName$1(name) {\n let parts = name.split(/-(?!$)/), result = parts[parts.length - 1];\n if (result == \"Space\")\n result = \" \";\n let alt, ctrl, shift, meta;\n for (let i = 0; i < parts.length - 1; i++) {\n let mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod))\n meta = true;\n else if (/^a(lt)?$/i.test(mod))\n alt = true;\n else if (/^(c|ctrl|control)$/i.test(mod))\n ctrl = true;\n else if (/^s(hift)?$/i.test(mod))\n shift = true;\n else if (/^mod$/i.test(mod)) {\n if (mac)\n meta = true;\n else\n ctrl = true;\n }\n else\n throw new Error(\"Unrecognized modifier name: \" + mod);\n }\n if (alt)\n result = \"Alt-\" + result;\n if (ctrl)\n result = \"Ctrl-\" + result;\n if (meta)\n result = \"Meta-\" + result;\n if (shift)\n result = \"Shift-\" + result;\n return result;\n}\nfunction normalize(map) {\n let copy = Object.create(null);\n for (let prop in map)\n copy[normalizeKeyName$1(prop)] = map[prop];\n return copy;\n}\nfunction modifiers(name, event, shift = true) {\n if (event.altKey)\n name = \"Alt-\" + name;\n if (event.ctrlKey)\n name = \"Ctrl-\" + name;\n if (event.metaKey)\n name = \"Meta-\" + name;\n if (shift && event.shiftKey)\n name = \"Shift-\" + name;\n return name;\n}\n/**\nCreate a keymap plugin for the given set of bindings.\n\nBindings should map key names to [command](https://prosemirror.net/docs/ref/#commands)-style\nfunctions, which will be called with `(EditorState, dispatch,\nEditorView)` arguments, and should return true when they've handled\nthe key. Note that the view argument isn't part of the command\nprotocol, but can be used as an escape hatch if a binding needs to\ndirectly interact with the UI.\n\nKey names may be strings like `\"Shift-Ctrl-Enter\"`—a key\nidentifier prefixed with zero or more modifiers. Key identifiers\nare based on the strings that can appear in\n[`KeyEvent.key`](https:developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key).\nUse lowercase letters to refer to letter keys (or uppercase letters\nif you want shift to be held). You may use `\"Space\"` as an alias\nfor the `\" \"` name.\n\nModifiers can be given in any order. `Shift-` (or `s-`), `Alt-` (or\n`a-`), `Ctrl-` (or `c-` or `Control-`) and `Cmd-` (or `m-` or\n`Meta-`) are recognized. For characters that are created by holding\nshift, the `Shift-` prefix is implied, and should not be added\nexplicitly.\n\nYou can use `Mod-` as a shorthand for `Cmd-` on Mac and `Ctrl-` on\nother platforms.\n\nYou can add multiple keymap plugins to an editor. The order in\nwhich they appear determines their precedence (the ones early in\nthe array get to dispatch first).\n*/\nfunction keymap(bindings) {\n return new Plugin({ props: { handleKeyDown: keydownHandler(bindings) } });\n}\n/**\nGiven a set of bindings (using the same format as\n[`keymap`](https://prosemirror.net/docs/ref/#keymap.keymap)), return a [keydown\nhandler](https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyDown) that handles them.\n*/\nfunction keydownHandler(bindings) {\n let map = normalize(bindings);\n return function (view, event) {\n let name = keyName(event), baseName, direct = map[modifiers(name, event)];\n if (direct && direct(view.state, view.dispatch, view))\n return true;\n // A character key\n if (name.length == 1 && name != \" \") {\n if (event.shiftKey) {\n // In case the name was already modified by shift, try looking\n // it up without its shift modifier\n let noShift = map[modifiers(name, event, false)];\n if (noShift && noShift(view.state, view.dispatch, view))\n return true;\n }\n if ((event.shiftKey || event.altKey || event.metaKey || name.charCodeAt(0) > 127) &&\n (baseName = base[event.keyCode]) && baseName != name) {\n // Try falling back to the keyCode when there's a modifier\n // active or the character produced isn't ASCII, and our table\n // produces a different name from the the keyCode. See #668,\n // #1060\n let fromCode = map[modifiers(baseName, event)];\n if (fromCode && fromCode(view.state, view.dispatch, view))\n return true;\n }\n }\n return false;\n };\n}\n\n/**\nDelete the selection, if there is one.\n*/\nconst deleteSelection$1 = (state, dispatch) => {\n if (state.selection.empty)\n return false;\n if (dispatch)\n dispatch(state.tr.deleteSelection().scrollIntoView());\n return true;\n};\nfunction atBlockStart(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"backward\", state)\n : $cursor.parentOffset > 0))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and at the start of a textblock, try to\nreduce the distance between that block and the one before it—if\nthere's a block directly before it that can be joined, join them.\nIf not, try to move the selected block closer to the next one in\nthe document structure by lifting it out of its parent or moving it\ninto a parent of the previous block. Will use the view for accurate\n(bidi-aware) start-of-textblock detection if given.\n*/\nconst joinBackward$1 = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n // If there is no node before this, try to lift\n if (!$cut) {\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n let before = $cut.nodeBefore;\n // Apply the joining algorithm\n if (!before.type.spec.isolating && deleteBarrier(state, $cut, dispatch))\n return true;\n // If the node below has no content and the node above is\n // selectable, delete the node below and select the one above.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(before, \"end\") || NodeSelection.isSelectable(before))) {\n let delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(before, \"end\") ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos, -1)), -1)\n : NodeSelection.create(tr.doc, $cut.pos - before.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n // If the node before is an atom, delete it\n if (before.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView());\n return true;\n }\n return false;\n};\nfunction textblockAt(node, side, only = false) {\n for (let scan = node; scan; scan = (side == \"start\" ? scan.firstChild : scan.lastChild)) {\n if (scan.isTextblock)\n return true;\n if (only && scan.childCount != 1)\n return false;\n }\n return false;\n}\n/**\nWhen the selection is empty and at the start of a textblock, select\nthe node before that textblock, if possible. This is intended to be\nbound to keys like backspace, after\n[`joinBackward`](https://prosemirror.net/docs/ref/#commands.joinBackward) or other deleting\ncommands, as a fall-back behavior when the schema doesn't allow\ndeletion at the selected point.\n*/\nconst selectNodeBackward$1 = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"backward\", state) : $head.parentOffset > 0)\n return false;\n $cut = findCutBefore($head);\n }\n let node = $cut && $cut.nodeBefore;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos - node.nodeSize)).scrollIntoView());\n return true;\n};\nfunction findCutBefore($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n if ($pos.index(i) > 0)\n return $pos.doc.resolve($pos.before(i + 1));\n if ($pos.node(i).type.spec.isolating)\n break;\n }\n return null;\n}\nfunction atBlockEnd(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"forward\", state)\n : $cursor.parentOffset < $cursor.parent.content.size))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and the cursor is at the end of a\ntextblock, try to reduce or remove the boundary between that block\nand the one after it, either by joining them or by moving the other\nblock closer to this one in the tree structure. Will use the view\nfor accurate start-of-textblock detection if given.\n*/\nconst joinForward$1 = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n // If there is no node after this, there's nothing to do\n if (!$cut)\n return false;\n let after = $cut.nodeAfter;\n // Try the joining algorithm\n if (deleteBarrier(state, $cut, dispatch))\n return true;\n // If the node above has no content and the node below is\n // selectable, delete the node above and select the one below.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(after, \"start\") || NodeSelection.isSelectable(after))) {\n let delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(after, \"start\") ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos)), 1)\n : NodeSelection.create(tr.doc, tr.mapping.map($cut.pos)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n // If the next node is an atom, delete it\n if (after.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nWhen the selection is empty and at the end of a textblock, select\nthe node coming after that textblock, if possible. This is intended\nto be bound to keys like delete, after\n[`joinForward`](https://prosemirror.net/docs/ref/#commands.joinForward) and similar deleting\ncommands, to provide a fall-back behavior when the schema doesn't\nallow deletion at the selected point.\n*/\nconst selectNodeForward$1 = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"forward\", state) : $head.parentOffset < $head.parent.content.size)\n return false;\n $cut = findCutAfter($head);\n }\n let node = $cut && $cut.nodeAfter;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos)).scrollIntoView());\n return true;\n};\nfunction findCutAfter($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n let parent = $pos.node(i);\n if ($pos.index(i) + 1 < parent.childCount)\n return $pos.doc.resolve($pos.after(i + 1));\n if (parent.type.spec.isolating)\n break;\n }\n return null;\n}\n/**\nJoin the selected block or, if there is a text selection, the\nclosest ancestor block of the selection that can be joined, with\nthe sibling above it.\n*/\nconst joinUp$1 = (state, dispatch) => {\n let sel = state.selection, nodeSel = sel instanceof NodeSelection, point;\n if (nodeSel) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.from))\n return false;\n point = sel.from;\n }\n else {\n point = joinPoint(state.doc, sel.from, -1);\n if (point == null)\n return false;\n }\n if (dispatch) {\n let tr = state.tr.join(point);\n if (nodeSel)\n tr.setSelection(NodeSelection.create(tr.doc, point - state.doc.resolve(point).nodeBefore.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nJoin the selected block, or the closest ancestor of the selection\nthat can be joined, with the sibling after it.\n*/\nconst joinDown$1 = (state, dispatch) => {\n let sel = state.selection, point;\n if (sel instanceof NodeSelection) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.to))\n return false;\n point = sel.to;\n }\n else {\n point = joinPoint(state.doc, sel.to, 1);\n if (point == null)\n return false;\n }\n if (dispatch)\n dispatch(state.tr.join(point).scrollIntoView());\n return true;\n};\n/**\nLift the selected block, or the closest ancestor block of the\nselection that can be lifted, out of its parent node.\n*/\nconst lift$1 = (state, dispatch) => {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nIf the selection is in a node whose type has a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, replace the\nselection with a newline character.\n*/\nconst newlineInCode$1 = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n if (dispatch)\n dispatch(state.tr.insertText(\"\\n\").scrollIntoView());\n return true;\n};\nfunction defaultBlockAt$1(match) {\n for (let i = 0; i < match.edgeCount; i++) {\n let { type } = match.edge(i);\n if (type.isTextblock && !type.hasRequiredAttrs())\n return type;\n }\n return null;\n}\n/**\nWhen the selection is in a node with a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, create a\ndefault block after the code block, and move the cursor there.\n*/\nconst exitCode$1 = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n let above = $head.node(-1), after = $head.indexAfter(-1), type = defaultBlockAt$1(above.contentMatchAt(after));\n if (!type || !above.canReplaceWith(after, after, type))\n return false;\n if (dispatch) {\n let pos = $head.after(), tr = state.tr.replaceWith(pos, pos, type.createAndFill());\n tr.setSelection(Selection.near(tr.doc.resolve(pos), 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf a block node is selected, create an empty paragraph before (if\nit is its parent's first child) or after it.\n*/\nconst createParagraphNear$1 = (state, dispatch) => {\n let sel = state.selection, { $from, $to } = sel;\n if (sel instanceof AllSelection || $from.parent.inlineContent || $to.parent.inlineContent)\n return false;\n let type = defaultBlockAt$1($to.parent.contentMatchAt($to.indexAfter()));\n if (!type || !type.isTextblock)\n return false;\n if (dispatch) {\n let side = (!$from.parentOffset && $to.index() < $to.parent.childCount ? $from : $to).pos;\n let tr = state.tr.insert(side, type.createAndFill());\n tr.setSelection(TextSelection.create(tr.doc, side + 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf the cursor is in an empty textblock that can be lifted, lift the\nblock.\n*/\nconst liftEmptyBlock$1 = (state, dispatch) => {\n let { $cursor } = state.selection;\n if (!$cursor || $cursor.parent.content.size)\n return false;\n if ($cursor.depth > 1 && $cursor.after() != $cursor.end(-1)) {\n let before = $cursor.before();\n if (canSplit(state.doc, before)) {\n if (dispatch)\n dispatch(state.tr.split(before).scrollIntoView());\n return true;\n }\n }\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nMove the selection to the node wrapping the current selection, if\nany. (Will not select the document node.)\n*/\nconst selectParentNode$1 = (state, dispatch) => {\n let { $from, to } = state.selection, pos;\n let same = $from.sharedDepth(to);\n if (same == 0)\n return false;\n pos = $from.before(same);\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, pos)));\n return true;\n};\nfunction joinMaybeClear(state, $pos, dispatch) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter, index = $pos.index();\n if (!before || !after || !before.type.compatibleContent(after.type))\n return false;\n if (!before.content.size && $pos.parent.canReplace(index - 1, index)) {\n if (dispatch)\n dispatch(state.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView());\n return true;\n }\n if (!$pos.parent.canReplace(index, index + 1) || !(after.isTextblock || canJoin(state.doc, $pos.pos)))\n return false;\n if (dispatch)\n dispatch(state.tr\n .clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount))\n .join($pos.pos)\n .scrollIntoView());\n return true;\n}\nfunction deleteBarrier(state, $cut, dispatch) {\n let before = $cut.nodeBefore, after = $cut.nodeAfter, conn, match;\n if (before.type.spec.isolating || after.type.spec.isolating)\n return false;\n if (joinMaybeClear(state, $cut, dispatch))\n return true;\n let canDelAfter = $cut.parent.canReplace($cut.index(), $cut.index() + 1);\n if (canDelAfter &&\n (conn = (match = before.contentMatchAt(before.childCount)).findWrapping(after.type)) &&\n match.matchType(conn[0] || after.type).validEnd) {\n if (dispatch) {\n let end = $cut.pos + after.nodeSize, wrap = Fragment.empty;\n for (let i = conn.length - 1; i >= 0; i--)\n wrap = Fragment.from(conn[i].create(null, wrap));\n wrap = Fragment.from(before.copy(wrap));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap, 1, 0), conn.length, true));\n let joinAt = end + 2 * conn.length;\n if (canJoin(tr.doc, joinAt))\n tr.join(joinAt);\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let selAfter = Selection.findFrom($cut, 1);\n let range = selAfter && selAfter.$from.blockRange(selAfter.$to), target = range && liftTarget(range);\n if (target != null && target >= $cut.depth) {\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n if (canDelAfter && textblockAt(after, \"start\", true) && textblockAt(before, \"end\")) {\n let at = before, wrap = [];\n for (;;) {\n wrap.push(at);\n if (at.isTextblock)\n break;\n at = at.lastChild;\n }\n let afterText = after, afterDepth = 1;\n for (; !afterText.isTextblock; afterText = afterText.firstChild)\n afterDepth++;\n if (at.canReplace(at.childCount, at.childCount, afterText.content)) {\n if (dispatch) {\n let end = Fragment.empty;\n for (let i = wrap.length - 1; i >= 0; i--)\n end = Fragment.from(wrap[i].copy(end));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - wrap.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice(end, wrap.length, 0), 0, true));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n}\nfunction selectTextblockSide(side) {\n return function (state, dispatch) {\n let sel = state.selection, $pos = side < 0 ? sel.$from : sel.$to;\n let depth = $pos.depth;\n while ($pos.node(depth).isInline) {\n if (!depth)\n return false;\n depth--;\n }\n if (!$pos.node(depth).isTextblock)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(TextSelection.create(state.doc, side < 0 ? $pos.start(depth) : $pos.end(depth))));\n return true;\n };\n}\n/**\nMoves the cursor to the start of current text block.\n*/\nconst selectTextblockStart$1 = selectTextblockSide(-1);\n/**\nMoves the cursor to the end of current text block.\n*/\nconst selectTextblockEnd$1 = selectTextblockSide(1);\n// Parameterized commands\n/**\nWrap the selection in a node of the given type with the given\nattributes.\n*/\nfunction wrapIn$1(nodeType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), wrapping = range && findWrapping(range, nodeType, attrs);\n if (!wrapping)\n return false;\n if (dispatch)\n dispatch(state.tr.wrap(range, wrapping).scrollIntoView());\n return true;\n };\n}\n/**\nReturns a command that tries to set the selected textblocks to the\ngiven node type with the given attributes.\n*/\nfunction setBlockType(nodeType, attrs = null) {\n return function (state, dispatch) {\n let applicable = false;\n for (let i = 0; i < state.selection.ranges.length && !applicable; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (applicable)\n return false;\n if (!node.isTextblock || node.hasMarkup(nodeType, attrs))\n return;\n if (node.type == nodeType) {\n applicable = true;\n }\n else {\n let $pos = state.doc.resolve(pos), index = $pos.index();\n applicable = $pos.parent.canReplaceWith(index, index + 1, nodeType);\n }\n });\n }\n if (!applicable)\n return false;\n if (dispatch) {\n let tr = state.tr;\n for (let i = 0; i < state.selection.ranges.length; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n tr.setBlockType(from, to, nodeType, attrs);\n }\n dispatch(tr.scrollIntoView());\n }\n return true;\n };\n}\ntypeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform)\n // @ts-ignore\n : typeof os != \"undefined\" && os.platform ? os.platform() == \"darwin\" : false;\n\n/**\nReturns a command function that wraps the selection in a list with\nthe given type an attributes. If `dispatch` is null, only return a\nvalue to indicate whether this is possible, but don't actually\nperform the change.\n*/\nfunction wrapInList$1(listType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), doJoin = false, outerRange = range;\n if (!range)\n return false;\n // This is at the top of an existing list item\n if (range.depth >= 2 && $from.node(range.depth - 1).type.compatibleContent(listType) && range.startIndex == 0) {\n // Don't do anything if this is the top of the list\n if ($from.index(range.depth - 1) == 0)\n return false;\n let $insert = state.doc.resolve(range.start - 2);\n outerRange = new NodeRange($insert, $insert, range.depth);\n if (range.endIndex < range.parent.childCount)\n range = new NodeRange($from, state.doc.resolve($to.end(range.depth)), range.depth);\n doJoin = true;\n }\n let wrap = findWrapping(outerRange, listType, attrs, range);\n if (!wrap)\n return false;\n if (dispatch)\n dispatch(doWrapInList(state.tr, range, wrap, doJoin, listType).scrollIntoView());\n return true;\n };\n}\nfunction doWrapInList(tr, range, wrappers, joinBefore, listType) {\n let content = Fragment.empty;\n for (let i = wrappers.length - 1; i >= 0; i--)\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n tr.step(new ReplaceAroundStep(range.start - (joinBefore ? 2 : 0), range.end, range.start, range.end, new Slice(content, 0, 0), wrappers.length, true));\n let found = 0;\n for (let i = 0; i < wrappers.length; i++)\n if (wrappers[i].type == listType)\n found = i + 1;\n let splitDepth = wrappers.length - found;\n let splitPos = range.start + wrappers.length - (joinBefore ? 2 : 0), parent = range.parent;\n for (let i = range.startIndex, e = range.endIndex, first = true; i < e; i++, first = false) {\n if (!first && canSplit(tr.doc, splitPos, splitDepth)) {\n tr.split(splitPos, splitDepth);\n splitPos += 2 * splitDepth;\n }\n splitPos += parent.child(i).nodeSize;\n }\n return tr;\n}\n/**\nCreate a command to lift the list item around the selection up into\na wrapping list.\n*/\nfunction liftListItem$1(itemType) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to, node => node.childCount > 0 && node.firstChild.type == itemType);\n if (!range)\n return false;\n if (!dispatch)\n return true;\n if ($from.node(range.depth - 1).type == itemType) // Inside a parent list\n return liftToOuterList(state, dispatch, itemType, range);\n else // Outer list node\n return liftOutOfList(state, dispatch, range);\n };\n}\nfunction liftToOuterList(state, dispatch, itemType, range) {\n let tr = state.tr, end = range.end, endOfList = range.$to.end(range.depth);\n if (end < endOfList) {\n // There are siblings after the lifted items, which must become\n // children of the last item\n tr.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList, new Slice(Fragment.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true));\n range = new NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth);\n }\n const target = liftTarget(range);\n if (target == null)\n return false;\n tr.lift(range, target);\n let after = tr.mapping.map(end, -1) - 1;\n if (canJoin(tr.doc, after))\n tr.join(after);\n dispatch(tr.scrollIntoView());\n return true;\n}\nfunction liftOutOfList(state, dispatch, range) {\n let tr = state.tr, list = range.parent;\n // Merge the list items into a single big item\n for (let pos = range.end, i = range.endIndex - 1, e = range.startIndex; i > e; i--) {\n pos -= list.child(i).nodeSize;\n tr.delete(pos - 1, pos + 1);\n }\n let $start = tr.doc.resolve(range.start), item = $start.nodeAfter;\n if (tr.mapping.map(range.end) != range.start + $start.nodeAfter.nodeSize)\n return false;\n let atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount;\n let parent = $start.node(-1), indexBefore = $start.index(-1);\n if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ? Fragment.empty : Fragment.from(list))))\n return false;\n let start = $start.pos, end = start + item.nodeSize;\n // Strip off the surrounding list. At the sides where we're not at\n // the end of the list, the existing list is closed. At sides where\n // this is the end, it is overwritten to its end.\n tr.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new Slice((atStart ? Fragment.empty : Fragment.from(list.copy(Fragment.empty)))\n .append(atEnd ? Fragment.empty : Fragment.from(list.copy(Fragment.empty))), atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));\n dispatch(tr.scrollIntoView());\n return true;\n}\n/**\nCreate a command to sink the list item around the selection down\ninto an inner list.\n*/\nfunction sinkListItem$1(itemType) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to, node => node.childCount > 0 && node.firstChild.type == itemType);\n if (!range)\n return false;\n let startIndex = range.startIndex;\n if (startIndex == 0)\n return false;\n let parent = range.parent, nodeBefore = parent.child(startIndex - 1);\n if (nodeBefore.type != itemType)\n return false;\n if (dispatch) {\n let nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type;\n let inner = Fragment.from(nestedBefore ? itemType.create() : null);\n let slice = new Slice(Fragment.from(itemType.create(null, Fragment.from(parent.type.create(null, inner)))), nestedBefore ? 3 : 1, 0);\n let before = range.start, after = range.end;\n dispatch(state.tr.step(new ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, before, after, slice, 1, true))\n .scrollIntoView());\n }\n return true;\n };\n}\n\nfunction createChainableState(config) {\r\n const { state, transaction } = config;\r\n let { selection } = transaction;\r\n let { doc } = transaction;\r\n let { storedMarks } = transaction;\r\n return {\r\n ...state,\r\n apply: state.apply.bind(state),\r\n applyTransaction: state.applyTransaction.bind(state),\r\n filterTransaction: state.filterTransaction,\r\n plugins: state.plugins,\r\n schema: state.schema,\r\n reconfigure: state.reconfigure.bind(state),\r\n toJSON: state.toJSON.bind(state),\r\n get storedMarks() {\r\n return storedMarks;\r\n },\r\n get selection() {\r\n return selection;\r\n },\r\n get doc() {\r\n return doc;\r\n },\r\n get tr() {\r\n selection = transaction.selection;\r\n doc = transaction.doc;\r\n storedMarks = transaction.storedMarks;\r\n return transaction;\r\n },\r\n };\r\n}\n\nclass CommandManager {\r\n constructor(props) {\r\n this.editor = props.editor;\r\n this.rawCommands = this.editor.extensionManager.commands;\r\n this.customState = props.state;\r\n }\r\n get hasCustomState() {\r\n return !!this.customState;\r\n }\r\n get state() {\r\n return this.customState || this.editor.state;\r\n }\r\n get commands() {\r\n const { rawCommands, editor, state } = this;\r\n const { view } = editor;\r\n const { tr } = state;\r\n const props = this.buildProps(tr);\r\n return Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {\r\n const method = (...args) => {\r\n const callback = command(...args)(props);\r\n if (!tr.getMeta('preventDispatch') && !this.hasCustomState) {\r\n view.dispatch(tr);\r\n }\r\n return callback;\r\n };\r\n return [name, method];\r\n }));\r\n }\r\n get chain() {\r\n return () => this.createChain();\r\n }\r\n get can() {\r\n return () => this.createCan();\r\n }\r\n createChain(startTr, shouldDispatch = true) {\r\n const { rawCommands, editor, state } = this;\r\n const { view } = editor;\r\n const callbacks = [];\r\n const hasStartTransaction = !!startTr;\r\n const tr = startTr || state.tr;\r\n const run = () => {\r\n if (!hasStartTransaction\r\n && shouldDispatch\r\n && !tr.getMeta('preventDispatch')\r\n && !this.hasCustomState) {\r\n view.dispatch(tr);\r\n }\r\n return callbacks.every(callback => callback === true);\r\n };\r\n const chain = {\r\n ...Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {\r\n const chainedCommand = (...args) => {\r\n const props = this.buildProps(tr, shouldDispatch);\r\n const callback = command(...args)(props);\r\n callbacks.push(callback);\r\n return chain;\r\n };\r\n return [name, chainedCommand];\r\n })),\r\n run,\r\n };\r\n return chain;\r\n }\r\n createCan(startTr) {\r\n const { rawCommands, state } = this;\r\n const dispatch = false;\r\n const tr = startTr || state.tr;\r\n const props = this.buildProps(tr, dispatch);\r\n const formattedCommands = Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {\r\n return [name, (...args) => command(...args)({ ...props, dispatch: undefined })];\r\n }));\r\n return {\r\n ...formattedCommands,\r\n chain: () => this.createChain(tr, dispatch),\r\n };\r\n }\r\n buildProps(tr, shouldDispatch = true) {\r\n const { rawCommands, editor, state } = this;\r\n const { view } = editor;\r\n const props = {\r\n tr,\r\n editor,\r\n view,\r\n state: createChainableState({\r\n state,\r\n transaction: tr,\r\n }),\r\n dispatch: shouldDispatch ? () => undefined : undefined,\r\n chain: () => this.createChain(tr, shouldDispatch),\r\n can: () => this.createCan(tr),\r\n get commands() {\r\n return Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {\r\n return [name, (...args) => command(...args)(props)];\r\n }));\r\n },\r\n };\r\n return props;\r\n }\r\n}\n\nclass EventEmitter {\r\n constructor() {\r\n this.callbacks = {};\r\n }\r\n on(event, fn) {\r\n if (!this.callbacks[event]) {\r\n this.callbacks[event] = [];\r\n }\r\n this.callbacks[event].push(fn);\r\n return this;\r\n }\r\n emit(event, ...args) {\r\n const callbacks = this.callbacks[event];\r\n if (callbacks) {\r\n callbacks.forEach(callback => callback.apply(this, args));\r\n }\r\n return this;\r\n }\r\n off(event, fn) {\r\n const callbacks = this.callbacks[event];\r\n if (callbacks) {\r\n if (fn) {\r\n this.callbacks[event] = callbacks.filter(callback => callback !== fn);\r\n }\r\n else {\r\n delete this.callbacks[event];\r\n }\r\n }\r\n return this;\r\n }\r\n removeAllListeners() {\r\n this.callbacks = {};\r\n }\r\n}\n\nfunction getExtensionField(extension, field, context) {\r\n if (extension.config[field] === undefined && extension.parent) {\r\n return getExtensionField(extension.parent, field, context);\r\n }\r\n if (typeof extension.config[field] === 'function') {\r\n const value = extension.config[field].bind({\r\n ...context,\r\n parent: extension.parent\r\n ? getExtensionField(extension.parent, field, context)\r\n : null,\r\n });\r\n return value;\r\n }\r\n return extension.config[field];\r\n}\n\nfunction splitExtensions(extensions) {\r\n const baseExtensions = extensions.filter(extension => extension.type === 'extension');\r\n const nodeExtensions = extensions.filter(extension => extension.type === 'node');\r\n const markExtensions = extensions.filter(extension => extension.type === 'mark');\r\n return {\r\n baseExtensions,\r\n nodeExtensions,\r\n markExtensions,\r\n };\r\n}\n\n/**\r\n * Get a list of all extension attributes defined in `addAttribute` and `addGlobalAttribute`.\r\n * @param extensions List of extensions\r\n */\r\nfunction getAttributesFromExtensions(extensions) {\r\n const extensionAttributes = [];\r\n const { nodeExtensions, markExtensions } = splitExtensions(extensions);\r\n const nodeAndMarkExtensions = [...nodeExtensions, ...markExtensions];\r\n const defaultAttribute = {\r\n default: null,\r\n rendered: true,\r\n renderHTML: null,\r\n parseHTML: null,\r\n keepOnSplit: true,\r\n isRequired: false,\r\n };\r\n extensions.forEach(extension => {\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n };\r\n const addGlobalAttributes = getExtensionField(extension, 'addGlobalAttributes', context);\r\n if (!addGlobalAttributes) {\r\n return;\r\n }\r\n // TODO: remove `as GlobalAttributes`\r\n const globalAttributes = addGlobalAttributes();\r\n globalAttributes.forEach(globalAttribute => {\r\n globalAttribute.types.forEach(type => {\r\n Object\r\n .entries(globalAttribute.attributes)\r\n .forEach(([name, attribute]) => {\r\n extensionAttributes.push({\r\n type,\r\n name,\r\n attribute: {\r\n ...defaultAttribute,\r\n ...attribute,\r\n },\r\n });\r\n });\r\n });\r\n });\r\n });\r\n nodeAndMarkExtensions.forEach(extension => {\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n };\r\n const addAttributes = getExtensionField(extension, 'addAttributes', context);\r\n if (!addAttributes) {\r\n return;\r\n }\r\n // TODO: remove `as Attributes`\r\n const attributes = addAttributes();\r\n Object\r\n .entries(attributes)\r\n .forEach(([name, attribute]) => {\r\n const mergedAttr = {\r\n ...defaultAttribute,\r\n ...attribute,\r\n };\r\n if (typeof (mergedAttr === null || mergedAttr === void 0 ? void 0 : mergedAttr.default) === 'function') {\r\n mergedAttr.default = mergedAttr.default();\r\n }\r\n if ((mergedAttr === null || mergedAttr === void 0 ? void 0 : mergedAttr.isRequired) && (mergedAttr === null || mergedAttr === void 0 ? void 0 : mergedAttr.default) === undefined) {\r\n delete mergedAttr.default;\r\n }\r\n extensionAttributes.push({\r\n type: extension.name,\r\n name,\r\n attribute: mergedAttr,\r\n });\r\n });\r\n });\r\n return extensionAttributes;\r\n}\n\nfunction getNodeType(nameOrType, schema) {\r\n if (typeof nameOrType === 'string') {\r\n if (!schema.nodes[nameOrType]) {\r\n throw Error(`There is no node type named '${nameOrType}'. Maybe you forgot to add the extension?`);\r\n }\r\n return schema.nodes[nameOrType];\r\n }\r\n return nameOrType;\r\n}\n\nfunction mergeAttributes(...objects) {\r\n return objects\r\n .filter(item => !!item)\r\n .reduce((items, item) => {\r\n const mergedAttributes = { ...items };\r\n Object.entries(item).forEach(([key, value]) => {\r\n const exists = mergedAttributes[key];\r\n if (!exists) {\r\n mergedAttributes[key] = value;\r\n return;\r\n }\r\n if (key === 'class') {\r\n const valueClasses = value ? value.split(' ') : [];\r\n const existingClasses = mergedAttributes[key] ? mergedAttributes[key].split(' ') : [];\r\n const insertClasses = valueClasses.filter(valueClass => !existingClasses.includes(valueClass));\r\n mergedAttributes[key] = [...existingClasses, ...insertClasses].join(' ');\r\n }\r\n else if (key === 'style') {\r\n mergedAttributes[key] = [mergedAttributes[key], value].join('; ');\r\n }\r\n else {\r\n mergedAttributes[key] = value;\r\n }\r\n });\r\n return mergedAttributes;\r\n }, {});\r\n}\n\nfunction getRenderedAttributes(nodeOrMark, extensionAttributes) {\r\n return extensionAttributes\r\n .filter(item => item.attribute.rendered)\r\n .map(item => {\r\n if (!item.attribute.renderHTML) {\r\n return {\r\n [item.name]: nodeOrMark.attrs[item.name],\r\n };\r\n }\r\n return item.attribute.renderHTML(nodeOrMark.attrs) || {};\r\n })\r\n .reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {});\r\n}\n\nfunction isFunction(value) {\r\n return typeof value === 'function';\r\n}\n\n/**\r\n * Optionally calls `value` as a function.\r\n * Otherwise it is returned directly.\r\n * @param value Function or any value.\r\n * @param context Optional context to bind to function.\r\n * @param props Optional props to pass to function.\r\n */\r\nfunction callOrReturn(value, context = undefined, ...props) {\r\n if (isFunction(value)) {\r\n if (context) {\r\n return value.bind(context)(...props);\r\n }\r\n return value(...props);\r\n }\r\n return value;\r\n}\n\nfunction isEmptyObject(value = {}) {\r\n return Object.keys(value).length === 0 && value.constructor === Object;\r\n}\n\nfunction fromString(value) {\r\n if (typeof value !== 'string') {\r\n return value;\r\n }\r\n if (value.match(/^[+-]?(?:\\d*\\.)?\\d+$/)) {\r\n return Number(value);\r\n }\r\n if (value === 'true') {\r\n return true;\r\n }\r\n if (value === 'false') {\r\n return false;\r\n }\r\n return value;\r\n}\n\n/**\r\n * This function merges extension attributes into parserule attributes (`attrs` or `getAttrs`).\r\n * Cancels when `getAttrs` returned `false`.\r\n * @param parseRule ProseMirror ParseRule\r\n * @param extensionAttributes List of attributes to inject\r\n */\r\nfunction injectExtensionAttributesToParseRule(parseRule, extensionAttributes) {\r\n if (parseRule.style) {\r\n return parseRule;\r\n }\r\n return {\r\n ...parseRule,\r\n getAttrs: node => {\r\n const oldAttributes = parseRule.getAttrs ? parseRule.getAttrs(node) : parseRule.attrs;\r\n if (oldAttributes === false) {\r\n return false;\r\n }\r\n const newAttributes = extensionAttributes.reduce((items, item) => {\r\n const value = item.attribute.parseHTML\r\n ? item.attribute.parseHTML(node)\r\n : fromString(node.getAttribute(item.name));\r\n if (value === null || value === undefined) {\r\n return items;\r\n }\r\n return {\r\n ...items,\r\n [item.name]: value,\r\n };\r\n }, {});\r\n return { ...oldAttributes, ...newAttributes };\r\n },\r\n };\r\n}\n\nfunction cleanUpSchemaItem(data) {\r\n return Object.fromEntries(\r\n // @ts-ignore\r\n Object.entries(data).filter(([key, value]) => {\r\n if (key === 'attrs' && isEmptyObject(value)) {\r\n return false;\r\n }\r\n return value !== null && value !== undefined;\r\n }));\r\n}\r\nfunction getSchemaByResolvedExtensions(extensions, editor) {\r\n var _a;\r\n const allAttributes = getAttributesFromExtensions(extensions);\r\n const { nodeExtensions, markExtensions } = splitExtensions(extensions);\r\n const topNode = (_a = nodeExtensions.find(extension => getExtensionField(extension, 'topNode'))) === null || _a === void 0 ? void 0 : _a.name;\r\n const nodes = Object.fromEntries(nodeExtensions.map(extension => {\r\n const extensionAttributes = allAttributes.filter(attribute => attribute.type === extension.name);\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n editor,\r\n };\r\n const extraNodeFields = extensions.reduce((fields, e) => {\r\n const extendNodeSchema = getExtensionField(e, 'extendNodeSchema', context);\r\n return {\r\n ...fields,\r\n ...(extendNodeSchema ? extendNodeSchema(extension) : {}),\r\n };\r\n }, {});\r\n const schema = cleanUpSchemaItem({\r\n ...extraNodeFields,\r\n content: callOrReturn(getExtensionField(extension, 'content', context)),\r\n marks: callOrReturn(getExtensionField(extension, 'marks', context)),\r\n group: callOrReturn(getExtensionField(extension, 'group', context)),\r\n inline: callOrReturn(getExtensionField(extension, 'inline', context)),\r\n atom: callOrReturn(getExtensionField(extension, 'atom', context)),\r\n selectable: callOrReturn(getExtensionField(extension, 'selectable', context)),\r\n draggable: callOrReturn(getExtensionField(extension, 'draggable', context)),\r\n code: callOrReturn(getExtensionField(extension, 'code', context)),\r\n defining: callOrReturn(getExtensionField(extension, 'defining', context)),\r\n isolating: callOrReturn(getExtensionField(extension, 'isolating', context)),\r\n attrs: Object.fromEntries(extensionAttributes.map(extensionAttribute => {\r\n var _a;\r\n return [extensionAttribute.name, { default: (_a = extensionAttribute === null || extensionAttribute === void 0 ? void 0 : extensionAttribute.attribute) === null || _a === void 0 ? void 0 : _a.default }];\r\n })),\r\n });\r\n const parseHTML = callOrReturn(getExtensionField(extension, 'parseHTML', context));\r\n if (parseHTML) {\r\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes));\r\n }\r\n const renderHTML = getExtensionField(extension, 'renderHTML', context);\r\n if (renderHTML) {\r\n schema.toDOM = node => renderHTML({\r\n node,\r\n HTMLAttributes: getRenderedAttributes(node, extensionAttributes),\r\n });\r\n }\r\n const renderText = getExtensionField(extension, 'renderText', context);\r\n if (renderText) {\r\n schema.toText = renderText;\r\n }\r\n return [extension.name, schema];\r\n }));\r\n const marks = Object.fromEntries(markExtensions.map(extension => {\r\n const extensionAttributes = allAttributes.filter(attribute => attribute.type === extension.name);\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n editor,\r\n };\r\n const extraMarkFields = extensions.reduce((fields, e) => {\r\n const extendMarkSchema = getExtensionField(e, 'extendMarkSchema', context);\r\n return {\r\n ...fields,\r\n ...(extendMarkSchema ? extendMarkSchema(extension) : {}),\r\n };\r\n }, {});\r\n const schema = cleanUpSchemaItem({\r\n ...extraMarkFields,\r\n inclusive: callOrReturn(getExtensionField(extension, 'inclusive', context)),\r\n excludes: callOrReturn(getExtensionField(extension, 'excludes', context)),\r\n group: callOrReturn(getExtensionField(extension, 'group', context)),\r\n spanning: callOrReturn(getExtensionField(extension, 'spanning', context)),\r\n code: callOrReturn(getExtensionField(extension, 'code', context)),\r\n attrs: Object.fromEntries(extensionAttributes.map(extensionAttribute => {\r\n var _a;\r\n return [extensionAttribute.name, { default: (_a = extensionAttribute === null || extensionAttribute === void 0 ? void 0 : extensionAttribute.attribute) === null || _a === void 0 ? void 0 : _a.default }];\r\n })),\r\n });\r\n const parseHTML = callOrReturn(getExtensionField(extension, 'parseHTML', context));\r\n if (parseHTML) {\r\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes));\r\n }\r\n const renderHTML = getExtensionField(extension, 'renderHTML', context);\r\n if (renderHTML) {\r\n schema.toDOM = mark => renderHTML({\r\n mark,\r\n HTMLAttributes: getRenderedAttributes(mark, extensionAttributes),\r\n });\r\n }\r\n return [extension.name, schema];\r\n }));\r\n return new Schema({\r\n topNode,\r\n nodes,\r\n marks,\r\n });\r\n}\n\nfunction getSchemaTypeByName(name, schema) {\r\n return schema.nodes[name] || schema.marks[name] || null;\r\n}\n\nfunction isExtensionRulesEnabled(extension, enabled) {\r\n if (Array.isArray(enabled)) {\r\n return enabled.some(enabledExtension => {\r\n const name = typeof enabledExtension === 'string'\r\n ? enabledExtension\r\n : enabledExtension.name;\r\n return name === extension.name;\r\n });\r\n }\r\n return enabled;\r\n}\n\nconst getTextContentFromNodes = ($from, maxMatch = 500) => {\r\n let textBefore = '';\r\n const sliceEndPos = $from.parentOffset;\r\n $from.parent.nodesBetween(Math.max(0, sliceEndPos - maxMatch), sliceEndPos, (node, pos, parent, index) => {\r\n var _a, _b;\r\n const chunk = ((_b = (_a = node.type.spec).toText) === null || _b === void 0 ? void 0 : _b.call(_a, {\r\n node,\r\n pos,\r\n parent,\r\n index,\r\n }))\r\n || node.textContent\r\n || '%leaf%';\r\n textBefore += chunk.slice(0, Math.max(0, sliceEndPos - pos));\r\n });\r\n return textBefore;\r\n};\n\nfunction isRegExp(value) {\r\n return Object.prototype.toString.call(value) === '[object RegExp]';\r\n}\n\nclass InputRule {\r\n constructor(config) {\r\n this.find = config.find;\r\n this.handler = config.handler;\r\n }\r\n}\r\nconst inputRuleMatcherHandler = (text, find) => {\r\n if (isRegExp(find)) {\r\n return find.exec(text);\r\n }\r\n const inputRuleMatch = find(text);\r\n if (!inputRuleMatch) {\r\n return null;\r\n }\r\n const result = [inputRuleMatch.text];\r\n result.index = inputRuleMatch.index;\r\n result.input = text;\r\n result.data = inputRuleMatch.data;\r\n if (inputRuleMatch.replaceWith) {\r\n if (!inputRuleMatch.text.includes(inputRuleMatch.replaceWith)) {\r\n console.warn('[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".');\r\n }\r\n result.push(inputRuleMatch.replaceWith);\r\n }\r\n return result;\r\n};\r\nfunction run$1$1(config) {\r\n var _a;\r\n const { editor, from, to, text, rules, plugin, } = config;\r\n const { view } = editor;\r\n if (view.composing) {\r\n return false;\r\n }\r\n const $from = view.state.doc.resolve(from);\r\n if (\r\n // check for code node\r\n $from.parent.type.spec.code\r\n // check for code mark\r\n || !!((_a = ($from.nodeBefore || $from.nodeAfter)) === null || _a === void 0 ? void 0 : _a.marks.find(mark => mark.type.spec.code))) {\r\n return false;\r\n }\r\n let matched = false;\r\n const textBefore = getTextContentFromNodes($from) + text;\r\n rules.forEach(rule => {\r\n if (matched) {\r\n return;\r\n }\r\n const match = inputRuleMatcherHandler(textBefore, rule.find);\r\n if (!match) {\r\n return;\r\n }\r\n const tr = view.state.tr;\r\n const state = createChainableState({\r\n state: view.state,\r\n transaction: tr,\r\n });\r\n const range = {\r\n from: from - (match[0].length - text.length),\r\n to,\r\n };\r\n const { commands, chain, can } = new CommandManager({\r\n editor,\r\n state,\r\n });\r\n const handler = rule.handler({\r\n state,\r\n range,\r\n match,\r\n commands,\r\n chain,\r\n can,\r\n });\r\n // stop if there are no changes\r\n if (handler === null || !tr.steps.length) {\r\n return;\r\n }\r\n // store transform as meta data\r\n // so we can undo input rules within the `undoInputRules` command\r\n tr.setMeta(plugin, {\r\n transform: tr,\r\n from,\r\n to,\r\n text,\r\n });\r\n view.dispatch(tr);\r\n matched = true;\r\n });\r\n return matched;\r\n}\r\n/**\r\n * Create an input rules plugin. When enabled, it will cause text\r\n * input that matches any of the given rules to trigger the rule’s\r\n * action.\r\n */\r\nfunction inputRulesPlugin(props) {\r\n const { editor, rules } = props;\r\n const plugin = new Plugin({\r\n state: {\r\n init() {\r\n return null;\r\n },\r\n apply(tr, prev) {\r\n const stored = tr.getMeta(plugin);\r\n if (stored) {\r\n return stored;\r\n }\r\n return tr.selectionSet || tr.docChanged ? null : prev;\r\n },\r\n },\r\n props: {\r\n handleTextInput(view, from, to, text) {\r\n return run$1$1({\r\n editor,\r\n from,\r\n to,\r\n text,\r\n rules,\r\n plugin,\r\n });\r\n },\r\n handleDOMEvents: {\r\n compositionend: view => {\r\n setTimeout(() => {\r\n const { $cursor } = view.state.selection;\r\n if ($cursor) {\r\n run$1$1({\r\n editor,\r\n from: $cursor.pos,\r\n to: $cursor.pos,\r\n text: '',\r\n rules,\r\n plugin,\r\n });\r\n }\r\n });\r\n return false;\r\n },\r\n },\r\n // add support for input rules to trigger on enter\r\n // this is useful for example for code blocks\r\n handleKeyDown(view, event) {\r\n if (event.key !== 'Enter') {\r\n return false;\r\n }\r\n const { $cursor } = view.state.selection;\r\n if ($cursor) {\r\n return run$1$1({\r\n editor,\r\n from: $cursor.pos,\r\n to: $cursor.pos,\r\n text: '\\n',\r\n rules,\r\n plugin,\r\n });\r\n }\r\n return false;\r\n },\r\n },\r\n // @ts-ignore\r\n isInputRules: true,\r\n });\r\n return plugin;\r\n}\n\nfunction isNumber(value) {\r\n return typeof value === 'number';\r\n}\n\nclass PasteRule {\r\n constructor(config) {\r\n this.find = config.find;\r\n this.handler = config.handler;\r\n }\r\n}\r\nconst pasteRuleMatcherHandler = (text, find) => {\r\n if (isRegExp(find)) {\r\n return [...text.matchAll(find)];\r\n }\r\n const matches = find(text);\r\n if (!matches) {\r\n return [];\r\n }\r\n return matches.map(pasteRuleMatch => {\r\n const result = [pasteRuleMatch.text];\r\n result.index = pasteRuleMatch.index;\r\n result.input = text;\r\n result.data = pasteRuleMatch.data;\r\n if (pasteRuleMatch.replaceWith) {\r\n if (!pasteRuleMatch.text.includes(pasteRuleMatch.replaceWith)) {\r\n console.warn('[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".');\r\n }\r\n result.push(pasteRuleMatch.replaceWith);\r\n }\r\n return result;\r\n });\r\n};\r\nfunction run$2(config) {\r\n const { editor, state, from, to, rule, pasteEvent, dropEvent, } = config;\r\n const { commands, chain, can } = new CommandManager({\r\n editor,\r\n state,\r\n });\r\n const handlers = [];\r\n state.doc.nodesBetween(from, to, (node, pos) => {\r\n if (!node.isTextblock || node.type.spec.code) {\r\n return;\r\n }\r\n const resolvedFrom = Math.max(from, pos);\r\n const resolvedTo = Math.min(to, pos + node.content.size);\r\n const textToMatch = node.textBetween(resolvedFrom - pos, resolvedTo - pos, undefined, '\\ufffc');\r\n const matches = pasteRuleMatcherHandler(textToMatch, rule.find);\r\n matches.forEach(match => {\r\n if (match.index === undefined) {\r\n return;\r\n }\r\n const start = resolvedFrom + match.index + 1;\r\n const end = start + match[0].length;\r\n const range = {\r\n from: state.tr.mapping.map(start),\r\n to: state.tr.mapping.map(end),\r\n };\r\n const handler = rule.handler({\r\n state,\r\n range,\r\n match,\r\n commands,\r\n chain,\r\n can,\r\n pasteEvent,\r\n dropEvent,\r\n });\r\n handlers.push(handler);\r\n });\r\n });\r\n const success = handlers.every(handler => handler !== null);\r\n return success;\r\n}\r\n/**\r\n * Create an paste rules plugin. When enabled, it will cause pasted\r\n * text that matches any of the given rules to trigger the rule’s\r\n * action.\r\n */\r\nfunction pasteRulesPlugin(props) {\r\n const { editor, rules } = props;\r\n let dragSourceElement = null;\r\n let isPastedFromProseMirror = false;\r\n let isDroppedFromProseMirror = false;\r\n let pasteEvent = new ClipboardEvent('paste');\r\n let dropEvent = new DragEvent('drop');\r\n const plugins = rules.map(rule => {\r\n return new Plugin({\r\n // we register a global drag handler to track the current drag source element\r\n view(view) {\r\n const handleDragstart = (event) => {\r\n var _a;\r\n dragSourceElement = ((_a = view.dom.parentElement) === null || _a === void 0 ? void 0 : _a.contains(event.target))\r\n ? view.dom.parentElement\r\n : null;\r\n };\r\n window.addEventListener('dragstart', handleDragstart);\r\n return {\r\n destroy() {\r\n window.removeEventListener('dragstart', handleDragstart);\r\n },\r\n };\r\n },\r\n props: {\r\n handleDOMEvents: {\r\n drop: (view, event) => {\r\n isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement;\r\n dropEvent = event;\r\n return false;\r\n },\r\n paste: (_view, event) => {\r\n var _a;\r\n const html = (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text/html');\r\n pasteEvent = event;\r\n isPastedFromProseMirror = !!(html === null || html === void 0 ? void 0 : html.includes('data-pm-slice'));\r\n return false;\r\n },\r\n },\r\n },\r\n appendTransaction: (transactions, oldState, state) => {\r\n const transaction = transactions[0];\r\n const isPaste = transaction.getMeta('uiEvent') === 'paste' && !isPastedFromProseMirror;\r\n const isDrop = transaction.getMeta('uiEvent') === 'drop' && !isDroppedFromProseMirror;\r\n if (!isPaste && !isDrop) {\r\n return;\r\n }\r\n // stop if there is no changed range\r\n const from = oldState.doc.content.findDiffStart(state.doc.content);\r\n const to = oldState.doc.content.findDiffEnd(state.doc.content);\r\n if (!isNumber(from) || !to || from === to.b) {\r\n return;\r\n }\r\n // build a chainable state\r\n // so we can use a single transaction for all paste rules\r\n const tr = state.tr;\r\n const chainableState = createChainableState({\r\n state,\r\n transaction: tr,\r\n });\r\n const handler = run$2({\r\n editor,\r\n state: chainableState,\r\n from: Math.max(from - 1, 0),\r\n to: to.b - 1,\r\n rule,\r\n pasteEvent,\r\n dropEvent,\r\n });\r\n // stop if there are no changes\r\n if (!handler || !tr.steps.length) {\r\n return;\r\n }\r\n dropEvent = new DragEvent('drop');\r\n pasteEvent = new ClipboardEvent('paste');\r\n return tr;\r\n },\r\n });\r\n });\r\n return plugins;\r\n}\n\nfunction findDuplicates(items) {\r\n const filtered = items.filter((el, index) => items.indexOf(el) !== index);\r\n return [...new Set(filtered)];\r\n}\n\nclass ExtensionManager {\r\n constructor(extensions, editor) {\r\n this.splittableMarks = [];\r\n this.editor = editor;\r\n this.extensions = ExtensionManager.resolve(extensions);\r\n this.schema = getSchemaByResolvedExtensions(this.extensions, editor);\r\n this.extensions.forEach(extension => {\r\n var _a;\r\n // store extension storage in editor\r\n this.editor.extensionStorage[extension.name] = extension.storage;\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n editor: this.editor,\r\n type: getSchemaTypeByName(extension.name, this.schema),\r\n };\r\n if (extension.type === 'mark') {\r\n const keepOnSplit = (_a = callOrReturn(getExtensionField(extension, 'keepOnSplit', context))) !== null && _a !== void 0 ? _a : true;\r\n if (keepOnSplit) {\r\n this.splittableMarks.push(extension.name);\r\n }\r\n }\r\n const onBeforeCreate = getExtensionField(extension, 'onBeforeCreate', context);\r\n if (onBeforeCreate) {\r\n this.editor.on('beforeCreate', onBeforeCreate);\r\n }\r\n const onCreate = getExtensionField(extension, 'onCreate', context);\r\n if (onCreate) {\r\n this.editor.on('create', onCreate);\r\n }\r\n const onUpdate = getExtensionField(extension, 'onUpdate', context);\r\n if (onUpdate) {\r\n this.editor.on('update', onUpdate);\r\n }\r\n const onSelectionUpdate = getExtensionField(extension, 'onSelectionUpdate', context);\r\n if (onSelectionUpdate) {\r\n this.editor.on('selectionUpdate', onSelectionUpdate);\r\n }\r\n const onTransaction = getExtensionField(extension, 'onTransaction', context);\r\n if (onTransaction) {\r\n this.editor.on('transaction', onTransaction);\r\n }\r\n const onFocus = getExtensionField(extension, 'onFocus', context);\r\n if (onFocus) {\r\n this.editor.on('focus', onFocus);\r\n }\r\n const onBlur = getExtensionField(extension, 'onBlur', context);\r\n if (onBlur) {\r\n this.editor.on('blur', onBlur);\r\n }\r\n const onDestroy = getExtensionField(extension, 'onDestroy', context);\r\n if (onDestroy) {\r\n this.editor.on('destroy', onDestroy);\r\n }\r\n });\r\n }\r\n static resolve(extensions) {\r\n const resolvedExtensions = ExtensionManager.sort(ExtensionManager.flatten(extensions));\r\n const duplicatedNames = findDuplicates(resolvedExtensions.map(extension => extension.name));\r\n if (duplicatedNames.length) {\r\n console.warn(`[tiptap warn]: Duplicate extension names found: [${duplicatedNames\r\n .map(item => `'${item}'`)\r\n .join(', ')}]. This can lead to issues.`);\r\n }\r\n return resolvedExtensions;\r\n }\r\n static flatten(extensions) {\r\n return (extensions\r\n .map(extension => {\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n };\r\n const addExtensions = getExtensionField(extension, 'addExtensions', context);\r\n if (addExtensions) {\r\n return [extension, ...this.flatten(addExtensions())];\r\n }\r\n return extension;\r\n })\r\n // `Infinity` will break TypeScript so we set a number that is probably high enough\r\n .flat(10));\r\n }\r\n static sort(extensions) {\r\n const defaultPriority = 100;\r\n return extensions.sort((a, b) => {\r\n const priorityA = getExtensionField(a, 'priority') || defaultPriority;\r\n const priorityB = getExtensionField(b, 'priority') || defaultPriority;\r\n if (priorityA > priorityB) {\r\n return -1;\r\n }\r\n if (priorityA < priorityB) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n get commands() {\r\n return this.extensions.reduce((commands, extension) => {\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n editor: this.editor,\r\n type: getSchemaTypeByName(extension.name, this.schema),\r\n };\r\n const addCommands = getExtensionField(extension, 'addCommands', context);\r\n if (!addCommands) {\r\n return commands;\r\n }\r\n return {\r\n ...commands,\r\n ...addCommands(),\r\n };\r\n }, {});\r\n }\r\n get plugins() {\r\n const { editor } = this;\r\n // With ProseMirror, first plugins within an array are executed first.\r\n // In Tiptap, we provide the ability to override plugins,\r\n // so it feels more natural to run plugins at the end of an array first.\r\n // That’s why we have to reverse the `extensions` array and sort again\r\n // based on the `priority` option.\r\n const extensions = ExtensionManager.sort([...this.extensions].reverse());\r\n const inputRules = [];\r\n const pasteRules = [];\r\n const allPlugins = extensions\r\n .map(extension => {\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n editor,\r\n type: getSchemaTypeByName(extension.name, this.schema),\r\n };\r\n const plugins = [];\r\n const addKeyboardShortcuts = getExtensionField(extension, 'addKeyboardShortcuts', context);\r\n let defaultBindings = {};\r\n // bind exit handling\r\n if (extension.type === 'mark' && extension.config.exitable) {\r\n defaultBindings.ArrowRight = () => Mark.handleExit({ editor, mark: extension });\r\n }\r\n if (addKeyboardShortcuts) {\r\n const bindings = Object.fromEntries(Object.entries(addKeyboardShortcuts()).map(([shortcut, method]) => {\r\n return [shortcut, () => method({ editor })];\r\n }));\r\n defaultBindings = { ...defaultBindings, ...bindings };\r\n }\r\n const keyMapPlugin = keymap(defaultBindings);\r\n plugins.push(keyMapPlugin);\r\n const addInputRules = getExtensionField(extension, 'addInputRules', context);\r\n if (isExtensionRulesEnabled(extension, editor.options.enableInputRules) && addInputRules) {\r\n inputRules.push(...addInputRules());\r\n }\r\n const addPasteRules = getExtensionField(extension, 'addPasteRules', context);\r\n if (isExtensionRulesEnabled(extension, editor.options.enablePasteRules) && addPasteRules) {\r\n pasteRules.push(...addPasteRules());\r\n }\r\n const addProseMirrorPlugins = getExtensionField(extension, 'addProseMirrorPlugins', context);\r\n if (addProseMirrorPlugins) {\r\n const proseMirrorPlugins = addProseMirrorPlugins();\r\n plugins.push(...proseMirrorPlugins);\r\n }\r\n return plugins;\r\n })\r\n .flat();\r\n return [\r\n inputRulesPlugin({\r\n editor,\r\n rules: inputRules,\r\n }),\r\n ...pasteRulesPlugin({\r\n editor,\r\n rules: pasteRules,\r\n }),\r\n ...allPlugins,\r\n ];\r\n }\r\n get attributes() {\r\n return getAttributesFromExtensions(this.extensions);\r\n }\r\n get nodeViews() {\r\n const { editor } = this;\r\n const { nodeExtensions } = splitExtensions(this.extensions);\r\n return Object.fromEntries(nodeExtensions\r\n .filter(extension => !!getExtensionField(extension, 'addNodeView'))\r\n .map(extension => {\r\n const extensionAttributes = this.attributes.filter(attribute => attribute.type === extension.name);\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n editor,\r\n type: getNodeType(extension.name, this.schema),\r\n };\r\n const addNodeView = getExtensionField(extension, 'addNodeView', context);\r\n if (!addNodeView) {\r\n return [];\r\n }\r\n const nodeview = (node, view, getPos, decorations) => {\r\n const HTMLAttributes = getRenderedAttributes(node, extensionAttributes);\r\n return addNodeView()({\r\n editor,\r\n node,\r\n getPos,\r\n decorations,\r\n HTMLAttributes,\r\n extension,\r\n });\r\n };\r\n return [extension.name, nodeview];\r\n }));\r\n }\r\n}\n\n// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\r\nfunction getType(value) {\r\n return Object.prototype.toString.call(value).slice(8, -1);\r\n}\r\nfunction isPlainObject(value) {\r\n if (getType(value) !== 'Object') {\r\n return false;\r\n }\r\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;\r\n}\n\nfunction mergeDeep(target, source) {\r\n const output = { ...target };\r\n if (isPlainObject(target) && isPlainObject(source)) {\r\n Object.keys(source).forEach(key => {\r\n if (isPlainObject(source[key])) {\r\n if (!(key in target)) {\r\n Object.assign(output, { [key]: source[key] });\r\n }\r\n else {\r\n output[key] = mergeDeep(target[key], source[key]);\r\n }\r\n }\r\n else {\r\n Object.assign(output, { [key]: source[key] });\r\n }\r\n });\r\n }\r\n return output;\r\n}\n\nclass Extension {\r\n constructor(config = {}) {\r\n this.type = 'extension';\r\n this.name = 'extension';\r\n this.parent = null;\r\n this.child = null;\r\n this.config = {\r\n name: this.name,\r\n defaultOptions: {},\r\n };\r\n this.config = {\r\n ...this.config,\r\n ...config,\r\n };\r\n this.name = this.config.name;\r\n if (config.defaultOptions) {\r\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`);\r\n }\r\n // TODO: remove `addOptions` fallback\r\n this.options = this.config.defaultOptions;\r\n if (this.config.addOptions) {\r\n this.options = callOrReturn(getExtensionField(this, 'addOptions', {\r\n name: this.name,\r\n }));\r\n }\r\n this.storage = callOrReturn(getExtensionField(this, 'addStorage', {\r\n name: this.name,\r\n options: this.options,\r\n })) || {};\r\n }\r\n static create(config = {}) {\r\n return new Extension(config);\r\n }\r\n configure(options = {}) {\r\n // return a new instance so we can use the same extension\r\n // with different calls of `configure`\r\n const extension = this.extend();\r\n extension.options = mergeDeep(this.options, options);\r\n extension.storage = callOrReturn(getExtensionField(extension, 'addStorage', {\r\n name: extension.name,\r\n options: extension.options,\r\n }));\r\n return extension;\r\n }\r\n extend(extendedConfig = {}) {\r\n const extension = new Extension(extendedConfig);\r\n extension.parent = this;\r\n this.child = extension;\r\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;\r\n if (extendedConfig.defaultOptions) {\r\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`);\r\n }\r\n extension.options = callOrReturn(getExtensionField(extension, 'addOptions', {\r\n name: extension.name,\r\n }));\r\n extension.storage = callOrReturn(getExtensionField(extension, 'addStorage', {\r\n name: extension.name,\r\n options: extension.options,\r\n }));\r\n return extension;\r\n }\r\n}\n\nfunction getTextBetween(startNode, range, options) {\r\n const { from, to } = range;\r\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {};\r\n let text = '';\r\n let separated = true;\r\n startNode.nodesBetween(from, to, (node, pos, parent, index) => {\r\n var _a;\r\n const textSerializer = textSerializers === null || textSerializers === void 0 ? void 0 : textSerializers[node.type.name];\r\n if (textSerializer) {\r\n if (node.isBlock && !separated) {\r\n text += blockSeparator;\r\n separated = true;\r\n }\r\n if (parent) {\r\n text += textSerializer({\r\n node,\r\n pos,\r\n parent,\r\n index,\r\n range,\r\n });\r\n }\r\n }\r\n else if (node.isText) {\r\n text += (_a = node === null || node === void 0 ? void 0 : node.text) === null || _a === void 0 ? void 0 : _a.slice(Math.max(from, pos) - pos, to - pos); // eslint-disable-line\r\n separated = false;\r\n }\r\n else if (node.isBlock && !separated) {\r\n text += blockSeparator;\r\n separated = true;\r\n }\r\n });\r\n return text;\r\n}\n\nfunction getTextSerializersFromSchema(schema) {\r\n return Object.fromEntries(Object.entries(schema.nodes)\r\n .filter(([, node]) => node.spec.toText)\r\n .map(([name, node]) => [name, node.spec.toText]));\r\n}\n\nconst ClipboardTextSerializer = Extension.create({\r\n name: 'clipboardTextSerializer',\r\n addProseMirrorPlugins() {\r\n return [\r\n new Plugin({\r\n key: new PluginKey('clipboardTextSerializer'),\r\n props: {\r\n clipboardTextSerializer: () => {\r\n const { editor } = this;\r\n const { state, schema } = editor;\r\n const { doc, selection } = state;\r\n const { ranges } = selection;\r\n const from = Math.min(...ranges.map(range => range.$from.pos));\r\n const to = Math.max(...ranges.map(range => range.$to.pos));\r\n const textSerializers = getTextSerializersFromSchema(schema);\r\n const range = { from, to };\r\n return getTextBetween(doc, range, {\r\n textSerializers,\r\n });\r\n },\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nconst blur = () => ({ editor, view }) => {\r\n requestAnimationFrame(() => {\r\n var _a;\r\n if (!editor.isDestroyed) {\r\n view.dom.blur();\r\n // Browsers should remove the caret on blur but safari does not.\r\n // See: https://github.com/ueberdosis/tiptap/issues/2405\r\n (_a = window === null || window === void 0 ? void 0 : window.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();\r\n }\r\n });\r\n return true;\r\n};\n\nconst clearContent = (emitUpdate = false) => ({ commands }) => {\r\n return commands.setContent('', emitUpdate);\r\n};\n\nconst clearNodes = () => ({ state, tr, dispatch }) => {\r\n const { selection } = tr;\r\n const { ranges } = selection;\r\n if (!dispatch) {\r\n return true;\r\n }\r\n ranges.forEach(({ $from, $to }) => {\r\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\r\n if (node.type.isText) {\r\n return;\r\n }\r\n const { doc, mapping } = tr;\r\n const $mappedFrom = doc.resolve(mapping.map(pos));\r\n const $mappedTo = doc.resolve(mapping.map(pos + node.nodeSize));\r\n const nodeRange = $mappedFrom.blockRange($mappedTo);\r\n if (!nodeRange) {\r\n return;\r\n }\r\n const targetLiftDepth = liftTarget(nodeRange);\r\n if (node.type.isTextblock) {\r\n const { defaultType } = $mappedFrom.parent.contentMatchAt($mappedFrom.index());\r\n tr.setNodeMarkup(nodeRange.start, defaultType);\r\n }\r\n if (targetLiftDepth || targetLiftDepth === 0) {\r\n tr.lift(nodeRange, targetLiftDepth);\r\n }\r\n });\r\n });\r\n return true;\r\n};\n\nconst command = fn => props => {\r\n return fn(props);\r\n};\n\nconst createParagraphNear = () => ({ state, dispatch }) => {\r\n return createParagraphNear$1(state, dispatch);\r\n};\n\nconst cut = (originRange, targetPos) => ({ editor, tr }) => {\r\n const { state } = editor;\r\n const contentSlice = state.doc.slice(originRange.from, originRange.to);\r\n tr.deleteRange(originRange.from, originRange.to);\r\n const newPos = tr.mapping.map(targetPos);\r\n tr.insert(newPos, contentSlice.content);\r\n tr.setSelection(new TextSelection(tr.doc.resolve(newPos - 1)));\r\n return true;\r\n};\n\nconst deleteCurrentNode = () => ({ tr, dispatch }) => {\r\n const { selection } = tr;\r\n const currentNode = selection.$anchor.node();\r\n // if there is content inside the current node, break out of this command\r\n if (currentNode.content.size > 0) {\r\n return false;\r\n }\r\n const $pos = tr.selection.$anchor;\r\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\r\n const node = $pos.node(depth);\r\n if (node.type === currentNode.type) {\r\n if (dispatch) {\r\n const from = $pos.before(depth);\r\n const to = $pos.after(depth);\r\n tr.delete(from, to).scrollIntoView();\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\nconst deleteNode = typeOrName => ({ tr, state, dispatch }) => {\r\n const type = getNodeType(typeOrName, state.schema);\r\n const $pos = tr.selection.$anchor;\r\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\r\n const node = $pos.node(depth);\r\n if (node.type === type) {\r\n if (dispatch) {\r\n const from = $pos.before(depth);\r\n const to = $pos.after(depth);\r\n tr.delete(from, to).scrollIntoView();\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\nconst deleteRange = range => ({ tr, dispatch }) => {\r\n const { from, to } = range;\r\n if (dispatch) {\r\n tr.delete(from, to);\r\n }\r\n return true;\r\n};\n\nconst deleteSelection = () => ({ state, dispatch }) => {\r\n return deleteSelection$1(state, dispatch);\r\n};\n\nconst enter = () => ({ commands }) => {\r\n return commands.keyboardShortcut('Enter');\r\n};\n\nconst exitCode = () => ({ state, dispatch }) => {\r\n return exitCode$1(state, dispatch);\r\n};\n\n/**\r\n * Check if object1 includes object2\r\n * @param object1 Object\r\n * @param object2 Object\r\n */\r\nfunction objectIncludes(object1, object2, options = { strict: true }) {\r\n const keys = Object.keys(object2);\r\n if (!keys.length) {\r\n return true;\r\n }\r\n return keys.every(key => {\r\n if (options.strict) {\r\n return object2[key] === object1[key];\r\n }\r\n if (isRegExp(object2[key])) {\r\n return object2[key].test(object1[key]);\r\n }\r\n return object2[key] === object1[key];\r\n });\r\n}\n\nfunction findMarkInSet(marks, type, attributes = {}) {\r\n return marks.find(item => {\r\n return item.type === type && objectIncludes(item.attrs, attributes);\r\n });\r\n}\r\nfunction isMarkInSet(marks, type, attributes = {}) {\r\n return !!findMarkInSet(marks, type, attributes);\r\n}\r\nfunction getMarkRange($pos, type, attributes = {}) {\r\n if (!$pos || !type) {\r\n return;\r\n }\r\n let start = $pos.parent.childAfter($pos.parentOffset);\r\n if ($pos.parentOffset === start.offset && start.offset !== 0) {\r\n start = $pos.parent.childBefore($pos.parentOffset);\r\n }\r\n if (!start.node) {\r\n return;\r\n }\r\n const mark = findMarkInSet([...start.node.marks], type, attributes);\r\n if (!mark) {\r\n return;\r\n }\r\n let startIndex = start.index;\r\n let startPos = $pos.start() + start.offset;\r\n let endIndex = startIndex + 1;\r\n let endPos = startPos + start.node.nodeSize;\r\n findMarkInSet([...start.node.marks], type, attributes);\r\n while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {\r\n startIndex -= 1;\r\n startPos -= $pos.parent.child(startIndex).nodeSize;\r\n }\r\n while (endIndex < $pos.parent.childCount\r\n && isMarkInSet([...$pos.parent.child(endIndex).marks], type, attributes)) {\r\n endPos += $pos.parent.child(endIndex).nodeSize;\r\n endIndex += 1;\r\n }\r\n return {\r\n from: startPos,\r\n to: endPos,\r\n };\r\n}\n\nfunction getMarkType(nameOrType, schema) {\r\n if (typeof nameOrType === 'string') {\r\n if (!schema.marks[nameOrType]) {\r\n throw Error(`There is no mark type named '${nameOrType}'. Maybe you forgot to add the extension?`);\r\n }\r\n return schema.marks[nameOrType];\r\n }\r\n return nameOrType;\r\n}\n\nconst extendMarkRange = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\r\n const type = getMarkType(typeOrName, state.schema);\r\n const { doc, selection } = tr;\r\n const { $from, from, to } = selection;\r\n if (dispatch) {\r\n const range = getMarkRange($from, type, attributes);\r\n if (range && range.from <= from && range.to >= to) {\r\n const newSelection = TextSelection.create(doc, range.from, range.to);\r\n tr.setSelection(newSelection);\r\n }\r\n }\r\n return true;\r\n};\n\nconst first = commands => props => {\r\n const items = typeof commands === 'function'\r\n ? commands(props)\r\n : commands;\r\n for (let i = 0; i < items.length; i += 1) {\r\n if (items[i](props)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\nfunction isTextSelection(value) {\r\n return value instanceof TextSelection;\r\n}\n\nfunction minMax(value = 0, min = 0, max = 0) {\r\n return Math.min(Math.max(value, min), max);\r\n}\n\nfunction resolveFocusPosition(doc, position = null) {\r\n if (!position) {\r\n return null;\r\n }\r\n const selectionAtStart = Selection.atStart(doc);\r\n const selectionAtEnd = Selection.atEnd(doc);\r\n if (position === 'start' || position === true) {\r\n return selectionAtStart;\r\n }\r\n if (position === 'end') {\r\n return selectionAtEnd;\r\n }\r\n const minPos = selectionAtStart.from;\r\n const maxPos = selectionAtEnd.to;\r\n if (position === 'all') {\r\n return TextSelection.create(doc, minMax(0, minPos, maxPos), minMax(doc.content.size, minPos, maxPos));\r\n }\r\n return TextSelection.create(doc, minMax(position, minPos, maxPos), minMax(position, minPos, maxPos));\r\n}\n\nfunction isiOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod',\r\n ].includes(navigator.platform)\r\n // iPad on iOS 13 detection\r\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document);\r\n}\n\nconst focus = (position = null, options = {}) => ({ editor, view, tr, dispatch, }) => {\r\n options = {\r\n scrollIntoView: true,\r\n ...options,\r\n };\r\n const delayedFocus = () => {\r\n // focus within `requestAnimationFrame` breaks focus on iOS\r\n // so we have to call this\r\n if (isiOS()) {\r\n view.dom.focus();\r\n }\r\n // For React we have to focus asynchronously. Otherwise wild things happen.\r\n // see: https://github.com/ueberdosis/tiptap/issues/1520\r\n requestAnimationFrame(() => {\r\n if (!editor.isDestroyed) {\r\n view.focus();\r\n if (options === null || options === void 0 ? void 0 : options.scrollIntoView) {\r\n editor.commands.scrollIntoView();\r\n }\r\n }\r\n });\r\n };\r\n if ((view.hasFocus() && position === null) || position === false) {\r\n return true;\r\n }\r\n // we don’t try to resolve a NodeSelection or CellSelection\r\n if (dispatch && position === null && !isTextSelection(editor.state.selection)) {\r\n delayedFocus();\r\n return true;\r\n }\r\n // pass through tr.doc instead of editor.state.doc\r\n // since transactions could change the editors state before this command has been run\r\n const selection = resolveFocusPosition(tr.doc, position) || editor.state.selection;\r\n const isSameSelection = editor.state.selection.eq(selection);\r\n if (dispatch) {\r\n if (!isSameSelection) {\r\n tr.setSelection(selection);\r\n }\r\n // `tr.setSelection` resets the stored marks\r\n // so we’ll restore them if the selection is the same as before\r\n if (isSameSelection && tr.storedMarks) {\r\n tr.setStoredMarks(tr.storedMarks);\r\n }\r\n delayedFocus();\r\n }\r\n return true;\r\n};\n\nconst forEach = (items, fn) => props => {\r\n return items.every((item, index) => fn(item, { ...props, index }));\r\n};\n\nconst insertContent = (value, options) => ({ tr, commands }) => {\r\n return commands.insertContentAt({ from: tr.selection.from, to: tr.selection.to }, value, options);\r\n};\n\nfunction elementFromString(value) {\r\n // add a wrapper to preserve leading and trailing whitespace\r\n const wrappedValue = `${value}`;\r\n return new window.DOMParser().parseFromString(wrappedValue, 'text/html').body;\r\n}\n\nfunction createNodeFromContent(content, schema, options) {\r\n options = {\r\n slice: true,\r\n parseOptions: {},\r\n ...options,\r\n };\r\n if (typeof content === 'object' && content !== null) {\r\n try {\r\n if (Array.isArray(content) && content.length > 0) {\r\n return Fragment.fromArray(content.map(item => schema.nodeFromJSON(item)));\r\n }\r\n return schema.nodeFromJSON(content);\r\n }\r\n catch (error) {\r\n console.warn('[tiptap warn]: Invalid content.', 'Passed value:', content, 'Error:', error);\r\n return createNodeFromContent('', schema, options);\r\n }\r\n }\r\n if (typeof content === 'string') {\r\n const parser = DOMParser.fromSchema(schema);\r\n return options.slice\r\n ? parser.parseSlice(elementFromString(content), options.parseOptions).content\r\n : parser.parse(elementFromString(content), options.parseOptions);\r\n }\r\n return createNodeFromContent('', schema, options);\r\n}\n\n// source: https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.js#L466\r\nfunction selectionToInsertionEnd(tr, startLen, bias) {\r\n const last = tr.steps.length - 1;\r\n if (last < startLen) {\r\n return;\r\n }\r\n const step = tr.steps[last];\r\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) {\r\n return;\r\n }\r\n const map = tr.mapping.maps[last];\r\n let end = 0;\r\n map.forEach((_from, _to, _newFrom, newTo) => {\r\n if (end === 0) {\r\n end = newTo;\r\n }\r\n });\r\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\r\n}\n\nconst isFragment = (nodeOrFragment) => {\r\n return nodeOrFragment.toString().startsWith('<');\r\n};\r\nconst insertContentAt = (position, value, options) => ({ tr, dispatch, editor }) => {\r\n if (dispatch) {\r\n options = {\r\n parseOptions: {},\r\n updateSelection: true,\r\n ...options,\r\n };\r\n const content = createNodeFromContent(value, editor.schema, {\r\n parseOptions: {\r\n preserveWhitespace: 'full',\r\n ...options.parseOptions,\r\n },\r\n });\r\n // don’t dispatch an empty fragment because this can lead to strange errors\r\n if (content.toString() === '<>') {\r\n return true;\r\n }\r\n let { from, to } = typeof position === 'number' ? { from: position, to: position } : { from: position.from, to: position.to };\r\n let isOnlyTextContent = true;\r\n let isOnlyBlockContent = true;\r\n const nodes = isFragment(content) ? content : [content];\r\n nodes.forEach(node => {\r\n // check if added node is valid\r\n node.check();\r\n isOnlyTextContent = isOnlyTextContent ? node.isText && node.marks.length === 0 : false;\r\n isOnlyBlockContent = isOnlyBlockContent ? node.isBlock : false;\r\n });\r\n // check if we can replace the wrapping node by\r\n // the newly inserted content\r\n // example:\r\n // replace an empty paragraph by an inserted image\r\n // instead of inserting the image below the paragraph\r\n if (from === to && isOnlyBlockContent) {\r\n const { parent } = tr.doc.resolve(from);\r\n const isEmptyTextBlock = parent.isTextblock && !parent.type.spec.code && !parent.childCount;\r\n if (isEmptyTextBlock) {\r\n from -= 1;\r\n to += 1;\r\n }\r\n }\r\n // if there is only plain text we have to use `insertText`\r\n // because this will keep the current marks\r\n if (isOnlyTextContent) {\r\n // if value is string, we can use it directly\r\n // otherwise if it is an array, we have to join it\r\n if (Array.isArray(value)) {\r\n tr.insertText(value.map(v => v.text || '').join(''), from, to);\r\n }\r\n else if (typeof value === 'object' && !!value && !!value.text) {\r\n tr.insertText(value.text, from, to);\r\n }\r\n else {\r\n tr.insertText(value, from, to);\r\n }\r\n }\r\n else {\r\n tr.replaceWith(from, to, content);\r\n }\r\n // set cursor at end of inserted content\r\n if (options.updateSelection) {\r\n selectionToInsertionEnd(tr, tr.steps.length - 1, -1);\r\n }\r\n }\r\n return true;\r\n};\n\nconst joinUp = () => ({ state, dispatch }) => {\r\n return joinUp$1(state, dispatch);\r\n};\r\nconst joinDown = () => ({ state, dispatch }) => {\r\n return joinDown$1(state, dispatch);\r\n};\r\nconst joinBackward = () => ({ state, dispatch }) => {\r\n return joinBackward$1(state, dispatch);\r\n};\r\nconst joinForward = () => ({ state, dispatch }) => {\r\n return joinForward$1(state, dispatch);\r\n};\n\nconst joinItemBackward = () => ({ tr, state, dispatch, }) => {\r\n try {\r\n const point = joinPoint(state.doc, state.selection.$from.pos, -1);\r\n if (point === null || point === undefined) {\r\n return false;\r\n }\r\n tr.join(point, 2);\r\n if (dispatch) {\r\n dispatch(tr);\r\n }\r\n return true;\r\n }\r\n catch {\r\n return false;\r\n }\r\n};\n\nconst joinItemForward = () => ({ state, dispatch, tr, }) => {\r\n try {\r\n const point = joinPoint(state.doc, state.selection.$from.pos, +1);\r\n if (point === null || point === undefined) {\r\n return false;\r\n }\r\n tr.join(point, 2);\r\n if (dispatch) {\r\n dispatch(tr);\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n};\n\nfunction isMacOS() {\r\n return typeof navigator !== 'undefined'\r\n ? /Mac/.test(navigator.platform)\r\n : false;\r\n}\n\nfunction normalizeKeyName(name) {\r\n const parts = name.split(/-(?!$)/);\r\n let result = parts[parts.length - 1];\r\n if (result === 'Space') {\r\n result = ' ';\r\n }\r\n let alt;\r\n let ctrl;\r\n let shift;\r\n let meta;\r\n for (let i = 0; i < parts.length - 1; i += 1) {\r\n const mod = parts[i];\r\n if (/^(cmd|meta|m)$/i.test(mod)) {\r\n meta = true;\r\n }\r\n else if (/^a(lt)?$/i.test(mod)) {\r\n alt = true;\r\n }\r\n else if (/^(c|ctrl|control)$/i.test(mod)) {\r\n ctrl = true;\r\n }\r\n else if (/^s(hift)?$/i.test(mod)) {\r\n shift = true;\r\n }\r\n else if (/^mod$/i.test(mod)) {\r\n if (isiOS() || isMacOS()) {\r\n meta = true;\r\n }\r\n else {\r\n ctrl = true;\r\n }\r\n }\r\n else {\r\n throw new Error(`Unrecognized modifier name: ${mod}`);\r\n }\r\n }\r\n if (alt) {\r\n result = `Alt-${result}`;\r\n }\r\n if (ctrl) {\r\n result = `Ctrl-${result}`;\r\n }\r\n if (meta) {\r\n result = `Meta-${result}`;\r\n }\r\n if (shift) {\r\n result = `Shift-${result}`;\r\n }\r\n return result;\r\n}\r\nconst keyboardShortcut = name => ({ editor, view, tr, dispatch, }) => {\r\n const keys = normalizeKeyName(name).split(/-(?!$)/);\r\n const key = keys.find(item => !['Alt', 'Ctrl', 'Meta', 'Shift'].includes(item));\r\n const event = new KeyboardEvent('keydown', {\r\n key: key === 'Space'\r\n ? ' '\r\n : key,\r\n altKey: keys.includes('Alt'),\r\n ctrlKey: keys.includes('Ctrl'),\r\n metaKey: keys.includes('Meta'),\r\n shiftKey: keys.includes('Shift'),\r\n bubbles: true,\r\n cancelable: true,\r\n });\r\n const capturedTransaction = editor.captureTransaction(() => {\r\n view.someProp('handleKeyDown', f => f(view, event));\r\n });\r\n capturedTransaction === null || capturedTransaction === void 0 ? void 0 : capturedTransaction.steps.forEach(step => {\r\n const newStep = step.map(tr.mapping);\r\n if (newStep && dispatch) {\r\n tr.maybeStep(newStep);\r\n }\r\n });\r\n return true;\r\n};\n\nfunction isNodeActive(state, typeOrName, attributes = {}) {\r\n const { from, to, empty } = state.selection;\r\n const type = typeOrName ? getNodeType(typeOrName, state.schema) : null;\r\n const nodeRanges = [];\r\n state.doc.nodesBetween(from, to, (node, pos) => {\r\n if (node.isText) {\r\n return;\r\n }\r\n const relativeFrom = Math.max(from, pos);\r\n const relativeTo = Math.min(to, pos + node.nodeSize);\r\n nodeRanges.push({\r\n node,\r\n from: relativeFrom,\r\n to: relativeTo,\r\n });\r\n });\r\n const selectionRange = to - from;\r\n const matchedNodeRanges = nodeRanges\r\n .filter(nodeRange => {\r\n if (!type) {\r\n return true;\r\n }\r\n return type.name === nodeRange.node.type.name;\r\n })\r\n .filter(nodeRange => objectIncludes(nodeRange.node.attrs, attributes, { strict: false }));\r\n if (empty) {\r\n return !!matchedNodeRanges.length;\r\n }\r\n const range = matchedNodeRanges.reduce((sum, nodeRange) => sum + nodeRange.to - nodeRange.from, 0);\r\n return range >= selectionRange;\r\n}\n\nconst lift = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\r\n const type = getNodeType(typeOrName, state.schema);\r\n const isActive = isNodeActive(state, type, attributes);\r\n if (!isActive) {\r\n return false;\r\n }\r\n return lift$1(state, dispatch);\r\n};\n\nconst liftEmptyBlock = () => ({ state, dispatch }) => {\r\n return liftEmptyBlock$1(state, dispatch);\r\n};\n\nconst liftListItem = typeOrName => ({ state, dispatch }) => {\r\n const type = getNodeType(typeOrName, state.schema);\r\n return liftListItem$1(type)(state, dispatch);\r\n};\n\nconst newlineInCode = () => ({ state, dispatch }) => {\r\n return newlineInCode$1(state, dispatch);\r\n};\n\nfunction getSchemaTypeNameByName(name, schema) {\r\n if (schema.nodes[name]) {\r\n return 'node';\r\n }\r\n if (schema.marks[name]) {\r\n return 'mark';\r\n }\r\n return null;\r\n}\n\n/**\r\n * Remove a property or an array of properties from an object\r\n * @param obj Object\r\n * @param key Key to remove\r\n */\r\nfunction deleteProps(obj, propOrProps) {\r\n const props = typeof propOrProps === 'string'\r\n ? [propOrProps]\r\n : propOrProps;\r\n return Object\r\n .keys(obj)\r\n .reduce((newObj, prop) => {\r\n if (!props.includes(prop)) {\r\n newObj[prop] = obj[prop];\r\n }\r\n return newObj;\r\n }, {});\r\n}\n\nconst resetAttributes = (typeOrName, attributes) => ({ tr, state, dispatch }) => {\r\n let nodeType = null;\r\n let markType = null;\r\n const schemaType = getSchemaTypeNameByName(typeof typeOrName === 'string' ? typeOrName : typeOrName.name, state.schema);\r\n if (!schemaType) {\r\n return false;\r\n }\r\n if (schemaType === 'node') {\r\n nodeType = getNodeType(typeOrName, state.schema);\r\n }\r\n if (schemaType === 'mark') {\r\n markType = getMarkType(typeOrName, state.schema);\r\n }\r\n if (dispatch) {\r\n tr.selection.ranges.forEach(range => {\r\n state.doc.nodesBetween(range.$from.pos, range.$to.pos, (node, pos) => {\r\n if (nodeType && nodeType === node.type) {\r\n tr.setNodeMarkup(pos, undefined, deleteProps(node.attrs, attributes));\r\n }\r\n if (markType && node.marks.length) {\r\n node.marks.forEach(mark => {\r\n if (markType === mark.type) {\r\n tr.addMark(pos, pos + node.nodeSize, markType.create(deleteProps(mark.attrs, attributes)));\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n return true;\r\n};\n\nconst scrollIntoView = () => ({ tr, dispatch }) => {\r\n if (dispatch) {\r\n tr.scrollIntoView();\r\n }\r\n return true;\r\n};\n\nconst selectAll = () => ({ tr, commands }) => {\r\n return commands.setTextSelection({\r\n from: 0,\r\n to: tr.doc.content.size,\r\n });\r\n};\n\nconst selectNodeBackward = () => ({ state, dispatch }) => {\r\n return selectNodeBackward$1(state, dispatch);\r\n};\n\nconst selectNodeForward = () => ({ state, dispatch }) => {\r\n return selectNodeForward$1(state, dispatch);\r\n};\n\nconst selectParentNode = () => ({ state, dispatch }) => {\r\n return selectParentNode$1(state, dispatch);\r\n};\n\n// @ts-ignore\r\nconst selectTextblockEnd = () => ({ state, dispatch }) => {\r\n return selectTextblockEnd$1(state, dispatch);\r\n};\n\n// @ts-ignore\r\nconst selectTextblockStart = () => ({ state, dispatch }) => {\r\n return selectTextblockStart$1(state, dispatch);\r\n};\n\nfunction createDocument(content, schema, parseOptions = {}) {\r\n return createNodeFromContent(content, schema, { slice: false, parseOptions });\r\n}\n\nconst setContent = (content, emitUpdate = false, parseOptions = {}) => ({ tr, editor, dispatch }) => {\r\n const { doc } = tr;\r\n const document = createDocument(content, editor.schema, parseOptions);\r\n if (dispatch) {\r\n tr.replaceWith(0, doc.content.size, document).setMeta('preventUpdate', !emitUpdate);\r\n }\r\n return true;\r\n};\n\nfunction getMarkAttributes(state, typeOrName) {\r\n const type = getMarkType(typeOrName, state.schema);\r\n const { from, to, empty } = state.selection;\r\n const marks = [];\r\n if (empty) {\r\n if (state.storedMarks) {\r\n marks.push(...state.storedMarks);\r\n }\r\n marks.push(...state.selection.$head.marks());\r\n }\r\n else {\r\n state.doc.nodesBetween(from, to, node => {\r\n marks.push(...node.marks);\r\n });\r\n }\r\n const mark = marks.find(markItem => markItem.type.name === type.name);\r\n if (!mark) {\r\n return {};\r\n }\r\n return { ...mark.attrs };\r\n}\n\n/**\r\n * Returns a new `Transform` based on all steps of the passed transactions.\r\n */\r\nfunction combineTransactionSteps(oldDoc, transactions) {\r\n const transform = new Transform(oldDoc);\r\n transactions.forEach(transaction => {\r\n transaction.steps.forEach(step => {\r\n transform.step(step);\r\n });\r\n });\r\n return transform;\r\n}\n\nfunction defaultBlockAt(match) {\r\n for (let i = 0; i < match.edgeCount; i += 1) {\r\n const { type } = match.edge(i);\r\n if (type.isTextblock && !type.hasRequiredAttrs()) {\r\n return type;\r\n }\r\n }\r\n return null;\r\n}\n\n/**\r\n * Same as `findChildren` but searches only within a `range`.\r\n */\r\nfunction findChildrenInRange(node, range, predicate) {\r\n const nodesWithPos = [];\r\n // if (range.from === range.to) {\r\n // const nodeAt = node.nodeAt(range.from)\r\n // if (nodeAt) {\r\n // nodesWithPos.push({\r\n // node: nodeAt,\r\n // pos: range.from,\r\n // })\r\n // }\r\n // }\r\n node.nodesBetween(range.from, range.to, (child, pos) => {\r\n if (predicate(child)) {\r\n nodesWithPos.push({\r\n node: child,\r\n pos,\r\n });\r\n }\r\n });\r\n return nodesWithPos;\r\n}\n\nfunction findParentNodeClosestToPos($pos, predicate) {\r\n for (let i = $pos.depth; i > 0; i -= 1) {\r\n const node = $pos.node(i);\r\n if (predicate(node)) {\r\n return {\r\n pos: i > 0 ? $pos.before(i) : 0,\r\n start: $pos.start(i),\r\n depth: i,\r\n node,\r\n };\r\n }\r\n }\r\n}\n\nfunction findParentNode(predicate) {\r\n return (selection) => findParentNodeClosestToPos(selection.$from, predicate);\r\n}\n\nfunction getHTMLFromFragment(fragment, schema) {\r\n const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);\r\n const temporaryDocument = document.implementation.createHTMLDocument();\r\n const container = temporaryDocument.createElement('div');\r\n container.appendChild(documentFragment);\r\n return container.innerHTML;\r\n}\n\nfunction getText(node, options) {\r\n const range = {\r\n from: 0,\r\n to: node.content.size,\r\n };\r\n return getTextBetween(node, range, options);\r\n}\n\nfunction getNodeAttributes(state, typeOrName) {\r\n const type = getNodeType(typeOrName, state.schema);\r\n const { from, to } = state.selection;\r\n const nodes = [];\r\n state.doc.nodesBetween(from, to, node => {\r\n nodes.push(node);\r\n });\r\n const node = nodes.reverse().find(nodeItem => nodeItem.type.name === type.name);\r\n if (!node) {\r\n return {};\r\n }\r\n return { ...node.attrs };\r\n}\n\nfunction getAttributes(state, typeOrName) {\r\n const schemaType = getSchemaTypeNameByName(typeof typeOrName === 'string' ? typeOrName : typeOrName.name, state.schema);\r\n if (schemaType === 'node') {\r\n return getNodeAttributes(state, typeOrName);\r\n }\r\n if (schemaType === 'mark') {\r\n return getMarkAttributes(state, typeOrName);\r\n }\r\n return {};\r\n}\n\n/**\r\n * Removes duplicated values within an array.\r\n * Supports numbers, strings and objects.\r\n */\r\nfunction removeDuplicates(array, by = JSON.stringify) {\r\n const seen = {};\r\n return array.filter(item => {\r\n const key = by(item);\r\n return Object.prototype.hasOwnProperty.call(seen, key)\r\n ? false\r\n : (seen[key] = true);\r\n });\r\n}\n\n/**\r\n * Removes duplicated ranges and ranges that are\r\n * fully captured by other ranges.\r\n */\r\nfunction simplifyChangedRanges(changes) {\r\n const uniqueChanges = removeDuplicates(changes);\r\n return uniqueChanges.length === 1\r\n ? uniqueChanges\r\n : uniqueChanges.filter((change, index) => {\r\n const rest = uniqueChanges.filter((_, i) => i !== index);\r\n return !rest.some(otherChange => {\r\n return change.oldRange.from >= otherChange.oldRange.from\r\n && change.oldRange.to <= otherChange.oldRange.to\r\n && change.newRange.from >= otherChange.newRange.from\r\n && change.newRange.to <= otherChange.newRange.to;\r\n });\r\n });\r\n}\r\n/**\r\n * Returns a list of changed ranges\r\n * based on the first and last state of all steps.\r\n */\r\nfunction getChangedRanges(transform) {\r\n const { mapping, steps } = transform;\r\n const changes = [];\r\n mapping.maps.forEach((stepMap, index) => {\r\n const ranges = [];\r\n // This accounts for step changes where no range was actually altered\r\n // e.g. when setting a mark, node attribute, etc.\r\n // @ts-ignore\r\n if (!stepMap.ranges.length) {\r\n const { from, to } = steps[index];\r\n if (from === undefined || to === undefined) {\r\n return;\r\n }\r\n ranges.push({ from, to });\r\n }\r\n else {\r\n stepMap.forEach((from, to) => {\r\n ranges.push({ from, to });\r\n });\r\n }\r\n ranges.forEach(({ from, to }) => {\r\n const newStart = mapping.slice(index).map(from, -1);\r\n const newEnd = mapping.slice(index).map(to);\r\n const oldStart = mapping.invert().map(newStart, -1);\r\n const oldEnd = mapping.invert().map(newEnd);\r\n changes.push({\r\n oldRange: {\r\n from: oldStart,\r\n to: oldEnd,\r\n },\r\n newRange: {\r\n from: newStart,\r\n to: newEnd,\r\n },\r\n });\r\n });\r\n });\r\n return simplifyChangedRanges(changes);\r\n}\n\nfunction getMarksBetween(from, to, doc) {\r\n const marks = [];\r\n // get all inclusive marks on empty selection\r\n if (from === to) {\r\n doc\r\n .resolve(from)\r\n .marks()\r\n .forEach(mark => {\r\n const $pos = doc.resolve(from - 1);\r\n const range = getMarkRange($pos, mark.type);\r\n if (!range) {\r\n return;\r\n }\r\n marks.push({\r\n mark,\r\n ...range,\r\n });\r\n });\r\n }\r\n else {\r\n doc.nodesBetween(from, to, (node, pos) => {\r\n marks.push(...node.marks.map(mark => ({\r\n from: pos,\r\n to: pos + node.nodeSize,\r\n mark,\r\n })));\r\n });\r\n }\r\n return marks;\r\n}\n\nfunction getSplittedAttributes(extensionAttributes, typeName, attributes) {\r\n return Object.fromEntries(Object\r\n .entries(attributes)\r\n .filter(([name]) => {\r\n const extensionAttribute = extensionAttributes.find(item => {\r\n return item.type === typeName && item.name === name;\r\n });\r\n if (!extensionAttribute) {\r\n return false;\r\n }\r\n return extensionAttribute.attribute.keepOnSplit;\r\n }));\r\n}\n\nfunction isMarkActive(state, typeOrName, attributes = {}) {\r\n const { empty, ranges } = state.selection;\r\n const type = typeOrName ? getMarkType(typeOrName, state.schema) : null;\r\n if (empty) {\r\n return !!(state.storedMarks || state.selection.$from.marks())\r\n .filter(mark => {\r\n if (!type) {\r\n return true;\r\n }\r\n return type.name === mark.type.name;\r\n })\r\n .find(mark => objectIncludes(mark.attrs, attributes, { strict: false }));\r\n }\r\n let selectionRange = 0;\r\n const markRanges = [];\r\n ranges.forEach(({ $from, $to }) => {\r\n const from = $from.pos;\r\n const to = $to.pos;\r\n state.doc.nodesBetween(from, to, (node, pos) => {\r\n if (!node.isText && !node.marks.length) {\r\n return;\r\n }\r\n const relativeFrom = Math.max(from, pos);\r\n const relativeTo = Math.min(to, pos + node.nodeSize);\r\n const range = relativeTo - relativeFrom;\r\n selectionRange += range;\r\n markRanges.push(...node.marks.map(mark => ({\r\n mark,\r\n from: relativeFrom,\r\n to: relativeTo,\r\n })));\r\n });\r\n });\r\n if (selectionRange === 0) {\r\n return false;\r\n }\r\n // calculate range of matched mark\r\n const matchedRange = markRanges\r\n .filter(markRange => {\r\n if (!type) {\r\n return true;\r\n }\r\n return type.name === markRange.mark.type.name;\r\n })\r\n .filter(markRange => objectIncludes(markRange.mark.attrs, attributes, { strict: false }))\r\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0);\r\n // calculate range of marks that excludes the searched mark\r\n // for example `code` doesn’t allow any other marks\r\n const excludedRange = markRanges\r\n .filter(markRange => {\r\n if (!type) {\r\n return true;\r\n }\r\n return markRange.mark.type !== type && markRange.mark.type.excludes(type);\r\n })\r\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0);\r\n // we only include the result of `excludedRange`\r\n // if there is a match at all\r\n const range = matchedRange > 0 ? matchedRange + excludedRange : matchedRange;\r\n return range >= selectionRange;\r\n}\n\nfunction isActive(state, name, attributes = {}) {\r\n if (!name) {\r\n return isNodeActive(state, null, attributes) || isMarkActive(state, null, attributes);\r\n }\r\n const schemaType = getSchemaTypeNameByName(name, state.schema);\r\n if (schemaType === 'node') {\r\n return isNodeActive(state, name, attributes);\r\n }\r\n if (schemaType === 'mark') {\r\n return isMarkActive(state, name, attributes);\r\n }\r\n return false;\r\n}\n\nfunction isList(name, extensions) {\r\n const { nodeExtensions } = splitExtensions(extensions);\r\n const extension = nodeExtensions.find(item => item.name === name);\r\n if (!extension) {\r\n return false;\r\n }\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n };\r\n const group = callOrReturn(getExtensionField(extension, 'group', context));\r\n if (typeof group !== 'string') {\r\n return false;\r\n }\r\n return group.split(' ').includes('list');\r\n}\n\nfunction isNodeEmpty(node) {\r\n var _a;\r\n const defaultContent = (_a = node.type.createAndFill()) === null || _a === void 0 ? void 0 : _a.toJSON();\r\n const content = node.toJSON();\r\n return JSON.stringify(defaultContent) === JSON.stringify(content);\r\n}\n\nfunction canSetMark(state, tr, newMarkType) {\r\n var _a;\r\n const { selection } = tr;\r\n let cursor = null;\r\n if (isTextSelection(selection)) {\r\n cursor = selection.$cursor;\r\n }\r\n if (cursor) {\r\n const currentMarks = (_a = state.storedMarks) !== null && _a !== void 0 ? _a : cursor.marks();\r\n // There can be no current marks that exclude the new mark\r\n return (!!newMarkType.isInSet(currentMarks)\r\n || !currentMarks.some(mark => mark.type.excludes(newMarkType)));\r\n }\r\n const { ranges } = selection;\r\n return ranges.some(({ $from, $to }) => {\r\n let someNodeSupportsMark = $from.depth === 0\r\n ? state.doc.inlineContent && state.doc.type.allowsMarkType(newMarkType)\r\n : false;\r\n state.doc.nodesBetween($from.pos, $to.pos, (node, _pos, parent) => {\r\n // If we already found a mark that we can enable, return false to bypass the remaining search\r\n if (someNodeSupportsMark) {\r\n return false;\r\n }\r\n if (node.isInline) {\r\n const parentAllowsMarkType = !parent || parent.type.allowsMarkType(newMarkType);\r\n const currentMarksAllowMarkType = !!newMarkType.isInSet(node.marks)\r\n || !node.marks.some(otherMark => otherMark.type.excludes(newMarkType));\r\n someNodeSupportsMark = parentAllowsMarkType && currentMarksAllowMarkType;\r\n }\r\n return !someNodeSupportsMark;\r\n });\r\n return someNodeSupportsMark;\r\n });\r\n}\r\nconst setMark = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\r\n const { selection } = tr;\r\n const { empty, ranges } = selection;\r\n const type = getMarkType(typeOrName, state.schema);\r\n if (dispatch) {\r\n if (empty) {\r\n const oldAttributes = getMarkAttributes(state, type);\r\n tr.addStoredMark(type.create({\r\n ...oldAttributes,\r\n ...attributes,\r\n }));\r\n }\r\n else {\r\n ranges.forEach(range => {\r\n const from = range.$from.pos;\r\n const to = range.$to.pos;\r\n state.doc.nodesBetween(from, to, (node, pos) => {\r\n const trimmedFrom = Math.max(pos, from);\r\n const trimmedTo = Math.min(pos + node.nodeSize, to);\r\n const someHasMark = node.marks.find(mark => mark.type === type);\r\n // if there is already a mark of this type\r\n // we know that we have to merge its attributes\r\n // otherwise we add a fresh new mark\r\n if (someHasMark) {\r\n node.marks.forEach(mark => {\r\n if (type === mark.type) {\r\n tr.addMark(trimmedFrom, trimmedTo, type.create({\r\n ...mark.attrs,\r\n ...attributes,\r\n }));\r\n }\r\n });\r\n }\r\n else {\r\n tr.addMark(trimmedFrom, trimmedTo, type.create(attributes));\r\n }\r\n });\r\n });\r\n }\r\n }\r\n return canSetMark(state, tr, type);\r\n};\n\nconst setMeta = (key, value) => ({ tr }) => {\r\n tr.setMeta(key, value);\r\n return true;\r\n};\n\nconst setNode = (typeOrName, attributes = {}) => ({ state, dispatch, chain }) => {\r\n const type = getNodeType(typeOrName, state.schema);\r\n // TODO: use a fallback like insertContent?\r\n if (!type.isTextblock) {\r\n console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.');\r\n return false;\r\n }\r\n return (chain()\r\n // try to convert node to default node if needed\r\n .command(({ commands }) => {\r\n const canSetBlock = setBlockType(type, attributes)(state);\r\n if (canSetBlock) {\r\n return true;\r\n }\r\n return commands.clearNodes();\r\n })\r\n .command(({ state: updatedState }) => {\r\n return setBlockType(type, attributes)(updatedState, dispatch);\r\n })\r\n .run());\r\n};\n\nconst setNodeSelection = position => ({ tr, dispatch }) => {\r\n if (dispatch) {\r\n const { doc } = tr;\r\n const from = minMax(position, 0, doc.content.size);\r\n const selection = NodeSelection.create(doc, from);\r\n tr.setSelection(selection);\r\n }\r\n return true;\r\n};\n\nconst setTextSelection = position => ({ tr, dispatch }) => {\r\n if (dispatch) {\r\n const { doc } = tr;\r\n const { from, to } = typeof position === 'number' ? { from: position, to: position } : position;\r\n const minPos = TextSelection.atStart(doc).from;\r\n const maxPos = TextSelection.atEnd(doc).to;\r\n const resolvedFrom = minMax(from, minPos, maxPos);\r\n const resolvedEnd = minMax(to, minPos, maxPos);\r\n const selection = TextSelection.create(doc, resolvedFrom, resolvedEnd);\r\n tr.setSelection(selection);\r\n }\r\n return true;\r\n};\n\nconst sinkListItem = typeOrName => ({ state, dispatch }) => {\r\n const type = getNodeType(typeOrName, state.schema);\r\n return sinkListItem$1(type)(state, dispatch);\r\n};\n\nfunction ensureMarks(state, splittableMarks) {\r\n const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\r\n if (marks) {\r\n const filteredMarks = marks.filter(mark => splittableMarks === null || splittableMarks === void 0 ? void 0 : splittableMarks.includes(mark.type.name));\r\n state.tr.ensureMarks(filteredMarks);\r\n }\r\n}\r\nconst splitBlock = ({ keepMarks = true } = {}) => ({ tr, state, dispatch, editor, }) => {\r\n const { selection, doc } = tr;\r\n const { $from, $to } = selection;\r\n const extensionAttributes = editor.extensionManager.attributes;\r\n const newAttributes = getSplittedAttributes(extensionAttributes, $from.node().type.name, $from.node().attrs);\r\n if (selection instanceof NodeSelection && selection.node.isBlock) {\r\n if (!$from.parentOffset || !canSplit(doc, $from.pos)) {\r\n return false;\r\n }\r\n if (dispatch) {\r\n if (keepMarks) {\r\n ensureMarks(state, editor.extensionManager.splittableMarks);\r\n }\r\n tr.split($from.pos).scrollIntoView();\r\n }\r\n return true;\r\n }\r\n if (!$from.parent.isBlock) {\r\n return false;\r\n }\r\n if (dispatch) {\r\n const atEnd = $to.parentOffset === $to.parent.content.size;\r\n if (selection instanceof TextSelection) {\r\n tr.deleteSelection();\r\n }\r\n const deflt = $from.depth === 0\r\n ? undefined\r\n : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)));\r\n let types = atEnd && deflt\r\n ? [\r\n {\r\n type: deflt,\r\n attrs: newAttributes,\r\n },\r\n ]\r\n : undefined;\r\n let can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types);\r\n if (!types\r\n && !can\r\n && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)) {\r\n can = true;\r\n types = deflt\r\n ? [\r\n {\r\n type: deflt,\r\n attrs: newAttributes,\r\n },\r\n ]\r\n : undefined;\r\n }\r\n if (can) {\r\n tr.split(tr.mapping.map($from.pos), 1, types);\r\n if (deflt && !atEnd && !$from.parentOffset && $from.parent.type !== deflt) {\r\n const first = tr.mapping.map($from.before());\r\n const $first = tr.doc.resolve(first);\r\n if ($from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt)) {\r\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt);\r\n }\r\n }\r\n }\r\n if (keepMarks) {\r\n ensureMarks(state, editor.extensionManager.splittableMarks);\r\n }\r\n tr.scrollIntoView();\r\n }\r\n return true;\r\n};\n\nconst splitListItem = typeOrName => ({ tr, state, dispatch, editor, }) => {\r\n var _a;\r\n const type = getNodeType(typeOrName, state.schema);\r\n const { $from, $to } = state.selection;\r\n // @ts-ignore\r\n // eslint-disable-next-line\r\n const node = state.selection.node;\r\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {\r\n return false;\r\n }\r\n const grandParent = $from.node(-1);\r\n if (grandParent.type !== type) {\r\n return false;\r\n }\r\n const extensionAttributes = editor.extensionManager.attributes;\r\n if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {\r\n // In an empty block. If this is a nested list, the wrapping\r\n // list item should be split. Otherwise, bail out and let next\r\n // command handle lifting.\r\n if ($from.depth === 2\r\n || $from.node(-3).type !== type\r\n || $from.index(-2) !== $from.node(-2).childCount - 1) {\r\n return false;\r\n }\r\n if (dispatch) {\r\n let wrap = Fragment.empty;\r\n // eslint-disable-next-line\r\n const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;\r\n // Build a fragment containing empty versions of the structure\r\n // from the outer list item to the parent node of the cursor\r\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {\r\n wrap = Fragment.from($from.node(d).copy(wrap));\r\n }\r\n // eslint-disable-next-line\r\n const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3;\r\n // Add a second list item with an empty default start node\r\n const newNextTypeAttributes = getSplittedAttributes(extensionAttributes, $from.node().type.name, $from.node().attrs);\r\n const nextType = ((_a = type.contentMatch.defaultType) === null || _a === void 0 ? void 0 : _a.createAndFill(newNextTypeAttributes)) || undefined;\r\n wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined));\r\n const start = $from.before($from.depth - (depthBefore - 1));\r\n tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0));\r\n let sel = -1;\r\n tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {\r\n if (sel > -1) {\r\n return false;\r\n }\r\n if (n.isTextblock && n.content.size === 0) {\r\n sel = pos + 1;\r\n }\r\n });\r\n if (sel > -1) {\r\n tr.setSelection(TextSelection.near(tr.doc.resolve(sel)));\r\n }\r\n tr.scrollIntoView();\r\n }\r\n return true;\r\n }\r\n const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null;\r\n const newTypeAttributes = getSplittedAttributes(extensionAttributes, grandParent.type.name, grandParent.attrs);\r\n const newNextTypeAttributes = getSplittedAttributes(extensionAttributes, $from.node().type.name, $from.node().attrs);\r\n tr.delete($from.pos, $to.pos);\r\n const types = nextType\r\n ? [\r\n { type, attrs: newTypeAttributes },\r\n { type: nextType, attrs: newNextTypeAttributes },\r\n ]\r\n : [{ type, attrs: newTypeAttributes }];\r\n if (!canSplit(tr.doc, $from.pos, 2)) {\r\n return false;\r\n }\r\n if (dispatch) {\r\n const { selection, storedMarks } = state;\r\n const { splittableMarks } = editor.extensionManager;\r\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks());\r\n tr.split($from.pos, 2, types).scrollIntoView();\r\n if (!marks || !dispatch) {\r\n return true;\r\n }\r\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name));\r\n tr.ensureMarks(filteredMarks);\r\n }\r\n return true;\r\n};\n\nconst joinListBackwards = (tr, listType) => {\r\n const list = findParentNode(node => node.type === listType)(tr.selection);\r\n if (!list) {\r\n return true;\r\n }\r\n const before = tr.doc.resolve(Math.max(0, list.pos - 1)).before(list.depth);\r\n if (before === undefined) {\r\n return true;\r\n }\r\n const nodeBefore = tr.doc.nodeAt(before);\r\n const canJoinBackwards = list.node.type === (nodeBefore === null || nodeBefore === void 0 ? void 0 : nodeBefore.type) && canJoin(tr.doc, list.pos);\r\n if (!canJoinBackwards) {\r\n return true;\r\n }\r\n tr.join(list.pos);\r\n return true;\r\n};\r\nconst joinListForwards = (tr, listType) => {\r\n const list = findParentNode(node => node.type === listType)(tr.selection);\r\n if (!list) {\r\n return true;\r\n }\r\n const after = tr.doc.resolve(list.start).after(list.depth);\r\n if (after === undefined) {\r\n return true;\r\n }\r\n const nodeAfter = tr.doc.nodeAt(after);\r\n const canJoinForwards = list.node.type === (nodeAfter === null || nodeAfter === void 0 ? void 0 : nodeAfter.type) && canJoin(tr.doc, after);\r\n if (!canJoinForwards) {\r\n return true;\r\n }\r\n tr.join(after);\r\n return true;\r\n};\r\nconst toggleList = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => ({ editor, tr, state, dispatch, chain, commands, can, }) => {\r\n const { extensions, splittableMarks } = editor.extensionManager;\r\n const listType = getNodeType(listTypeOrName, state.schema);\r\n const itemType = getNodeType(itemTypeOrName, state.schema);\r\n const { selection, storedMarks } = state;\r\n const { $from, $to } = selection;\r\n const range = $from.blockRange($to);\r\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks());\r\n if (!range) {\r\n return false;\r\n }\r\n const parentList = findParentNode(node => isList(node.type.name, extensions))(selection);\r\n if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {\r\n // remove list\r\n if (parentList.node.type === listType) {\r\n return commands.liftListItem(itemType);\r\n }\r\n // change list type\r\n if (isList(parentList.node.type.name, extensions)\r\n && listType.validContent(parentList.node.content)\r\n && dispatch) {\r\n return chain()\r\n .command(() => {\r\n tr.setNodeMarkup(parentList.pos, listType);\r\n return true;\r\n })\r\n .command(() => joinListBackwards(tr, listType))\r\n .command(() => joinListForwards(tr, listType))\r\n .run();\r\n }\r\n }\r\n if (!keepMarks || !marks || !dispatch) {\r\n return chain()\r\n // try to convert node to default node if needed\r\n .command(() => {\r\n const canWrapInList = can().wrapInList(listType, attributes);\r\n if (canWrapInList) {\r\n return true;\r\n }\r\n return commands.clearNodes();\r\n })\r\n .wrapInList(listType, attributes)\r\n .command(() => joinListBackwards(tr, listType))\r\n .command(() => joinListForwards(tr, listType))\r\n .run();\r\n }\r\n return (chain()\r\n // try to convert node to default node if needed\r\n .command(() => {\r\n const canWrapInList = can().wrapInList(listType, attributes);\r\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name));\r\n tr.ensureMarks(filteredMarks);\r\n if (canWrapInList) {\r\n return true;\r\n }\r\n return commands.clearNodes();\r\n })\r\n .wrapInList(listType, attributes)\r\n .command(() => joinListBackwards(tr, listType))\r\n .command(() => joinListForwards(tr, listType))\r\n .run());\r\n};\n\nconst toggleMark = (typeOrName, attributes = {}, options = {}) => ({ state, commands }) => {\r\n const { extendEmptyMarkRange = false } = options;\r\n const type = getMarkType(typeOrName, state.schema);\r\n const isActive = isMarkActive(state, type, attributes);\r\n if (isActive) {\r\n return commands.unsetMark(type, { extendEmptyMarkRange });\r\n }\r\n return commands.setMark(type, attributes);\r\n};\n\nconst toggleNode = (typeOrName, toggleTypeOrName, attributes = {}) => ({ state, commands }) => {\r\n const type = getNodeType(typeOrName, state.schema);\r\n const toggleType = getNodeType(toggleTypeOrName, state.schema);\r\n const isActive = isNodeActive(state, type, attributes);\r\n if (isActive) {\r\n return commands.setNode(toggleType);\r\n }\r\n return commands.setNode(type, attributes);\r\n};\n\nconst toggleWrap = (typeOrName, attributes = {}) => ({ state, commands }) => {\r\n const type = getNodeType(typeOrName, state.schema);\r\n const isActive = isNodeActive(state, type, attributes);\r\n if (isActive) {\r\n return commands.lift(type);\r\n }\r\n return commands.wrapIn(type, attributes);\r\n};\n\nconst undoInputRule = () => ({ state, dispatch }) => {\r\n const plugins = state.plugins;\r\n for (let i = 0; i < plugins.length; i += 1) {\r\n const plugin = plugins[i];\r\n let undoable;\r\n // @ts-ignore\r\n // eslint-disable-next-line\r\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\r\n if (dispatch) {\r\n const tr = state.tr;\r\n const toUndo = undoable.transform;\r\n for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {\r\n tr.step(toUndo.steps[j].invert(toUndo.docs[j]));\r\n }\r\n if (undoable.text) {\r\n const marks = tr.doc.resolve(undoable.from).marks();\r\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks));\r\n }\r\n else {\r\n tr.delete(undoable.from, undoable.to);\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\nconst unsetAllMarks = () => ({ tr, dispatch }) => {\r\n const { selection } = tr;\r\n const { empty, ranges } = selection;\r\n if (empty) {\r\n return true;\r\n }\r\n if (dispatch) {\r\n ranges.forEach(range => {\r\n tr.removeMark(range.$from.pos, range.$to.pos);\r\n });\r\n }\r\n return true;\r\n};\n\nconst unsetMark = (typeOrName, options = {}) => ({ tr, state, dispatch }) => {\r\n var _a;\r\n const { extendEmptyMarkRange = false } = options;\r\n const { selection } = tr;\r\n const type = getMarkType(typeOrName, state.schema);\r\n const { $from, empty, ranges } = selection;\r\n if (!dispatch) {\r\n return true;\r\n }\r\n if (empty && extendEmptyMarkRange) {\r\n let { from, to } = selection;\r\n const attrs = (_a = $from.marks().find(mark => mark.type === type)) === null || _a === void 0 ? void 0 : _a.attrs;\r\n const range = getMarkRange($from, type, attrs);\r\n if (range) {\r\n from = range.from;\r\n to = range.to;\r\n }\r\n tr.removeMark(from, to, type);\r\n }\r\n else {\r\n ranges.forEach(range => {\r\n tr.removeMark(range.$from.pos, range.$to.pos, type);\r\n });\r\n }\r\n tr.removeStoredMark(type);\r\n return true;\r\n};\n\nconst updateAttributes = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\r\n let nodeType = null;\r\n let markType = null;\r\n const schemaType = getSchemaTypeNameByName(typeof typeOrName === 'string' ? typeOrName : typeOrName.name, state.schema);\r\n if (!schemaType) {\r\n return false;\r\n }\r\n if (schemaType === 'node') {\r\n nodeType = getNodeType(typeOrName, state.schema);\r\n }\r\n if (schemaType === 'mark') {\r\n markType = getMarkType(typeOrName, state.schema);\r\n }\r\n if (dispatch) {\r\n tr.selection.ranges.forEach(range => {\r\n const from = range.$from.pos;\r\n const to = range.$to.pos;\r\n state.doc.nodesBetween(from, to, (node, pos) => {\r\n if (nodeType && nodeType === node.type) {\r\n tr.setNodeMarkup(pos, undefined, {\r\n ...node.attrs,\r\n ...attributes,\r\n });\r\n }\r\n if (markType && node.marks.length) {\r\n node.marks.forEach(mark => {\r\n if (markType === mark.type) {\r\n const trimmedFrom = Math.max(pos, from);\r\n const trimmedTo = Math.min(pos + node.nodeSize, to);\r\n tr.addMark(trimmedFrom, trimmedTo, markType.create({\r\n ...mark.attrs,\r\n ...attributes,\r\n }));\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n return true;\r\n};\n\nconst wrapIn = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\r\n const type = getNodeType(typeOrName, state.schema);\r\n return wrapIn$1(type, attributes)(state, dispatch);\r\n};\n\nconst wrapInList = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\r\n const type = getNodeType(typeOrName, state.schema);\r\n return wrapInList$1(type, attributes)(state, dispatch);\r\n};\n\nvar commands = /*#__PURE__*/Object.freeze({\n __proto__: null,\n blur: blur,\n clearContent: clearContent,\n clearNodes: clearNodes,\n command: command,\n createParagraphNear: createParagraphNear,\n cut: cut,\n deleteCurrentNode: deleteCurrentNode,\n deleteNode: deleteNode,\n deleteRange: deleteRange,\n deleteSelection: deleteSelection,\n enter: enter,\n exitCode: exitCode,\n extendMarkRange: extendMarkRange,\n first: first,\n focus: focus,\n forEach: forEach,\n insertContent: insertContent,\n insertContentAt: insertContentAt,\n joinUp: joinUp,\n joinDown: joinDown,\n joinBackward: joinBackward,\n joinForward: joinForward,\n joinItemBackward: joinItemBackward,\n joinItemForward: joinItemForward,\n keyboardShortcut: keyboardShortcut,\n lift: lift,\n liftEmptyBlock: liftEmptyBlock,\n liftListItem: liftListItem,\n newlineInCode: newlineInCode,\n resetAttributes: resetAttributes,\n scrollIntoView: scrollIntoView,\n selectAll: selectAll,\n selectNodeBackward: selectNodeBackward,\n selectNodeForward: selectNodeForward,\n selectParentNode: selectParentNode,\n selectTextblockEnd: selectTextblockEnd,\n selectTextblockStart: selectTextblockStart,\n setContent: setContent,\n setMark: setMark,\n setMeta: setMeta,\n setNode: setNode,\n setNodeSelection: setNodeSelection,\n setTextSelection: setTextSelection,\n sinkListItem: sinkListItem,\n splitBlock: splitBlock,\n splitListItem: splitListItem,\n toggleList: toggleList,\n toggleMark: toggleMark,\n toggleNode: toggleNode,\n toggleWrap: toggleWrap,\n undoInputRule: undoInputRule,\n unsetAllMarks: unsetAllMarks,\n unsetMark: unsetMark,\n updateAttributes: updateAttributes,\n wrapIn: wrapIn,\n wrapInList: wrapInList\n});\n\nconst Commands = Extension.create({\r\n name: 'commands',\r\n addCommands() {\r\n return {\r\n ...commands,\r\n };\r\n },\r\n});\n\nconst Editable = Extension.create({\r\n name: 'editable',\r\n addProseMirrorPlugins() {\r\n return [\r\n new Plugin({\r\n key: new PluginKey('editable'),\r\n props: {\r\n editable: () => this.editor.options.editable,\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nconst FocusEvents = Extension.create({\r\n name: 'focusEvents',\r\n addProseMirrorPlugins() {\r\n const { editor } = this;\r\n return [\r\n new Plugin({\r\n key: new PluginKey('focusEvents'),\r\n props: {\r\n handleDOMEvents: {\r\n focus: (view, event) => {\r\n editor.isFocused = true;\r\n const transaction = editor.state.tr\r\n .setMeta('focus', { event })\r\n .setMeta('addToHistory', false);\r\n view.dispatch(transaction);\r\n return false;\r\n },\r\n blur: (view, event) => {\r\n editor.isFocused = false;\r\n const transaction = editor.state.tr\r\n .setMeta('blur', { event })\r\n .setMeta('addToHistory', false);\r\n view.dispatch(transaction);\r\n return false;\r\n },\r\n },\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nconst Keymap = Extension.create({\r\n name: 'keymap',\r\n addKeyboardShortcuts() {\r\n const handleBackspace = () => this.editor.commands.first(({ commands }) => [\r\n () => commands.undoInputRule(),\r\n // maybe convert first text block node to default node\r\n () => commands.command(({ tr }) => {\r\n const { selection, doc } = tr;\r\n const { empty, $anchor } = selection;\r\n const { pos, parent } = $anchor;\r\n const $parentPos = $anchor.parent.isTextblock ? tr.doc.resolve(pos - 1) : $anchor;\r\n const parentIsIsolating = $parentPos.parent.type.spec.isolating;\r\n const parentPos = $anchor.pos - $anchor.parentOffset;\r\n const isAtStart = (parentIsIsolating && $parentPos.parent.childCount === 1)\r\n ? parentPos === $anchor.pos\r\n : Selection.atStart(doc).from === pos;\r\n if (!empty || !isAtStart || !parent.type.isTextblock || parent.textContent.length) {\r\n return false;\r\n }\r\n return commands.clearNodes();\r\n }),\r\n () => commands.deleteSelection(),\r\n () => commands.joinBackward(),\r\n () => commands.selectNodeBackward(),\r\n ]);\r\n const handleDelete = () => this.editor.commands.first(({ commands }) => [\r\n () => commands.deleteSelection(),\r\n () => commands.deleteCurrentNode(),\r\n () => commands.joinForward(),\r\n () => commands.selectNodeForward(),\r\n ]);\r\n const handleEnter = () => this.editor.commands.first(({ commands }) => [\r\n () => commands.newlineInCode(),\r\n () => commands.createParagraphNear(),\r\n () => commands.liftEmptyBlock(),\r\n () => commands.splitBlock(),\r\n ]);\r\n const baseKeymap = {\r\n Enter: handleEnter,\r\n 'Mod-Enter': () => this.editor.commands.exitCode(),\r\n Backspace: handleBackspace,\r\n 'Mod-Backspace': handleBackspace,\r\n 'Shift-Backspace': handleBackspace,\r\n Delete: handleDelete,\r\n 'Mod-Delete': handleDelete,\r\n 'Mod-a': () => this.editor.commands.selectAll(),\r\n };\r\n const pcKeymap = {\r\n ...baseKeymap,\r\n };\r\n const macKeymap = {\r\n ...baseKeymap,\r\n 'Ctrl-h': handleBackspace,\r\n 'Alt-Backspace': handleBackspace,\r\n 'Ctrl-d': handleDelete,\r\n 'Ctrl-Alt-Backspace': handleDelete,\r\n 'Alt-Delete': handleDelete,\r\n 'Alt-d': handleDelete,\r\n 'Ctrl-a': () => this.editor.commands.selectTextblockStart(),\r\n 'Ctrl-e': () => this.editor.commands.selectTextblockEnd(),\r\n };\r\n if (isiOS() || isMacOS()) {\r\n return macKeymap;\r\n }\r\n return pcKeymap;\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n // With this plugin we check if the whole document was selected and deleted.\r\n // In this case we will additionally call `clearNodes()` to convert e.g. a heading\r\n // to a paragraph if necessary.\r\n // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well\r\n // with many other commands.\r\n new Plugin({\r\n key: new PluginKey('clearDocument'),\r\n appendTransaction: (transactions, oldState, newState) => {\r\n const docChanges = transactions.some(transaction => transaction.docChanged)\r\n && !oldState.doc.eq(newState.doc);\r\n if (!docChanges) {\r\n return;\r\n }\r\n const { empty, from, to } = oldState.selection;\r\n const allFrom = Selection.atStart(oldState.doc).from;\r\n const allEnd = Selection.atEnd(oldState.doc).to;\r\n const allWasSelected = from === allFrom && to === allEnd;\r\n if (empty || !allWasSelected) {\r\n return;\r\n }\r\n const isEmpty = newState.doc.textBetween(0, newState.doc.content.size, ' ', ' ').length === 0;\r\n if (!isEmpty) {\r\n return;\r\n }\r\n const tr = newState.tr;\r\n const state = createChainableState({\r\n state: newState,\r\n transaction: tr,\r\n });\r\n const { commands } = new CommandManager({\r\n editor: this.editor,\r\n state,\r\n });\r\n commands.clearNodes();\r\n if (!tr.steps.length) {\r\n return;\r\n }\r\n return tr;\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nconst Tabindex = Extension.create({\r\n name: 'tabindex',\r\n addProseMirrorPlugins() {\r\n return [\r\n new Plugin({\r\n key: new PluginKey('tabindex'),\r\n props: {\r\n attributes: this.editor.isEditable ? { tabindex: '0' } : {},\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nvar extensions = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ClipboardTextSerializer: ClipboardTextSerializer,\n Commands: Commands,\n Editable: Editable,\n FocusEvents: FocusEvents,\n Keymap: Keymap,\n Tabindex: Tabindex\n});\n\nconst style = `.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n}\n\n.ProseMirror [contenteditable=\"false\"] {\n white-space: normal;\n}\n\n.ProseMirror [contenteditable=\"false\"] [contenteditable=\"true\"] {\n white-space: pre-wrap;\n}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\nimg.ProseMirror-separator {\n display: inline !important;\n border: none !important;\n margin: 0 !important;\n width: 1px !important;\n height: 1px !important;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n margin: 0;\n}\n\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection * {\n caret-color: transparent;\n}\n\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n.tippy-box[data-animation=fade][data-state=hidden] {\n opacity: 0\n}`;\n\nfunction createStyleTag(style, nonce, suffix) {\r\n const tiptapStyleTag = document.querySelector(`style[data-tiptap-style${suffix ? `-${suffix}` : ''}]`);\r\n if (tiptapStyleTag !== null) {\r\n return tiptapStyleTag;\r\n }\r\n const styleNode = document.createElement('style');\r\n if (nonce) {\r\n styleNode.setAttribute('nonce', nonce);\r\n }\r\n styleNode.setAttribute(`data-tiptap-style${suffix ? `-${suffix}` : ''}`, '');\r\n styleNode.innerHTML = style;\r\n document.getElementsByTagName('head')[0].appendChild(styleNode);\r\n return styleNode;\r\n}\n\nclass Editor$1 extends EventEmitter {\r\n constructor(options = {}) {\r\n super();\r\n this.isFocused = false;\r\n this.extensionStorage = {};\r\n this.options = {\r\n element: document.createElement('div'),\r\n content: '',\r\n injectCSS: true,\r\n injectNonce: undefined,\r\n extensions: [],\r\n autofocus: false,\r\n editable: true,\r\n editorProps: {},\r\n parseOptions: {},\r\n enableInputRules: true,\r\n enablePasteRules: true,\r\n enableCoreExtensions: true,\r\n onBeforeCreate: () => null,\r\n onCreate: () => null,\r\n onUpdate: () => null,\r\n onSelectionUpdate: () => null,\r\n onTransaction: () => null,\r\n onFocus: () => null,\r\n onBlur: () => null,\r\n onDestroy: () => null,\r\n };\r\n this.isCapturingTransaction = false;\r\n this.capturedTransaction = null;\r\n this.setOptions(options);\r\n this.createExtensionManager();\r\n this.createCommandManager();\r\n this.createSchema();\r\n this.on('beforeCreate', this.options.onBeforeCreate);\r\n this.emit('beforeCreate', { editor: this });\r\n this.createView();\r\n this.injectCSS();\r\n this.on('create', this.options.onCreate);\r\n this.on('update', this.options.onUpdate);\r\n this.on('selectionUpdate', this.options.onSelectionUpdate);\r\n this.on('transaction', this.options.onTransaction);\r\n this.on('focus', this.options.onFocus);\r\n this.on('blur', this.options.onBlur);\r\n this.on('destroy', this.options.onDestroy);\r\n window.setTimeout(() => {\r\n if (this.isDestroyed) {\r\n return;\r\n }\r\n this.commands.focus(this.options.autofocus);\r\n this.emit('create', { editor: this });\r\n }, 0);\r\n }\r\n /**\r\n * Returns the editor storage.\r\n */\r\n get storage() {\r\n return this.extensionStorage;\r\n }\r\n /**\r\n * An object of all registered commands.\r\n */\r\n get commands() {\r\n return this.commandManager.commands;\r\n }\r\n /**\r\n * Create a command chain to call multiple commands at once.\r\n */\r\n chain() {\r\n return this.commandManager.chain();\r\n }\r\n /**\r\n * Check if a command or a command chain can be executed. Without executing it.\r\n */\r\n can() {\r\n return this.commandManager.can();\r\n }\r\n /**\r\n * Inject CSS styles.\r\n */\r\n injectCSS() {\r\n if (this.options.injectCSS && document) {\r\n this.css = createStyleTag(style, this.options.injectNonce);\r\n }\r\n }\r\n /**\r\n * Update editor options.\r\n *\r\n * @param options A list of options\r\n */\r\n setOptions(options = {}) {\r\n this.options = {\r\n ...this.options,\r\n ...options,\r\n };\r\n if (!this.view || !this.state || this.isDestroyed) {\r\n return;\r\n }\r\n if (this.options.editorProps) {\r\n this.view.setProps(this.options.editorProps);\r\n }\r\n this.view.updateState(this.state);\r\n }\r\n /**\r\n * Update editable state of the editor.\r\n */\r\n setEditable(editable, emitUpdate = true) {\r\n this.setOptions({ editable });\r\n if (emitUpdate) {\r\n this.emit('update', { editor: this, transaction: this.state.tr });\r\n }\r\n }\r\n /**\r\n * Returns whether the editor is editable.\r\n */\r\n get isEditable() {\r\n // since plugins are applied after creating the view\r\n // `editable` is always `true` for one tick.\r\n // that’s why we also have to check for `options.editable`\r\n return this.options.editable && this.view && this.view.editable;\r\n }\r\n /**\r\n * Returns the editor state.\r\n */\r\n get state() {\r\n return this.view.state;\r\n }\r\n /**\r\n * Register a ProseMirror plugin.\r\n *\r\n * @param plugin A ProseMirror plugin\r\n * @param handlePlugins Control how to merge the plugin into the existing plugins.\r\n */\r\n registerPlugin(plugin, handlePlugins) {\r\n const plugins = isFunction(handlePlugins)\r\n ? handlePlugins(plugin, [...this.state.plugins])\r\n : [...this.state.plugins, plugin];\r\n const state = this.state.reconfigure({ plugins });\r\n this.view.updateState(state);\r\n }\r\n /**\r\n * Unregister a ProseMirror plugin.\r\n *\r\n * @param nameOrPluginKey The plugins name\r\n */\r\n unregisterPlugin(nameOrPluginKey) {\r\n if (this.isDestroyed) {\r\n return;\r\n }\r\n // @ts-ignore\r\n const name = typeof nameOrPluginKey === 'string' ? `${nameOrPluginKey}$` : nameOrPluginKey.key;\r\n const state = this.state.reconfigure({\r\n // @ts-ignore\r\n plugins: this.state.plugins.filter(plugin => !plugin.key.startsWith(name)),\r\n });\r\n this.view.updateState(state);\r\n }\r\n /**\r\n * Creates an extension manager.\r\n */\r\n createExtensionManager() {\r\n const coreExtensions = this.options.enableCoreExtensions ? Object.values(extensions) : [];\r\n const allExtensions = [...coreExtensions, ...this.options.extensions].filter(extension => {\r\n return ['extension', 'node', 'mark'].includes(extension === null || extension === void 0 ? void 0 : extension.type);\r\n });\r\n this.extensionManager = new ExtensionManager(allExtensions, this);\r\n }\r\n /**\r\n * Creates an command manager.\r\n */\r\n createCommandManager() {\r\n this.commandManager = new CommandManager({\r\n editor: this,\r\n });\r\n }\r\n /**\r\n * Creates a ProseMirror schema.\r\n */\r\n createSchema() {\r\n this.schema = this.extensionManager.schema;\r\n }\r\n /**\r\n * Creates a ProseMirror view.\r\n */\r\n createView() {\r\n const doc = createDocument(this.options.content, this.schema, this.options.parseOptions);\r\n const selection = resolveFocusPosition(doc, this.options.autofocus);\r\n this.view = new EditorView(this.options.element, {\r\n ...this.options.editorProps,\r\n dispatchTransaction: this.dispatchTransaction.bind(this),\r\n state: EditorState.create({\r\n doc,\r\n selection: selection || undefined,\r\n }),\r\n });\r\n // `editor.view` is not yet available at this time.\r\n // Therefore we will add all plugins and node views directly afterwards.\r\n const newState = this.state.reconfigure({\r\n plugins: this.extensionManager.plugins,\r\n });\r\n this.view.updateState(newState);\r\n this.createNodeViews();\r\n this.prependClass();\r\n // Let’s store the editor instance in the DOM element.\r\n // So we’ll have access to it for tests.\r\n const dom = this.view.dom;\r\n dom.editor = this;\r\n }\r\n /**\r\n * Creates all node views.\r\n */\r\n createNodeViews() {\r\n this.view.setProps({\r\n nodeViews: this.extensionManager.nodeViews,\r\n });\r\n }\r\n /**\r\n * Prepend class name to element.\r\n */\r\n prependClass() {\r\n this.view.dom.className = `tiptap ${this.view.dom.className}`;\r\n }\r\n captureTransaction(fn) {\r\n this.isCapturingTransaction = true;\r\n fn();\r\n this.isCapturingTransaction = false;\r\n const tr = this.capturedTransaction;\r\n this.capturedTransaction = null;\r\n return tr;\r\n }\r\n /**\r\n * The callback over which to send transactions (state updates) produced by the view.\r\n *\r\n * @param transaction An editor state transaction\r\n */\r\n dispatchTransaction(transaction) {\r\n // if the editor / the view of the editor was destroyed\r\n // the transaction should not be dispatched as there is no view anymore.\r\n if (this.view.isDestroyed) {\r\n return;\r\n }\r\n if (this.isCapturingTransaction) {\r\n if (!this.capturedTransaction) {\r\n this.capturedTransaction = transaction;\r\n return;\r\n }\r\n transaction.steps.forEach(step => { var _a; return (_a = this.capturedTransaction) === null || _a === void 0 ? void 0 : _a.step(step); });\r\n return;\r\n }\r\n const state = this.state.apply(transaction);\r\n const selectionHasChanged = !this.state.selection.eq(state.selection);\r\n this.view.updateState(state);\r\n this.emit('transaction', {\r\n editor: this,\r\n transaction,\r\n });\r\n if (selectionHasChanged) {\r\n this.emit('selectionUpdate', {\r\n editor: this,\r\n transaction,\r\n });\r\n }\r\n const focus = transaction.getMeta('focus');\r\n const blur = transaction.getMeta('blur');\r\n if (focus) {\r\n this.emit('focus', {\r\n editor: this,\r\n event: focus.event,\r\n transaction,\r\n });\r\n }\r\n if (blur) {\r\n this.emit('blur', {\r\n editor: this,\r\n event: blur.event,\r\n transaction,\r\n });\r\n }\r\n if (!transaction.docChanged || transaction.getMeta('preventUpdate')) {\r\n return;\r\n }\r\n this.emit('update', {\r\n editor: this,\r\n transaction,\r\n });\r\n }\r\n /**\r\n * Get attributes of the currently selected node or mark.\r\n */\r\n getAttributes(nameOrType) {\r\n return getAttributes(this.state, nameOrType);\r\n }\r\n isActive(nameOrAttributes, attributesOrUndefined) {\r\n const name = typeof nameOrAttributes === 'string' ? nameOrAttributes : null;\r\n const attributes = typeof nameOrAttributes === 'string' ? attributesOrUndefined : nameOrAttributes;\r\n return isActive(this.state, name, attributes);\r\n }\r\n /**\r\n * Get the document as JSON.\r\n */\r\n getJSON() {\r\n return this.state.doc.toJSON();\r\n }\r\n /**\r\n * Get the document as HTML.\r\n */\r\n getHTML() {\r\n return getHTMLFromFragment(this.state.doc.content, this.schema);\r\n }\r\n /**\r\n * Get the document as text.\r\n */\r\n getText(options) {\r\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {};\r\n return getText(this.state.doc, {\r\n blockSeparator,\r\n textSerializers: {\r\n ...getTextSerializersFromSchema(this.schema),\r\n ...textSerializers,\r\n },\r\n });\r\n }\r\n /**\r\n * Check if there is no content.\r\n */\r\n get isEmpty() {\r\n return isNodeEmpty(this.state.doc);\r\n }\r\n /**\r\n * Get the number of characters for the current document.\r\n *\r\n * @deprecated\r\n */\r\n getCharacterCount() {\r\n console.warn('[tiptap warn]: \"editor.getCharacterCount()\" is deprecated. Please use \"editor.storage.characterCount.characters()\" instead.');\r\n return this.state.doc.content.size - 2;\r\n }\r\n /**\r\n * Destroy the editor.\r\n */\r\n destroy() {\r\n this.emit('destroy');\r\n if (this.view) {\r\n this.view.destroy();\r\n }\r\n this.removeAllListeners();\r\n }\r\n /**\r\n * Check if the editor is already destroyed.\r\n */\r\n get isDestroyed() {\r\n var _a;\r\n // @ts-ignore\r\n return !((_a = this.view) === null || _a === void 0 ? void 0 : _a.docView);\r\n }\r\n}\n\n/**\r\n * Build an input rule that adds a mark when the\r\n * matched text is typed into it.\r\n */\r\nfunction markInputRule(config) {\r\n return new InputRule({\r\n find: config.find,\r\n handler: ({ state, range, match }) => {\r\n const attributes = callOrReturn(config.getAttributes, undefined, match);\r\n if (attributes === false || attributes === null) {\r\n return null;\r\n }\r\n const { tr } = state;\r\n const captureGroup = match[match.length - 1];\r\n const fullMatch = match[0];\r\n if (captureGroup) {\r\n const startSpaces = fullMatch.search(/\\S/);\r\n const textStart = range.from + fullMatch.indexOf(captureGroup);\r\n const textEnd = textStart + captureGroup.length;\r\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\r\n .filter(item => {\r\n // @ts-ignore\r\n const excluded = item.mark.type.excluded;\r\n return excluded.find(type => type === config.type && type !== item.mark.type);\r\n })\r\n .filter(item => item.to > textStart);\r\n if (excludedMarks.length) {\r\n return null;\r\n }\r\n if (textEnd < range.to) {\r\n tr.delete(textEnd, range.to);\r\n }\r\n if (textStart > range.from) {\r\n tr.delete(range.from + startSpaces, textStart);\r\n }\r\n const markEnd = range.from + startSpaces + captureGroup.length;\r\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}));\r\n tr.removeStoredMark(config.type);\r\n }\r\n },\r\n });\r\n}\n\n/**\r\n * Build an input rule that adds a node when the\r\n * matched text is typed into it.\r\n */\r\nfunction nodeInputRule(config) {\r\n return new InputRule({\r\n find: config.find,\r\n handler: ({ state, range, match }) => {\r\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {};\r\n const { tr } = state;\r\n const start = range.from;\r\n let end = range.to;\r\n const newNode = config.type.create(attributes);\r\n if (match[1]) {\r\n const offset = match[0].lastIndexOf(match[1]);\r\n let matchStart = start + offset;\r\n if (matchStart > end) {\r\n matchStart = end;\r\n }\r\n else {\r\n end = matchStart + match[1].length;\r\n }\r\n // insert last typed character\r\n const lastChar = match[0][match[0].length - 1];\r\n tr.insertText(lastChar, start + match[0].length - 1);\r\n // insert node from input rule\r\n tr.replaceWith(matchStart, end, newNode);\r\n }\r\n else if (match[0]) {\r\n tr.insert(start - 1, config.type.create(attributes)).delete(tr.mapping.map(start), tr.mapping.map(end));\r\n }\r\n tr.scrollIntoView();\r\n },\r\n });\r\n}\n\n/**\r\n * Build an input rule that changes the type of a textblock when the\r\n * matched text is typed into it. When using a regular expresion you’ll\r\n * probably want the regexp to start with `^`, so that the pattern can\r\n * only occur at the start of a textblock.\r\n */\r\nfunction textblockTypeInputRule(config) {\r\n return new InputRule({\r\n find: config.find,\r\n handler: ({ state, range, match }) => {\r\n const $start = state.doc.resolve(range.from);\r\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {};\r\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), config.type)) {\r\n return null;\r\n }\r\n state.tr\r\n .delete(range.from, range.to)\r\n .setBlockType(range.from, range.from, config.type, attributes);\r\n },\r\n });\r\n}\n\n/**\r\n * Build an input rule for automatically wrapping a textblock when a\r\n * given string is typed. When using a regular expresion you’ll\r\n * probably want the regexp to start with `^`, so that the pattern can\r\n * only occur at the start of a textblock.\r\n *\r\n * `type` is the type of node to wrap in.\r\n *\r\n * By default, if there’s a node with the same type above the newly\r\n * wrapped node, the rule will try to join those\r\n * two nodes. You can pass a join predicate, which takes a regular\r\n * expression match and the node before the wrapped node, and can\r\n * return a boolean to indicate whether a join should happen.\r\n */\r\nfunction wrappingInputRule(config) {\r\n return new InputRule({\r\n find: config.find,\r\n handler: ({ state, range, match, chain, }) => {\r\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {};\r\n const tr = state.tr.delete(range.from, range.to);\r\n const $start = tr.doc.resolve(range.from);\r\n const blockRange = $start.blockRange();\r\n const wrapping = blockRange && findWrapping(blockRange, config.type, attributes);\r\n if (!wrapping) {\r\n return null;\r\n }\r\n tr.wrap(blockRange, wrapping);\r\n if (config.keepMarks && config.editor) {\r\n const { selection, storedMarks } = state;\r\n const { splittableMarks } = config.editor.extensionManager;\r\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks());\r\n if (marks) {\r\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name));\r\n tr.ensureMarks(filteredMarks);\r\n }\r\n }\r\n if (config.keepAttributes) {\r\n /** If the nodeType is `bulletList` or `orderedList` set the `nodeType` as `listItem` */\r\n const nodeType = config.type.name === 'bulletList' || config.type.name === 'orderedList' ? 'listItem' : 'taskList';\r\n chain().updateAttributes(nodeType, attributes).run();\r\n }\r\n const before = tr.doc.resolve(range.from - 1).nodeBefore;\r\n if (before\r\n && before.type === config.type\r\n && canJoin(tr.doc, range.from - 1)\r\n && (!config.joinPredicate || config.joinPredicate(match, before))) {\r\n tr.join(range.from - 1);\r\n }\r\n },\r\n });\r\n}\n\nclass Mark {\r\n constructor(config = {}) {\r\n this.type = 'mark';\r\n this.name = 'mark';\r\n this.parent = null;\r\n this.child = null;\r\n this.config = {\r\n name: this.name,\r\n defaultOptions: {},\r\n };\r\n this.config = {\r\n ...this.config,\r\n ...config,\r\n };\r\n this.name = this.config.name;\r\n if (config.defaultOptions) {\r\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`);\r\n }\r\n // TODO: remove `addOptions` fallback\r\n this.options = this.config.defaultOptions;\r\n if (this.config.addOptions) {\r\n this.options = callOrReturn(getExtensionField(this, 'addOptions', {\r\n name: this.name,\r\n }));\r\n }\r\n this.storage = callOrReturn(getExtensionField(this, 'addStorage', {\r\n name: this.name,\r\n options: this.options,\r\n })) || {};\r\n }\r\n static create(config = {}) {\r\n return new Mark(config);\r\n }\r\n configure(options = {}) {\r\n // return a new instance so we can use the same extension\r\n // with different calls of `configure`\r\n const extension = this.extend();\r\n extension.options = mergeDeep(this.options, options);\r\n extension.storage = callOrReturn(getExtensionField(extension, 'addStorage', {\r\n name: extension.name,\r\n options: extension.options,\r\n }));\r\n return extension;\r\n }\r\n extend(extendedConfig = {}) {\r\n const extension = new Mark(extendedConfig);\r\n extension.parent = this;\r\n this.child = extension;\r\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;\r\n if (extendedConfig.defaultOptions) {\r\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`);\r\n }\r\n extension.options = callOrReturn(getExtensionField(extension, 'addOptions', {\r\n name: extension.name,\r\n }));\r\n extension.storage = callOrReturn(getExtensionField(extension, 'addStorage', {\r\n name: extension.name,\r\n options: extension.options,\r\n }));\r\n return extension;\r\n }\r\n static handleExit({ editor, mark }) {\r\n const { tr } = editor.state;\r\n const currentPos = editor.state.selection.$from;\r\n const isAtEnd = currentPos.pos === currentPos.end();\r\n if (isAtEnd) {\r\n const currentMarks = currentPos.marks();\r\n const isInMark = !!currentMarks.find(m => (m === null || m === void 0 ? void 0 : m.type.name) === mark.name);\r\n if (!isInMark) {\r\n return false;\r\n }\r\n const removeMark = currentMarks.find(m => (m === null || m === void 0 ? void 0 : m.type.name) === mark.name);\r\n if (removeMark) {\r\n tr.removeStoredMark(removeMark);\r\n }\r\n tr.insertText(' ', currentPos.pos);\r\n editor.view.dispatch(tr);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\n\nclass Node {\r\n constructor(config = {}) {\r\n this.type = 'node';\r\n this.name = 'node';\r\n this.parent = null;\r\n this.child = null;\r\n this.config = {\r\n name: this.name,\r\n defaultOptions: {},\r\n };\r\n this.config = {\r\n ...this.config,\r\n ...config,\r\n };\r\n this.name = this.config.name;\r\n if (config.defaultOptions) {\r\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`);\r\n }\r\n // TODO: remove `addOptions` fallback\r\n this.options = this.config.defaultOptions;\r\n if (this.config.addOptions) {\r\n this.options = callOrReturn(getExtensionField(this, 'addOptions', {\r\n name: this.name,\r\n }));\r\n }\r\n this.storage = callOrReturn(getExtensionField(this, 'addStorage', {\r\n name: this.name,\r\n options: this.options,\r\n })) || {};\r\n }\r\n static create(config = {}) {\r\n return new Node(config);\r\n }\r\n configure(options = {}) {\r\n // return a new instance so we can use the same extension\r\n // with different calls of `configure`\r\n const extension = this.extend();\r\n extension.options = mergeDeep(this.options, options);\r\n extension.storage = callOrReturn(getExtensionField(extension, 'addStorage', {\r\n name: extension.name,\r\n options: extension.options,\r\n }));\r\n return extension;\r\n }\r\n extend(extendedConfig = {}) {\r\n const extension = new Node(extendedConfig);\r\n extension.parent = this;\r\n this.child = extension;\r\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;\r\n if (extendedConfig.defaultOptions) {\r\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`);\r\n }\r\n extension.options = callOrReturn(getExtensionField(extension, 'addOptions', {\r\n name: extension.name,\r\n }));\r\n extension.storage = callOrReturn(getExtensionField(extension, 'addStorage', {\r\n name: extension.name,\r\n options: extension.options,\r\n }));\r\n return extension;\r\n }\r\n}\n\nfunction isAndroid() {\r\n return navigator.platform === 'Android' || /android/i.test(navigator.userAgent);\r\n}\n\nclass NodeView {\r\n constructor(component, props, options) {\r\n this.isDragging = false;\r\n this.component = component;\r\n this.editor = props.editor;\r\n this.options = {\r\n stopEvent: null,\r\n ignoreMutation: null,\r\n ...options,\r\n };\r\n this.extension = props.extension;\r\n this.node = props.node;\r\n this.decorations = props.decorations;\r\n this.getPos = props.getPos;\r\n this.mount();\r\n }\r\n mount() {\r\n // eslint-disable-next-line\r\n return;\r\n }\r\n get dom() {\r\n return this.editor.view.dom;\r\n }\r\n get contentDOM() {\r\n return null;\r\n }\r\n onDragStart(event) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n const { view } = this.editor;\r\n const target = event.target;\r\n // get the drag handle element\r\n // `closest` is not available for text nodes so we may have to use its parent\r\n const dragHandle = target.nodeType === 3\r\n ? (_a = target.parentElement) === null || _a === void 0 ? void 0 : _a.closest('[data-drag-handle]')\r\n : target.closest('[data-drag-handle]');\r\n if (!this.dom || ((_b = this.contentDOM) === null || _b === void 0 ? void 0 : _b.contains(target)) || !dragHandle) {\r\n return;\r\n }\r\n let x = 0;\r\n let y = 0;\r\n // calculate offset for drag element if we use a different drag handle element\r\n if (this.dom !== dragHandle) {\r\n const domBox = this.dom.getBoundingClientRect();\r\n const handleBox = dragHandle.getBoundingClientRect();\r\n // In React, we have to go through nativeEvent to reach offsetX/offsetY.\r\n const offsetX = (_c = event.offsetX) !== null && _c !== void 0 ? _c : (_d = event.nativeEvent) === null || _d === void 0 ? void 0 : _d.offsetX;\r\n const offsetY = (_e = event.offsetY) !== null && _e !== void 0 ? _e : (_f = event.nativeEvent) === null || _f === void 0 ? void 0 : _f.offsetY;\r\n x = handleBox.x - domBox.x + offsetX;\r\n y = handleBox.y - domBox.y + offsetY;\r\n }\r\n (_g = event.dataTransfer) === null || _g === void 0 ? void 0 : _g.setDragImage(this.dom, x, y);\r\n // we need to tell ProseMirror that we want to move the whole node\r\n // so we create a NodeSelection\r\n const selection = NodeSelection.create(view.state.doc, this.getPos());\r\n const transaction = view.state.tr.setSelection(selection);\r\n view.dispatch(transaction);\r\n }\r\n stopEvent(event) {\r\n var _a;\r\n if (!this.dom) {\r\n return false;\r\n }\r\n if (typeof this.options.stopEvent === 'function') {\r\n return this.options.stopEvent({ event });\r\n }\r\n const target = event.target;\r\n const isInElement = this.dom.contains(target) && !((_a = this.contentDOM) === null || _a === void 0 ? void 0 : _a.contains(target));\r\n // any event from child nodes should be handled by ProseMirror\r\n if (!isInElement) {\r\n return false;\r\n }\r\n const isDragEvent = event.type.startsWith('drag');\r\n const isDropEvent = event.type === 'drop';\r\n const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable;\r\n // any input event within node views should be ignored by ProseMirror\r\n if (isInput && !isDropEvent && !isDragEvent) {\r\n return true;\r\n }\r\n const { isEditable } = this.editor;\r\n const { isDragging } = this;\r\n const isDraggable = !!this.node.type.spec.draggable;\r\n const isSelectable = NodeSelection.isSelectable(this.node);\r\n const isCopyEvent = event.type === 'copy';\r\n const isPasteEvent = event.type === 'paste';\r\n const isCutEvent = event.type === 'cut';\r\n const isClickEvent = event.type === 'mousedown';\r\n // ProseMirror tries to drag selectable nodes\r\n // even if `draggable` is set to `false`\r\n // this fix prevents that\r\n if (!isDraggable && isSelectable && isDragEvent) {\r\n event.preventDefault();\r\n }\r\n if (isDraggable && isDragEvent && !isDragging) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n // we have to store that dragging started\r\n if (isDraggable && isEditable && !isDragging && isClickEvent) {\r\n const dragHandle = target.closest('[data-drag-handle]');\r\n const isValidDragHandle = dragHandle && (this.dom === dragHandle || this.dom.contains(dragHandle));\r\n if (isValidDragHandle) {\r\n this.isDragging = true;\r\n document.addEventListener('dragend', () => {\r\n this.isDragging = false;\r\n }, { once: true });\r\n document.addEventListener('drop', () => {\r\n this.isDragging = false;\r\n }, { once: true });\r\n document.addEventListener('mouseup', () => {\r\n this.isDragging = false;\r\n }, { once: true });\r\n }\r\n }\r\n // these events are handled by prosemirror\r\n if (isDragging\r\n || isDropEvent\r\n || isCopyEvent\r\n || isPasteEvent\r\n || isCutEvent\r\n || (isClickEvent && isSelectable)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n ignoreMutation(mutation) {\r\n if (!this.dom || !this.contentDOM) {\r\n return true;\r\n }\r\n if (typeof this.options.ignoreMutation === 'function') {\r\n return this.options.ignoreMutation({ mutation });\r\n }\r\n // a leaf/atom node is like a black box for ProseMirror\r\n // and should be fully handled by the node view\r\n if (this.node.isLeaf || this.node.isAtom) {\r\n return true;\r\n }\r\n // ProseMirror should handle any selections\r\n if (mutation.type === 'selection') {\r\n return false;\r\n }\r\n // try to prevent a bug on iOS and Android that will break node views on enter\r\n // this is because ProseMirror can’t preventDispatch on enter\r\n // this will lead to a re-render of the node view on enter\r\n // see: https://github.com/ueberdosis/tiptap/issues/1214\r\n // see: https://github.com/ueberdosis/tiptap/issues/2534\r\n if (this.dom.contains(mutation.target)\r\n && mutation.type === 'childList'\r\n && (isiOS() || isAndroid())\r\n && this.editor.isFocused) {\r\n const changedNodes = [\r\n ...Array.from(mutation.addedNodes),\r\n ...Array.from(mutation.removedNodes),\r\n ];\r\n // we’ll check if every changed node is contentEditable\r\n // to make sure it’s probably mutated by ProseMirror\r\n if (changedNodes.every(node => node.isContentEditable)) {\r\n return false;\r\n }\r\n }\r\n // we will allow mutation contentDOM with attributes\r\n // so we can for example adding classes within our node view\r\n if (this.contentDOM === mutation.target && mutation.type === 'attributes') {\r\n return true;\r\n }\r\n // ProseMirror should handle any changes within contentDOM\r\n if (this.contentDOM.contains(mutation.target)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n updateAttributes(attributes) {\r\n this.editor.commands.command(({ tr }) => {\r\n const pos = this.getPos();\r\n tr.setNodeMarkup(pos, undefined, {\r\n ...this.node.attrs,\r\n ...attributes,\r\n });\r\n return true;\r\n });\r\n }\r\n deleteNode() {\r\n const from = this.getPos();\r\n const to = from + this.node.nodeSize;\r\n this.editor.commands.deleteRange({ from, to });\r\n }\r\n}\n\n/**\r\n * Build an paste rule that adds a mark when the\r\n * matched text is pasted into it.\r\n */\r\nfunction markPasteRule(config) {\r\n return new PasteRule({\r\n find: config.find,\r\n handler: ({ state, range, match, pasteEvent, }) => {\r\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent);\r\n if (attributes === false || attributes === null) {\r\n return null;\r\n }\r\n const { tr } = state;\r\n const captureGroup = match[match.length - 1];\r\n const fullMatch = match[0];\r\n let markEnd = range.to;\r\n if (captureGroup) {\r\n const startSpaces = fullMatch.search(/\\S/);\r\n const textStart = range.from + fullMatch.indexOf(captureGroup);\r\n const textEnd = textStart + captureGroup.length;\r\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\r\n .filter(item => {\r\n // @ts-ignore\r\n const excluded = item.mark.type.excluded;\r\n return excluded.find(type => type === config.type && type !== item.mark.type);\r\n })\r\n .filter(item => item.to > textStart);\r\n if (excludedMarks.length) {\r\n return null;\r\n }\r\n if (textEnd < range.to) {\r\n tr.delete(textEnd, range.to);\r\n }\r\n if (textStart > range.from) {\r\n tr.delete(range.from + startSpaces, textStart);\r\n }\r\n markEnd = range.from + startSpaces + captureGroup.length;\r\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}));\r\n tr.removeStoredMark(config.type);\r\n }\r\n },\r\n });\r\n}\n\n// source: https://stackoverflow.com/a/6969486\r\nfunction escapeForRegEx(string) {\r\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar isInstanceOf_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isInstanceOf = void 0;\n/** Validator that only allows instances of the given parent. */\nconst isInstanceOf = (parent) => (value) => {\n if (!(value instanceof parent)) {\n return `value should be an instance of ${parent.name}`;\n }\n return undefined;\n};\nexports.isInstanceOf = isInstanceOf;\n});\n\nvar isInteger_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isInteger = void 0;\n/** Validator that only allows integer numbers. */\nconst isInteger = (value) => {\n if (typeof value !== 'number' || !Number.isInteger(value)) {\n return 'value should be an integer';\n }\n return undefined;\n};\nexports.isInteger = isInteger;\n});\n\nvar isOneOf_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isOneOf = void 0;\n/** Validator that only allows any of the given values. */\nconst isOneOf = (allowedValues) => (value) => {\n if (!allowedValues.includes(value)) {\n return `value should be one of \"${allowedValues.join('\", \"')}\"`;\n }\n return undefined;\n};\nexports.isOneOf = isOneOf;\n});\n\nvar isSymbol_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSymbol = void 0;\n/** Validator that only allows symbols. */\nconst isSymbol = (value) => {\n if (typeof value !== 'symbol') {\n return 'value should be a symbol';\n }\n return undefined;\n};\nexports.isSymbol = isSymbol;\n});\n\nvar validators = createCommonjsModule(function (module, exports) {\nvar __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSymbol = exports.isOneOf = exports.isInteger = exports.isInstanceOf = exports.vuePropValidator = void 0;\nconst vue_1 = __importDefault(Vue);\n/**\n * Creates a Vue prop validator that runs all type validators and the user validator (if specified).\n * @param userValidator Validator function specified by the user.\n * @param typeValidators Validator functions hard-coded by the prop type function.\n */\nfunction vuePropValidator(userValidator, ...typeValidators) {\n const validators = userValidator\n ? [...typeValidators, userValidator]\n : typeValidators;\n if (validators.length === 0) {\n return undefined;\n }\n return (value) => {\n for (const validator of validators) {\n const errorMessage = validator(value);\n if (errorMessage) {\n if (typeof vue_1.default === 'object' && 'util' in vue_1.default) {\n // @ts-expect-error -- Vue.util is only available in Vue 2, but provides more context than console.warn\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n vue_1.default.util.warn(`${errorMessage} (received: '${String(value)}')`);\n }\n else {\n console.warn(`${errorMessage} (received: '${String(value)}')`);\n }\n return false;\n }\n }\n return true;\n };\n}\nexports.vuePropValidator = vuePropValidator;\n// for internal use only\n\nObject.defineProperty(exports, \"isInstanceOf\", { enumerable: true, get: function () { return isInstanceOf_1.isInstanceOf; } });\n\nObject.defineProperty(exports, \"isInteger\", { enumerable: true, get: function () { return isInteger_1.isInteger; } });\n\nObject.defineProperty(exports, \"isOneOf\", { enumerable: true, get: function () { return isOneOf_1.isOneOf; } });\n\nObject.defineProperty(exports, \"isSymbol\", { enumerable: true, get: function () { return isSymbol_1.isSymbol; } });\n// custom validators provided for user convenience are exported from main entrypoint\n});\n\nvar util$2 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.propOptionsGenerator = void 0;\n\nconst propOptionsGenerator = (type, userValidator, ...typeValidators) => ({\n optional: {\n type,\n required: false,\n default: undefined,\n validator: (0, validators.vuePropValidator)(userValidator, ...typeValidators),\n },\n nullable: {\n type,\n required: false,\n default: null,\n validator: (0, validators.vuePropValidator)(userValidator, ...typeValidators),\n },\n withDefault: (defaultValue) => ({\n type,\n required: false,\n default: defaultValue,\n validator: (0, validators.vuePropValidator)(userValidator, ...typeValidators),\n }),\n required: {\n type,\n required: true,\n validator: (0, validators.vuePropValidator)(userValidator, ...typeValidators),\n },\n});\nexports.propOptionsGenerator = propOptionsGenerator;\n});\n\nvar string = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringProp = void 0;\n\n/**\n * Allows any string. No further runtime validation is performed by default.\n *\n * Type parameter `T` can be used to restrict the type at compile time with a union type.\n *\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst stringProp = (validator) => (0, util$2.propOptionsGenerator)(String, validator);\nexports.stringProp = stringProp;\n});\n\nvar boolean_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.booleanProp = void 0;\n\n/**\n * Allows any boolean (validated at runtime and compile time).\n *\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst booleanProp = (validator) => (0, util$2.propOptionsGenerator)(Boolean, validator);\nexports.booleanProp = booleanProp;\n});\n\nvar number = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numberProp = void 0;\n\n/**\n * Allows any number (validated at runtime and compile time).\n *\n * Type parameter `T` can be used to restrict the type at compile time with a union type.\n *\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst numberProp = (validator) => (0, util$2.propOptionsGenerator)(Number, validator);\nexports.numberProp = numberProp;\n});\n\nvar integer = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.integerProp = void 0;\n\n\n/**\n * Allows any integer (validated at runtime).\n *\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst integerProp = (validator) => (0, util$2.propOptionsGenerator)(Number, validator, validators.isInteger);\nexports.integerProp = integerProp;\n});\n\nvar symbol = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.symbolProp = void 0;\n\n\n/**\n * Allows any symbol (validated at runtime and compile time).\n *\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst symbolProp = (validator) => (0, util$2.propOptionsGenerator)(undefined, validator, validators.isSymbol);\nexports.symbolProp = symbolProp;\n});\n\nvar vueComponent = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.vueComponentProp = void 0;\n\n/**\n * Allows any Vue component instance, name or options object. No built-in runtime validation is performed by default.\n *\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst vueComponentProp = (validator) => (0, util$2.propOptionsGenerator)([Object, String], validator);\nexports.vueComponentProp = vueComponentProp;\n});\n\nvar any = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.anyProp = void 0;\n\n/**\n * Allows any type. No built-in runtime validation is performed by default.\n *\n * Type parameter `T` can be used to restrict the type at compile time.\n *\n * @param validator - Optional function for runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst anyProp = (validator) => (0, util$2.propOptionsGenerator)(undefined, validator);\nexports.anyProp = anyProp;\n});\n\nvar array = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayProp = void 0;\n\n/**\n * Allows any array. No further runtime validation is performed by default.\n *\n * Type parameter `T` can be used to restrict the type of the array items at compile time.\n *\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst arrayProp = (validator) => (0, util$2.propOptionsGenerator)(Array, validator);\nexports.arrayProp = arrayProp;\n});\n\nvar object = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.objectProp = void 0;\n\n/**\n * Allows any object. No further runtime validation is performed by default.\n *\n * Type parameter `T` can be used to restrict the type at compile time.\n *\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst objectProp = (validator) => (0, util$2.propOptionsGenerator)(Object, validator);\nexports.objectProp = objectProp;\n});\n\nvar _function = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.functionProp = void 0;\n\n/* eslint-disable @typescript-eslint/ban-types */\n/**\n * Allows any function. No further runtime validation is performed by default.\n *\n * Type parameter `T` can be used to restrict the type to a specific function signature at compile time.\n *\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst functionProp = (validator) => ({\n optional: {\n type: Function,\n required: false,\n default: undefined,\n validator: (0, validators.vuePropValidator)(validator),\n },\n nullable: {\n type: Function,\n required: false,\n default: null,\n validator: (0, validators.vuePropValidator)(validator),\n },\n required: {\n type: Function,\n required: true,\n validator: (0, validators.vuePropValidator)(validator),\n },\n});\nexports.functionProp = functionProp;\n});\n\nvar oneOf = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.oneOfProp = void 0;\n\n\n// inspired by https://github.com/dwightjack/vue-types/blob/4.1.1/src/validators/oneof.ts\nconst getOneOfType = (values) => {\n const allowedTypes = [\n ...new Set(values.flatMap((value) => {\n var _a;\n if (value === null || value === undefined) {\n return [];\n }\n return (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (_a = value.constructor) !== null && _a !== void 0 ? _a : []);\n })),\n ];\n if (allowedTypes.length === 0) {\n return undefined;\n }\n if (allowedTypes.length === 1) {\n return allowedTypes[0];\n }\n return allowedTypes;\n};\n/**\n * Allows any of the specified allowed values (validated at runtime and compile time).\n *\n * Type parameter `T` can be used to adjust the inferred type at compile time, this is usually not necessary.\n *\n * @param allowedValues - The allowed values.\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst oneOfProp = (allowedValues, validator) => (0, util$2.propOptionsGenerator)(getOneOfType(allowedValues), validator, (0, validators.isOneOf)(allowedValues));\nexports.oneOfProp = oneOfProp;\n});\n\nvar oneOfObjectKeys = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.oneOfObjectKeysProp = void 0;\n\n/**\n * Allows any of the keys of the specified object (validated at runtime and compile time).\n *\n * Type parameter `T` can be used to adjust the inferred type at compile time, this is usually not necessary.\n *\n * @param object - The object whose keys are allowed.\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst oneOfObjectKeysProp = (object, validator) => (0, oneOf.oneOfProp)(Object.keys(object), validator);\nexports.oneOfObjectKeysProp = oneOfObjectKeysProp;\n});\n\nvar oneOfTypes = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.oneOfTypesProp = void 0;\n\n/**\n * Allows any of the passed constructor types (validated at runtime).\n *\n * Type parameter `T` has to be used to adjust the type at compile time.\n *\n * @param type - A single constructor or an array of constructors to allow.\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst oneOfTypesProp = (type, validator) => (0, util$2.propOptionsGenerator)(type, validator);\nexports.oneOfTypesProp = oneOfTypesProp;\n});\n\nvar instanceOf = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instanceOfProp = void 0;\n\n\n/**\n * Allows instances of the given constructor (validated at runtime and compile time).\n *\n * Type parameter `T` can be used to adjust the inferred type at compile time.\n *\n * @param parent - The constructor to allow.\n * @param validator - Optional function for further runtime validation; should return `undefined` if valid, or an error string if invalid.\n */\nconst instanceOfProp = (parent, validator) => (0, util$2.propOptionsGenerator)(parent, validator, (0, validators.isInstanceOf)(parent));\nexports.instanceOfProp = instanceOfProp;\n});\n\nvar isNegative_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNegative = void 0;\n/** Validator that only allows negative numbers (`< 0`). */\nconst isNegative = (value) => {\n if (typeof value !== 'number' || value >= 0 || Number.isNaN(value)) {\n return 'value should be a negative number';\n }\n return undefined;\n};\nexports.isNegative = isNegative;\n});\n\nvar isPositive_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPositive = void 0;\n/** Validator that only allows positive numbers (`> 0`). */\nconst isPositive = (value) => {\n if (typeof value !== 'number' || value <= 0 || Number.isNaN(value)) {\n return 'value should be a positive number';\n }\n return undefined;\n};\nexports.isPositive = isPositive;\n});\n\nvar isNonNegative_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNegative = void 0;\n/** Validator that only allows non-negative numbers (`>= 0`). */\nconst isNonNegative = (value) => {\n if (typeof value !== 'number' || value < 0 || Number.isNaN(value)) {\n return 'value should be a non-negative number';\n }\n return undefined;\n};\nexports.isNonNegative = isNonNegative;\n});\n\nvar isNonPositive_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonPositive = void 0;\n/** Validator that only allows non-positive numbers (`<= 0`). */\nconst isNonPositive = (value) => {\n if (typeof value !== 'number' || value > 0 || Number.isNaN(value)) {\n return 'value should be a non-positive number';\n }\n return undefined;\n};\nexports.isNonPositive = isNonPositive;\n});\n\nvar dist = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonPositive = exports.isNonNegative = exports.isPositive = exports.isNegative = exports.instanceOfProp = exports.oneOfTypesProp = exports.oneOfObjectKeysProp = exports.oneOfProp = exports.functionProp = exports.objectProp = exports.arrayProp = exports.anyProp = exports.vueComponentProp = exports.symbolProp = exports.integerProp = exports.numberProp = exports.booleanProp = exports.stringProp = void 0;\n\nObject.defineProperty(exports, \"stringProp\", { enumerable: true, get: function () { return string.stringProp; } });\n\nObject.defineProperty(exports, \"booleanProp\", { enumerable: true, get: function () { return boolean_1.booleanProp; } });\n\nObject.defineProperty(exports, \"numberProp\", { enumerable: true, get: function () { return number.numberProp; } });\n\nObject.defineProperty(exports, \"integerProp\", { enumerable: true, get: function () { return integer.integerProp; } });\n\nObject.defineProperty(exports, \"symbolProp\", { enumerable: true, get: function () { return symbol.symbolProp; } });\n\nObject.defineProperty(exports, \"vueComponentProp\", { enumerable: true, get: function () { return vueComponent.vueComponentProp; } });\n\nObject.defineProperty(exports, \"anyProp\", { enumerable: true, get: function () { return any.anyProp; } });\n\nObject.defineProperty(exports, \"arrayProp\", { enumerable: true, get: function () { return array.arrayProp; } });\n\nObject.defineProperty(exports, \"objectProp\", { enumerable: true, get: function () { return object.objectProp; } });\n\nObject.defineProperty(exports, \"functionProp\", { enumerable: true, get: function () { return _function.functionProp; } });\n\nObject.defineProperty(exports, \"oneOfProp\", { enumerable: true, get: function () { return oneOf.oneOfProp; } });\n\nObject.defineProperty(exports, \"oneOfObjectKeysProp\", { enumerable: true, get: function () { return oneOfObjectKeys.oneOfObjectKeysProp; } });\n\nObject.defineProperty(exports, \"oneOfTypesProp\", { enumerable: true, get: function () { return oneOfTypes.oneOfTypesProp; } });\n\nObject.defineProperty(exports, \"instanceOfProp\", { enumerable: true, get: function () { return instanceOf.instanceOfProp; } });\n\nObject.defineProperty(exports, \"isNegative\", { enumerable: true, get: function () { return isNegative_1.isNegative; } });\n\nObject.defineProperty(exports, \"isPositive\", { enumerable: true, get: function () { return isPositive_1.isPositive; } });\n\nObject.defineProperty(exports, \"isNonNegative\", { enumerable: true, get: function () { return isNonNegative_1.isNonNegative; } });\n\nObject.defineProperty(exports, \"isNonPositive\", { enumerable: true, get: function () { return isNonPositive_1.isNonPositive; } });\n});\n\nclass Editor extends Editor$1 {\r\n constructor() {\r\n super(...arguments);\r\n this.contentComponent = null;\r\n }\r\n}\n\nconst EditorContent = {\r\n name: 'EditorContent',\r\n props: {\r\n editor: {\r\n default: null,\r\n type: Object,\r\n },\r\n },\r\n watch: {\r\n editor: {\r\n immediate: true,\r\n handler(editor) {\r\n if (editor && editor.options.element) {\r\n this.$nextTick(() => {\r\n const element = this.$el;\r\n if (!element || !editor.options.element.firstChild) {\r\n return;\r\n }\r\n element.append(...editor.options.element.childNodes);\r\n editor.contentComponent = this;\r\n editor.setOptions({\r\n element,\r\n });\r\n editor.createNodeViews();\r\n });\r\n }\r\n },\r\n },\r\n },\r\n render(createElement) {\r\n return createElement('div');\r\n },\r\n beforeDestroy() {\r\n const { editor } = this;\r\n if (!editor) {\r\n return;\r\n }\r\n if (!editor.isDestroyed) {\r\n editor.view.setProps({\r\n nodeViews: {},\r\n });\r\n }\r\n editor.contentComponent = null;\r\n if (!editor.options.element.firstChild) {\r\n return;\r\n }\r\n const newElement = document.createElement('div');\r\n newElement.append(...editor.options.element.childNodes);\r\n editor.setOptions({\r\n element: newElement,\r\n });\r\n },\r\n};\n\nclass VueRenderer {\r\n constructor(component, props) {\r\n const Component = (typeof component === 'function') ? component : Vue.extend(component);\r\n this.ref = new Component(props).$mount();\r\n }\r\n get element() {\r\n return this.ref.$el;\r\n }\r\n updateProps(props = {}) {\r\n var _a, _b, _c;\r\n if (!this.ref.$props) {\r\n return;\r\n }\r\n // prevents `Avoid mutating a prop directly` error message\r\n // Fix: `VueNodeViewRenderer` change vue Constructor `config.silent` not working\r\n const currentVueConstructor = (_c = (_b = (_a = this.ref.$props.editor) === null || _a === void 0 ? void 0 : _a.contentComponent) === null || _b === void 0 ? void 0 : _b.$options._base) !== null && _c !== void 0 ? _c : Vue; // eslint-disable-line\r\n const originalSilent = currentVueConstructor.config.silent;\r\n currentVueConstructor.config.silent = true;\r\n Object\r\n .entries(props)\r\n .forEach(([key, value]) => {\r\n this.ref.$props[key] = value;\r\n });\r\n currentVueConstructor.config.silent = originalSilent;\r\n }\r\n destroy() {\r\n this.ref.$destroy();\r\n }\r\n}\n\n({\r\n editor: dist.objectProp().required,\r\n node: dist.objectProp().required,\r\n decorations: dist.objectProp().required,\r\n selected: dist.booleanProp().required,\r\n extension: dist.objectProp().required,\r\n getPos: dist.functionProp().required,\r\n updateAttributes: dist.functionProp().required,\r\n deleteNode: dist.functionProp().required,\r\n});\r\nclass VueNodeView extends NodeView {\r\n mount() {\r\n var _a, _b;\r\n const props = {\r\n editor: this.editor,\r\n node: this.node,\r\n decorations: this.decorations,\r\n selected: false,\r\n extension: this.extension,\r\n getPos: () => this.getPos(),\r\n updateAttributes: (attributes = {}) => this.updateAttributes(attributes),\r\n deleteNode: () => this.deleteNode(),\r\n };\r\n const onDragStart = this.onDragStart.bind(this);\r\n this.decorationClasses = Vue.observable({\r\n value: this.getDecorationClasses(),\r\n });\r\n // @ts-ignore\r\n const vue = (_b = (_a = this.editor.contentComponent) === null || _a === void 0 ? void 0 : _a.$options._base) !== null && _b !== void 0 ? _b : Vue; // eslint-disable-line\r\n const Component = vue.extend(this.component).extend({\r\n props: Object.keys(props),\r\n provide: () => {\r\n return {\r\n onDragStart,\r\n decorationClasses: this.decorationClasses,\r\n };\r\n },\r\n });\r\n this.renderer = new VueRenderer(Component, {\r\n parent: this.editor.contentComponent,\r\n propsData: props,\r\n });\r\n }\r\n get dom() {\r\n if (!this.renderer.element.hasAttribute('data-node-view-wrapper')) {\r\n throw Error('Please use the NodeViewWrapper component for your node view.');\r\n }\r\n return this.renderer.element;\r\n }\r\n get contentDOM() {\r\n if (this.node.isLeaf) {\r\n return null;\r\n }\r\n const contentElement = this.dom.querySelector('[data-node-view-content]');\r\n return (contentElement || this.dom);\r\n }\r\n update(node, decorations) {\r\n const updateProps = (props) => {\r\n this.decorationClasses.value = this.getDecorationClasses();\r\n this.renderer.updateProps(props);\r\n };\r\n if (typeof this.options.update === 'function') {\r\n const oldNode = this.node;\r\n const oldDecorations = this.decorations;\r\n this.node = node;\r\n this.decorations = decorations;\r\n return this.options.update({\r\n oldNode,\r\n oldDecorations,\r\n newNode: node,\r\n newDecorations: decorations,\r\n updateProps: () => updateProps({ node, decorations }),\r\n });\r\n }\r\n if (node.type !== this.node.type) {\r\n return false;\r\n }\r\n if (node === this.node && this.decorations === decorations) {\r\n return true;\r\n }\r\n this.node = node;\r\n this.decorations = decorations;\r\n updateProps({ node, decorations });\r\n return true;\r\n }\r\n selectNode() {\r\n this.renderer.updateProps({\r\n selected: true,\r\n });\r\n this.renderer.element.classList.add('ProseMirror-selectednode');\r\n }\r\n deselectNode() {\r\n this.renderer.updateProps({\r\n selected: false,\r\n });\r\n this.renderer.element.classList.remove('ProseMirror-selectednode');\r\n }\r\n getDecorationClasses() {\r\n return (this.decorations\r\n // @ts-ignore\r\n .map(item => item.type.attrs.class)\r\n .flat()\r\n .join(' '));\r\n }\r\n destroy() {\r\n this.renderer.destroy();\r\n }\r\n}\n\nconst inputRegex$7 = /^\\s*>\\s$/;\r\nconst Blockquote = Node.create({\r\n name: 'blockquote',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n content: 'block+',\r\n group: 'block',\r\n defining: true,\r\n parseHTML() {\r\n return [\r\n { tag: 'blockquote' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['blockquote', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setBlockquote: () => ({ commands }) => {\r\n return commands.wrapIn(this.name);\r\n },\r\n toggleBlockquote: () => ({ commands }) => {\r\n return commands.toggleWrap(this.name);\r\n },\r\n unsetBlockquote: () => ({ commands }) => {\r\n return commands.lift(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-b': () => this.editor.commands.toggleBlockquote(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n wrappingInputRule({\r\n find: inputRegex$7,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nconst starInputRegex$1 = /(?:^|\\s)((?:\\*\\*)((?:[^*]+))(?:\\*\\*))$/;\r\nconst starPasteRegex$1 = /(?:^|\\s)((?:\\*\\*)((?:[^*]+))(?:\\*\\*))/g;\r\nconst underscoreInputRegex$1 = /(?:^|\\s)((?:__)((?:[^__]+))(?:__))$/;\r\nconst underscorePasteRegex$1 = /(?:^|\\s)((?:__)((?:[^__]+))(?:__))/g;\r\nconst Bold = Mark.create({\r\n name: 'bold',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'strong',\r\n },\r\n {\r\n tag: 'b',\r\n getAttrs: node => node.style.fontWeight !== 'normal' && null,\r\n },\r\n {\r\n style: 'font-weight',\r\n getAttrs: value => /^(bold(er)?|[5-9]\\d{2,})$/.test(value) && null,\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['strong', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setBold: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleBold: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetBold: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-b': () => this.editor.commands.toggleBold(),\r\n 'Mod-B': () => this.editor.commands.toggleBold(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n markInputRule({\r\n find: starInputRegex$1,\r\n type: this.type,\r\n }),\r\n markInputRule({\r\n find: underscoreInputRegex$1,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: starPasteRegex$1,\r\n type: this.type,\r\n }),\r\n markPasteRule({\r\n find: underscorePasteRegex$1,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nconst ListItem$2 = Node.create({\r\n name: 'listItem',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n bulletListTypeName: 'bulletList',\r\n orderedListTypeName: 'orderedList',\r\n };\r\n },\r\n content: 'paragraph block*',\r\n defining: true,\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'li',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['li', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n Enter: () => this.editor.commands.splitListItem(this.name),\r\n Tab: () => this.editor.commands.sinkListItem(this.name),\r\n 'Shift-Tab': () => this.editor.commands.liftListItem(this.name),\r\n };\r\n },\r\n});\n\nconst TextStyle$2 = Mark.create({\r\n name: 'textStyle',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'span',\r\n getAttrs: element => {\r\n const hasStyles = element.hasAttribute('style');\r\n if (!hasStyles) {\r\n return false;\r\n }\r\n return {};\r\n },\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n removeEmptyTextStyle: () => ({ state, commands }) => {\r\n const attributes = getMarkAttributes(state, this.type);\r\n const hasStyles = Object.entries(attributes).some(([, value]) => !!value);\r\n if (hasStyles) {\r\n return true;\r\n }\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n});\n\nconst inputRegex$6 = /^\\s*([-+*])\\s$/;\r\nconst BulletList = Node.create({\r\n name: 'bulletList',\r\n addOptions() {\r\n return {\r\n itemTypeName: 'listItem',\r\n HTMLAttributes: {},\r\n keepMarks: false,\r\n keepAttributes: false,\r\n };\r\n },\r\n group: 'block list',\r\n content() {\r\n return `${this.options.itemTypeName}+`;\r\n },\r\n parseHTML() {\r\n return [\r\n { tag: 'ul' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['ul', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n toggleBulletList: () => ({ commands, chain }) => {\r\n if (this.options.keepAttributes) {\r\n return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem$2.name, this.editor.getAttributes(TextStyle$2.name)).run();\r\n }\r\n return commands.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-8': () => this.editor.commands.toggleBulletList(),\r\n };\r\n },\r\n addInputRules() {\r\n let inputRule = wrappingInputRule({\r\n find: inputRegex$6,\r\n type: this.type,\r\n });\r\n if (this.options.keepMarks || this.options.keepAttributes) {\r\n inputRule = wrappingInputRule({\r\n find: inputRegex$6,\r\n type: this.type,\r\n keepMarks: this.options.keepMarks,\r\n keepAttributes: this.options.keepAttributes,\r\n getAttributes: () => { return this.editor.getAttributes(TextStyle$2.name); },\r\n editor: this.editor,\r\n });\r\n }\r\n return [\r\n inputRule,\r\n ];\r\n },\r\n});\n\nconst inputRegex$5 = /(?:^|\\s)((?:`)((?:[^`]+))(?:`))$/;\r\nconst pasteRegex$2 = /(?:^|\\s)((?:`)((?:[^`]+))(?:`))/g;\r\nconst Code = Mark.create({\r\n name: 'code',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n excludes: '_',\r\n code: true,\r\n exitable: true,\r\n parseHTML() {\r\n return [\r\n { tag: 'code' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['code', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setCode: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleCode: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetCode: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-e': () => this.editor.commands.toggleCode(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n markInputRule({\r\n find: inputRegex$5,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: pasteRegex$2,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nconst backtickInputRegex = /^```([a-z]+)?[\\s\\n]$/;\r\nconst tildeInputRegex = /^~~~([a-z]+)?[\\s\\n]$/;\r\nconst CodeBlock = Node.create({\r\n name: 'codeBlock',\r\n addOptions() {\r\n return {\r\n languageClassPrefix: 'language-',\r\n exitOnTripleEnter: true,\r\n exitOnArrowDown: true,\r\n HTMLAttributes: {},\r\n };\r\n },\r\n content: 'text*',\r\n marks: '',\r\n group: 'block',\r\n code: true,\r\n defining: true,\r\n addAttributes() {\r\n return {\r\n language: {\r\n default: null,\r\n parseHTML: element => {\r\n var _a;\r\n const { languageClassPrefix } = this.options;\r\n const classNames = [...(((_a = element.firstElementChild) === null || _a === void 0 ? void 0 : _a.classList) || [])];\r\n const languages = classNames\r\n .filter(className => className.startsWith(languageClassPrefix))\r\n .map(className => className.replace(languageClassPrefix, ''));\r\n const language = languages[0];\r\n if (!language) {\r\n return null;\r\n }\r\n return language;\r\n },\r\n rendered: false,\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'pre',\r\n preserveWhitespace: 'full',\r\n },\r\n ];\r\n },\r\n renderHTML({ node, HTMLAttributes }) {\r\n return [\r\n 'pre',\r\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\r\n [\r\n 'code',\r\n {\r\n class: node.attrs.language\r\n ? this.options.languageClassPrefix + node.attrs.language\r\n : null,\r\n },\r\n 0,\r\n ],\r\n ];\r\n },\r\n addCommands() {\r\n return {\r\n setCodeBlock: attributes => ({ commands }) => {\r\n return commands.setNode(this.name, attributes);\r\n },\r\n toggleCodeBlock: attributes => ({ commands }) => {\r\n return commands.toggleNode(this.name, 'paragraph', attributes);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Alt-c': () => this.editor.commands.toggleCodeBlock(),\r\n // remove code block when at start of document or code block is empty\r\n Backspace: () => {\r\n const { empty, $anchor } = this.editor.state.selection;\r\n const isAtStart = $anchor.pos === 1;\r\n if (!empty || $anchor.parent.type.name !== this.name) {\r\n return false;\r\n }\r\n if (isAtStart || !$anchor.parent.textContent.length) {\r\n return this.editor.commands.clearNodes();\r\n }\r\n return false;\r\n },\r\n // exit node on triple enter\r\n Enter: ({ editor }) => {\r\n if (!this.options.exitOnTripleEnter) {\r\n return false;\r\n }\r\n const { state } = editor;\r\n const { selection } = state;\r\n const { $from, empty } = selection;\r\n if (!empty || $from.parent.type !== this.type) {\r\n return false;\r\n }\r\n const isAtEnd = $from.parentOffset === $from.parent.nodeSize - 2;\r\n const endsWithDoubleNewline = $from.parent.textContent.endsWith('\\n\\n');\r\n if (!isAtEnd || !endsWithDoubleNewline) {\r\n return false;\r\n }\r\n return editor\r\n .chain()\r\n .command(({ tr }) => {\r\n tr.delete($from.pos - 2, $from.pos);\r\n return true;\r\n })\r\n .exitCode()\r\n .run();\r\n },\r\n // exit node on arrow down\r\n ArrowDown: ({ editor }) => {\r\n if (!this.options.exitOnArrowDown) {\r\n return false;\r\n }\r\n const { state } = editor;\r\n const { selection, doc } = state;\r\n const { $from, empty } = selection;\r\n if (!empty || $from.parent.type !== this.type) {\r\n return false;\r\n }\r\n const isAtEnd = $from.parentOffset === $from.parent.nodeSize - 2;\r\n if (!isAtEnd) {\r\n return false;\r\n }\r\n const after = $from.after();\r\n if (after === undefined) {\r\n return false;\r\n }\r\n const nodeAfter = doc.nodeAt(after);\r\n if (nodeAfter) {\r\n return false;\r\n }\r\n return editor.commands.exitCode();\r\n },\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n textblockTypeInputRule({\r\n find: backtickInputRegex,\r\n type: this.type,\r\n getAttributes: match => ({\r\n language: match[1],\r\n }),\r\n }),\r\n textblockTypeInputRule({\r\n find: tildeInputRegex,\r\n type: this.type,\r\n getAttributes: match => ({\r\n language: match[1],\r\n }),\r\n }),\r\n ];\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n // this plugin creates a code block for pasted content from VS Code\r\n // we can also detect the copied code language\r\n new Plugin({\r\n key: new PluginKey('codeBlockVSCodeHandler'),\r\n props: {\r\n handlePaste: (view, event) => {\r\n if (!event.clipboardData) {\r\n return false;\r\n }\r\n // don’t create a new code block within code blocks\r\n if (this.editor.isActive(this.type.name)) {\r\n return false;\r\n }\r\n const text = event.clipboardData.getData('text/plain');\r\n const vscode = event.clipboardData.getData('vscode-editor-data');\r\n const vscodeData = vscode ? JSON.parse(vscode) : undefined;\r\n const language = vscodeData === null || vscodeData === void 0 ? void 0 : vscodeData.mode;\r\n if (!text || !language) {\r\n return false;\r\n }\r\n const { tr } = view.state;\r\n // create an empty code block\r\n tr.replaceSelectionWith(this.type.create({ language }));\r\n // put cursor inside the newly created code block\r\n tr.setSelection(TextSelection.near(tr.doc.resolve(Math.max(0, tr.selection.from - 2))));\r\n // add text to code block\r\n // strip carriage return chars from text pasted as code\r\n // see: https://github.com/ProseMirror/prosemirror-view/commit/a50a6bcceb4ce52ac8fcc6162488d8875613aacd\r\n tr.insertText(text.replace(/\\r\\n?/g, '\\n'));\r\n // store meta information\r\n // this is useful for other plugins that depends on the paste event\r\n // like the paste rule plugin\r\n tr.setMeta('paste', true);\r\n view.dispatch(tr);\r\n return true;\r\n },\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nconst Document = Node.create({\r\n name: 'doc',\r\n topNode: true,\r\n content: 'block+',\r\n});\n\n/**\nCreate a plugin that, when added to a ProseMirror instance,\ncauses a decoration to show up at the drop position when something\nis dragged over the editor.\n\nNodes may add a `disableDropCursor` property to their spec to\ncontrol the showing of a drop cursor inside them. This may be a\nboolean or a function, which will be called with a view and a\nposition, and should return a boolean.\n*/\nfunction dropCursor(options = {}) {\n return new Plugin({\n view(editorView) { return new DropCursorView(editorView, options); }\n });\n}\nclass DropCursorView {\n constructor(editorView, options) {\n var _a;\n this.editorView = editorView;\n this.cursorPos = null;\n this.element = null;\n this.timeout = -1;\n this.width = (_a = options.width) !== null && _a !== void 0 ? _a : 1;\n this.color = options.color === false ? undefined : (options.color || \"black\");\n this.class = options.class;\n this.handlers = [\"dragover\", \"dragend\", \"drop\", \"dragleave\"].map(name => {\n let handler = (e) => { this[name](e); };\n editorView.dom.addEventListener(name, handler);\n return { name, handler };\n });\n }\n destroy() {\n this.handlers.forEach(({ name, handler }) => this.editorView.dom.removeEventListener(name, handler));\n }\n update(editorView, prevState) {\n if (this.cursorPos != null && prevState.doc != editorView.state.doc) {\n if (this.cursorPos > editorView.state.doc.content.size)\n this.setCursor(null);\n else\n this.updateOverlay();\n }\n }\n setCursor(pos) {\n if (pos == this.cursorPos)\n return;\n this.cursorPos = pos;\n if (pos == null) {\n this.element.parentNode.removeChild(this.element);\n this.element = null;\n }\n else {\n this.updateOverlay();\n }\n }\n updateOverlay() {\n let $pos = this.editorView.state.doc.resolve(this.cursorPos);\n let isBlock = !$pos.parent.inlineContent, rect;\n if (isBlock) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter;\n if (before || after) {\n let node = this.editorView.nodeDOM(this.cursorPos - (before ? before.nodeSize : 0));\n if (node) {\n let nodeRect = node.getBoundingClientRect();\n let top = before ? nodeRect.bottom : nodeRect.top;\n if (before && after)\n top = (top + this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top) / 2;\n rect = { left: nodeRect.left, right: nodeRect.right, top: top - this.width / 2, bottom: top + this.width / 2 };\n }\n }\n }\n if (!rect) {\n let coords = this.editorView.coordsAtPos(this.cursorPos);\n rect = { left: coords.left - this.width / 2, right: coords.left + this.width / 2, top: coords.top, bottom: coords.bottom };\n }\n let parent = this.editorView.dom.offsetParent;\n if (!this.element) {\n this.element = parent.appendChild(document.createElement(\"div\"));\n if (this.class)\n this.element.className = this.class;\n this.element.style.cssText = \"position: absolute; z-index: 50; pointer-events: none;\";\n if (this.color) {\n this.element.style.backgroundColor = this.color;\n }\n }\n this.element.classList.toggle(\"prosemirror-dropcursor-block\", isBlock);\n this.element.classList.toggle(\"prosemirror-dropcursor-inline\", !isBlock);\n let parentLeft, parentTop;\n if (!parent || parent == document.body && getComputedStyle(parent).position == \"static\") {\n parentLeft = -pageXOffset;\n parentTop = -pageYOffset;\n }\n else {\n let rect = parent.getBoundingClientRect();\n parentLeft = rect.left - parent.scrollLeft;\n parentTop = rect.top - parent.scrollTop;\n }\n this.element.style.left = (rect.left - parentLeft) + \"px\";\n this.element.style.top = (rect.top - parentTop) + \"px\";\n this.element.style.width = (rect.right - rect.left) + \"px\";\n this.element.style.height = (rect.bottom - rect.top) + \"px\";\n }\n scheduleRemoval(timeout) {\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => this.setCursor(null), timeout);\n }\n dragover(event) {\n if (!this.editorView.editable)\n return;\n let pos = this.editorView.posAtCoords({ left: event.clientX, top: event.clientY });\n let node = pos && pos.inside >= 0 && this.editorView.state.doc.nodeAt(pos.inside);\n let disableDropCursor = node && node.type.spec.disableDropCursor;\n let disabled = typeof disableDropCursor == \"function\" ? disableDropCursor(this.editorView, pos, event) : disableDropCursor;\n if (pos && !disabled) {\n let target = pos.pos;\n if (this.editorView.dragging && this.editorView.dragging.slice) {\n let point = dropPoint(this.editorView.state.doc, target, this.editorView.dragging.slice);\n if (point != null)\n target = point;\n }\n this.setCursor(target);\n this.scheduleRemoval(5000);\n }\n }\n dragend() {\n this.scheduleRemoval(20);\n }\n drop() {\n this.scheduleRemoval(20);\n }\n dragleave(event) {\n if (event.target == this.editorView.dom || !this.editorView.dom.contains(event.relatedTarget))\n this.setCursor(null);\n }\n}\n\nconst Dropcursor = Extension.create({\r\n name: 'dropCursor',\r\n addOptions() {\r\n return {\r\n color: 'currentColor',\r\n width: 1,\r\n class: undefined,\r\n };\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n dropCursor(this.options),\r\n ];\r\n },\r\n});\n\n/**\nGap cursor selections are represented using this class. Its\n`$anchor` and `$head` properties both point at the cursor position.\n*/\nclass GapCursor extends Selection {\n /**\n Create a gap cursor.\n */\n constructor($pos) {\n super($pos, $pos);\n }\n map(doc, mapping) {\n let $pos = doc.resolve(mapping.map(this.head));\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos);\n }\n content() { return Slice.empty; }\n eq(other) {\n return other instanceof GapCursor && other.head == this.head;\n }\n toJSON() {\n return { type: \"gapcursor\", pos: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for GapCursor.fromJSON\");\n return new GapCursor(doc.resolve(json.pos));\n }\n /**\n @internal\n */\n getBookmark() { return new GapBookmark(this.anchor); }\n /**\n @internal\n */\n static valid($pos) {\n let parent = $pos.parent;\n if (parent.isTextblock || !closedBefore($pos) || !closedAfter($pos))\n return false;\n let override = parent.type.spec.allowGapCursor;\n if (override != null)\n return override;\n let deflt = parent.contentMatchAt($pos.index()).defaultType;\n return deflt && deflt.isTextblock;\n }\n /**\n @internal\n */\n static findGapCursorFrom($pos, dir, mustMove = false) {\n search: for (;;) {\n if (!mustMove && GapCursor.valid($pos))\n return $pos;\n let pos = $pos.pos, next = null;\n // Scan up from this position\n for (let d = $pos.depth;; d--) {\n let parent = $pos.node(d);\n if (dir > 0 ? $pos.indexAfter(d) < parent.childCount : $pos.index(d) > 0) {\n next = parent.child(dir > 0 ? $pos.indexAfter(d) : $pos.index(d) - 1);\n break;\n }\n else if (d == 0) {\n return null;\n }\n pos += dir;\n let $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur))\n return $cur;\n }\n // And then down into the next node\n for (;;) {\n let inside = dir > 0 ? next.firstChild : next.lastChild;\n if (!inside) {\n if (next.isAtom && !next.isText && !NodeSelection.isSelectable(next)) {\n $pos = $pos.doc.resolve(pos + next.nodeSize * dir);\n mustMove = false;\n continue search;\n }\n break;\n }\n next = inside;\n pos += dir;\n let $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur))\n return $cur;\n }\n return null;\n }\n }\n}\nGapCursor.prototype.visible = false;\nGapCursor.findFrom = GapCursor.findGapCursorFrom;\nSelection.jsonID(\"gapcursor\", GapCursor);\nclass GapBookmark {\n constructor(pos) {\n this.pos = pos;\n }\n map(mapping) {\n return new GapBookmark(mapping.map(this.pos));\n }\n resolve(doc) {\n let $pos = doc.resolve(this.pos);\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos);\n }\n}\nfunction closedBefore($pos) {\n for (let d = $pos.depth; d >= 0; d--) {\n let index = $pos.index(d), parent = $pos.node(d);\n // At the start of this parent, look at next one\n if (index == 0) {\n if (parent.type.spec.isolating)\n return true;\n continue;\n }\n // See if the node before (or its first ancestor) is closed\n for (let before = parent.child(index - 1);; before = before.lastChild) {\n if ((before.childCount == 0 && !before.inlineContent) || before.isAtom || before.type.spec.isolating)\n return true;\n if (before.inlineContent)\n return false;\n }\n }\n // Hit start of document\n return true;\n}\nfunction closedAfter($pos) {\n for (let d = $pos.depth; d >= 0; d--) {\n let index = $pos.indexAfter(d), parent = $pos.node(d);\n if (index == parent.childCount) {\n if (parent.type.spec.isolating)\n return true;\n continue;\n }\n for (let after = parent.child(index);; after = after.firstChild) {\n if ((after.childCount == 0 && !after.inlineContent) || after.isAtom || after.type.spec.isolating)\n return true;\n if (after.inlineContent)\n return false;\n }\n }\n return true;\n}\n\n/**\nCreate a gap cursor plugin. When enabled, this will capture clicks\nnear and arrow-key-motion past places that don't have a normally\nselectable position nearby, and create a gap cursor selection for\nthem. The cursor is drawn as an element with class\n`ProseMirror-gapcursor`. You can either include\n`style/gapcursor.css` from the package's directory or add your own\nstyles to make it visible.\n*/\nfunction gapCursor() {\n return new Plugin({\n props: {\n decorations: drawGapCursor,\n createSelectionBetween(_view, $anchor, $head) {\n return $anchor.pos == $head.pos && GapCursor.valid($head) ? new GapCursor($head) : null;\n },\n handleClick,\n handleKeyDown,\n handleDOMEvents: { beforeinput: beforeinput }\n }\n });\n}\nconst handleKeyDown = keydownHandler({\n \"ArrowLeft\": arrow(\"horiz\", -1),\n \"ArrowRight\": arrow(\"horiz\", 1),\n \"ArrowUp\": arrow(\"vert\", -1),\n \"ArrowDown\": arrow(\"vert\", 1)\n});\nfunction arrow(axis, dir) {\n const dirStr = axis == \"vert\" ? (dir > 0 ? \"down\" : \"up\") : (dir > 0 ? \"right\" : \"left\");\n return function (state, dispatch, view) {\n let sel = state.selection;\n let $start = dir > 0 ? sel.$to : sel.$from, mustMove = sel.empty;\n if (sel instanceof TextSelection) {\n if (!view.endOfTextblock(dirStr) || $start.depth == 0)\n return false;\n mustMove = false;\n $start = state.doc.resolve(dir > 0 ? $start.after() : $start.before());\n }\n let $found = GapCursor.findGapCursorFrom($start, dir, mustMove);\n if (!$found)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(new GapCursor($found)));\n return true;\n };\n}\nfunction handleClick(view, pos, event) {\n if (!view || !view.editable)\n return false;\n let $pos = view.state.doc.resolve(pos);\n if (!GapCursor.valid($pos))\n return false;\n let clickPos = view.posAtCoords({ left: event.clientX, top: event.clientY });\n if (clickPos && clickPos.inside > -1 && NodeSelection.isSelectable(view.state.doc.nodeAt(clickPos.inside)))\n return false;\n view.dispatch(view.state.tr.setSelection(new GapCursor($pos)));\n return true;\n}\n// This is a hack that, when a composition starts while a gap cursor\n// is active, quickly creates an inline context for the composition to\n// happen in, to avoid it being aborted by the DOM selection being\n// moved into a valid position.\nfunction beforeinput(view, event) {\n if (event.inputType != \"insertCompositionText\" || !(view.state.selection instanceof GapCursor))\n return false;\n let { $from } = view.state.selection;\n let insert = $from.parent.contentMatchAt($from.index()).findWrapping(view.state.schema.nodes.text);\n if (!insert)\n return false;\n let frag = Fragment.empty;\n for (let i = insert.length - 1; i >= 0; i--)\n frag = Fragment.from(insert[i].createAndFill(null, frag));\n let tr = view.state.tr.replace($from.pos, $from.pos, new Slice(frag, 0, 0));\n tr.setSelection(TextSelection.near(tr.doc.resolve($from.pos + 1)));\n view.dispatch(tr);\n return false;\n}\nfunction drawGapCursor(state) {\n if (!(state.selection instanceof GapCursor))\n return null;\n let node = document.createElement(\"div\");\n node.className = \"ProseMirror-gapcursor\";\n return DecorationSet.create(state.doc, [Decoration.widget(state.selection.head, node, { key: \"gapcursor\" })]);\n}\n\nconst Gapcursor = Extension.create({\r\n name: 'gapCursor',\r\n addProseMirrorPlugins() {\r\n return [\r\n gapCursor(),\r\n ];\r\n },\r\n extendNodeSchema(extension) {\r\n var _a;\r\n const context = {\r\n name: extension.name,\r\n options: extension.options,\r\n storage: extension.storage,\r\n };\r\n return {\r\n allowGapCursor: (_a = callOrReturn(getExtensionField(extension, 'allowGapCursor', context))) !== null && _a !== void 0 ? _a : null,\r\n };\r\n },\r\n});\n\nconst HardBreak = Node.create({\r\n name: 'hardBreak',\r\n addOptions() {\r\n return {\r\n keepMarks: true,\r\n HTMLAttributes: {},\r\n };\r\n },\r\n inline: true,\r\n group: 'inline',\r\n selectable: false,\r\n parseHTML() {\r\n return [\r\n { tag: 'br' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['br', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\r\n },\r\n renderText() {\r\n return '\\n';\r\n },\r\n addCommands() {\r\n return {\r\n setHardBreak: () => ({ commands, chain, state, editor, }) => {\r\n return commands.first([\r\n () => commands.exitCode(),\r\n () => commands.command(() => {\r\n const { selection, storedMarks } = state;\r\n if (selection.$from.parent.type.spec.isolating) {\r\n return false;\r\n }\r\n const { keepMarks } = this.options;\r\n const { splittableMarks } = editor.extensionManager;\r\n const marks = storedMarks\r\n || (selection.$to.parentOffset && selection.$from.marks());\r\n return chain()\r\n .insertContent({ type: this.name })\r\n .command(({ tr, dispatch }) => {\r\n if (dispatch && marks && keepMarks) {\r\n const filteredMarks = marks\r\n .filter(mark => splittableMarks.includes(mark.type.name));\r\n tr.ensureMarks(filteredMarks);\r\n }\r\n return true;\r\n })\r\n .run();\r\n }),\r\n ]);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => this.editor.commands.setHardBreak(),\r\n 'Shift-Enter': () => this.editor.commands.setHardBreak(),\r\n };\r\n },\r\n});\n\nconst Heading = Node.create({\r\n name: 'heading',\r\n addOptions() {\r\n return {\r\n levels: [1, 2, 3, 4, 5, 6],\r\n HTMLAttributes: {},\r\n };\r\n },\r\n content: 'inline*',\r\n group: 'block',\r\n defining: true,\r\n addAttributes() {\r\n return {\r\n level: {\r\n default: 1,\r\n rendered: false,\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return this.options.levels\r\n .map((level) => ({\r\n tag: `h${level}`,\r\n attrs: { level },\r\n }));\r\n },\r\n renderHTML({ node, HTMLAttributes }) {\r\n const hasLevel = this.options.levels.includes(node.attrs.level);\r\n const level = hasLevel\r\n ? node.attrs.level\r\n : this.options.levels[0];\r\n return [`h${level}`, mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setHeading: attributes => ({ commands }) => {\r\n if (!this.options.levels.includes(attributes.level)) {\r\n return false;\r\n }\r\n return commands.setNode(this.name, attributes);\r\n },\r\n toggleHeading: attributes => ({ commands }) => {\r\n if (!this.options.levels.includes(attributes.level)) {\r\n return false;\r\n }\r\n return commands.toggleNode(this.name, 'paragraph', attributes);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return this.options.levels.reduce((items, level) => ({\r\n ...items,\r\n ...{\r\n [`Mod-Alt-${level}`]: () => this.editor.commands.toggleHeading({ level }),\r\n },\r\n }), {});\r\n },\r\n addInputRules() {\r\n return this.options.levels.map(level => {\r\n return textblockTypeInputRule({\r\n find: new RegExp(`^(#{1,${level}})\\\\s$`),\r\n type: this.type,\r\n getAttributes: {\r\n level,\r\n },\r\n });\r\n });\r\n },\r\n});\n\nvar GOOD_LEAF_SIZE = 200;\n\n// :: class A rope sequence is a persistent sequence data structure\n// that supports appending, prepending, and slicing without doing a\n// full copy. It is represented as a mostly-balanced tree.\nvar RopeSequence = function RopeSequence () {};\n\nRopeSequence.prototype.append = function append (other) {\n if (!other.length) { return this }\n other = RopeSequence.from(other);\n\n return (!this.length && other) ||\n (other.length < GOOD_LEAF_SIZE && this.leafAppend(other)) ||\n (this.length < GOOD_LEAF_SIZE && other.leafPrepend(this)) ||\n this.appendInner(other)\n};\n\n// :: (union<[T], RopeSequence>) → RopeSequence\n// Prepend an array or other rope to this one, returning a new rope.\nRopeSequence.prototype.prepend = function prepend (other) {\n if (!other.length) { return this }\n return RopeSequence.from(other).append(this)\n};\n\nRopeSequence.prototype.appendInner = function appendInner (other) {\n return new Append(this, other)\n};\n\n// :: (?number, ?number) → RopeSequence\n// Create a rope repesenting a sub-sequence of this rope.\nRopeSequence.prototype.slice = function slice (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from >= to) { return RopeSequence.empty }\n return this.sliceInner(Math.max(0, from), Math.min(this.length, to))\n};\n\n// :: (number) → T\n// Retrieve the element at the given position from this rope.\nRopeSequence.prototype.get = function get (i) {\n if (i < 0 || i >= this.length) { return undefined }\n return this.getInner(i)\n};\n\n// :: ((element: T, index: number) → ?bool, ?number, ?number)\n// Call the given function for each element between the given\n// indices. This tends to be more efficient than looping over the\n// indices and calling `get`, because it doesn't have to descend the\n// tree for every element.\nRopeSequence.prototype.forEach = function forEach (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from <= to)\n { this.forEachInner(f, from, to, 0); }\n else\n { this.forEachInvertedInner(f, from, to, 0); }\n};\n\n// :: ((element: T, index: number) → U, ?number, ?number) → [U]\n// Map the given functions over the elements of the rope, producing\n// a flat array.\nRopeSequence.prototype.map = function map (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n var result = [];\n this.forEach(function (elt, i) { return result.push(f(elt, i)); }, from, to);\n return result\n};\n\n// :: (?union<[T], RopeSequence>) → RopeSequence\n// Create a rope representing the given array, or return the rope\n// itself if a rope was given.\nRopeSequence.from = function from (values) {\n if (values instanceof RopeSequence) { return values }\n return values && values.length ? new Leaf(values) : RopeSequence.empty\n};\n\nvar Leaf = /*@__PURE__*/(function (RopeSequence) {\n function Leaf(values) {\n RopeSequence.call(this);\n this.values = values;\n }\n\n if ( RopeSequence ) Leaf.__proto__ = RopeSequence;\n Leaf.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Leaf.prototype.constructor = Leaf;\n\n var prototypeAccessors = { length: { configurable: true },depth: { configurable: true } };\n\n Leaf.prototype.flatten = function flatten () {\n return this.values\n };\n\n Leaf.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n return new Leaf(this.values.slice(from, to))\n };\n\n Leaf.prototype.getInner = function getInner (i) {\n return this.values[i]\n };\n\n Leaf.prototype.forEachInner = function forEachInner (f, from, to, start) {\n for (var i = from; i < to; i++)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n for (var i = from - 1; i >= to; i--)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.leafAppend = function leafAppend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(this.values.concat(other.flatten())) }\n };\n\n Leaf.prototype.leafPrepend = function leafPrepend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(other.flatten().concat(this.values)) }\n };\n\n prototypeAccessors.length.get = function () { return this.values.length };\n\n prototypeAccessors.depth.get = function () { return 0 };\n\n Object.defineProperties( Leaf.prototype, prototypeAccessors );\n\n return Leaf;\n}(RopeSequence));\n\n// :: RopeSequence\n// The empty rope sequence.\nRopeSequence.empty = new Leaf([]);\n\nvar Append = /*@__PURE__*/(function (RopeSequence) {\n function Append(left, right) {\n RopeSequence.call(this);\n this.left = left;\n this.right = right;\n this.length = left.length + right.length;\n this.depth = Math.max(left.depth, right.depth) + 1;\n }\n\n if ( RopeSequence ) Append.__proto__ = RopeSequence;\n Append.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Append.prototype.constructor = Append;\n\n Append.prototype.flatten = function flatten () {\n return this.left.flatten().concat(this.right.flatten())\n };\n\n Append.prototype.getInner = function getInner (i) {\n return i < this.left.length ? this.left.get(i) : this.right.get(i - this.left.length)\n };\n\n Append.prototype.forEachInner = function forEachInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from < leftLen &&\n this.left.forEachInner(f, from, Math.min(to, leftLen), start) === false)\n { return false }\n if (to > leftLen &&\n this.right.forEachInner(f, Math.max(from - leftLen, 0), Math.min(this.length, to) - leftLen, start + leftLen) === false)\n { return false }\n };\n\n Append.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from > leftLen &&\n this.right.forEachInvertedInner(f, from - leftLen, Math.max(to, leftLen) - leftLen, start + leftLen) === false)\n { return false }\n if (to < leftLen &&\n this.left.forEachInvertedInner(f, Math.min(from, leftLen), to, start) === false)\n { return false }\n };\n\n Append.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n var leftLen = this.left.length;\n if (to <= leftLen) { return this.left.slice(from, to) }\n if (from >= leftLen) { return this.right.slice(from - leftLen, to - leftLen) }\n return this.left.slice(from, leftLen).append(this.right.slice(0, to - leftLen))\n };\n\n Append.prototype.leafAppend = function leafAppend (other) {\n var inner = this.right.leafAppend(other);\n if (inner) { return new Append(this.left, inner) }\n };\n\n Append.prototype.leafPrepend = function leafPrepend (other) {\n var inner = this.left.leafPrepend(other);\n if (inner) { return new Append(inner, this.right) }\n };\n\n Append.prototype.appendInner = function appendInner (other) {\n if (this.left.depth >= Math.max(this.right.depth, other.depth) + 1)\n { return new Append(this.left, new Append(this.right, other)) }\n return new Append(this, other)\n };\n\n return Append;\n}(RopeSequence));\n\n// ProseMirror's history isn't simply a way to roll back to a previous\n// state, because ProseMirror supports applying changes without adding\n// them to the history (for example during collaboration).\n//\n// To this end, each 'Branch' (one for the undo history and one for\n// the redo history) keeps an array of 'Items', which can optionally\n// hold a step (an actual undoable change), and always hold a position\n// map (which is needed to move changes below them to apply to the\n// current document).\n//\n// An item that has both a step and a selection bookmark is the start\n// of an 'event' — a group of changes that will be undone or redone at\n// once. (It stores only the bookmark, since that way we don't have to\n// provide a document until the selection is actually applied, which\n// is useful when compressing.)\n// Used to schedule history compression\nconst max_empty_items = 500;\nclass Branch {\n constructor(items, eventCount) {\n this.items = items;\n this.eventCount = eventCount;\n }\n // Pop the latest event off the branch's history and apply it\n // to a document transform.\n popEvent(state, preserveItems) {\n if (this.eventCount == 0)\n return null;\n let end = this.items.length;\n for (;; end--) {\n let next = this.items.get(end - 1);\n if (next.selection) {\n --end;\n break;\n }\n }\n let remap, mapFrom;\n if (preserveItems) {\n remap = this.remapping(end, this.items.length);\n mapFrom = remap.maps.length;\n }\n let transform = state.tr;\n let selection, remaining;\n let addAfter = [], addBefore = [];\n this.items.forEach((item, i) => {\n if (!item.step) {\n if (!remap) {\n remap = this.remapping(end, i + 1);\n mapFrom = remap.maps.length;\n }\n mapFrom--;\n addBefore.push(item);\n return;\n }\n if (remap) {\n addBefore.push(new Item(item.map));\n let step = item.step.map(remap.slice(mapFrom)), map;\n if (step && transform.maybeStep(step).doc) {\n map = transform.mapping.maps[transform.mapping.maps.length - 1];\n addAfter.push(new Item(map, undefined, undefined, addAfter.length + addBefore.length));\n }\n mapFrom--;\n if (map)\n remap.appendMap(map, mapFrom);\n }\n else {\n transform.maybeStep(item.step);\n }\n if (item.selection) {\n selection = remap ? item.selection.map(remap.slice(mapFrom)) : item.selection;\n remaining = new Branch(this.items.slice(0, end).append(addBefore.reverse().concat(addAfter)), this.eventCount - 1);\n return false;\n }\n }, this.items.length, 0);\n return { remaining: remaining, transform, selection: selection };\n }\n // Create a new branch with the given transform added.\n addTransform(transform, selection, histOptions, preserveItems) {\n let newItems = [], eventCount = this.eventCount;\n let oldItems = this.items, lastItem = !preserveItems && oldItems.length ? oldItems.get(oldItems.length - 1) : null;\n for (let i = 0; i < transform.steps.length; i++) {\n let step = transform.steps[i].invert(transform.docs[i]);\n let item = new Item(transform.mapping.maps[i], step, selection), merged;\n if (merged = lastItem && lastItem.merge(item)) {\n item = merged;\n if (i)\n newItems.pop();\n else\n oldItems = oldItems.slice(0, oldItems.length - 1);\n }\n newItems.push(item);\n if (selection) {\n eventCount++;\n selection = undefined;\n }\n if (!preserveItems)\n lastItem = item;\n }\n let overflow = eventCount - histOptions.depth;\n if (overflow > DEPTH_OVERFLOW) {\n oldItems = cutOffEvents(oldItems, overflow);\n eventCount -= overflow;\n }\n return new Branch(oldItems.append(newItems), eventCount);\n }\n remapping(from, to) {\n let maps = new Mapping;\n this.items.forEach((item, i) => {\n let mirrorPos = item.mirrorOffset != null && i - item.mirrorOffset >= from\n ? maps.maps.length - item.mirrorOffset : undefined;\n maps.appendMap(item.map, mirrorPos);\n }, from, to);\n return maps;\n }\n addMaps(array) {\n if (this.eventCount == 0)\n return this;\n return new Branch(this.items.append(array.map(map => new Item(map))), this.eventCount);\n }\n // When the collab module receives remote changes, the history has\n // to know about those, so that it can adjust the steps that were\n // rebased on top of the remote changes, and include the position\n // maps for the remote changes in its array of items.\n rebased(rebasedTransform, rebasedCount) {\n if (!this.eventCount)\n return this;\n let rebasedItems = [], start = Math.max(0, this.items.length - rebasedCount);\n let mapping = rebasedTransform.mapping;\n let newUntil = rebasedTransform.steps.length;\n let eventCount = this.eventCount;\n this.items.forEach(item => { if (item.selection)\n eventCount--; }, start);\n let iRebased = rebasedCount;\n this.items.forEach(item => {\n let pos = mapping.getMirror(--iRebased);\n if (pos == null)\n return;\n newUntil = Math.min(newUntil, pos);\n let map = mapping.maps[pos];\n if (item.step) {\n let step = rebasedTransform.steps[pos].invert(rebasedTransform.docs[pos]);\n let selection = item.selection && item.selection.map(mapping.slice(iRebased + 1, pos));\n if (selection)\n eventCount++;\n rebasedItems.push(new Item(map, step, selection));\n }\n else {\n rebasedItems.push(new Item(map));\n }\n }, start);\n let newMaps = [];\n for (let i = rebasedCount; i < newUntil; i++)\n newMaps.push(new Item(mapping.maps[i]));\n let items = this.items.slice(0, start).append(newMaps).append(rebasedItems);\n let branch = new Branch(items, eventCount);\n if (branch.emptyItemCount() > max_empty_items)\n branch = branch.compress(this.items.length - rebasedItems.length);\n return branch;\n }\n emptyItemCount() {\n let count = 0;\n this.items.forEach(item => { if (!item.step)\n count++; });\n return count;\n }\n // Compressing a branch means rewriting it to push the air (map-only\n // items) out. During collaboration, these naturally accumulate\n // because each remote change adds one. The `upto` argument is used\n // to ensure that only the items below a given level are compressed,\n // because `rebased` relies on a clean, untouched set of items in\n // order to associate old items with rebased steps.\n compress(upto = this.items.length) {\n let remap = this.remapping(0, upto), mapFrom = remap.maps.length;\n let items = [], events = 0;\n this.items.forEach((item, i) => {\n if (i >= upto) {\n items.push(item);\n if (item.selection)\n events++;\n }\n else if (item.step) {\n let step = item.step.map(remap.slice(mapFrom)), map = step && step.getMap();\n mapFrom--;\n if (map)\n remap.appendMap(map, mapFrom);\n if (step) {\n let selection = item.selection && item.selection.map(remap.slice(mapFrom));\n if (selection)\n events++;\n let newItem = new Item(map.invert(), step, selection), merged, last = items.length - 1;\n if (merged = items.length && items[last].merge(newItem))\n items[last] = merged;\n else\n items.push(newItem);\n }\n }\n else if (item.map) {\n mapFrom--;\n }\n }, this.items.length, 0);\n return new Branch(RopeSequence.from(items.reverse()), events);\n }\n}\nBranch.empty = new Branch(RopeSequence.empty, 0);\nfunction cutOffEvents(items, n) {\n let cutPoint;\n items.forEach((item, i) => {\n if (item.selection && (n-- == 0)) {\n cutPoint = i;\n return false;\n }\n });\n return items.slice(cutPoint);\n}\nclass Item {\n constructor(\n // The (forward) step map for this item.\n map, \n // The inverted step\n step, \n // If this is non-null, this item is the start of a group, and\n // this selection is the starting selection for the group (the one\n // that was active before the first step was applied)\n selection, \n // If this item is the inverse of a previous mapping on the stack,\n // this points at the inverse's offset\n mirrorOffset) {\n this.map = map;\n this.step = step;\n this.selection = selection;\n this.mirrorOffset = mirrorOffset;\n }\n merge(other) {\n if (this.step && other.step && !other.selection) {\n let step = other.step.merge(this.step);\n if (step)\n return new Item(step.getMap().invert(), step, this.selection);\n }\n }\n}\n// The value of the state field that tracks undo/redo history for that\n// state. Will be stored in the plugin state when the history plugin\n// is active.\nclass HistoryState {\n constructor(done, undone, prevRanges, prevTime, prevComposition) {\n this.done = done;\n this.undone = undone;\n this.prevRanges = prevRanges;\n this.prevTime = prevTime;\n this.prevComposition = prevComposition;\n }\n}\nconst DEPTH_OVERFLOW = 20;\n// Record a transformation in undo history.\nfunction applyTransaction(history, state, tr, options) {\n let historyTr = tr.getMeta(historyKey), rebased;\n if (historyTr)\n return historyTr.historyState;\n if (tr.getMeta(closeHistoryKey))\n history = new HistoryState(history.done, history.undone, null, 0, -1);\n let appended = tr.getMeta(\"appendedTransaction\");\n if (tr.steps.length == 0) {\n return history;\n }\n else if (appended && appended.getMeta(historyKey)) {\n if (appended.getMeta(historyKey).redo)\n return new HistoryState(history.done.addTransform(tr, undefined, options, mustPreserveItems(state)), history.undone, rangesFor(tr.mapping.maps[tr.steps.length - 1]), history.prevTime, history.prevComposition);\n else\n return new HistoryState(history.done, history.undone.addTransform(tr, undefined, options, mustPreserveItems(state)), null, history.prevTime, history.prevComposition);\n }\n else if (tr.getMeta(\"addToHistory\") !== false && !(appended && appended.getMeta(\"addToHistory\") === false)) {\n // Group transforms that occur in quick succession into one event.\n let composition = tr.getMeta(\"composition\");\n let newGroup = history.prevTime == 0 ||\n (!appended && history.prevComposition != composition &&\n (history.prevTime < (tr.time || 0) - options.newGroupDelay || !isAdjacentTo(tr, history.prevRanges)));\n let prevRanges = appended ? mapRanges(history.prevRanges, tr.mapping) : rangesFor(tr.mapping.maps[tr.steps.length - 1]);\n return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : undefined, options, mustPreserveItems(state)), Branch.empty, prevRanges, tr.time, composition == null ? history.prevComposition : composition);\n }\n else if (rebased = tr.getMeta(\"rebased\")) {\n // Used by the collab module to tell the history that some of its\n // content has been rebased.\n return new HistoryState(history.done.rebased(tr, rebased), history.undone.rebased(tr, rebased), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);\n }\n else {\n return new HistoryState(history.done.addMaps(tr.mapping.maps), history.undone.addMaps(tr.mapping.maps), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);\n }\n}\nfunction isAdjacentTo(transform, prevRanges) {\n if (!prevRanges)\n return false;\n if (!transform.docChanged)\n return true;\n let adjacent = false;\n transform.mapping.maps[0].forEach((start, end) => {\n for (let i = 0; i < prevRanges.length; i += 2)\n if (start <= prevRanges[i + 1] && end >= prevRanges[i])\n adjacent = true;\n });\n return adjacent;\n}\nfunction rangesFor(map) {\n let result = [];\n map.forEach((_from, _to, from, to) => result.push(from, to));\n return result;\n}\nfunction mapRanges(ranges, mapping) {\n if (!ranges)\n return null;\n let result = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = mapping.map(ranges[i], 1), to = mapping.map(ranges[i + 1], -1);\n if (from <= to)\n result.push(from, to);\n }\n return result;\n}\n// Apply the latest event from one branch to the document and shift the event\n// onto the other branch.\nfunction histTransaction(history, state, dispatch, redo) {\n let preserveItems = mustPreserveItems(state);\n let histOptions = historyKey.get(state).spec.config;\n let pop = (redo ? history.undone : history.done).popEvent(state, preserveItems);\n if (!pop)\n return;\n let selection = pop.selection.resolve(pop.transform.doc);\n let added = (redo ? history.done : history.undone).addTransform(pop.transform, state.selection.getBookmark(), histOptions, preserveItems);\n let newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0, -1);\n dispatch(pop.transform.setSelection(selection).setMeta(historyKey, { redo, historyState: newHist }).scrollIntoView());\n}\nlet cachedPreserveItems = false, cachedPreserveItemsPlugins = null;\n// Check whether any plugin in the given state has a\n// `historyPreserveItems` property in its spec, in which case we must\n// preserve steps exactly as they came in, so that they can be\n// rebased.\nfunction mustPreserveItems(state) {\n let plugins = state.plugins;\n if (cachedPreserveItemsPlugins != plugins) {\n cachedPreserveItems = false;\n cachedPreserveItemsPlugins = plugins;\n for (let i = 0; i < plugins.length; i++)\n if (plugins[i].spec.historyPreserveItems) {\n cachedPreserveItems = true;\n break;\n }\n }\n return cachedPreserveItems;\n}\nconst historyKey = new PluginKey(\"history\");\nconst closeHistoryKey = new PluginKey(\"closeHistory\");\n/**\nReturns a plugin that enables the undo history for an editor. The\nplugin will track undo and redo stacks, which can be used with the\n[`undo`](https://prosemirror.net/docs/ref/#history.undo) and [`redo`](https://prosemirror.net/docs/ref/#history.redo) commands.\n\nYou can set an `\"addToHistory\"` [metadata\nproperty](https://prosemirror.net/docs/ref/#state.Transaction.setMeta) of `false` on a transaction\nto prevent it from being rolled back by undo.\n*/\nfunction history(config = {}) {\n config = { depth: config.depth || 100,\n newGroupDelay: config.newGroupDelay || 500 };\n return new Plugin({\n key: historyKey,\n state: {\n init() {\n return new HistoryState(Branch.empty, Branch.empty, null, 0, -1);\n },\n apply(tr, hist, state) {\n return applyTransaction(hist, state, tr, config);\n }\n },\n config,\n props: {\n handleDOMEvents: {\n beforeinput(view, e) {\n let inputType = e.inputType;\n let command = inputType == \"historyUndo\" ? undo : inputType == \"historyRedo\" ? redo : null;\n if (!command)\n return false;\n e.preventDefault();\n return command(view.state, view.dispatch);\n }\n }\n }\n });\n}\n/**\nA command function that undoes the last change, if any.\n*/\nconst undo = (state, dispatch) => {\n let hist = historyKey.getState(state);\n if (!hist || hist.done.eventCount == 0)\n return false;\n if (dispatch)\n histTransaction(hist, state, dispatch, false);\n return true;\n};\n/**\nA command function that redoes the last undone change, if any.\n*/\nconst redo = (state, dispatch) => {\n let hist = historyKey.getState(state);\n if (!hist || hist.undone.eventCount == 0)\n return false;\n if (dispatch)\n histTransaction(hist, state, dispatch, true);\n return true;\n};\n\nconst History = Extension.create({\r\n name: 'history',\r\n addOptions() {\r\n return {\r\n depth: 100,\r\n newGroupDelay: 500,\r\n };\r\n },\r\n addCommands() {\r\n return {\r\n undo: () => ({ state, dispatch }) => {\r\n return undo(state, dispatch);\r\n },\r\n redo: () => ({ state, dispatch }) => {\r\n return redo(state, dispatch);\r\n },\r\n };\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n history(this.options),\r\n ];\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-z': () => this.editor.commands.undo(),\r\n 'Mod-Z': () => this.editor.commands.undo(),\r\n 'Mod-y': () => this.editor.commands.redo(),\r\n 'Mod-Y': () => this.editor.commands.redo(),\r\n 'Shift-Mod-z': () => this.editor.commands.redo(),\r\n 'Shift-Mod-Z': () => this.editor.commands.redo(),\r\n // Russian keyboard layouts\r\n 'Mod-я': () => this.editor.commands.undo(),\r\n 'Shift-Mod-я': () => this.editor.commands.redo(),\r\n };\r\n },\r\n});\n\nconst HorizontalRule = Node.create({\r\n name: 'horizontalRule',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n group: 'block',\r\n parseHTML() {\r\n return [{ tag: 'hr' }];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['hr', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\r\n },\r\n addCommands() {\r\n return {\r\n setHorizontalRule: () => ({ chain, state }) => {\r\n const { $to: $originTo } = state.selection;\r\n const currentChain = chain();\r\n if ($originTo.parentOffset === 0) {\r\n currentChain.insertContentAt(Math.max($originTo.pos - 2, 0), { type: this.name });\r\n }\r\n else {\r\n currentChain.insertContent({ type: this.name });\r\n }\r\n return (currentChain\r\n // set cursor after horizontal rule\r\n .command(({ tr, dispatch }) => {\r\n var _a;\r\n if (dispatch) {\r\n const { $to } = tr.selection;\r\n const posAfter = $to.end();\r\n if ($to.nodeAfter) {\r\n if ($to.nodeAfter.isTextblock) {\r\n tr.setSelection(TextSelection.create(tr.doc, $to.pos + 1));\r\n }\r\n else if ($to.nodeAfter.isBlock) {\r\n tr.setSelection(NodeSelection.create(tr.doc, $to.pos));\r\n }\r\n else {\r\n tr.setSelection(TextSelection.create(tr.doc, $to.pos));\r\n }\r\n }\r\n else {\r\n // add node after horizontal rule if it’s the end of the document\r\n const node = (_a = $to.parent.type.contentMatch.defaultType) === null || _a === void 0 ? void 0 : _a.create();\r\n if (node) {\r\n tr.insert(posAfter, node);\r\n tr.setSelection(TextSelection.create(tr.doc, posAfter + 1));\r\n }\r\n }\r\n tr.scrollIntoView();\r\n }\r\n return true;\r\n })\r\n .run());\r\n },\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n nodeInputRule({\r\n find: /^(?:---|—-|___\\s|\\*\\*\\*\\s)$/,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nconst starInputRegex = /(?:^|\\s)((?:\\*)((?:[^*]+))(?:\\*))$/;\r\nconst starPasteRegex = /(?:^|\\s)((?:\\*)((?:[^*]+))(?:\\*))/g;\r\nconst underscoreInputRegex = /(?:^|\\s)((?:_)((?:[^_]+))(?:_))$/;\r\nconst underscorePasteRegex = /(?:^|\\s)((?:_)((?:[^_]+))(?:_))/g;\r\nconst Italic = Mark.create({\r\n name: 'italic',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'em',\r\n },\r\n {\r\n tag: 'i',\r\n getAttrs: node => node.style.fontStyle !== 'normal' && null,\r\n },\r\n {\r\n style: 'font-style=italic',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['em', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setItalic: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleItalic: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetItalic: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-i': () => this.editor.commands.toggleItalic(),\r\n 'Mod-I': () => this.editor.commands.toggleItalic(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n markInputRule({\r\n find: starInputRegex,\r\n type: this.type,\r\n }),\r\n markInputRule({\r\n find: underscoreInputRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: starPasteRegex,\r\n type: this.type,\r\n }),\r\n markPasteRule({\r\n find: underscorePasteRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nconst ListItem$1 = Node.create({\r\n name: 'listItem',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n bulletListTypeName: 'bulletList',\r\n orderedListTypeName: 'orderedList',\r\n };\r\n },\r\n content: 'paragraph block*',\r\n defining: true,\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'li',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['li', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n Enter: () => this.editor.commands.splitListItem(this.name),\r\n Tab: () => this.editor.commands.sinkListItem(this.name),\r\n 'Shift-Tab': () => this.editor.commands.liftListItem(this.name),\r\n };\r\n },\r\n});\n\nconst ListItem = Node.create({\r\n name: 'listItem',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n bulletListTypeName: 'bulletList',\r\n orderedListTypeName: 'orderedList',\r\n };\r\n },\r\n content: 'paragraph block*',\r\n defining: true,\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'li',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['li', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n Enter: () => this.editor.commands.splitListItem(this.name),\r\n Tab: () => this.editor.commands.sinkListItem(this.name),\r\n 'Shift-Tab': () => this.editor.commands.liftListItem(this.name),\r\n };\r\n },\r\n});\n\nconst TextStyle$1 = Mark.create({\r\n name: 'textStyle',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'span',\r\n getAttrs: element => {\r\n const hasStyles = element.hasAttribute('style');\r\n if (!hasStyles) {\r\n return false;\r\n }\r\n return {};\r\n },\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n removeEmptyTextStyle: () => ({ state, commands }) => {\r\n const attributes = getMarkAttributes(state, this.type);\r\n const hasStyles = Object.entries(attributes).some(([, value]) => !!value);\r\n if (hasStyles) {\r\n return true;\r\n }\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n});\n\nconst inputRegex$4 = /^(\\d+)\\.\\s$/;\r\nconst OrderedList = Node.create({\r\n name: 'orderedList',\r\n addOptions() {\r\n return {\r\n itemTypeName: 'listItem',\r\n HTMLAttributes: {},\r\n keepMarks: false,\r\n keepAttributes: false,\r\n };\r\n },\r\n group: 'block list',\r\n content() {\r\n return `${this.options.itemTypeName}+`;\r\n },\r\n addAttributes() {\r\n return {\r\n start: {\r\n default: 1,\r\n parseHTML: element => {\r\n return element.hasAttribute('start')\r\n ? parseInt(element.getAttribute('start') || '', 10)\r\n : 1;\r\n },\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'ol',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n const { start, ...attributesWithoutStart } = HTMLAttributes;\r\n return start === 1\r\n ? ['ol', mergeAttributes(this.options.HTMLAttributes, attributesWithoutStart), 0]\r\n : ['ol', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n toggleOrderedList: () => ({ commands, chain }) => {\r\n if (this.options.keepAttributes) {\r\n return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem.name, this.editor.getAttributes(TextStyle$1.name)).run();\r\n }\r\n return commands.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-7': () => this.editor.commands.toggleOrderedList(),\r\n };\r\n },\r\n addInputRules() {\r\n let inputRule = wrappingInputRule({\r\n find: inputRegex$4,\r\n type: this.type,\r\n getAttributes: match => ({ start: +match[1] }),\r\n joinPredicate: (match, node) => node.childCount + node.attrs.start === +match[1],\r\n });\r\n if (this.options.keepMarks || this.options.keepAttributes) {\r\n inputRule = wrappingInputRule({\r\n find: inputRegex$4,\r\n type: this.type,\r\n keepMarks: this.options.keepMarks,\r\n keepAttributes: this.options.keepAttributes,\r\n getAttributes: match => ({ start: +match[1], ...this.editor.getAttributes(TextStyle$1.name) }),\r\n joinPredicate: (match, node) => node.childCount + node.attrs.start === +match[1],\r\n editor: this.editor,\r\n });\r\n }\r\n return [\r\n inputRule,\r\n ];\r\n },\r\n});\n\nconst Paragraph = Node.create({\r\n name: 'paragraph',\r\n priority: 1000,\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n group: 'block',\r\n content: 'inline*',\r\n parseHTML() {\r\n return [\r\n { tag: 'p' },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['p', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setParagraph: () => ({ commands }) => {\r\n return commands.setNode(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Alt-0': () => this.editor.commands.setParagraph(),\r\n };\r\n },\r\n});\n\nconst inputRegex$3 = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))$/;\r\nconst pasteRegex$1 = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))/g;\r\nconst Strike = Mark.create({\r\n name: 'strike',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 's',\r\n },\r\n {\r\n tag: 'del',\r\n },\r\n {\r\n tag: 'strike',\r\n },\r\n {\r\n style: 'text-decoration',\r\n consuming: false,\r\n getAttrs: style => (style.includes('line-through') ? {} : false),\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['s', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setStrike: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleStrike: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetStrike: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n const shortcuts = {};\r\n if (isMacOS()) {\r\n shortcuts['Mod-Shift-s'] = () => this.editor.commands.toggleStrike();\r\n }\r\n else {\r\n shortcuts['Ctrl-Shift-s'] = () => this.editor.commands.toggleStrike();\r\n }\r\n return shortcuts;\r\n },\r\n addInputRules() {\r\n return [\r\n markInputRule({\r\n find: inputRegex$3,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: pasteRegex$1,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nconst Text$1 = Node.create({\r\n name: 'text',\r\n group: 'inline',\r\n});\n\nconst Placeholder = Extension.create({\r\n name: 'placeholder',\r\n addOptions() {\r\n return {\r\n emptyEditorClass: 'is-editor-empty',\r\n emptyNodeClass: 'is-empty',\r\n placeholder: 'Write something …',\r\n showOnlyWhenEditable: true,\r\n showOnlyCurrent: true,\r\n includeChildren: false,\r\n };\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n new Plugin({\r\n key: new PluginKey('placeholder'),\r\n props: {\r\n decorations: ({ doc, selection }) => {\r\n const active = this.editor.isEditable || !this.options.showOnlyWhenEditable;\r\n const { anchor } = selection;\r\n const decorations = [];\r\n if (!active) {\r\n return null;\r\n }\r\n // only calculate isEmpty once due to its performance impacts (see issue #3360)\r\n const emptyDocInstance = doc.type.createAndFill();\r\n const isEditorEmpty = (emptyDocInstance === null || emptyDocInstance === void 0 ? void 0 : emptyDocInstance.sameMarkup(doc))\r\n && emptyDocInstance.content.findDiffStart(doc.content) === null;\r\n doc.descendants((node, pos) => {\r\n const hasAnchor = anchor >= pos && anchor <= pos + node.nodeSize;\r\n const isEmpty = !node.isLeaf && !node.childCount;\r\n if ((hasAnchor || !this.options.showOnlyCurrent) && isEmpty) {\r\n const classes = [this.options.emptyNodeClass];\r\n if (isEditorEmpty) {\r\n classes.push(this.options.emptyEditorClass);\r\n }\r\n const decoration = Decoration.node(pos, pos + node.nodeSize, {\r\n class: classes.join(' '),\r\n 'data-placeholder': typeof this.options.placeholder === 'function'\r\n ? this.options.placeholder({\r\n editor: this.editor,\r\n node,\r\n pos,\r\n hasAnchor,\r\n })\r\n : this.options.placeholder,\r\n });\r\n decorations.push(decoration);\r\n }\r\n return this.options.includeChildren;\r\n });\r\n return DecorationSet.create(doc, decorations);\r\n },\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nconst TextAlign = Extension.create({\r\n name: 'textAlign',\r\n addOptions() {\r\n return {\r\n types: [],\r\n alignments: ['left', 'center', 'right', 'justify'],\r\n defaultAlignment: 'left',\r\n };\r\n },\r\n addGlobalAttributes() {\r\n return [\r\n {\r\n types: this.options.types,\r\n attributes: {\r\n textAlign: {\r\n default: this.options.defaultAlignment,\r\n parseHTML: element => element.style.textAlign || this.options.defaultAlignment,\r\n renderHTML: attributes => {\r\n if (attributes.textAlign === this.options.defaultAlignment) {\r\n return {};\r\n }\r\n return { style: `text-align: ${attributes.textAlign}` };\r\n },\r\n },\r\n },\r\n },\r\n ];\r\n },\r\n addCommands() {\r\n return {\r\n setTextAlign: (alignment) => ({ commands }) => {\r\n if (!this.options.alignments.includes(alignment)) {\r\n return false;\r\n }\r\n return this.options.types.every(type => commands.updateAttributes(type, { textAlign: alignment }));\r\n },\r\n unsetTextAlign: () => ({ commands }) => {\r\n return this.options.types.every(type => commands.resetAttributes(type, 'textAlign'));\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-l': () => this.editor.commands.setTextAlign('left'),\r\n 'Mod-Shift-e': () => this.editor.commands.setTextAlign('center'),\r\n 'Mod-Shift-r': () => this.editor.commands.setTextAlign('right'),\r\n 'Mod-Shift-j': () => this.editor.commands.setTextAlign('justify'),\r\n };\r\n },\r\n});\n\nconst FocusClasses = Extension.create({\r\n name: 'focus',\r\n addOptions() {\r\n return {\r\n className: 'has-focus',\r\n mode: 'all',\r\n };\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n new Plugin({\r\n key: new PluginKey('focus'),\r\n props: {\r\n decorations: ({ doc, selection }) => {\r\n const { isEditable, isFocused } = this.editor;\r\n const { anchor } = selection;\r\n const decorations = [];\r\n if (!isEditable || !isFocused) {\r\n return DecorationSet.create(doc, []);\r\n }\r\n // Maximum Levels\r\n let maxLevels = 0;\r\n if (this.options.mode === 'deepest') {\r\n doc.descendants((node, pos) => {\r\n if (node.isText) {\r\n return;\r\n }\r\n const isCurrent = anchor >= pos && anchor <= pos + node.nodeSize - 1;\r\n if (!isCurrent) {\r\n return false;\r\n }\r\n maxLevels += 1;\r\n });\r\n }\r\n // Loop through current\r\n let currentLevel = 0;\r\n doc.descendants((node, pos) => {\r\n if (node.isText) {\r\n return false;\r\n }\r\n const isCurrent = anchor >= pos && anchor <= pos + node.nodeSize - 1;\r\n if (!isCurrent) {\r\n return false;\r\n }\r\n currentLevel += 1;\r\n const outOfScope = (this.options.mode === 'deepest' && maxLevels - currentLevel > 0)\r\n || (this.options.mode === 'shallowest' && currentLevel > 1);\r\n if (outOfScope) {\r\n return this.options.mode === 'deepest';\r\n }\r\n decorations.push(Decoration.node(pos, pos + node.nodeSize, {\r\n class: this.options.className,\r\n }));\r\n });\r\n return DecorationSet.create(doc, decorations);\r\n },\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\nconst TextStyle = Mark.create({\r\n name: 'textStyle',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'span',\r\n getAttrs: element => {\r\n const hasStyles = element.hasAttribute('style');\r\n if (!hasStyles) {\r\n return false;\r\n }\r\n return {};\r\n },\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n removeEmptyTextStyle: () => ({ state, commands }) => {\r\n const attributes = getMarkAttributes(state, this.type);\r\n const hasStyles = Object.entries(attributes).some(([, value]) => !!value);\r\n if (hasStyles) {\r\n return true;\r\n }\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n});\n\nconst Color = Extension.create({\r\n name: 'color',\r\n addOptions() {\r\n return {\r\n types: ['textStyle'],\r\n };\r\n },\r\n addGlobalAttributes() {\r\n return [\r\n {\r\n types: this.options.types,\r\n attributes: {\r\n color: {\r\n default: null,\r\n parseHTML: element => { var _a; return (_a = element.style.color) === null || _a === void 0 ? void 0 : _a.replace(/['\"]+/g, ''); },\r\n renderHTML: attributes => {\r\n if (!attributes.color) {\r\n return {};\r\n }\r\n return {\r\n style: `color: ${attributes.color}`,\r\n };\r\n },\r\n },\r\n },\r\n },\r\n ];\r\n },\r\n addCommands() {\r\n return {\r\n setColor: color => ({ chain }) => {\r\n return chain()\r\n .setMark('textStyle', { color })\r\n .run();\r\n },\r\n unsetColor: () => ({ chain }) => {\r\n return chain()\r\n .setMark('textStyle', { color: null })\r\n .removeEmptyTextStyle()\r\n .run();\r\n },\r\n };\r\n },\r\n});\n\nconst inputRegex$2 = /(?:^|\\s)((?:==)((?:[^~=]+))(?:==))$/;\r\nconst pasteRegex = /(?:^|\\s)((?:==)((?:[^~=]+))(?:==))/g;\r\nconst Highlight = Mark.create({\r\n name: 'highlight',\r\n addOptions() {\r\n return {\r\n multicolor: false,\r\n HTMLAttributes: {},\r\n };\r\n },\r\n addAttributes() {\r\n if (!this.options.multicolor) {\r\n return {};\r\n }\r\n return {\r\n color: {\r\n default: null,\r\n parseHTML: element => element.getAttribute('data-color') || element.style.backgroundColor,\r\n renderHTML: attributes => {\r\n if (!attributes.color) {\r\n return {};\r\n }\r\n return {\r\n 'data-color': attributes.color,\r\n style: `background-color: ${attributes.color}; color: inherit`,\r\n };\r\n },\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'mark',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['mark', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setHighlight: attributes => ({ commands }) => {\r\n return commands.setMark(this.name, attributes);\r\n },\r\n toggleHighlight: attributes => ({ commands }) => {\r\n return commands.toggleMark(this.name, attributes);\r\n },\r\n unsetHighlight: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-h': () => this.editor.commands.toggleHighlight(),\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n markInputRule({\r\n find: inputRegex$2,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: pasteRegex,\r\n type: this.type,\r\n }),\r\n ];\r\n },\r\n});\n\nconst inputRegex$1 = /(?:^|\\s)(!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\))$/;\r\nconst Image = Node.create({\r\n name: 'image',\r\n addOptions() {\r\n return {\r\n inline: false,\r\n allowBase64: false,\r\n HTMLAttributes: {},\r\n };\r\n },\r\n inline() {\r\n return this.options.inline;\r\n },\r\n group() {\r\n return this.options.inline ? 'inline' : 'block';\r\n },\r\n draggable: true,\r\n addAttributes() {\r\n return {\r\n src: {\r\n default: null,\r\n },\r\n alt: {\r\n default: null,\r\n },\r\n title: {\r\n default: null,\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: this.options.allowBase64\r\n ? 'img[src]'\r\n : 'img[src]:not([src^=\"data:\"])',\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['img', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\r\n },\r\n addCommands() {\r\n return {\r\n setImage: options => ({ commands }) => {\r\n return commands.insertContent({\r\n type: this.name,\r\n attrs: options,\r\n });\r\n },\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n nodeInputRule({\r\n find: inputRegex$1,\r\n type: this.type,\r\n getAttributes: match => {\r\n const [, , alt, src, title] = match;\r\n return { src, alt, title };\r\n },\r\n }),\r\n ];\r\n },\r\n});\n\n// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3barth4b0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0faromeo7ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4vianca6w0s2x0a2z0ure5ba0by2idu3namex3narepublic11d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2ntley5rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re2s2c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y0eats7k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking0channel11l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t0isalat7u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0at2delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d0network8tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntdoor4ier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5gtv3iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0eles2s3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6logistics9properties14fh2g1h1i0a1ds2m1nder2le4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3ncaster5ia3d0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4de2k2psy3ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0cys3drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7serati6ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic3tual5v1w1x1y1z2na0b1goya4me2tura4vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rthwesternmutual14on4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9dnavy5lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3ssagens7y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0america6xi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cher3ks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp2w2ell3ia1ksha5oes2p0ping5uji3w0time7i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ffany5ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0channel7ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lkswagen7vo3te1ing3o2yage5u0elos6wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5تصالات6رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * @template A\n * @template B\n * @param {A} target\n * @param {B} properties\n * @return {A & B}\n */\nconst assign = (target, properties) => {\n for (const key in properties) {\n target[key] = properties[key];\n }\n return target;\n};\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token) {\n if (token === void 0) {\n token = null;\n }\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State][]} jr */\n this.jr = [];\n /** @type {?State} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly) {\n if (exactOnly === void 0) {\n exactOnly = false;\n }\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL$1 = 'NL'; // \\n\n\n// Opening/closing bracket classes\nconst OPENBRACE = 'OPENBRACE'; // {\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tWORD: WORD,\n\tUWORD: UWORD,\n\tLOCALHOST: LOCALHOST,\n\tTLD: TLD,\n\tUTLD: UTLD,\n\tSCHEME: SCHEME,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tNUM: NUM,\n\tWS: WS,\n\tNL: NL$1,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tHYPHEN: HYPHEN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tTILDE: TILDE,\n\tUNDERSCORE: UNDERSCORE,\n\tEMOJI: EMOJI$1,\n\tSYM: SYM\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\nconst NL = '\\n'; // New line character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes) {\n if (customSchemes === void 0) {\n customSchemes = [];\n }\n // Frequently used states (name argument removed during minification)\n /** @type Collections */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, ASCII_LETTER, Word);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, LETTER, UWord);\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, NL, NL$1, {\n [whitespace]: true\n });\n tt(Ws, NL); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender) {\n if (defaultRender === void 0) {\n defaultRender = null;\n }\n let o = assign({}, defaults);\n if (opts) {\n o = assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol) {\n if (protocol === void 0) {\n protocol = defaults.defaultProtocol;\n }\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme) {\n if (scheme === void 0) {\n scheme = defaults.defaultProtocol;\n }\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\nfunction init$1(_ref) {\n let {\n groups\n } = _ref;\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, CLOSEANGLEBRACKET, CLOSEBRACE, CLOSEBRACKET, CLOSEPAREN, COLON, COMMA, DOT, EXCLAMATION, OPENANGLEBRACKET, OPENBRACE, OPENBRACKET, OPENPAREN, QUERY, QUOTE, SEMI];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, CLOSEBRACE, DOLLAR, EQUALS, HYPHEN, OPENBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Final possible email states\n const EmailColon = tt(Email$1, COLON); // URL followed by colon (potential port number here)\n /*const EmailColonPort = */\n ta(EmailColon, groups.numeric, Email); // URL followed by colon and port numner\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n\n // URL, followed by an opening bracket\n const UrlOpenbrace = tt(Url$1, OPENBRACE); // URL followed by {\n const UrlOpenbracket = tt(Url$1, OPENBRACKET); // URL followed by [\n const UrlOpenanglebracket = tt(Url$1, OPENANGLEBRACKET); // URL followed by <\n const UrlOpenparen = tt(Url$1, OPENPAREN); // URL followed by (\n\n tt(UrlNonaccept, OPENBRACE, UrlOpenbrace);\n tt(UrlNonaccept, OPENBRACKET, UrlOpenbracket);\n tt(UrlNonaccept, OPENANGLEBRACKET, UrlOpenanglebracket);\n tt(UrlNonaccept, OPENPAREN, UrlOpenparen);\n\n // Closing bracket component. This character WILL be included in the URL\n tt(UrlOpenbrace, CLOSEBRACE, Url$1);\n tt(UrlOpenbracket, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracket, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparen, CLOSEPAREN, Url$1);\n tt(UrlOpenbrace, CLOSEBRACE, Url$1);\n\n // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpenbrace` (if the URL only\n // has a single opening bracket for some reason).\n const UrlOpenbraceQ = makeState(Url); // URL followed by { and some symbols that the URL can end it\n const UrlOpenbracketQ = makeState(Url); // URL followed by [ and some symbols that the URL can end it\n const UrlOpenanglebracketQ = makeState(Url); // URL followed by < and some symbols that the URL can end it\n const UrlOpenparenQ = makeState(Url); // URL followed by ( and some symbols that the URL can end it\n ta(UrlOpenbrace, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracket, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracket, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparen, qsAccepting, UrlOpenparenQ);\n const UrlOpenbraceSyms = makeState(); // UrlOpenbrace followed by some symbols it cannot end it\n const UrlOpenbracketSyms = makeState(); // UrlOpenbracketQ followed by some symbols it cannot end it\n const UrlOpenanglebracketSyms = makeState(); // UrlOpenanglebracketQ followed by some symbols it cannot end it\n const UrlOpenparenSyms = makeState(); // UrlOpenparenQ followed by some symbols it cannot end it\n ta(UrlOpenbrace, qsNonAccepting);\n ta(UrlOpenbracket, qsNonAccepting);\n ta(UrlOpenanglebracket, qsNonAccepting);\n ta(UrlOpenparen, qsNonAccepting);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenbraceQ, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceQ, qsNonAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsNonAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsNonAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsNonAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketSyms, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenSyms, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsNonAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsNonAccepting, UrlOpenbracketSyms);\n ta(UrlOpenanglebracketSyms, qsNonAccepting, UrlOpenanglebracketSyms);\n ta(UrlOpenparenSyms, qsNonAccepting, UrlOpenparenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenbracketQ, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketQ, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenQ, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceQ, CLOSEBRACE, Url$1);\n tt(UrlOpenbracketSyms, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketSyms, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenSyms, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceSyms, CLOSEPAREN, Url$1);\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL$1, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} protocol\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash) {\n if (optionalSlashSlash === void 0) {\n optionalSlashSlash = false;\n }\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error('linkifyjs: incorrect scheme format.\\n 1. Must only contain digits, lowercase ASCII letters or \"-\"\\n 2. Cannot start or end with \"-\"\\n 3. \"-\" cannot repeat');\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n*/\nfunction find(str, type, opts) {\n if (type === void 0) {\n type = null;\n }\n if (opts === void 0) {\n opts = null;\n }\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\nfunction autolink(options) {\r\n return new Plugin({\r\n key: new PluginKey('autolink'),\r\n appendTransaction: (transactions, oldState, newState) => {\r\n const docChanges = transactions.some(transaction => transaction.docChanged) && !oldState.doc.eq(newState.doc);\r\n const preventAutolink = transactions.some(transaction => transaction.getMeta('preventAutolink'));\r\n if (!docChanges || preventAutolink) {\r\n return;\r\n }\r\n const { tr } = newState;\r\n const transform = combineTransactionSteps(oldState.doc, [...transactions]);\r\n const changes = getChangedRanges(transform);\r\n changes.forEach(({ newRange }) => {\r\n // Now let’s see if we can add new links.\r\n const nodesInChangedRanges = findChildrenInRange(newState.doc, newRange, node => node.isTextblock);\r\n let textBlock;\r\n let textBeforeWhitespace;\r\n if (nodesInChangedRanges.length > 1) {\r\n // Grab the first node within the changed ranges (ex. the first of two paragraphs when hitting enter).\r\n textBlock = nodesInChangedRanges[0];\r\n textBeforeWhitespace = newState.doc.textBetween(textBlock.pos, textBlock.pos + textBlock.node.nodeSize, undefined, ' ');\r\n }\r\n else if (nodesInChangedRanges.length\r\n // We want to make sure to include the block seperator argument to treat hard breaks like spaces.\r\n && newState.doc.textBetween(newRange.from, newRange.to, ' ', ' ').endsWith(' ')) {\r\n textBlock = nodesInChangedRanges[0];\r\n textBeforeWhitespace = newState.doc.textBetween(textBlock.pos, newRange.to, undefined, ' ');\r\n }\r\n if (textBlock && textBeforeWhitespace) {\r\n const wordsBeforeWhitespace = textBeforeWhitespace.split(' ').filter(s => s !== '');\r\n if (wordsBeforeWhitespace.length <= 0) {\r\n return false;\r\n }\r\n const lastWordBeforeSpace = wordsBeforeWhitespace[wordsBeforeWhitespace.length - 1];\r\n const lastWordAndBlockOffset = textBlock.pos + textBeforeWhitespace.lastIndexOf(lastWordBeforeSpace);\r\n if (!lastWordBeforeSpace) {\r\n return false;\r\n }\r\n find(lastWordBeforeSpace)\r\n .filter(link => link.isLink)\r\n // Calculate link position.\r\n .map(link => ({\r\n ...link,\r\n from: lastWordAndBlockOffset + link.start + 1,\r\n to: lastWordAndBlockOffset + link.end + 1,\r\n }))\r\n // ignore link inside code mark\r\n .filter(link => {\r\n if (!newState.schema.marks.code) {\r\n return true;\r\n }\r\n return !newState.doc.rangeHasMark(link.from, link.to, newState.schema.marks.code);\r\n })\r\n // validate link\r\n .filter(link => {\r\n if (options.validate) {\r\n return options.validate(link.value);\r\n }\r\n return true;\r\n })\r\n // Add link mark.\r\n .forEach(link => {\r\n if (getMarksBetween(link.from, link.to, newState.doc).some(item => item.mark.type === options.type)) {\r\n return;\r\n }\r\n tr.addMark(link.from, link.to, options.type.create({\r\n href: link.href,\r\n }));\r\n });\r\n }\r\n });\r\n if (!tr.steps.length) {\r\n return;\r\n }\r\n return tr;\r\n },\r\n });\r\n}\n\nfunction clickHandler(options) {\r\n return new Plugin({\r\n key: new PluginKey('handleClickLink'),\r\n props: {\r\n handleClick: (view, pos, event) => {\r\n var _a, _b;\r\n if (event.button !== 0) {\r\n return false;\r\n }\r\n const eventTarget = event.target;\r\n if (eventTarget.nodeName !== 'A') {\r\n return false;\r\n }\r\n const attrs = getAttributes(view.state, options.type.name);\r\n const link = event.target;\r\n const href = (_a = link === null || link === void 0 ? void 0 : link.href) !== null && _a !== void 0 ? _a : attrs.href;\r\n const target = (_b = link === null || link === void 0 ? void 0 : link.target) !== null && _b !== void 0 ? _b : attrs.target;\r\n if (link && href) {\r\n if (view.editable) {\r\n window.open(href, target);\r\n }\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n });\r\n}\n\nfunction pasteHandler(options) {\r\n return new Plugin({\r\n key: new PluginKey('handlePasteLink'),\r\n props: {\r\n handlePaste: (view, event, slice) => {\r\n var _a;\r\n const { state } = view;\r\n const { selection } = state;\r\n const { empty } = selection;\r\n if (empty) {\r\n return false;\r\n }\r\n let textContent = '';\r\n slice.content.forEach(node => {\r\n textContent += node.textContent;\r\n });\r\n const link = find(textContent).find(item => item.isLink && item.value === textContent);\r\n if (!textContent || !link) {\r\n return false;\r\n }\r\n const html = (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text/html');\r\n const hrefRegex = /href=\"([^\"]*)\"/;\r\n const existingLink = html === null || html === void 0 ? void 0 : html.match(hrefRegex);\r\n const url = existingLink ? existingLink[1] : link.href;\r\n options.editor.commands.setMark(options.type, {\r\n href: url,\r\n });\r\n return true;\r\n },\r\n },\r\n });\r\n}\n\nconst Link = Mark.create({\r\n name: 'link',\r\n priority: 1000,\r\n keepOnSplit: false,\r\n onCreate() {\r\n this.options.protocols.forEach(protocol => {\r\n if (typeof protocol === 'string') {\r\n registerCustomProtocol(protocol);\r\n return;\r\n }\r\n registerCustomProtocol(protocol.scheme, protocol.optionalSlashes);\r\n });\r\n },\r\n onDestroy() {\r\n reset();\r\n },\r\n inclusive() {\r\n return this.options.autolink;\r\n },\r\n addOptions() {\r\n return {\r\n openOnClick: true,\r\n linkOnPaste: true,\r\n autolink: true,\r\n protocols: [],\r\n HTMLAttributes: {\r\n target: '_blank',\r\n rel: 'noopener noreferrer nofollow',\r\n class: null,\r\n },\r\n validate: undefined,\r\n };\r\n },\r\n addAttributes() {\r\n return {\r\n href: {\r\n default: null,\r\n },\r\n target: {\r\n default: this.options.HTMLAttributes.target,\r\n },\r\n rel: {\r\n default: this.options.HTMLAttributes.rel,\r\n },\r\n class: {\r\n default: this.options.HTMLAttributes.class,\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [{ tag: 'a[href]:not([href *= \"javascript:\" i])' }];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['a', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setLink: attributes => ({ chain }) => {\r\n return chain().setMark(this.name, attributes).setMeta('preventAutolink', true).run();\r\n },\r\n toggleLink: attributes => ({ chain }) => {\r\n return chain()\r\n .toggleMark(this.name, attributes, { extendEmptyMarkRange: true })\r\n .setMeta('preventAutolink', true)\r\n .run();\r\n },\r\n unsetLink: () => ({ chain }) => {\r\n return chain()\r\n .unsetMark(this.name, { extendEmptyMarkRange: true })\r\n .setMeta('preventAutolink', true)\r\n .run();\r\n },\r\n };\r\n },\r\n addPasteRules() {\r\n return [\r\n markPasteRule({\r\n find: text => find(text)\r\n .filter(link => {\r\n if (this.options.validate) {\r\n return this.options.validate(link.value);\r\n }\r\n return true;\r\n })\r\n .filter(link => link.isLink)\r\n .map(link => ({\r\n text: link.value,\r\n index: link.start,\r\n data: link,\r\n })),\r\n type: this.type,\r\n getAttributes: (match, pasteEvent) => {\r\n var _a, _b;\r\n const html = (_a = pasteEvent === null || pasteEvent === void 0 ? void 0 : pasteEvent.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text/html');\r\n const hrefRegex = /href=\"([^\"]*)\"/;\r\n const existingLink = html === null || html === void 0 ? void 0 : html.match(hrefRegex);\r\n if (existingLink) {\r\n return {\r\n href: existingLink[1],\r\n };\r\n }\r\n return {\r\n href: (_b = match.data) === null || _b === void 0 ? void 0 : _b.href,\r\n };\r\n },\r\n }),\r\n ];\r\n },\r\n addProseMirrorPlugins() {\r\n const plugins = [];\r\n if (this.options.autolink) {\r\n plugins.push(autolink({\r\n type: this.type,\r\n validate: this.options.validate,\r\n }));\r\n }\r\n if (this.options.openOnClick) {\r\n plugins.push(clickHandler({\r\n type: this.type,\r\n }));\r\n }\r\n if (this.options.linkOnPaste) {\r\n plugins.push(pasteHandler({\r\n editor: this.editor,\r\n type: this.type,\r\n }));\r\n }\r\n return plugins;\r\n },\r\n});\n\nconst TaskList = Node.create({\r\n name: 'taskList',\r\n addOptions() {\r\n return {\r\n itemTypeName: 'taskItem',\r\n HTMLAttributes: {},\r\n };\r\n },\r\n group: 'block list',\r\n content() {\r\n return `${this.options.itemTypeName}+`;\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: `ul[data-type=\"${this.name}\"]`,\r\n priority: 51,\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['ul', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, { 'data-type': this.name }), 0];\r\n },\r\n addCommands() {\r\n return {\r\n toggleTaskList: () => ({ commands }) => {\r\n return commands.toggleList(this.name, this.options.itemTypeName);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Shift-9': () => this.editor.commands.toggleTaskList(),\r\n };\r\n },\r\n});\n\nconst inputRegex = /^\\s*(\\[([( |x])?\\])\\s$/;\r\nconst TaskItem = Node.create({\r\n name: 'taskItem',\r\n addOptions() {\r\n return {\r\n nested: false,\r\n HTMLAttributes: {},\r\n taskListTypeName: 'taskList',\r\n };\r\n },\r\n content() {\r\n return this.options.nested ? 'paragraph block*' : 'paragraph+';\r\n },\r\n defining: true,\r\n addAttributes() {\r\n return {\r\n checked: {\r\n default: false,\r\n keepOnSplit: false,\r\n parseHTML: element => element.getAttribute('data-checked') === 'true',\r\n renderHTML: attributes => ({\r\n 'data-checked': attributes.checked,\r\n }),\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: `li[data-type=\"${this.name}\"]`,\r\n priority: 51,\r\n },\r\n ];\r\n },\r\n renderHTML({ node, HTMLAttributes }) {\r\n return [\r\n 'li',\r\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\r\n 'data-type': this.name,\r\n }),\r\n [\r\n 'label',\r\n [\r\n 'input',\r\n {\r\n type: 'checkbox',\r\n checked: node.attrs.checked ? 'checked' : null,\r\n },\r\n ],\r\n ['span'],\r\n ],\r\n ['div', 0],\r\n ];\r\n },\r\n addKeyboardShortcuts() {\r\n const shortcuts = {\r\n Enter: () => this.editor.commands.splitListItem(this.name),\r\n 'Shift-Tab': () => this.editor.commands.liftListItem(this.name),\r\n };\r\n if (!this.options.nested) {\r\n return shortcuts;\r\n }\r\n return {\r\n ...shortcuts,\r\n Tab: () => this.editor.commands.sinkListItem(this.name),\r\n };\r\n },\r\n addNodeView() {\r\n return ({ node, HTMLAttributes, getPos, editor, }) => {\r\n const listItem = document.createElement('li');\r\n const checkboxWrapper = document.createElement('label');\r\n const checkboxStyler = document.createElement('span');\r\n const checkbox = document.createElement('input');\r\n const content = document.createElement('div');\r\n checkboxWrapper.contentEditable = 'false';\r\n checkbox.type = 'checkbox';\r\n checkbox.addEventListener('change', event => {\r\n // if the editor isn’t editable and we don't have a handler for\r\n // readonly checks we have to undo the latest change\r\n if (!editor.isEditable && !this.options.onReadOnlyChecked) {\r\n checkbox.checked = !checkbox.checked;\r\n return;\r\n }\r\n const { checked } = event.target;\r\n if (editor.isEditable && typeof getPos === 'function') {\r\n editor\r\n .chain()\r\n .focus(undefined, { scrollIntoView: false })\r\n .command(({ tr }) => {\r\n const position = getPos();\r\n const currentNode = tr.doc.nodeAt(position);\r\n tr.setNodeMarkup(position, undefined, {\r\n ...currentNode === null || currentNode === void 0 ? void 0 : currentNode.attrs,\r\n checked,\r\n });\r\n return true;\r\n })\r\n .run();\r\n }\r\n if (!editor.isEditable && this.options.onReadOnlyChecked) {\r\n // Reset state if onReadOnlyChecked returns false\r\n if (!this.options.onReadOnlyChecked(node, checked)) {\r\n checkbox.checked = !checkbox.checked;\r\n }\r\n }\r\n });\r\n Object.entries(this.options.HTMLAttributes).forEach(([key, value]) => {\r\n listItem.setAttribute(key, value);\r\n });\r\n listItem.dataset.checked = node.attrs.checked;\r\n if (node.attrs.checked) {\r\n checkbox.setAttribute('checked', 'checked');\r\n }\r\n checkboxWrapper.append(checkbox, checkboxStyler);\r\n listItem.append(checkboxWrapper, content);\r\n Object.entries(HTMLAttributes).forEach(([key, value]) => {\r\n listItem.setAttribute(key, value);\r\n });\r\n return {\r\n dom: listItem,\r\n contentDOM: content,\r\n update: updatedNode => {\r\n if (updatedNode.type !== this.type) {\r\n return false;\r\n }\r\n listItem.dataset.checked = updatedNode.attrs.checked;\r\n if (updatedNode.attrs.checked) {\r\n checkbox.setAttribute('checked', 'checked');\r\n }\r\n else {\r\n checkbox.removeAttribute('checked');\r\n }\r\n return true;\r\n },\r\n };\r\n };\r\n },\r\n addInputRules() {\r\n return [\r\n wrappingInputRule({\r\n find: inputRegex,\r\n type: this.type,\r\n getAttributes: match => ({\r\n checked: match[match.length - 1] === 'x',\r\n }),\r\n }),\r\n ];\r\n },\r\n});\n\nconst Underline = Mark.create({\r\n name: 'underline',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'u',\r\n },\r\n {\r\n style: 'text-decoration',\r\n consuming: false,\r\n getAttrs: style => (style.includes('underline') ? {} : false),\r\n },\r\n ];\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return ['u', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n },\r\n addCommands() {\r\n return {\r\n setUnderline: () => ({ commands }) => {\r\n return commands.setMark(this.name);\r\n },\r\n toggleUnderline: () => ({ commands }) => {\r\n return commands.toggleMark(this.name);\r\n },\r\n unsetUnderline: () => ({ commands }) => {\r\n return commands.unsetMark(this.name);\r\n },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-u': () => this.editor.commands.toggleUnderline(),\r\n 'Mod-U': () => this.editor.commands.toggleUnderline(),\r\n };\r\n },\r\n});\n\nfunction findSuggestionMatch(config) {\r\n var _a;\r\n const { char, allowSpaces, allowedPrefixes, startOfLine, $position, } = config;\r\n const escapedChar = escapeForRegEx(char);\r\n const suffix = new RegExp(`\\\\s${escapedChar}$`);\r\n const prefix = startOfLine ? '^' : '';\r\n const regexp = allowSpaces\r\n ? new RegExp(`${prefix}${escapedChar}.*?(?=\\\\s${escapedChar}|$)`, 'gm')\r\n : new RegExp(`${prefix}(?:^)?${escapedChar}[^\\\\s${escapedChar}]*`, 'gm');\r\n const text = ((_a = $position.nodeBefore) === null || _a === void 0 ? void 0 : _a.isText) && $position.nodeBefore.text;\r\n if (!text) {\r\n return null;\r\n }\r\n const textFrom = $position.pos - text.length;\r\n const match = Array.from(text.matchAll(regexp)).pop();\r\n if (!match || match.input === undefined || match.index === undefined) {\r\n return null;\r\n }\r\n // JavaScript doesn't have lookbehinds. This hacks a check that first character\r\n // is a space or the start of the line\r\n const matchPrefix = match.input.slice(Math.max(0, match.index - 1), match.index);\r\n const matchPrefixIsAllowed = new RegExp(`^[${allowedPrefixes === null || allowedPrefixes === void 0 ? void 0 : allowedPrefixes.join('')}\\0]?$`).test(matchPrefix);\r\n if (allowedPrefixes !== null && !matchPrefixIsAllowed) {\r\n return null;\r\n }\r\n // The absolute position of the match in the document\r\n const from = textFrom + match.index;\r\n let to = from + match[0].length;\r\n // Edge case handling; if spaces are allowed and we're directly in between\r\n // two triggers\r\n if (allowSpaces && suffix.test(text.slice(to - 1, to + 1))) {\r\n match[0] += ' ';\r\n to += 1;\r\n }\r\n // If the $position is located within the matched substring, return that range\r\n if (from < $position.pos && to >= $position.pos) {\r\n return {\r\n range: {\r\n from,\r\n to,\r\n },\r\n query: match[0].slice(char.length),\r\n text: match[0],\r\n };\r\n }\r\n return null;\r\n}\n\nconst SuggestionPluginKey = new PluginKey('suggestion');\r\nfunction Suggestion({ pluginKey = SuggestionPluginKey, editor, char = '@', allowSpaces = false, allowedPrefixes = [' '], startOfLine = false, decorationTag = 'span', decorationClass = 'suggestion', command = () => null, items = () => [], render = () => ({}), allow = () => true, }) {\r\n let props;\r\n const renderer = render === null || render === void 0 ? void 0 : render();\r\n const plugin = new Plugin({\r\n key: pluginKey,\r\n view() {\r\n return {\r\n update: async (view, prevState) => {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n const prev = (_a = this.key) === null || _a === void 0 ? void 0 : _a.getState(prevState);\r\n const next = (_b = this.key) === null || _b === void 0 ? void 0 : _b.getState(view.state);\r\n // See how the state changed\r\n const moved = prev.active && next.active && prev.range.from !== next.range.from;\r\n const started = !prev.active && next.active;\r\n const stopped = prev.active && !next.active;\r\n const changed = !started && !stopped && prev.query !== next.query;\r\n const handleStart = started || moved;\r\n const handleChange = changed && !moved;\r\n const handleExit = stopped || moved;\r\n // Cancel when suggestion isn't active\r\n if (!handleStart && !handleChange && !handleExit) {\r\n return;\r\n }\r\n const state = handleExit && !handleStart ? prev : next;\r\n const decorationNode = view.dom.querySelector(`[data-decoration-id=\"${state.decorationId}\"]`);\r\n props = {\r\n editor,\r\n range: state.range,\r\n query: state.query,\r\n text: state.text,\r\n items: [],\r\n command: commandProps => {\r\n command({\r\n editor,\r\n range: state.range,\r\n props: commandProps,\r\n });\r\n },\r\n decorationNode,\r\n // virtual node for popper.js or tippy.js\r\n // this can be used for building popups without a DOM node\r\n clientRect: decorationNode\r\n ? () => {\r\n var _a;\r\n // because of `items` can be asynchrounous we’ll search for the current decoration node\r\n const { decorationId } = (_a = this.key) === null || _a === void 0 ? void 0 : _a.getState(editor.state); // eslint-disable-line\r\n const currentDecorationNode = view.dom.querySelector(`[data-decoration-id=\"${decorationId}\"]`);\r\n return (currentDecorationNode === null || currentDecorationNode === void 0 ? void 0 : currentDecorationNode.getBoundingClientRect()) || null;\r\n }\r\n : null,\r\n };\r\n if (handleStart) {\r\n (_c = renderer === null || renderer === void 0 ? void 0 : renderer.onBeforeStart) === null || _c === void 0 ? void 0 : _c.call(renderer, props);\r\n }\r\n if (handleChange) {\r\n (_d = renderer === null || renderer === void 0 ? void 0 : renderer.onBeforeUpdate) === null || _d === void 0 ? void 0 : _d.call(renderer, props);\r\n }\r\n if (handleChange || handleStart) {\r\n props.items = await items({\r\n editor,\r\n query: state.query,\r\n });\r\n }\r\n if (handleExit) {\r\n (_e = renderer === null || renderer === void 0 ? void 0 : renderer.onExit) === null || _e === void 0 ? void 0 : _e.call(renderer, props);\r\n }\r\n if (handleChange) {\r\n (_f = renderer === null || renderer === void 0 ? void 0 : renderer.onUpdate) === null || _f === void 0 ? void 0 : _f.call(renderer, props);\r\n }\r\n if (handleStart) {\r\n (_g = renderer === null || renderer === void 0 ? void 0 : renderer.onStart) === null || _g === void 0 ? void 0 : _g.call(renderer, props);\r\n }\r\n },\r\n destroy: () => {\r\n var _a;\r\n if (!props) {\r\n return;\r\n }\r\n (_a = renderer === null || renderer === void 0 ? void 0 : renderer.onExit) === null || _a === void 0 ? void 0 : _a.call(renderer, props);\r\n },\r\n };\r\n },\r\n state: {\r\n // Initialize the plugin's internal state.\r\n init() {\r\n const state = {\r\n active: false,\r\n range: {\r\n from: 0,\r\n to: 0,\r\n },\r\n query: null,\r\n text: null,\r\n composing: false,\r\n };\r\n return state;\r\n },\r\n // Apply changes to the plugin state from a view transaction.\r\n apply(transaction, prev, oldState, state) {\r\n const { isEditable } = editor;\r\n const { composing } = editor.view;\r\n const { selection } = transaction;\r\n const { empty, from } = selection;\r\n const next = { ...prev };\r\n next.composing = composing;\r\n // We can only be suggesting if the view is editable, and:\r\n // * there is no selection, or\r\n // * a composition is active (see: https://github.com/ueberdosis/tiptap/issues/1449)\r\n if (isEditable && (empty || editor.view.composing)) {\r\n // Reset active state if we just left the previous suggestion range\r\n if ((from < prev.range.from || from > prev.range.to) && !composing && !prev.composing) {\r\n next.active = false;\r\n }\r\n // Try to match against where our cursor currently is\r\n const match = findSuggestionMatch({\r\n char,\r\n allowSpaces,\r\n allowedPrefixes,\r\n startOfLine,\r\n $position: selection.$from,\r\n });\r\n const decorationId = `id_${Math.floor(Math.random() * 0xffffffff)}`;\r\n // If we found a match, update the current state to show it\r\n if (match && allow({ editor, state, range: match.range })) {\r\n next.active = true;\r\n next.decorationId = prev.decorationId ? prev.decorationId : decorationId;\r\n next.range = match.range;\r\n next.query = match.query;\r\n next.text = match.text;\r\n }\r\n else {\r\n next.active = false;\r\n }\r\n }\r\n else {\r\n next.active = false;\r\n }\r\n // Make sure to empty the range if suggestion is inactive\r\n if (!next.active) {\r\n next.decorationId = null;\r\n next.range = { from: 0, to: 0 };\r\n next.query = null;\r\n next.text = null;\r\n }\r\n return next;\r\n },\r\n },\r\n props: {\r\n // Call the keydown hook if suggestion is active.\r\n handleKeyDown(view, event) {\r\n var _a;\r\n const { active, range } = plugin.getState(view.state);\r\n if (!active) {\r\n return false;\r\n }\r\n return ((_a = renderer === null || renderer === void 0 ? void 0 : renderer.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(renderer, { view, event, range })) || false;\r\n },\r\n // Setup decorator on the currently active suggestion.\r\n decorations(state) {\r\n const { active, range, decorationId } = plugin.getState(state);\r\n if (!active) {\r\n return null;\r\n }\r\n return DecorationSet.create(state.doc, [\r\n Decoration.inline(range.from, range.to, {\r\n nodeName: decorationTag,\r\n class: decorationClass,\r\n 'data-decoration-id': decorationId,\r\n }),\r\n ]);\r\n },\r\n },\r\n });\r\n return plugin;\r\n}\n\nconst MentionPluginKey = new PluginKey('mention');\r\nconst Mention = Node.create({\r\n name: 'mention',\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n renderLabel({ options, node }) {\r\n var _a;\r\n return `${options.suggestion.char}${(_a = node.attrs.label) !== null && _a !== void 0 ? _a : node.attrs.id}`;\r\n },\r\n suggestion: {\r\n char: '@',\r\n pluginKey: MentionPluginKey,\r\n command: ({ editor, range, props }) => {\r\n var _a, _b;\r\n // increase range.to by one when the next node is of type \"text\"\r\n // and starts with a space character\r\n const nodeAfter = editor.view.state.selection.$to.nodeAfter;\r\n const overrideSpace = (_a = nodeAfter === null || nodeAfter === void 0 ? void 0 : nodeAfter.text) === null || _a === void 0 ? void 0 : _a.startsWith(' ');\r\n if (overrideSpace) {\r\n range.to += 1;\r\n }\r\n editor\r\n .chain()\r\n .focus()\r\n .insertContentAt(range, [\r\n {\r\n type: this.name,\r\n attrs: props,\r\n },\r\n {\r\n type: 'text',\r\n text: ' ',\r\n },\r\n ])\r\n .run();\r\n (_b = window.getSelection()) === null || _b === void 0 ? void 0 : _b.collapseToEnd();\r\n },\r\n allow: ({ state, range }) => {\r\n const $from = state.doc.resolve(range.from);\r\n const type = state.schema.nodes[this.name];\r\n const allow = !!$from.parent.type.contentMatch.matchType(type);\r\n return allow;\r\n },\r\n },\r\n };\r\n },\r\n group: 'inline',\r\n inline: true,\r\n selectable: false,\r\n atom: true,\r\n addAttributes() {\r\n return {\r\n id: {\r\n default: null,\r\n parseHTML: element => element.getAttribute('data-id'),\r\n renderHTML: attributes => {\r\n if (!attributes.id) {\r\n return {};\r\n }\r\n return {\r\n 'data-id': attributes.id,\r\n };\r\n },\r\n },\r\n label: {\r\n default: null,\r\n parseHTML: element => element.getAttribute('data-label'),\r\n renderHTML: attributes => {\r\n if (!attributes.label) {\r\n return {};\r\n }\r\n return {\r\n 'data-label': attributes.label,\r\n };\r\n },\r\n },\r\n };\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: `span[data-type=\"${this.name}\"]`,\r\n },\r\n ];\r\n },\r\n renderHTML({ node, HTMLAttributes }) {\r\n return [\r\n 'span',\r\n mergeAttributes({ 'data-type': this.name }, this.options.HTMLAttributes, HTMLAttributes),\r\n this.options.renderLabel({\r\n options: this.options,\r\n node,\r\n }),\r\n ];\r\n },\r\n renderText({ node }) {\r\n return this.options.renderLabel({\r\n options: this.options,\r\n node,\r\n });\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n Backspace: () => this.editor.commands.command(({ tr, state }) => {\r\n let isMention = false;\r\n const { selection } = state;\r\n const { empty, anchor } = selection;\r\n if (!empty) {\r\n return false;\r\n }\r\n state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {\r\n if (node.type.name === this.name) {\r\n isMention = true;\r\n tr.insertText(this.options.suggestion.char || '', pos, pos + node.nodeSize);\r\n return false;\r\n }\r\n });\r\n return isMention;\r\n }),\r\n };\r\n },\r\n addProseMirrorPlugins() {\r\n return [\r\n Suggestion({\r\n editor: this.editor,\r\n ...this.options.suggestion,\r\n }),\r\n ];\r\n },\r\n});\n\nvar Video = Node.create({\n name: \"iframe\",\n group: \"block\",\n atom: true,\n addOptions() {\n return {\n allowFullscreen: true,\n HTMLAttributes: {\n class: \"iframe-wrapper\"\n }\n };\n },\n addAttributes() {\n return {\n src: {\n default: null\n },\n frameborder: {\n default: 0\n },\n allowfullscreen: {\n default: this.options.allowFullscreen,\n parseHTML: () => this.options.allowFullscreen\n }\n };\n },\n parseHTML() {\n return [{\n tag: \"iframe\"\n }];\n },\n renderHTML(_ref) {\n let {\n HTMLAttributes\n } = _ref;\n // Convert youtube links\n HTMLAttributes.src = HTMLAttributes.src.replace(\"https://youtu.be/\", \"https://www.youtube.com/watch?v=\").replace(\"watch?v=\", \"embed/\");\n // Convert vimeo links\n HTMLAttributes.src = HTMLAttributes.src.replace(\"https://vimeo.com/\", \"https://player.vimeo.com/video/\");\n // Convert google drive links\n if (HTMLAttributes.src.includes(\"drive.google.com\")) {\n HTMLAttributes.src = HTMLAttributes.src.replace(\"/view\", \"/preview\");\n }\n return [\"div\", this.options.HTMLAttributes, [\"iframe\", HTMLAttributes]];\n },\n addCommands() {\n return {\n setIframe: options => _ref2 => {\n let {\n tr,\n dispatch\n } = _ref2;\n const {\n selection\n } = tr;\n const node = this.type.create(options);\n if (dispatch) {\n tr.replaceRangeWith(selection.from, selection.to, node);\n }\n return true;\n }\n };\n }\n});\n\n// StarterKit\nvar TiptapKit = Extension.create({\n name: \"tiptap-kit\",\n addExtensions() {\n const extensions = [];\n if (this.options.placeholder !== false) {\n extensions.push(Placeholder.configure(this.options.placeholder));\n }\n if (this.options.textAlign !== false) {\n extensions.push(TextAlign.configure(this.options.textAlign));\n }\n if (this.options.focus !== false) {\n extensions.push(FocusClasses.configure(this.options.focus));\n }\n if (this.options.color !== false) {\n extensions.push(Color.configure(this.options.color));\n }\n if (this.options.highlight !== false) {\n extensions.push(Highlight.configure(this.options.highlight));\n }\n if (this.options.image !== false) {\n extensions.push(Image.configure(this.options.image));\n }\n if (this.options.link !== false) {\n extensions.push(Link.configure(this.options.link));\n }\n if (this.options.taskList !== false) {\n extensions.push(TaskList.configure(this.options.taskList));\n }\n if (this.options.taskItem !== false) {\n extensions.push(TaskItem.configure(this.options.taskItem));\n }\n if (this.options.textStyle !== false) {\n extensions.push(TextStyle.configure(this.options.textStyle));\n }\n if (this.options.underline !== false) {\n extensions.push(Underline.configure(this.options.underline));\n }\n if (this.options.video !== false) {\n extensions.push(Video.configure(this.options.video));\n }\n if (this.options.blockquote !== false) {\n extensions.push(Blockquote.configure(this.options.blockquote));\n }\n if (this.options.bold !== false) {\n extensions.push(Bold.configure(this.options.bold));\n }\n if (this.options.bulletList !== false) {\n extensions.push(BulletList.configure(this.options.bulletList));\n }\n if (this.options.code !== false) {\n extensions.push(Code.configure(this.options.code));\n }\n if (this.options.codeBlock !== false) {\n extensions.push(CodeBlock.configure(this.options.codeBlock));\n }\n if (this.options.document !== false) {\n extensions.push(Document.configure(this.options.document));\n }\n if (this.options.dropcursor !== false) {\n extensions.push(Dropcursor.configure(this.options.dropcursor));\n }\n if (this.options.gapcursor !== false) {\n extensions.push(Gapcursor.configure(this.options.gapcursor));\n }\n if (this.options.hardBreak !== false) {\n extensions.push(HardBreak.configure(this.options.hardBreak));\n }\n if (this.options.heading !== false) {\n extensions.push(Heading.configure(this.options.heading));\n }\n if (this.options.history !== false) {\n extensions.push(History.configure(this.options.history));\n }\n if (this.options.horizontalRule !== false) {\n extensions.push(HorizontalRule.configure(this.options.horizontalRule));\n }\n if (this.options.italic !== false) {\n extensions.push(Italic.configure(this.options.italic));\n }\n if (this.options.listItem !== false) {\n extensions.push(ListItem$1.configure(this.options.listItem));\n }\n if (this.options.orderedList !== false) {\n extensions.push(OrderedList.configure(this.options.orderedList));\n }\n if (this.options.paragraph !== false) {\n extensions.push(Paragraph.configure(this.options.paragraph));\n }\n if (this.options.strike !== false) {\n extensions.push(Strike.configure(this.options.strike));\n }\n if (this.options.text !== false) {\n extensions.push(Text$1.configure(this.options.text));\n }\n if (this.options.mention !== false) {\n extensions.push(Mention.configure(this.options.mention));\n }\n return extensions;\n }\n});\n\nvar vuetify = new Vuetify();\n\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n }\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n}\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nvar debounce_1 = debounce;\n\nlet default_1$5 = class default_1 extends Vue {\n constructor() {\n super(...arguments);\n this.url = \"\";\n this.file = null;\n this.loading = false;\n }\n async onFileSelected(file) {\n if (!file) return;\n try {\n this.loading = true;\n this.url = await this.uploadImage(file);\n } finally {\n this.loading = false;\n }\n }\n onShow(val) {\n if (val) {\n this.url = this.value || \"\";\n }\n }\n apply() {\n this.$emit(\"apply\", this.url);\n this.file = null;\n this.url = \"\";\n this.$emit(\"close\");\n }\n close() {\n this.$emit(\"close\");\n }\n};\n__decorate$1([Prop()], default_1$5.prototype, \"value\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1$5.prototype, \"show\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1$5.prototype, \"dark\", void 0);\n__decorate$1([Prop()], default_1$5.prototype, \"uploadImage\", void 0);\n__decorate$1([Watch(\"show\")], default_1$5.prototype, \"onShow\", null);\ndefault_1$5 = __decorate$1([Component({\n components: {\n VSpacer: VSpacer,\n VIcon: VIcon,\n VBtn: VBtn,\n VCardTitle: VCardTitle,\n VTextField: VTextField,\n VFileInput: VFileInput,\n VCardText: VCardText,\n VCardActions: VCardActions,\n VCard: VCard,\n VDialog: VDialog\n }\n})], default_1$5);\nvar script$5 = default_1$5;\n\nfunction normalizeComponent$1(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nconst __vue_script__$9 = script$5;\n\n/* template */\nvar __vue_render__$9 = function () {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c('v-dialog', {\n attrs: {\n \"dark\": _vm.dark,\n \"value\": _vm.show,\n \"max-width\": \"500\"\n },\n on: {\n \"input\": function ($event) {\n return _vm.$emit('close', $event);\n }\n }\n }, [_c('v-card', [_c('v-card-title', [_c('span', {\n staticClass: \"headline\"\n }, [_vm._v(\"\\n \" + _vm._s(\"Edit Image\") + \"\\n \")]), _vm._v(\" \"), _c('v-spacer'), _vm._v(\" \"), _c('v-btn', {\n attrs: {\n \"icon\": \"\"\n },\n on: {\n \"click\": _vm.close\n }\n }, [_c('v-icon', [_vm._v(\"mdi-close\")])], 1)], 1), _vm._v(\" \"), _c('v-card-text', [_c('v-text-field', {\n staticClass: \"mb-2\",\n attrs: {\n \"filled\": \"\",\n \"name\": \"url\",\n \"label\": \"Link\",\n \"hide-details\": \"\",\n \"autofocus\": \"\",\n \"prepend-icon\": \"mdi-link-variant\",\n \"disabled\": Boolean(_vm.file) || _vm.loading\n },\n model: {\n value: _vm.url,\n callback: function ($$v) {\n _vm.url = $$v;\n },\n expression: \"url\"\n }\n }), _vm._v(\" \"), _vm.uploadImage ? _c('div', {\n staticClass: \"text-overline text-center my-2\"\n }, [_vm._v(\"OR\")]) : _vm._e(), _vm._v(\" \"), _vm.uploadImage ? _c('v-file-input', {\n attrs: {\n \"filled\": \"\",\n \"label\": \"File\",\n \"accept\": \"image/png, image/jpeg, image/bmp, image/gif\",\n \"hide-details\": \"\",\n \"loading\": _vm.loading,\n \"disabled\": _vm.loading\n },\n on: {\n \"change\": _vm.onFileSelected,\n \"click:clear\": function ($event) {\n _vm.url = '';\n }\n },\n model: {\n value: _vm.file,\n callback: function ($$v) {\n _vm.file = $$v;\n },\n expression: \"file\"\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c('v-card-actions', [_c('v-btn', {\n attrs: {\n \"text\": \"\",\n \"disabled\": _vm.url == '' || _vm.loading\n },\n on: {\n \"click\": _vm.apply\n }\n }, [_vm._v(\"\\n \" + _vm._s(\"apply\") + \"\\n \")])], 1)], 1)], 1);\n};\nvar __vue_staticRenderFns__$9 = [];\n\n/* style */\nconst __vue_inject_styles__$9 = undefined;\n/* scoped */\nconst __vue_scope_id__$9 = undefined;\n/* module identifier */\nconst __vue_module_identifier__$9 = undefined;\n/* functional template */\nconst __vue_is_functional_template__$9 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nconst __vue_component__$b = /*#__PURE__*/normalizeComponent$1({\n render: __vue_render__$9,\n staticRenderFns: __vue_staticRenderFns__$9\n}, __vue_inject_styles__$9, __vue_script__$9, __vue_scope_id__$9, __vue_is_functional_template__$9, __vue_module_identifier__$9, false, undefined, undefined, undefined);\nvar __vue_component__$c = __vue_component__$b;\n\nlet default_1$4 = class default_1 extends Vue {\n constructor() {\n super(...arguments);\n this.url = \"\";\n }\n get isDisabled() {\n return this.value === this.url || !this.value && !this.url;\n }\n apply() {\n this.$emit(\"apply\", this.url);\n this.$emit(\"close\");\n }\n close() {\n this.$emit(\"close\");\n }\n};\n__decorate$1([Prop()], default_1$4.prototype, \"value\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1$4.prototype, \"show\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1$4.prototype, \"dark\", void 0);\ndefault_1$4 = __decorate$1([Component({\n components: {\n VSpacer: VSpacer,\n VIcon: VIcon,\n VBtn: VBtn,\n VCardTitle: VCardTitle,\n VTextField: VTextField,\n VCardText: VCardText,\n VCardActions: VCardActions,\n VCard: VCard,\n VDialog: VDialog\n }\n})], default_1$4);\nvar script$4 = default_1$4;\n\n/* script */\nconst __vue_script__$8 = script$4;\n\n/* template */\nvar __vue_render__$8 = function () {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c('v-dialog', {\n attrs: {\n \"dark\": _vm.dark,\n \"value\": _vm.show,\n \"max-width\": \"500\"\n },\n on: {\n \"input\": function ($event) {\n return _vm.$emit('close', $event);\n }\n }\n }, [_c('v-card', [_c('v-card-title', [_c('span', {\n staticClass: \"headline\"\n }, [_vm._v(\"\\n \" + _vm._s(\"Edit Link\") + \"\\n \")]), _vm._v(\" \"), _c('v-spacer'), _vm._v(\" \"), _c('v-btn', {\n attrs: {\n \"icon\": \"\"\n },\n on: {\n \"click\": function ($event) {\n return _vm.$emit('close', $event);\n }\n }\n }, [_c('v-icon', [_vm._v(\"mdi-close\")])], 1)], 1), _vm._v(\" \"), _c('v-card-text', [_c('v-text-field', {\n attrs: {\n \"value\": _vm.value,\n \"name\": \"link-url\",\n \"label\": \"URL\",\n \"hide-details\": \"\"\n },\n on: {\n \"input\": function ($event) {\n _vm.url = $event;\n }\n }\n })], 1), _vm._v(\" \"), _c('v-card-actions', [_c('v-btn', {\n attrs: {\n \"disabled\": _vm.isDisabled,\n \"text\": \"\"\n },\n on: {\n \"click\": _vm.apply\n }\n }, [_vm._v(\"\\n \" + _vm._s(\"apply\") + \"\\n \")])], 1)], 1)], 1);\n};\nvar __vue_staticRenderFns__$8 = [];\n\n/* style */\nconst __vue_inject_styles__$8 = undefined;\n/* scoped */\nconst __vue_scope_id__$8 = undefined;\n/* module identifier */\nconst __vue_module_identifier__$8 = undefined;\n/* functional template */\nconst __vue_is_functional_template__$8 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nconst __vue_component__$9 = /*#__PURE__*/normalizeComponent$1({\n render: __vue_render__$8,\n staticRenderFns: __vue_staticRenderFns__$8\n}, __vue_inject_styles__$8, __vue_script__$8, __vue_scope_id__$8, __vue_is_functional_template__$8, __vue_module_identifier__$8, false, undefined, undefined, undefined);\nvar __vue_component__$a = __vue_component__$9;\n\nlet default_1$3 = class default_1 extends Vue {\n constructor() {\n super(...arguments);\n this.url = \"\";\n }\n apply() {\n this.$emit(\"apply\", this.url);\n this.$emit(\"close\");\n }\n close() {\n this.$emit(\"close\");\n }\n};\n__decorate$1([Prop()], default_1$3.prototype, \"value\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1$3.prototype, \"show\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1$3.prototype, \"dark\", void 0);\ndefault_1$3 = __decorate$1([Component({\n components: {\n VSpacer: VSpacer,\n VIcon: VIcon,\n VBtn: VBtn,\n VCardTitle: VCardTitle,\n VTextField: VTextField,\n VCardText: VCardText,\n VCardActions: VCardActions,\n VCard: VCard,\n VDialog: VDialog\n }\n})], default_1$3);\nvar script$3 = default_1$3;\n\n/* script */\nconst __vue_script__$7 = script$3;\n\n/* template */\nvar __vue_render__$7 = function () {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c('v-dialog', {\n attrs: {\n \"dark\": _vm.dark,\n \"value\": _vm.show,\n \"max-width\": \"500\"\n },\n on: {\n \"input\": function ($event) {\n return _vm.$emit('close', $event);\n }\n }\n }, [_c('v-card', [_c('v-card-title', [_c('span', {\n staticClass: \"headline\"\n }, [_vm._v(_vm._s(\"Edit Video\"))]), _vm._v(\" \"), _c('v-spacer'), _vm._v(\" \"), _c('v-btn', {\n attrs: {\n \"icon\": \"\"\n },\n on: {\n \"click\": _vm.close\n }\n }, [_c('v-icon', [_vm._v(\"mdi-close\")])], 1)], 1), _vm._v(\" \"), _c('v-card-text', [_c('v-text-field', {\n attrs: {\n \"value\": _vm.value,\n \"name\": \"video-url\",\n \"label\": \"URL\",\n \"hide-details\": \"\"\n },\n on: {\n \"input\": function ($event) {\n _vm.url = $event;\n }\n }\n })], 1), _vm._v(\" \"), _c('v-card-actions', [_c('v-btn', {\n attrs: {\n \"text\": \"\"\n },\n on: {\n \"click\": _vm.apply\n }\n }, [_vm._v(\"\\n \" + _vm._s(\"Apply\") + \"\\n \")])], 1)], 1)], 1);\n};\nvar __vue_staticRenderFns__$7 = [];\n\n/* style */\nconst __vue_inject_styles__$7 = undefined;\n/* scoped */\nconst __vue_scope_id__$7 = undefined;\n/* module identifier */\nconst __vue_module_identifier__$7 = undefined;\n/* functional template */\nconst __vue_is_functional_template__$7 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nconst __vue_component__$7 = /*#__PURE__*/normalizeComponent$1({\n render: __vue_render__$7,\n staticRenderFns: __vue_staticRenderFns__$7\n}, __vue_inject_styles__$7, __vue_script__$7, __vue_scope_id__$7, __vue_is_functional_template__$7, __vue_module_identifier__$7, false, undefined, undefined, undefined);\nvar __vue_component__$8 = __vue_component__$7;\n\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __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\nvar __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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}var langDefault = {\r\n search: 'Search ...',\r\n categories: {\r\n Activity: \"Activity\",\r\n Flags: \"Flags\",\r\n Foods: \"Foods\",\r\n Frequently: \"Frequently\",\r\n Objects: \"Objects\",\r\n Nature: \"Nature\",\r\n Peoples: \"Peoples\",\r\n Symbols: \"Symbols\",\r\n Places: \"Places\"\r\n }\r\n};var lang = langDefault;\r\nvar i18n = function (translations) {\r\n lang = __assign(__assign({}, langDefault), translations);\r\n};\r\n// Sample parse translation\r\nvar t = function (term) {\r\n var properties = term.split(\".\");\r\n var text = lang;\r\n properties.forEach(function (p) {\r\n text = text[p];\r\n });\r\n return text;\r\n};\r\nvar locale = { i18n: i18n, t: t };var Category = /** @class */ (function () {\r\n function Category(name, icon) {\r\n this.name = name;\r\n this.icon = icon;\r\n }\r\n Object.defineProperty(Category.prototype, \"label\", {\r\n get: function () {\r\n return t(\"categories.\" + this.name);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Category;\r\n}());var icons$1 = {\r\n activity: \"\\n \\n \\n \\n \\n \",\r\n flags: \"\\n \\n \\n \\n \",\r\n foods: \"\\n \\n \\n \\n \\n \",\r\n frequently: \"\\n \\n \\n \\n \\n \",\r\n nature: \"\\n \\n \\n \\n \",\r\n objects: \"\\n \\n \\n \\n \",\r\n peoples: \"\\n \\n \\n \\n \",\r\n places: \"\\n \\n \\n \\n \",\r\n symbols: \"\\n \\n \\n \\n \"\r\n};\r\nvar categoriesDefault = [\r\n new Category(\"Frequently\", icons$1[\"frequently\"]),\r\n new Category(\"Peoples\", icons$1[\"peoples\"]),\r\n new Category(\"Nature\", icons$1[\"nature\"]),\r\n new Category(\"Foods\", icons$1[\"foods\"]),\r\n new Category(\"Activity\", icons$1[\"activity\"]),\r\n new Category(\"Objects\", icons$1[\"objects\"]),\r\n new Category(\"Places\", icons$1[\"places\"]),\r\n new Category(\"Symbols\", icons$1[\"symbols\"]),\r\n new Category(\"Flags\", icons$1[\"flags\"])\r\n];var Emoji = /** @class */ (function () {\r\n function Emoji(data, category, aliases) {\r\n this.data = data;\r\n this.category = category;\r\n this.aliases = aliases;\r\n }\r\n return Emoji;\r\n}());var emojisDefault = [\r\n new Emoji(\"😀\", \"Peoples\", [\"grinning\"]),\r\n new Emoji(\"😃\", \"Peoples\", [\"smiley\"]),\r\n new Emoji(\"😄\", \"Peoples\", [\"smile\"]),\r\n new Emoji(\"😁\", \"Peoples\", [\"grin\"]),\r\n new Emoji(\"😆\", \"Peoples\", [\"laughing\", \"satisfied\"]),\r\n new Emoji(\"😅\", \"Peoples\", [\"sweat_smile\"]),\r\n new Emoji(\"😂\", \"Peoples\", [\"joy\"]),\r\n new Emoji(\"🤣\", \"Peoples\", [\"rofl\"]),\r\n new Emoji(\"😌\", \"Peoples\", [\"relaxed\"]),\r\n new Emoji(\"😊\", \"Peoples\", [\"blush\"]),\r\n new Emoji(\"😇\", \"Peoples\", [\"innocent\"]),\r\n new Emoji(\"🙂\", \"Peoples\", [\"slightly_smiling_face\"]),\r\n new Emoji(\"🙃\", \"Peoples\", [\"upside_down_face\"]),\r\n new Emoji(\"😉\", \"Peoples\", [\"wink\"]),\r\n new Emoji(\"😌\", \"Peoples\", [\"relieved\"]),\r\n new Emoji(\"😍\", \"Peoples\", [\"heart_eyes\"]),\r\n new Emoji(\"😘\", \"Peoples\", [\"kissing_heart\"]),\r\n new Emoji(\"😗\", \"Peoples\", [\"kissing\"]),\r\n new Emoji(\"😙\", \"Peoples\", [\"kissing_smiling_eyes\"]),\r\n new Emoji(\"😚\", \"Peoples\", [\"kissing_closed_eyes\"]),\r\n new Emoji(\"😋\", \"Peoples\", [\"yum\"]),\r\n new Emoji(\"😜\", \"Peoples\", [\"stuck_out_tongue_winking_eye\"]),\r\n new Emoji(\"😝\", \"Peoples\", [\"stuck_out_tongue_closed_eyes\"]),\r\n new Emoji(\"😛\", \"Peoples\", [\"stuck_out_tongue\"]),\r\n new Emoji(\"🤑\", \"Peoples\", [\"money_mouth_face\"]),\r\n new Emoji(\"🤗\", \"Peoples\", [\"hugs\"]),\r\n new Emoji(\"🤓\", \"Peoples\", [\"nerd_face\"]),\r\n new Emoji(\"😎\", \"Peoples\", [\"sunglasses\"]),\r\n new Emoji(\"🤡\", \"Peoples\", [\"clown_face\"]),\r\n new Emoji(\"🤠\", \"Peoples\", [\"cowboy_hat_face\"]),\r\n new Emoji(\"😏\", \"Peoples\", [\"smirk\"]),\r\n new Emoji(\"😒\", \"Peoples\", [\"unamused\"]),\r\n new Emoji(\"😞\", \"Peoples\", [\"disappointed\"]),\r\n new Emoji(\"😔\", \"Peoples\", [\"pensive\"]),\r\n new Emoji(\"😟\", \"Peoples\", [\"worried\"]),\r\n new Emoji(\"😕\", \"Peoples\", [\"confused\"]),\r\n new Emoji(\"🙁\", \"Peoples\", [\"slightly_frowning_face\"]),\r\n new Emoji(\"☹️\", \"Peoples\", [\"frowning_face\"]),\r\n new Emoji(\"😣\", \"Peoples\", [\"persevere\"]),\r\n new Emoji(\"😖\", \"Peoples\", [\"confounded\"]),\r\n new Emoji(\"😫\", \"Peoples\", [\"tired_face\"]),\r\n new Emoji(\"😩\", \"Peoples\", [\"weary\"]),\r\n new Emoji(\"😤\", \"Peoples\", [\"triumph\"]),\r\n new Emoji(\"😠\", \"Peoples\", [\"angry\"]),\r\n new Emoji(\"😡\", \"Peoples\", [\"rage\", \"pout\"]),\r\n new Emoji(\"😶\", \"Peoples\", [\"no_mouth\"]),\r\n new Emoji(\"😐\", \"Peoples\", [\"neutral_face\"]),\r\n new Emoji(\"😑\", \"Peoples\", [\"expressionless\"]),\r\n new Emoji(\"😯\", \"Peoples\", [\"hushed\"]),\r\n new Emoji(\"😦\", \"Peoples\", [\"frowning\"]),\r\n new Emoji(\"😧\", \"Peoples\", [\"anguished\"]),\r\n new Emoji(\"😮\", \"Peoples\", [\"open_mouth\"]),\r\n new Emoji(\"😲\", \"Peoples\", [\"astonished\"]),\r\n new Emoji(\"😵\", \"Peoples\", [\"dizzy_face\"]),\r\n new Emoji(\"😳\", \"Peoples\", [\"flushed\"]),\r\n new Emoji(\"😱\", \"Peoples\", [\"scream\"]),\r\n new Emoji(\"😨\", \"Peoples\", [\"fearful\"]),\r\n new Emoji(\"😰\", \"Peoples\", [\"cold_sweat\"]),\r\n new Emoji(\"😢\", \"Peoples\", [\"cry\"]),\r\n new Emoji(\"😥\", \"Peoples\", [\"disappointed_relieved\"]),\r\n new Emoji(\"🤤\", \"Peoples\", [\"drooling_face\"]),\r\n new Emoji(\"😭\", \"Peoples\", [\"sob\"]),\r\n new Emoji(\"😓\", \"Peoples\", [\"sweat\"]),\r\n new Emoji(\"😪\", \"Peoples\", [\"sleepy\"]),\r\n new Emoji(\"😴\", \"Peoples\", [\"sleeping\"]),\r\n new Emoji(\"🙄\", \"Peoples\", [\"roll_eyes\"]),\r\n new Emoji(\"🤔\", \"Peoples\", [\"thinking\"]),\r\n new Emoji(\"🤥\", \"Peoples\", [\"lying_face\"]),\r\n new Emoji(\"😬\", \"Peoples\", [\"grimacing\"]),\r\n new Emoji(\"🤐\", \"Peoples\", [\"zipper_mouth_face\"]),\r\n new Emoji(\"🤢\", \"Peoples\", [\"nauseated_face\"]),\r\n new Emoji(\"🤧\", \"Peoples\", [\"sneezing_face\"]),\r\n new Emoji(\"😷\", \"Peoples\", [\"mask\"]),\r\n new Emoji(\"🤒\", \"Peoples\", [\"face_with_thermometer\"]),\r\n new Emoji(\"🤕\", \"Peoples\", [\"face_with_head_bandage\"]),\r\n new Emoji(\"😈\", \"Peoples\", [\"smiling_imp\"]),\r\n new Emoji(\"👿\", \"Peoples\", [\"imp\"]),\r\n new Emoji(\"👹\", \"Peoples\", [\"japanese_ogre\"]),\r\n new Emoji(\"👺\", \"Peoples\", [\"japanese_goblin\"]),\r\n new Emoji(\"💩\", \"Peoples\", [\"hankey\", \"poop\", \"shit\"]),\r\n new Emoji(\"👻\", \"Peoples\", [\"ghost\"]),\r\n new Emoji(\"💀\", \"Peoples\", [\"skull\"]),\r\n new Emoji(\"☠️\", \"Peoples\", [\"skull_and_crossbones\"]),\r\n new Emoji(\"👽\", \"Peoples\", [\"alien\"]),\r\n new Emoji(\"👾\", \"Peoples\", [\"space_invader\"]),\r\n new Emoji(\"🤖\", \"Peoples\", [\"robot\"]),\r\n new Emoji(\"🎃\", \"Peoples\", [\"jack_o_lantern\"]),\r\n new Emoji(\"😺\", \"Peoples\", [\"smiley_cat\"]),\r\n new Emoji(\"😸\", \"Peoples\", [\"smile_cat\"]),\r\n new Emoji(\"😹\", \"Peoples\", [\"joy_cat\"]),\r\n new Emoji(\"😻\", \"Peoples\", [\"heart_eyes_cat\"]),\r\n new Emoji(\"😼\", \"Peoples\", [\"smirk_cat\"]),\r\n new Emoji(\"😽\", \"Peoples\", [\"kissing_cat\"]),\r\n new Emoji(\"🙀\", \"Peoples\", [\"scream_cat\"]),\r\n new Emoji(\"😿\", \"Peoples\", [\"crying_cat_face\"]),\r\n new Emoji(\"😾\", \"Peoples\", [\"pouting_cat\"]),\r\n new Emoji(\"👐\", \"Peoples\", [\"open_hands\"]),\r\n new Emoji(\"🙌\", \"Peoples\", [\"raised_hands\"]),\r\n new Emoji(\"👏\", \"Peoples\", [\"clap\"]),\r\n new Emoji(\"🙏\", \"Peoples\", [\"pray\"]),\r\n new Emoji(\"🤝\", \"Peoples\", [\"handshake\"]),\r\n new Emoji(\"👍\", \"Peoples\", [\"+1\", \"thumbsup\"]),\r\n new Emoji(\"👎\", \"Peoples\", [\"-1\", \"thumbsdown\"]),\r\n new Emoji(\"👊\", \"Peoples\", [\"fist_oncoming\", \"facepunch\", \"punch\"]),\r\n new Emoji(\"✊\", \"Peoples\", [\"fist_raised\", \"fist\"]),\r\n new Emoji(\"🤛\", \"Peoples\", [\"fist_left\"]),\r\n new Emoji(\"🤜\", \"Peoples\", [\"fist_right\"]),\r\n new Emoji(\"🤞\", \"Peoples\", [\"crossed_fingers\"]),\r\n new Emoji(\"✌️\", \"Peoples\", [\"v\"]),\r\n new Emoji(\"🤘\", \"Peoples\", [\"metal\"]),\r\n new Emoji(\"👌\", \"Peoples\", [\"ok_hand\"]),\r\n new Emoji(\"👈\", \"Peoples\", [\"point_left\"]),\r\n new Emoji(\"👉\", \"Peoples\", [\"point_right\"]),\r\n new Emoji(\"👆\", \"Peoples\", [\"point_up_2\"]),\r\n new Emoji(\"👇\", \"Peoples\", [\"point_down\"]),\r\n new Emoji(\"☝️\", \"Peoples\", [\"point_up\"]),\r\n new Emoji(\"✋\", \"Peoples\", [\"hand\", \"raised_hand\"]),\r\n new Emoji(\"🤚\", \"Peoples\", [\"raised_back_of_hand\"]),\r\n new Emoji(\"🖐\", \"Peoples\", [\"raised_hand_with_fingers_splayed\"]),\r\n new Emoji(\"🖖\", \"Peoples\", [\"vulcan_salute\"]),\r\n new Emoji(\"👋\", \"Peoples\", [\"wave\"]),\r\n new Emoji(\"🤙\", \"Peoples\", [\"call_me_hand\"]),\r\n new Emoji(\"💪\", \"Peoples\", [\"muscle\"]),\r\n new Emoji(\"🖕\", \"Peoples\", [\"middle_finger\", \"fu\"]),\r\n new Emoji(\"✍️\", \"Peoples\", [\"writing_hand\"]),\r\n new Emoji(\"🤳\", \"Peoples\", [\"selfie\"]),\r\n new Emoji(\"💅\", \"Peoples\", [\"nail_care\"]),\r\n new Emoji(\"💍\", \"Peoples\", [\"ring\"]),\r\n new Emoji(\"💄\", \"Peoples\", [\"lipstick\"]),\r\n new Emoji(\"💋\", \"Peoples\", [\"kiss\"]),\r\n new Emoji(\"👄\", \"Peoples\", [\"lips\"]),\r\n new Emoji(\"👅\", \"Peoples\", [\"tongue\"]),\r\n new Emoji(\"👂\", \"Peoples\", [\"ear\"]),\r\n new Emoji(\"👃\", \"Peoples\", [\"nose\"]),\r\n new Emoji(\"👣\", \"Peoples\", [\"footprints\"]),\r\n new Emoji(\"👁\", \"Peoples\", [\"eye\"]),\r\n new Emoji(\"👀\", \"Peoples\", [\"eyes\"]),\r\n new Emoji(\"🗣\", \"Peoples\", [\"speaking_head\"]),\r\n new Emoji(\"👤\", \"Peoples\", [\"bust_in_silhouette\"]),\r\n new Emoji(\"👥\", \"Peoples\", [\"busts_in_silhouette\"]),\r\n new Emoji(\"👶\", \"Peoples\", [\"baby\"]),\r\n new Emoji(\"👦\", \"Peoples\", [\"boy\"]),\r\n new Emoji(\"👧\", \"Peoples\", [\"girl\"]),\r\n new Emoji(\"👨\", \"Peoples\", [\"man\"]),\r\n new Emoji(\"👩\", \"Peoples\", [\"woman\"]),\r\n new Emoji(\"👱‍♀\", \"Peoples\", [\"blonde_woman\"]),\r\n new Emoji(\"👱\", \"Peoples\", [\"blonde_man\", \"person_with_blond_hair\"]),\r\n new Emoji(\"👴\", \"Peoples\", [\"older_man\"]),\r\n new Emoji(\"👵\", \"Peoples\", [\"older_woman\"]),\r\n new Emoji(\"👲\", \"Peoples\", [\"man_with_gua_pi_mao\"]),\r\n new Emoji(\"👳‍♀\", \"Peoples\", [\"woman_with_turban\"]),\r\n new Emoji(\"👳\", \"Peoples\", [\"man_with_turban\"]),\r\n new Emoji(\"👮‍♀\", \"Peoples\", [\"policewoman\"]),\r\n new Emoji(\"👮\", \"Peoples\", [\"policeman\", \"cop\"]),\r\n new Emoji(\"👷‍♀\", \"Peoples\", [\"construction_worker_woman\"]),\r\n new Emoji(\"👷\", \"Peoples\", [\"construction_worker_man\", \"construction_worker\"]),\r\n new Emoji(\"💂‍♀\", \"Peoples\", [\"guardswoman\"]),\r\n new Emoji(\"💂\", \"Peoples\", [\"guardsman\"]),\r\n new Emoji(\"👩‍⚕\", \"Peoples\", [\"woman_health_worker\"]),\r\n new Emoji(\"👨‍⚕\", \"Peoples\", [\"man_health_worker\"]),\r\n new Emoji(\"👩‍🌾\", \"Peoples\", [\"woman_farmer\"]),\r\n new Emoji(\"👨‍🌾\", \"Peoples\", [\"man_farmer\"]),\r\n new Emoji(\"👩‍🍳\", \"Peoples\", [\"woman_cook\"]),\r\n new Emoji(\"👨‍🍳\", \"Peoples\", [\"man_cook\"]),\r\n new Emoji(\"👩‍🎓\", \"Peoples\", [\"woman_student\"]),\r\n new Emoji(\"👨‍🎓\", \"Peoples\", [\"man_student\"]),\r\n new Emoji(\"👩‍🎤\", \"Peoples\", [\"woman_singer\"]),\r\n new Emoji(\"👨‍🎤\", \"Peoples\", [\"man_singer\"]),\r\n new Emoji(\"👩‍🏫\", \"Peoples\", [\"woman_teacher\"]),\r\n new Emoji(\"👨‍🏫\", \"Peoples\", [\"man_teacher\"]),\r\n new Emoji(\"👩‍🏭\", \"Peoples\", [\"woman_factory_worker\"]),\r\n new Emoji(\"👨‍🏭\", \"Peoples\", [\"man_factory_worker\"]),\r\n new Emoji(\"👩‍💻\", \"Peoples\", [\"woman_technologist\"]),\r\n new Emoji(\"👨‍💻\", \"Peoples\", [\"man_technologist\"]),\r\n new Emoji(\"👩‍💼\", \"Peoples\", [\"woman_office_worker\"]),\r\n new Emoji(\"👨‍💼\", \"Peoples\", [\"man_office_worker\"]),\r\n new Emoji(\"👩‍🔧\", \"Peoples\", [\"woman_mechanic\"]),\r\n new Emoji(\"👨‍🔧\", \"Peoples\", [\"man_mechanic\"]),\r\n new Emoji(\"👩‍🔬\", \"Peoples\", [\"woman_scientist\"]),\r\n new Emoji(\"👨‍🔬\", \"Peoples\", [\"man_scientist\"]),\r\n new Emoji(\"👩‍🎨\", \"Peoples\", [\"woman_artist\"]),\r\n new Emoji(\"👨‍🎨\", \"Peoples\", [\"man_artist\"]),\r\n new Emoji(\"👩‍🚒\", \"Peoples\", [\"woman_firefighter\"]),\r\n new Emoji(\"👨‍🚒\", \"Peoples\", [\"man_firefighter\"]),\r\n new Emoji(\"👩‍🚀\", \"Peoples\", [\"woman_astronaut\"]),\r\n new Emoji(\"👨‍🚀\", \"Peoples\", [\"man_astronaut\"]),\r\n new Emoji(\"🤶\", \"Peoples\", [\"mrs_claus\"]),\r\n new Emoji(\"🎅\", \"Peoples\", [\"santa\"]),\r\n new Emoji(\"👸\", \"Peoples\", [\"princess\"]),\r\n new Emoji(\"🤴\", \"Peoples\", [\"prince\"]),\r\n new Emoji(\"👰\", \"Peoples\", [\"bride_with_veil\"]),\r\n new Emoji(\"🤵\", \"Peoples\", [\"man_in_tuxedo\"]),\r\n new Emoji(\"👼\", \"Peoples\", [\"angel\"]),\r\n new Emoji(\"🤰\", \"Peoples\", [\"pregnant_woman\"]),\r\n new Emoji(\"🙇‍♀\", \"Peoples\", [\"bowing_woman\"]),\r\n new Emoji(\"🙇\", \"Peoples\", [\"bowing_man\", \"bow\"]),\r\n new Emoji(\"💁\", \"Peoples\", [\"tipping_hand_woman\", \"information_desk_person\", \"sassy_woman\"]),\r\n new Emoji(\"💁‍♂\", \"Peoples\", [\"tipping_hand_man\", \"sassy_man\"]),\r\n new Emoji(\"🙅\", \"Peoples\", [\"no_good_woman\", \"no_good\", \"ng_woman\"]),\r\n new Emoji(\"🙅‍♂\", \"Peoples\", [\"no_good_man\", \"ng_man\"]),\r\n new Emoji(\"🙆\", \"Peoples\", [\"ok_woman\"]),\r\n new Emoji(\"🙆‍♂\", \"Peoples\", [\"ok_man\"]),\r\n new Emoji(\"🙋\", \"Peoples\", [\"raising_hand_woman\", \"raising_hand\"]),\r\n new Emoji(\"🙋‍♂\", \"Peoples\", [\"raising_hand_man\"]),\r\n new Emoji(\"🤦‍♀\", \"Peoples\", [\"woman_facepalming\"]),\r\n new Emoji(\"🤦‍♂\", \"Peoples\", [\"man_facepalming\"]),\r\n new Emoji(\"🤷‍♀\", \"Peoples\", [\"woman_shrugging\"]),\r\n new Emoji(\"🤷‍♂\", \"Peoples\", [\"man_shrugging\"]),\r\n new Emoji(\"🙎\", \"Peoples\", [\"pouting_woman\", \"person_with_pouting_face\"]),\r\n new Emoji(\"🙎‍♂\", \"Peoples\", [\"pouting_man\"]),\r\n new Emoji(\"🙍\", \"Peoples\", [\"frowning_woman\", \"person_frowning\"]),\r\n new Emoji(\"🙍‍♂\", \"Peoples\", [\"frowning_man\"]),\r\n new Emoji(\"💇\", \"Peoples\", [\"haircut_woman\", \"haircut\"]),\r\n new Emoji(\"💇‍♂\", \"Peoples\", [\"haircut_man\"]),\r\n new Emoji(\"💆\", \"Peoples\", [\"massage_woman\", \"massage\"]),\r\n new Emoji(\"💆‍♂\", \"Peoples\", [\"massage_man\"]),\r\n new Emoji(\"🕴\", \"Peoples\", [\"business_suit_levitating\"]),\r\n new Emoji(\"💃\", \"Peoples\", [\"dancer\"]),\r\n new Emoji(\"🕺\", \"Peoples\", [\"man_dancing\"]),\r\n new Emoji(\"👯\", \"Peoples\", [\"dancing_women\", \"dancers\"]),\r\n new Emoji(\"👯‍♂\", \"Peoples\", [\"dancing_men\"]),\r\n new Emoji(\"🚶‍♀\", \"Peoples\", [\"walking_woman\"]),\r\n new Emoji(\"🚶\", \"Peoples\", [\"walking_man\", \"walking\"]),\r\n new Emoji(\"🏃‍♀\", \"Peoples\", [\"running_woman\"]),\r\n new Emoji(\"🏃\", \"Peoples\", [\"running_man\", \"runner\", \"running\"]),\r\n new Emoji(\"👫\", \"Peoples\", [\"couple\"]),\r\n new Emoji(\"👭\", \"Peoples\", [\"two_women_holding_hands\"]),\r\n new Emoji(\"👬\", \"Peoples\", [\"two_men_holding_hands\"]),\r\n new Emoji(\"💑\", \"Peoples\", [\"couple_with_heart_woman_man\", \"couple_with_heart\"]),\r\n new Emoji(\"👩‍❤️‍👩\", \"Peoples\", [\"couple_with_heart_woman_woman\"]),\r\n new Emoji(\"👨‍❤️‍👨\", \"Peoples\", [\"couple_with_heart_man_man\"]),\r\n new Emoji(\"💏\", \"Peoples\", [\"couplekiss_man_woman\"]),\r\n new Emoji(\"👩‍❤️‍💋‍👩\", \"Peoples\", [\"couplekiss_woman_woman\"]),\r\n new Emoji(\"👨‍❤️‍💋‍👨\", \"Peoples\", [\"couplekiss_man_man\"]),\r\n new Emoji(\"👪\", \"Peoples\", [\"family_man_woman_boy\", \"family\"]),\r\n new Emoji(\"👨‍👩‍👧\", \"Peoples\", [\"family_man_woman_girl\"]),\r\n new Emoji(\"👨‍👩‍👧‍👦\", \"Peoples\", [\"family_man_woman_girl_boy\"]),\r\n new Emoji(\"👨‍👩‍👦‍👦\", \"Peoples\", [\"family_man_woman_boy_boy\"]),\r\n new Emoji(\"👨‍👩‍👧‍👧\", \"Peoples\", [\"family_man_woman_girl_girl\"]),\r\n new Emoji(\"👩‍👩‍👦\", \"Peoples\", [\"family_woman_woman_boy\"]),\r\n new Emoji(\"👩‍👩‍👧\", \"Peoples\", [\"family_woman_woman_girl\"]),\r\n new Emoji(\"👩‍👩‍👧‍👦\", \"Peoples\", [\"family_woman_woman_girl_boy\"]),\r\n new Emoji(\"👩‍👩‍👦‍👦\", \"Peoples\", [\"family_woman_woman_boy_boy\"]),\r\n new Emoji(\"👩‍👩‍👧‍👧\", \"Peoples\", [\"family_woman_woman_girl_girl\"]),\r\n new Emoji(\"👨‍👨‍👦\", \"Peoples\", [\"family_man_man_boy\"]),\r\n new Emoji(\"👨‍👨‍👧\", \"Peoples\", [\"family_man_man_girl\"]),\r\n new Emoji(\"👨‍👨‍👧‍👦\", \"Peoples\", [\"family_man_man_girl_boy\"]),\r\n new Emoji(\"👨‍👨‍👦‍👦\", \"Peoples\", [\"family_man_man_boy_boy\"]),\r\n new Emoji(\"👨‍👨‍👧‍👧\", \"Peoples\", [\"family_man_man_girl_girl\"]),\r\n new Emoji(\"👩‍👦\", \"Peoples\", [\"family_woman_boy\"]),\r\n new Emoji(\"👩‍👧\", \"Peoples\", [\"family_woman_girl\"]),\r\n new Emoji(\"👩‍👧‍👦\", \"Peoples\", [\"family_woman_girl_boy\"]),\r\n new Emoji(\"👩‍👦‍👦\", \"Peoples\", [\"family_woman_boy_boy\"]),\r\n new Emoji(\"👩‍👧‍👧\", \"Peoples\", [\"family_woman_girl_girl\"]),\r\n new Emoji(\"👨‍👦\", \"Peoples\", [\"family_man_boy\"]),\r\n new Emoji(\"👨‍👧\", \"Peoples\", [\"family_man_girl\"]),\r\n new Emoji(\"👨‍👧‍👦\", \"Peoples\", [\"family_man_girl_boy\"]),\r\n new Emoji(\"👨‍👦‍👦\", \"Peoples\", [\"family_man_boy_boy\"]),\r\n new Emoji(\"👨‍👧‍👧\", \"Peoples\", [\"family_man_girl_girl\"]),\r\n new Emoji(\"👚\", \"Peoples\", [\"womans_clothes\"]),\r\n new Emoji(\"👕\", \"Peoples\", [\"shirt\", \"tshirt\"]),\r\n new Emoji(\"👖\", \"Peoples\", [\"jeans\"]),\r\n new Emoji(\"👔\", \"Peoples\", [\"necktie\"]),\r\n new Emoji(\"👗\", \"Peoples\", [\"dress\"]),\r\n new Emoji(\"👙\", \"Peoples\", [\"bikini\"]),\r\n new Emoji(\"👘\", \"Peoples\", [\"kimono\"]),\r\n new Emoji(\"👠\", \"Peoples\", [\"high_heel\"]),\r\n new Emoji(\"👡\", \"Peoples\", [\"sandal\"]),\r\n new Emoji(\"👢\", \"Peoples\", [\"boot\"]),\r\n new Emoji(\"👞\", \"Peoples\", [\"mans_shoe\", \"shoe\"]),\r\n new Emoji(\"👟\", \"Peoples\", [\"athletic_shoe\"]),\r\n new Emoji(\"👒\", \"Peoples\", [\"womans_hat\"]),\r\n new Emoji(\"🎩\", \"Peoples\", [\"tophat\"]),\r\n new Emoji(\"🎓\", \"Peoples\", [\"mortar_board\"]),\r\n new Emoji(\"👑\", \"Peoples\", [\"crown\"]),\r\n new Emoji(\"⛑\", \"Peoples\", [\"rescue_worker_helmet\"]),\r\n new Emoji(\"🎒\", \"Peoples\", [\"school_satchel\"]),\r\n new Emoji(\"👝\", \"Peoples\", [\"pouch\"]),\r\n new Emoji(\"👛\", \"Peoples\", [\"purse\"]),\r\n new Emoji(\"👜\", \"Peoples\", [\"handbag\"]),\r\n new Emoji(\"💼\", \"Peoples\", [\"briefcase\"]),\r\n new Emoji(\"👓\", \"Peoples\", [\"eyeglasses\"]),\r\n new Emoji(\"🕶\", \"Peoples\", [\"dark_sunglasses\"]),\r\n new Emoji(\"🌂\", \"Peoples\", [\"closed_umbrella\"]),\r\n new Emoji(\"☂️\", \"Peoples\", [\"open_umbrella\"]),\r\n new Emoji(\"🐶\", \"Nature\", [\"dog\"]),\r\n new Emoji(\"🐱\", \"Nature\", [\"cat\"]),\r\n new Emoji(\"🐭\", \"Nature\", [\"mouse\"]),\r\n new Emoji(\"🐹\", \"Nature\", [\"hamster\"]),\r\n new Emoji(\"🐰\", \"Nature\", [\"rabbit\"]),\r\n new Emoji(\"🦊\", \"Nature\", [\"fox_face\"]),\r\n new Emoji(\"🐻\", \"Nature\", [\"bear\"]),\r\n new Emoji(\"🐼\", \"Nature\", [\"panda_face\"]),\r\n new Emoji(\"🐨\", \"Nature\", [\"koala\"]),\r\n new Emoji(\"🐯\", \"Nature\", [\"tiger\"]),\r\n new Emoji(\"🦁\", \"Nature\", [\"lion\"]),\r\n new Emoji(\"🐮\", \"Nature\", [\"cow\"]),\r\n new Emoji(\"🐷\", \"Nature\", [\"pig\"]),\r\n new Emoji(\"🐽\", \"Nature\", [\"pig_nose\"]),\r\n new Emoji(\"🐸\", \"Nature\", [\"frog\"]),\r\n new Emoji(\"🐵\", \"Nature\", [\"monkey_face\"]),\r\n new Emoji(\"🙈\", \"Nature\", [\"see_no_evil\"]),\r\n new Emoji(\"🙉\", \"Nature\", [\"hear_no_evil\"]),\r\n new Emoji(\"🙊\", \"Nature\", [\"speak_no_evil\"]),\r\n new Emoji(\"🐒\", \"Nature\", [\"monkey\"]),\r\n new Emoji(\"🐔\", \"Nature\", [\"chicken\"]),\r\n new Emoji(\"🐧\", \"Nature\", [\"penguin\"]),\r\n new Emoji(\"🐦\", \"Nature\", [\"bird\"]),\r\n new Emoji(\"🐤\", \"Nature\", [\"baby_chick\"]),\r\n new Emoji(\"🐣\", \"Nature\", [\"hatching_chick\"]),\r\n new Emoji(\"🐥\", \"Nature\", [\"hatched_chick\"]),\r\n new Emoji(\"🦆\", \"Nature\", [\"duck\"]),\r\n new Emoji(\"🦅\", \"Nature\", [\"eagle\"]),\r\n new Emoji(\"🦉\", \"Nature\", [\"owl\"]),\r\n new Emoji(\"🦇\", \"Nature\", [\"bat\"]),\r\n new Emoji(\"🐺\", \"Nature\", [\"wolf\"]),\r\n new Emoji(\"🐗\", \"Nature\", [\"boar\"]),\r\n new Emoji(\"🐴\", \"Nature\", [\"horse\"]),\r\n new Emoji(\"🦄\", \"Nature\", [\"unicorn\"]),\r\n new Emoji(\"🐝\", \"Nature\", [\"bee\", \"honeybee\"]),\r\n new Emoji(\"🐛\", \"Nature\", [\"bug\"]),\r\n new Emoji(\"🦋\", \"Nature\", [\"butterfly\"]),\r\n new Emoji(\"🐌\", \"Nature\", [\"snail\"]),\r\n new Emoji(\"🐚\", \"Nature\", [\"shell\"]),\r\n new Emoji(\"🐞\", \"Nature\", [\"beetle\"]),\r\n new Emoji(\"🐜\", \"Nature\", [\"ant\"]),\r\n new Emoji(\"🕷\", \"Nature\", [\"spider\"]),\r\n new Emoji(\"🕸\", \"Nature\", [\"spider_web\"]),\r\n new Emoji(\"🐢\", \"Nature\", [\"turtle\"]),\r\n new Emoji(\"🐍\", \"Nature\", [\"snake\"]),\r\n new Emoji(\"🦎\", \"Nature\", [\"lizard\"]),\r\n new Emoji(\"🦂\", \"Nature\", [\"scorpion\"]),\r\n new Emoji(\"🦀\", \"Nature\", [\"crab\"]),\r\n new Emoji(\"🦑\", \"Nature\", [\"squid\"]),\r\n new Emoji(\"🐙\", \"Nature\", [\"octopus\"]),\r\n new Emoji(\"🦐\", \"Nature\", [\"shrimp\"]),\r\n new Emoji(\"🐠\", \"Nature\", [\"tropical_fish\"]),\r\n new Emoji(\"🐟\", \"Nature\", [\"fish\"]),\r\n new Emoji(\"🐡\", \"Nature\", [\"blowfish\"]),\r\n new Emoji(\"🐬\", \"Nature\", [\"dolphin\", \"flipper\"]),\r\n new Emoji(\"🦈\", \"Nature\", [\"shark\"]),\r\n new Emoji(\"🐳\", \"Nature\", [\"whale\"]),\r\n new Emoji(\"🐋\", \"Nature\", [\"whale2\"]),\r\n new Emoji(\"🐊\", \"Nature\", [\"crocodile\"]),\r\n new Emoji(\"🐆\", \"Nature\", [\"leopard\"]),\r\n new Emoji(\"🐅\", \"Nature\", [\"tiger2\"]),\r\n new Emoji(\"🐃\", \"Nature\", [\"water_buffalo\"]),\r\n new Emoji(\"🐂\", \"Nature\", [\"ox\"]),\r\n new Emoji(\"🐄\", \"Nature\", [\"cow2\"]),\r\n new Emoji(\"🦌\", \"Nature\", [\"deer\"]),\r\n new Emoji(\"🐪\", \"Nature\", [\"dromedary_camel\"]),\r\n new Emoji(\"🐫\", \"Nature\", [\"camel\"]),\r\n new Emoji(\"🐘\", \"Nature\", [\"elephant\"]),\r\n new Emoji(\"🦏\", \"Nature\", [\"rhinoceros\"]),\r\n new Emoji(\"🦍\", \"Nature\", [\"gorilla\"]),\r\n new Emoji(\"🐎\", \"Nature\", [\"racehorse\"]),\r\n new Emoji(\"🐖\", \"Nature\", [\"pig2\"]),\r\n new Emoji(\"🐐\", \"Nature\", [\"goat\"]),\r\n new Emoji(\"🐏\", \"Nature\", [\"ram\"]),\r\n new Emoji(\"🐑\", \"Nature\", [\"sheep\"]),\r\n new Emoji(\"🐕\", \"Nature\", [\"dog2\"]),\r\n new Emoji(\"🐩\", \"Nature\", [\"poodle\"]),\r\n new Emoji(\"🐈\", \"Nature\", [\"cat2\"]),\r\n new Emoji(\"🐓\", \"Nature\", [\"rooster\"]),\r\n new Emoji(\"🦃\", \"Nature\", [\"turkey\"]),\r\n new Emoji(\"🕊\", \"Nature\", [\"dove\"]),\r\n new Emoji(\"🐇\", \"Nature\", [\"rabbit2\"]),\r\n new Emoji(\"🐁\", \"Nature\", [\"mouse2\"]),\r\n new Emoji(\"🐀\", \"Nature\", [\"rat\"]),\r\n new Emoji(\"🐿\", \"Nature\", [\"chipmunk\"]),\r\n new Emoji(\"🐾\", \"Nature\", [\"feet\", \"paw_prints\"]),\r\n new Emoji(\"🐉\", \"Nature\", [\"dragon\"]),\r\n new Emoji(\"🐲\", \"Nature\", [\"dragon_face\"]),\r\n new Emoji(\"🌵\", \"Nature\", [\"cactus\"]),\r\n new Emoji(\"🎄\", \"Nature\", [\"christmas_tree\"]),\r\n new Emoji(\"🌲\", \"Nature\", [\"evergreen_tree\"]),\r\n new Emoji(\"🌳\", \"Nature\", [\"deciduous_tree\"]),\r\n new Emoji(\"🌴\", \"Nature\", [\"palm_tree\"]),\r\n new Emoji(\"🌱\", \"Nature\", [\"seedling\"]),\r\n new Emoji(\"🌿\", \"Nature\", [\"herb\"]),\r\n new Emoji(\"☘️\", \"Nature\", [\"shamrock\"]),\r\n new Emoji(\"🍀\", \"Nature\", [\"four_leaf_clover\"]),\r\n new Emoji(\"🎍\", \"Nature\", [\"bamboo\"]),\r\n new Emoji(\"🎋\", \"Nature\", [\"tanabata_tree\"]),\r\n new Emoji(\"🍃\", \"Nature\", [\"leaves\"]),\r\n new Emoji(\"🍂\", \"Nature\", [\"fallen_leaf\"]),\r\n new Emoji(\"🍁\", \"Nature\", [\"maple_leaf\"]),\r\n new Emoji(\"🍄\", \"Nature\", [\"mushroom\"]),\r\n new Emoji(\"🌾\", \"Nature\", [\"ear_of_rice\"]),\r\n new Emoji(\"💐\", \"Nature\", [\"bouquet\"]),\r\n new Emoji(\"🌷\", \"Nature\", [\"tulip\"]),\r\n new Emoji(\"🌹\", \"Nature\", [\"rose\"]),\r\n new Emoji(\"🥀\", \"Nature\", [\"wilted_flower\"]),\r\n new Emoji(\"🌻\", \"Nature\", [\"sunflower\"]),\r\n new Emoji(\"🌼\", \"Nature\", [\"blossom\"]),\r\n new Emoji(\"🌸\", \"Nature\", [\"cherry_blossom\"]),\r\n new Emoji(\"🌺\", \"Nature\", [\"hibiscus\"]),\r\n new Emoji(\"🌎\", \"Nature\", [\"earth_americas\"]),\r\n new Emoji(\"🌍\", \"Nature\", [\"earth_africa\"]),\r\n new Emoji(\"🌏\", \"Nature\", [\"earth_asia\"]),\r\n new Emoji(\"🌕\", \"Nature\", [\"full_moon\"]),\r\n new Emoji(\"🌖\", \"Nature\", [\"waning_gibbous_moon\"]),\r\n new Emoji(\"🌗\", \"Nature\", [\"last_quarter_moon\"]),\r\n new Emoji(\"🌘\", \"Nature\", [\"waning_crescent_moon\"]),\r\n new Emoji(\"🌑\", \"Nature\", [\"new_moon\"]),\r\n new Emoji(\"🌒\", \"Nature\", [\"waxing_crescent_moon\"]),\r\n new Emoji(\"🌓\", \"Nature\", [\"first_quarter_moon\"]),\r\n new Emoji(\"🌔\", \"Nature\", [\"moon\", \"waxing_gibbous_moon\"]),\r\n new Emoji(\"🌚\", \"Nature\", [\"new_moon_with_face\"]),\r\n new Emoji(\"🌝\", \"Nature\", [\"full_moon_with_face\"]),\r\n new Emoji(\"🌞\", \"Nature\", [\"sun_with_face\"]),\r\n new Emoji(\"🌛\", \"Nature\", [\"first_quarter_moon_with_face\"]),\r\n new Emoji(\"🌜\", \"Nature\", [\"last_quarter_moon_with_face\"]),\r\n new Emoji(\"🌙\", \"Nature\", [\"crescent_moon\"]),\r\n new Emoji(\"💫\", \"Nature\", [\"dizzy\"]),\r\n new Emoji(\"⭐️\", \"Nature\", [\"star\"]),\r\n new Emoji(\"🌟\", \"Nature\", [\"star2\"]),\r\n new Emoji(\"✨\", \"Nature\", [\"sparkles\"]),\r\n new Emoji(\"⚡️\", \"Nature\", [\"zap\"]),\r\n new Emoji(\"🔥\", \"Nature\", [\"fire\"]),\r\n new Emoji(\"💥\", \"Nature\", [\"boom\", \"collision\"]),\r\n new Emoji(\"☄\", \"Nature\", [\"comet\"]),\r\n new Emoji(\"☀️\", \"Nature\", [\"sunny\"]),\r\n new Emoji(\"🌤\", \"Nature\", [\"sun_behind_small_cloud\"]),\r\n new Emoji(\"⛅️\", \"Nature\", [\"partly_sunny\"]),\r\n new Emoji(\"🌥\", \"Nature\", [\"sun_behind_large_cloud\"]),\r\n new Emoji(\"🌦\", \"Nature\", [\"sun_behind_rain_cloud\"]),\r\n new Emoji(\"🌈\", \"Nature\", [\"rainbow\"]),\r\n new Emoji(\"☁️\", \"Nature\", [\"cloud\"]),\r\n new Emoji(\"🌧\", \"Nature\", [\"cloud_with_rain\"]),\r\n new Emoji(\"⛈\", \"Nature\", [\"cloud_with_lightning_and_rain\"]),\r\n new Emoji(\"🌩\", \"Nature\", [\"cloud_with_lightning\"]),\r\n new Emoji(\"🌨\", \"Nature\", [\"cloud_with_snow\"]),\r\n new Emoji(\"☃️\", \"Nature\", [\"snowman_with_snow\"]),\r\n new Emoji(\"⛄️\", \"Nature\", [\"snowman\"]),\r\n new Emoji(\"❄️\", \"Nature\", [\"snowflake\"]),\r\n new Emoji(\"🌬\", \"Nature\", [\"wind_face\"]),\r\n new Emoji(\"💨\", \"Nature\", [\"dash\"]),\r\n new Emoji(\"🌪\", \"Nature\", [\"tornado\"]),\r\n new Emoji(\"🌫\", \"Nature\", [\"fog\"]),\r\n new Emoji(\"🌊\", \"Nature\", [\"ocean\"]),\r\n new Emoji(\"💧\", \"Nature\", [\"droplet\"]),\r\n new Emoji(\"💦\", \"Nature\", [\"sweat_drops\"]),\r\n new Emoji(\"☔️\", \"Nature\", [\"umbrella\"]),\r\n new Emoji(\"🍏\", \"Foods\", [\"green_apple\"]),\r\n new Emoji(\"🍎\", \"Foods\", [\"apple\"]),\r\n new Emoji(\"🍐\", \"Foods\", [\"pear\"]),\r\n new Emoji(\"🍊\", \"Foods\", [\"tangerine\", \"orange\", \"mandarin\"]),\r\n new Emoji(\"🍋\", \"Foods\", [\"lemon\"]),\r\n new Emoji(\"🍌\", \"Foods\", [\"banana\"]),\r\n new Emoji(\"🍉\", \"Foods\", [\"watermelon\"]),\r\n new Emoji(\"🍇\", \"Foods\", [\"grapes\"]),\r\n new Emoji(\"🍓\", \"Foods\", [\"strawberry\"]),\r\n new Emoji(\"🍈\", \"Foods\", [\"melon\"]),\r\n new Emoji(\"🍒\", \"Foods\", [\"cherries\"]),\r\n new Emoji(\"🍑\", \"Foods\", [\"peach\"]),\r\n new Emoji(\"🍍\", \"Foods\", [\"pineapple\"]),\r\n new Emoji(\"🥝\", \"Foods\", [\"kiwi_fruit\"]),\r\n new Emoji(\"🥑\", \"Foods\", [\"avocado\"]),\r\n new Emoji(\"🍅\", \"Foods\", [\"tomato\"]),\r\n new Emoji(\"🍆\", \"Foods\", [\"eggplant\"]),\r\n new Emoji(\"🥒\", \"Foods\", [\"cucumber\"]),\r\n new Emoji(\"🥕\", \"Foods\", [\"carrot\"]),\r\n new Emoji(\"🌽\", \"Foods\", [\"corn\"]),\r\n new Emoji(\"🌶\", \"Foods\", [\"hot_pepper\"]),\r\n new Emoji(\"🥔\", \"Foods\", [\"potato\"]),\r\n new Emoji(\"🍠\", \"Foods\", [\"sweet_potato\"]),\r\n new Emoji(\"🌰\", \"Foods\", [\"chestnut\"]),\r\n new Emoji(\"🥜\", \"Foods\", [\"peanuts\"]),\r\n new Emoji(\"🍯\", \"Foods\", [\"honey_pot\"]),\r\n new Emoji(\"🥐\", \"Foods\", [\"croissant\"]),\r\n new Emoji(\"🍞\", \"Foods\", [\"bread\"]),\r\n new Emoji(\"🥖\", \"Foods\", [\"baguette_bread\"]),\r\n new Emoji(\"🧀\", \"Foods\", [\"cheese\"]),\r\n new Emoji(\"🥚\", \"Foods\", [\"egg\"]),\r\n new Emoji(\"🍳\", \"Foods\", [\"fried_egg\"]),\r\n new Emoji(\"🥓\", \"Foods\", [\"bacon\"]),\r\n new Emoji(\"🥞\", \"Foods\", [\"pancakes\"]),\r\n new Emoji(\"🍤\", \"Foods\", [\"fried_shrimp\"]),\r\n new Emoji(\"🍗\", \"Foods\", [\"poultry_leg\"]),\r\n new Emoji(\"🍖\", \"Foods\", [\"meat_on_bone\"]),\r\n new Emoji(\"🍕\", \"Foods\", [\"pizza\"]),\r\n new Emoji(\"🌭\", \"Foods\", [\"hotdog\"]),\r\n new Emoji(\"🍔\", \"Foods\", [\"hamburger\"]),\r\n new Emoji(\"🍟\", \"Foods\", [\"fries\"]),\r\n new Emoji(\"🥙\", \"Foods\", [\"stuffed_flatbread\"]),\r\n new Emoji(\"🌮\", \"Foods\", [\"taco\"]),\r\n new Emoji(\"🌯\", \"Foods\", [\"burrito\"]),\r\n new Emoji(\"🥗\", \"Foods\", [\"green_salad\"]),\r\n new Emoji(\"🥘\", \"Foods\", [\"shallow_pan_of_food\"]),\r\n new Emoji(\"🍝\", \"Foods\", [\"spaghetti\"]),\r\n new Emoji(\"🍜\", \"Foods\", [\"ramen\"]),\r\n new Emoji(\"🍲\", \"Foods\", [\"stew\"]),\r\n new Emoji(\"🍥\", \"Foods\", [\"fish_cake\"]),\r\n new Emoji(\"🍣\", \"Foods\", [\"sushi\"]),\r\n new Emoji(\"🍱\", \"Foods\", [\"bento\"]),\r\n new Emoji(\"🍛\", \"Foods\", [\"curry\"]),\r\n new Emoji(\"🍚\", \"Foods\", [\"rice\"]),\r\n new Emoji(\"🍙\", \"Foods\", [\"rice_ball\"]),\r\n new Emoji(\"🍘\", \"Foods\", [\"rice_cracker\"]),\r\n new Emoji(\"🍢\", \"Foods\", [\"oden\"]),\r\n new Emoji(\"🍡\", \"Foods\", [\"dango\"]),\r\n new Emoji(\"🍧\", \"Foods\", [\"shaved_ice\"]),\r\n new Emoji(\"🍨\", \"Foods\", [\"ice_cream\"]),\r\n new Emoji(\"🍦\", \"Foods\", [\"icecream\"]),\r\n new Emoji(\"🍰\", \"Foods\", [\"cake\"]),\r\n new Emoji(\"🎂\", \"Foods\", [\"birthday\"]),\r\n new Emoji(\"🍮\", \"Foods\", [\"custard\"]),\r\n new Emoji(\"🍭\", \"Foods\", [\"lollipop\"]),\r\n new Emoji(\"🍬\", \"Foods\", [\"candy\"]),\r\n new Emoji(\"🍫\", \"Foods\", [\"chocolate_bar\"]),\r\n new Emoji(\"🍿\", \"Foods\", [\"popcorn\"]),\r\n new Emoji(\"🍩\", \"Foods\", [\"doughnut\"]),\r\n new Emoji(\"🍪\", \"Foods\", [\"cookie\"]),\r\n new Emoji(\"🥛\", \"Foods\", [\"milk_glass\"]),\r\n new Emoji(\"🍼\", \"Foods\", [\"baby_bottle\"]),\r\n new Emoji(\"☕️\", \"Foods\", [\"coffee\"]),\r\n new Emoji(\"🍵\", \"Foods\", [\"tea\"]),\r\n new Emoji(\"🍶\", \"Foods\", [\"sake\"]),\r\n new Emoji(\"🍺\", \"Foods\", [\"beer\"]),\r\n new Emoji(\"🍻\", \"Foods\", [\"beers\"]),\r\n new Emoji(\"🥂\", \"Foods\", [\"clinking_glasses\"]),\r\n new Emoji(\"🍷\", \"Foods\", [\"wine_glass\"]),\r\n new Emoji(\"🥃\", \"Foods\", [\"tumbler_glass\"]),\r\n new Emoji(\"🍸\", \"Foods\", [\"cocktail\"]),\r\n new Emoji(\"🍹\", \"Foods\", [\"tropical_drink\"]),\r\n new Emoji(\"🍾\", \"Foods\", [\"champagne\"]),\r\n new Emoji(\"🥄\", \"Foods\", [\"spoon\"]),\r\n new Emoji(\"🍴\", \"Foods\", [\"fork_and_knife\"]),\r\n new Emoji(\"🍽\", \"Foods\", [\"plate_with_cutlery\"]),\r\n new Emoji(\"⚽️\", \"Activity\", [\"soccer\"]),\r\n new Emoji(\"🏀\", \"Activity\", [\"basketball\"]),\r\n new Emoji(\"🏈\", \"Activity\", [\"football\"]),\r\n new Emoji(\"⚾️\", \"Activity\", [\"baseball\"]),\r\n new Emoji(\"🎾\", \"Activity\", [\"tennis\"]),\r\n new Emoji(\"🏐\", \"Activity\", [\"volleyball\"]),\r\n new Emoji(\"🏉\", \"Activity\", [\"rugby_football\"]),\r\n new Emoji(\"🎱\", \"Activity\", [\"8ball\"]),\r\n new Emoji(\"🏓\", \"Activity\", [\"ping_pong\"]),\r\n new Emoji(\"🏸\", \"Activity\", [\"badminton\"]),\r\n new Emoji(\"🥅\", \"Activity\", [\"goal_net\"]),\r\n new Emoji(\"🏒\", \"Activity\", [\"ice_hockey\"]),\r\n new Emoji(\"🏑\", \"Activity\", [\"field_hockey\"]),\r\n new Emoji(\"🏏\", \"Activity\", [\"cricket\"]),\r\n new Emoji(\"⛳️\", \"Activity\", [\"golf\"]),\r\n new Emoji(\"🏹\", \"Activity\", [\"bow_and_arrow\"]),\r\n new Emoji(\"🎣\", \"Activity\", [\"fishing_pole_and_fish\"]),\r\n new Emoji(\"🥊\", \"Activity\", [\"boxing_glove\"]),\r\n new Emoji(\"🥋\", \"Activity\", [\"martial_arts_uniform\"]),\r\n new Emoji(\"⛸\", \"Activity\", [\"ice_skate\"]),\r\n new Emoji(\"🎿\", \"Activity\", [\"ski\"]),\r\n new Emoji(\"⛷\", \"Activity\", [\"skier\"]),\r\n new Emoji(\"🏂\", \"Activity\", [\"snowboarder\"]),\r\n new Emoji(\"🏋️‍♀️\", \"Activity\", [\"weight_lifting_woman\"]),\r\n new Emoji(\"🏋\", \"Activity\", [\"weight_lifting_man\"]),\r\n new Emoji(\"🤺\", \"Activity\", [\"person_fencing\"]),\r\n new Emoji(\"🤼‍♀\", \"Activity\", [\"women_wrestling\"]),\r\n new Emoji(\"🤼‍♂\", \"Activity\", [\"men_wrestling\"]),\r\n new Emoji(\"🤸‍♀\", \"Activity\", [\"woman_cartwheeling\"]),\r\n new Emoji(\"🤸‍♂\", \"Activity\", [\"man_cartwheeling\"]),\r\n new Emoji(\"⛹️‍♀️\", \"Activity\", [\"basketball_woman\"]),\r\n new Emoji(\"⛹\", \"Activity\", [\"basketball_man\"]),\r\n new Emoji(\"🤾‍♀\", \"Activity\", [\"woman_playing_handball\"]),\r\n new Emoji(\"🤾‍♂\", \"Activity\", [\"man_playing_handball\"]),\r\n new Emoji(\"🏌️‍♀️\", \"Activity\", [\"golfing_woman\"]),\r\n new Emoji(\"🏌\", \"Activity\", [\"golfing_man\"]),\r\n new Emoji(\"🏄‍♀\", \"Activity\", [\"surfing_woman\"]),\r\n new Emoji(\"🏄\", \"Activity\", [\"surfing_man\", \"surfer\"]),\r\n new Emoji(\"🏊‍♀\", \"Activity\", [\"swimming_woman\"]),\r\n new Emoji(\"🏊\", \"Activity\", [\"swimming_man\", \"swimmer\"]),\r\n new Emoji(\"🤽‍♀\", \"Activity\", [\"woman_playing_water_polo\"]),\r\n new Emoji(\"🤽‍♂\", \"Activity\", [\"man_playing_water_polo\"]),\r\n new Emoji(\"🚣‍♀\", \"Activity\", [\"rowing_woman\"]),\r\n new Emoji(\"🚣\", \"Activity\", [\"rowing_man\", \"rowboat\"]),\r\n new Emoji(\"🏇\", \"Activity\", [\"horse_racing\"]),\r\n new Emoji(\"🚴‍♀\", \"Activity\", [\"biking_woman\"]),\r\n new Emoji(\"🚴\", \"Activity\", [\"biking_man\", \"bicyclist\"]),\r\n new Emoji(\"🚵‍♀\", \"Activity\", [\"mountain_biking_woman\"]),\r\n new Emoji(\"🚵\", \"Activity\", [\"mountain_biking_man\", \"mountain_bicyclist\"]),\r\n new Emoji(\"🎽\", \"Activity\", [\"running_shirt_with_sash\"]),\r\n new Emoji(\"🏅\", \"Activity\", [\"medal_sports\"]),\r\n new Emoji(\"🎖\", \"Activity\", [\"medal_military\"]),\r\n new Emoji(\"🥇\", \"Activity\", [\"1st_place_medal\"]),\r\n new Emoji(\"🥈\", \"Activity\", [\"2nd_place_medal\"]),\r\n new Emoji(\"🥉\", \"Activity\", [\"3rd_place_medal\"]),\r\n new Emoji(\"🏆\", \"Activity\", [\"trophy\"]),\r\n new Emoji(\"🏵\", \"Activity\", [\"rosette\"]),\r\n new Emoji(\"🎗\", \"Activity\", [\"reminder_ribbon\"]),\r\n new Emoji(\"🎫\", \"Activity\", [\"ticket\"]),\r\n new Emoji(\"🎟\", \"Activity\", [\"tickets\"]),\r\n new Emoji(\"🎪\", \"Activity\", [\"circus_tent\"]),\r\n new Emoji(\"🤹‍♀\", \"Activity\", [\"woman_juggling\"]),\r\n new Emoji(\"🤹‍♂\", \"Activity\", [\"man_juggling\"]),\r\n new Emoji(\"🎭\", \"Activity\", [\"performing_arts\"]),\r\n new Emoji(\"🎨\", \"Activity\", [\"art\"]),\r\n new Emoji(\"🎬\", \"Activity\", [\"clapper\"]),\r\n new Emoji(\"🎤\", \"Activity\", [\"microphone\"]),\r\n new Emoji(\"🎧\", \"Activity\", [\"headphones\"]),\r\n new Emoji(\"🎼\", \"Activity\", [\"musical_score\"]),\r\n new Emoji(\"🎹\", \"Activity\", [\"musical_keyboard\"]),\r\n new Emoji(\"🥁\", \"Activity\", [\"drum\"]),\r\n new Emoji(\"🎷\", \"Activity\", [\"saxophone\"]),\r\n new Emoji(\"🎺\", \"Activity\", [\"trumpet\"]),\r\n new Emoji(\"🎸\", \"Activity\", [\"guitar\"]),\r\n new Emoji(\"🎻\", \"Activity\", [\"violin\"]),\r\n new Emoji(\"🎲\", \"Activity\", [\"game_die\"]),\r\n new Emoji(\"🎯\", \"Activity\", [\"dart\"]),\r\n new Emoji(\"🎳\", \"Activity\", [\"bowling\"]),\r\n new Emoji(\"🎮\", \"Activity\", [\"video_game\"]),\r\n new Emoji(\"🎰\", \"Activity\", [\"slot_machine\"]),\r\n new Emoji(\"🚗\", \"Places\", [\"car\", \"red_car\"]),\r\n new Emoji(\"🚕\", \"Places\", [\"taxi\"]),\r\n new Emoji(\"🚙\", \"Places\", [\"blue_car\"]),\r\n new Emoji(\"🚌\", \"Places\", [\"bus\"]),\r\n new Emoji(\"🚎\", \"Places\", [\"trolleybus\"]),\r\n new Emoji(\"🏎\", \"Places\", [\"racing_car\"]),\r\n new Emoji(\"🚓\", \"Places\", [\"police_car\"]),\r\n new Emoji(\"🚑\", \"Places\", [\"ambulance\"]),\r\n new Emoji(\"🚒\", \"Places\", [\"fire_engine\"]),\r\n new Emoji(\"🚐\", \"Places\", [\"minibus\"]),\r\n new Emoji(\"🚚\", \"Places\", [\"truck\"]),\r\n new Emoji(\"🚛\", \"Places\", [\"articulated_lorry\"]),\r\n new Emoji(\"🚜\", \"Places\", [\"tractor\"]),\r\n new Emoji(\"🛴\", \"Places\", [\"kick_scooter\"]),\r\n new Emoji(\"🚲\", \"Places\", [\"bike\"]),\r\n new Emoji(\"🛵\", \"Places\", [\"motor_scooter\"]),\r\n new Emoji(\"🏍\", \"Places\", [\"motorcycle\"]),\r\n new Emoji(\"🚨\", \"Places\", [\"rotating_light\"]),\r\n new Emoji(\"🚔\", \"Places\", [\"oncoming_police_car\"]),\r\n new Emoji(\"🚍\", \"Places\", [\"oncoming_bus\"]),\r\n new Emoji(\"🚘\", \"Places\", [\"oncoming_automobile\"]),\r\n new Emoji(\"🚖\", \"Places\", [\"oncoming_taxi\"]),\r\n new Emoji(\"🚡\", \"Places\", [\"aerial_tramway\"]),\r\n new Emoji(\"🚠\", \"Places\", [\"mountain_cableway\"]),\r\n new Emoji(\"🚟\", \"Places\", [\"suspension_railway\"]),\r\n new Emoji(\"🚃\", \"Places\", [\"railway_car\"]),\r\n new Emoji(\"🚋\", \"Places\", [\"train\"]),\r\n new Emoji(\"🚞\", \"Places\", [\"mountain_railway\"]),\r\n new Emoji(\"🚝\", \"Places\", [\"monorail\"]),\r\n new Emoji(\"🚄\", \"Places\", [\"bullettrain_side\"]),\r\n new Emoji(\"🚅\", \"Places\", [\"bullettrain_front\"]),\r\n new Emoji(\"🚈\", \"Places\", [\"light_rail\"]),\r\n new Emoji(\"🚂\", \"Places\", [\"steam_locomotive\"]),\r\n new Emoji(\"🚆\", \"Places\", [\"train2\"]),\r\n new Emoji(\"🚇\", \"Places\", [\"metro\"]),\r\n new Emoji(\"🚊\", \"Places\", [\"tram\"]),\r\n new Emoji(\"🚉\", \"Places\", [\"station\"]),\r\n new Emoji(\"🚁\", \"Places\", [\"helicopter\"]),\r\n new Emoji(\"🛩\", \"Places\", [\"small_airplane\"]),\r\n new Emoji(\"✈️\", \"Places\", [\"airplane\"]),\r\n new Emoji(\"🛫\", \"Places\", [\"flight_departure\"]),\r\n new Emoji(\"🛬\", \"Places\", [\"flight_arrival\"]),\r\n new Emoji(\"🚀\", \"Places\", [\"rocket\"]),\r\n new Emoji(\"🛰\", \"Places\", [\"artificial_satellite\"]),\r\n new Emoji(\"💺\", \"Places\", [\"seat\"]),\r\n new Emoji(\"🛶\", \"Places\", [\"canoe\"]),\r\n new Emoji(\"⛵️\", \"Places\", [\"boat\", \"sailboat\"]),\r\n new Emoji(\"🛥\", \"Places\", [\"motor_boat\"]),\r\n new Emoji(\"🚤\", \"Places\", [\"speedboat\"]),\r\n new Emoji(\"🛳\", \"Places\", [\"passenger_ship\"]),\r\n new Emoji(\"⛴\", \"Places\", [\"ferry\"]),\r\n new Emoji(\"🚢\", \"Places\", [\"ship\"]),\r\n new Emoji(\"⚓️\", \"Places\", [\"anchor\"]),\r\n new Emoji(\"🚧\", \"Places\", [\"construction\"]),\r\n new Emoji(\"⛽️\", \"Places\", [\"fuelpump\"]),\r\n new Emoji(\"🚏\", \"Places\", [\"busstop\"]),\r\n new Emoji(\"🚦\", \"Places\", [\"vertical_traffic_light\"]),\r\n new Emoji(\"🚥\", \"Places\", [\"traffic_light\"]),\r\n new Emoji(\"🗺\", \"Places\", [\"world_map\"]),\r\n new Emoji(\"🗿\", \"Places\", [\"moyai\"]),\r\n new Emoji(\"🗽\", \"Places\", [\"statue_of_liberty\"]),\r\n new Emoji(\"⛲️\", \"Places\", [\"fountain\"]),\r\n new Emoji(\"🗼\", \"Places\", [\"tokyo_tower\"]),\r\n new Emoji(\"🏰\", \"Places\", [\"european_castle\"]),\r\n new Emoji(\"🏯\", \"Places\", [\"japanese_castle\"]),\r\n new Emoji(\"🏟\", \"Places\", [\"stadium\"]),\r\n new Emoji(\"🎡\", \"Places\", [\"ferris_wheel\"]),\r\n new Emoji(\"🎢\", \"Places\", [\"roller_coaster\"]),\r\n new Emoji(\"🎠\", \"Places\", [\"carousel_horse\"]),\r\n new Emoji(\"⛱\", \"Places\", [\"parasol_on_ground\"]),\r\n new Emoji(\"🏖\", \"Places\", [\"beach_umbrella\"]),\r\n new Emoji(\"🏝\", \"Places\", [\"desert_island\"]),\r\n new Emoji(\"⛰\", \"Places\", [\"mountain\"]),\r\n new Emoji(\"🏔\", \"Places\", [\"mountain_snow\"]),\r\n new Emoji(\"🗻\", \"Places\", [\"mount_fuji\"]),\r\n new Emoji(\"🌋\", \"Places\", [\"volcano\"]),\r\n new Emoji(\"🏜\", \"Places\", [\"desert\"]),\r\n new Emoji(\"🏕\", \"Places\", [\"camping\"]),\r\n new Emoji(\"⛺️\", \"Places\", [\"tent\"]),\r\n new Emoji(\"🛤\", \"Places\", [\"railway_track\"]),\r\n new Emoji(\"🛣\", \"Places\", [\"motorway\"]),\r\n new Emoji(\"🏗\", \"Places\", [\"building_construction\"]),\r\n new Emoji(\"🏭\", \"Places\", [\"factory\"]),\r\n new Emoji(\"🏠\", \"Places\", [\"house\"]),\r\n new Emoji(\"🏡\", \"Places\", [\"house_with_garden\"]),\r\n new Emoji(\"🏘\", \"Places\", [\"houses\"]),\r\n new Emoji(\"🏚\", \"Places\", [\"derelict_house\"]),\r\n new Emoji(\"🏢\", \"Places\", [\"office\"]),\r\n new Emoji(\"🏬\", \"Places\", [\"department_store\"]),\r\n new Emoji(\"🏣\", \"Places\", [\"post_office\"]),\r\n new Emoji(\"🏤\", \"Places\", [\"european_post_office\"]),\r\n new Emoji(\"🏥\", \"Places\", [\"hospital\"]),\r\n new Emoji(\"🏦\", \"Places\", [\"bank\"]),\r\n new Emoji(\"🏨\", \"Places\", [\"hotel\"]),\r\n new Emoji(\"🏪\", \"Places\", [\"convenience_store\"]),\r\n new Emoji(\"🏫\", \"Places\", [\"school\"]),\r\n new Emoji(\"🏩\", \"Places\", [\"love_hotel\"]),\r\n new Emoji(\"💒\", \"Places\", [\"wedding\"]),\r\n new Emoji(\"🏛\", \"Places\", [\"classical_building\"]),\r\n new Emoji(\"⛪️\", \"Places\", [\"church\"]),\r\n new Emoji(\"🕌\", \"Places\", [\"mosque\"]),\r\n new Emoji(\"🕍\", \"Places\", [\"synagogue\"]),\r\n new Emoji(\"🕋\", \"Places\", [\"kaaba\"]),\r\n new Emoji(\"⛩\", \"Places\", [\"shinto_shrine\"]),\r\n new Emoji(\"🗾\", \"Places\", [\"japan\"]),\r\n new Emoji(\"🎑\", \"Places\", [\"rice_scene\"]),\r\n new Emoji(\"🏞\", \"Places\", [\"national_park\"]),\r\n new Emoji(\"🌅\", \"Places\", [\"sunrise\"]),\r\n new Emoji(\"🌄\", \"Places\", [\"sunrise_over_mountains\"]),\r\n new Emoji(\"🌠\", \"Places\", [\"stars\"]),\r\n new Emoji(\"🎇\", \"Places\", [\"sparkler\"]),\r\n new Emoji(\"🎆\", \"Places\", [\"fireworks\"]),\r\n new Emoji(\"🌇\", \"Places\", [\"city_sunrise\"]),\r\n new Emoji(\"🌆\", \"Places\", [\"city_sunset\"]),\r\n new Emoji(\"🏙\", \"Places\", [\"cityscape\"]),\r\n new Emoji(\"🌃\", \"Places\", [\"night_with_stars\"]),\r\n new Emoji(\"🌌\", \"Places\", [\"milky_way\"]),\r\n new Emoji(\"🌉\", \"Places\", [\"bridge_at_night\"]),\r\n new Emoji(\"🌁\", \"Places\", [\"foggy\"]),\r\n new Emoji(\"⌚️\", \"Objects\", [\"watch\"]),\r\n new Emoji(\"📱\", \"Objects\", [\"iphone\"]),\r\n new Emoji(\"📲\", \"Objects\", [\"calling\"]),\r\n new Emoji(\"💻\", \"Objects\", [\"computer\"]),\r\n new Emoji(\"⌨️\", \"Objects\", [\"keyboard\"]),\r\n new Emoji(\"🖥\", \"Objects\", [\"desktop_computer\"]),\r\n new Emoji(\"🖨\", \"Objects\", [\"printer\"]),\r\n new Emoji(\"🖱\", \"Objects\", [\"computer_mouse\"]),\r\n new Emoji(\"🖲\", \"Objects\", [\"trackball\"]),\r\n new Emoji(\"🕹\", \"Objects\", [\"joystick\"]),\r\n new Emoji(\"🗜\", \"Objects\", [\"clamp\"]),\r\n new Emoji(\"💽\", \"Objects\", [\"minidisc\"]),\r\n new Emoji(\"💾\", \"Objects\", [\"floppy_disk\"]),\r\n new Emoji(\"💿\", \"Objects\", [\"cd\"]),\r\n new Emoji(\"📀\", \"Objects\", [\"dvd\"]),\r\n new Emoji(\"📼\", \"Objects\", [\"vhs\"]),\r\n new Emoji(\"📷\", \"Objects\", [\"camera\"]),\r\n new Emoji(\"📸\", \"Objects\", [\"camera_flash\"]),\r\n new Emoji(\"📹\", \"Objects\", [\"video_camera\"]),\r\n new Emoji(\"🎥\", \"Objects\", [\"movie_camera\"]),\r\n new Emoji(\"📽\", \"Objects\", [\"film_projector\"]),\r\n new Emoji(\"🎞\", \"Objects\", [\"film_strip\"]),\r\n new Emoji(\"📞\", \"Objects\", [\"telephone_receiver\"]),\r\n new Emoji(\"☎️\", \"Objects\", [\"phone\", \"telephone\"]),\r\n new Emoji(\"📟\", \"Objects\", [\"pager\"]),\r\n new Emoji(\"📠\", \"Objects\", [\"fax\"]),\r\n new Emoji(\"📺\", \"Objects\", [\"tv\"]),\r\n new Emoji(\"📻\", \"Objects\", [\"radio\"]),\r\n new Emoji(\"🎙\", \"Objects\", [\"studio_microphone\"]),\r\n new Emoji(\"🎚\", \"Objects\", [\"level_slider\"]),\r\n new Emoji(\"🎛\", \"Objects\", [\"control_knobs\"]),\r\n new Emoji(\"⏱\", \"Objects\", [\"stopwatch\"]),\r\n new Emoji(\"⏲\", \"Objects\", [\"timer_clock\"]),\r\n new Emoji(\"⏰\", \"Objects\", [\"alarm_clock\"]),\r\n new Emoji(\"🕰\", \"Objects\", [\"mantelpiece_clock\"]),\r\n new Emoji(\"⌛️\", \"Objects\", [\"hourglass\"]),\r\n new Emoji(\"⏳\", \"Objects\", [\"hourglass_flowing_sand\"]),\r\n new Emoji(\"📡\", \"Objects\", [\"satellite\"]),\r\n new Emoji(\"🔋\", \"Objects\", [\"battery\"]),\r\n new Emoji(\"🔌\", \"Objects\", [\"electric_plug\"]),\r\n new Emoji(\"💡\", \"Objects\", [\"bulb\"]),\r\n new Emoji(\"🔦\", \"Objects\", [\"flashlight\"]),\r\n new Emoji(\"🕯\", \"Objects\", [\"candle\"]),\r\n new Emoji(\"🗑\", \"Objects\", [\"wastebasket\"]),\r\n new Emoji(\"🛢\", \"Objects\", [\"oil_drum\"]),\r\n new Emoji(\"💸\", \"Objects\", [\"money_with_wings\"]),\r\n new Emoji(\"💵\", \"Objects\", [\"dollar\"]),\r\n new Emoji(\"💴\", \"Objects\", [\"yen\"]),\r\n new Emoji(\"💶\", \"Objects\", [\"euro\"]),\r\n new Emoji(\"💷\", \"Objects\", [\"pound\"]),\r\n new Emoji(\"💰\", \"Objects\", [\"moneybag\"]),\r\n new Emoji(\"💳\", \"Objects\", [\"credit_card\"]),\r\n new Emoji(\"💎\", \"Objects\", [\"gem\"]),\r\n new Emoji(\"⚖️\", \"Objects\", [\"balance_scale\"]),\r\n new Emoji(\"🔧\", \"Objects\", [\"wrench\"]),\r\n new Emoji(\"🔨\", \"Objects\", [\"hammer\"]),\r\n new Emoji(\"⚒\", \"Objects\", [\"hammer_and_pick\"]),\r\n new Emoji(\"🛠\", \"Objects\", [\"hammer_and_wrench\"]),\r\n new Emoji(\"⛏\", \"Objects\", [\"pick\"]),\r\n new Emoji(\"🔩\", \"Objects\", [\"nut_and_bolt\"]),\r\n new Emoji(\"⚙️\", \"Objects\", [\"gear\"]),\r\n new Emoji(\"⛓\", \"Objects\", [\"chains\"]),\r\n new Emoji(\"🔫\", \"Objects\", [\"gun\"]),\r\n new Emoji(\"💣\", \"Objects\", [\"bomb\"]),\r\n new Emoji(\"🔪\", \"Objects\", [\"hocho\", \"knife\"]),\r\n new Emoji(\"🗡\", \"Objects\", [\"dagger\"]),\r\n new Emoji(\"⚔️\", \"Objects\", [\"crossed_swords\"]),\r\n new Emoji(\"🛡\", \"Objects\", [\"shield\"]),\r\n new Emoji(\"🚬\", \"Objects\", [\"smoking\"]),\r\n new Emoji(\"⚰️\", \"Objects\", [\"coffin\"]),\r\n new Emoji(\"⚱️\", \"Objects\", [\"funeral_urn\"]),\r\n new Emoji(\"🏺\", \"Objects\", [\"amphora\"]),\r\n new Emoji(\"🔮\", \"Objects\", [\"crystal_ball\"]),\r\n new Emoji(\"📿\", \"Objects\", [\"prayer_beads\"]),\r\n new Emoji(\"💈\", \"Objects\", [\"barber\"]),\r\n new Emoji(\"⚗️\", \"Objects\", [\"alembic\"]),\r\n new Emoji(\"🔭\", \"Objects\", [\"telescope\"]),\r\n new Emoji(\"🔬\", \"Objects\", [\"microscope\"]),\r\n new Emoji(\"🕳\", \"Objects\", [\"hole\"]),\r\n new Emoji(\"💊\", \"Objects\", [\"pill\"]),\r\n new Emoji(\"💉\", \"Objects\", [\"syringe\"]),\r\n new Emoji(\"🌡\", \"Objects\", [\"thermometer\"]),\r\n new Emoji(\"🚽\", \"Objects\", [\"toilet\"]),\r\n new Emoji(\"🚰\", \"Objects\", [\"potable_water\"]),\r\n new Emoji(\"🚿\", \"Objects\", [\"shower\"]),\r\n new Emoji(\"🛁\", \"Objects\", [\"bathtub\"]),\r\n new Emoji(\"🛀\", \"Objects\", [\"bath\"]),\r\n new Emoji(\"🛎\", \"Objects\", [\"bellhop_bell\"]),\r\n new Emoji(\"🔑\", \"Objects\", [\"key\"]),\r\n new Emoji(\"🗝\", \"Objects\", [\"old_key\"]),\r\n new Emoji(\"🚪\", \"Objects\", [\"door\"]),\r\n new Emoji(\"🛋\", \"Objects\", [\"couch_and_lamp\"]),\r\n new Emoji(\"🛏\", \"Objects\", [\"bed\"]),\r\n new Emoji(\"🛌\", \"Objects\", [\"sleeping_bed\"]),\r\n new Emoji(\"🖼\", \"Objects\", [\"framed_picture\"]),\r\n new Emoji(\"🛍\", \"Objects\", [\"shopping\"]),\r\n new Emoji(\"🛒\", \"Objects\", [\"shopping_cart\"]),\r\n new Emoji(\"🎁\", \"Objects\", [\"gift\"]),\r\n new Emoji(\"🎈\", \"Objects\", [\"balloon\"]),\r\n new Emoji(\"🎏\", \"Objects\", [\"flags\"]),\r\n new Emoji(\"🎀\", \"Objects\", [\"ribbon\"]),\r\n new Emoji(\"🎊\", \"Objects\", [\"confetti_ball\"]),\r\n new Emoji(\"🎉\", \"Objects\", [\"tada\"]),\r\n new Emoji(\"🎎\", \"Objects\", [\"dolls\"]),\r\n new Emoji(\"🏮\", \"Objects\", [\"izakaya_lantern\", \"lantern\"]),\r\n new Emoji(\"🎐\", \"Objects\", [\"wind_chime\"]),\r\n new Emoji(\"✉️\", \"Objects\", [\"email\", \"envelope\"]),\r\n new Emoji(\"📩\", \"Objects\", [\"envelope_with_arrow\"]),\r\n new Emoji(\"📨\", \"Objects\", [\"incoming_envelope\"]),\r\n new Emoji(\"📧\", \"Objects\", [\"e-mail\"]),\r\n new Emoji(\"💌\", \"Objects\", [\"love_letter\"]),\r\n new Emoji(\"📥\", \"Objects\", [\"inbox_tray\"]),\r\n new Emoji(\"📤\", \"Objects\", [\"outbox_tray\"]),\r\n new Emoji(\"📦\", \"Objects\", [\"package\"]),\r\n new Emoji(\"🏷\", \"Objects\", [\"label\"]),\r\n new Emoji(\"📪\", \"Objects\", [\"mailbox_closed\"]),\r\n new Emoji(\"📫\", \"Objects\", [\"mailbox\"]),\r\n new Emoji(\"📬\", \"Objects\", [\"mailbox_with_mail\"]),\r\n new Emoji(\"📭\", \"Objects\", [\"mailbox_with_no_mail\"]),\r\n new Emoji(\"📮\", \"Objects\", [\"postbox\"]),\r\n new Emoji(\"📯\", \"Objects\", [\"postal_horn\"]),\r\n new Emoji(\"📜\", \"Objects\", [\"scroll\"]),\r\n new Emoji(\"📃\", \"Objects\", [\"page_with_curl\"]),\r\n new Emoji(\"📄\", \"Objects\", [\"page_facing_up\"]),\r\n new Emoji(\"📑\", \"Objects\", [\"bookmark_tabs\"]),\r\n new Emoji(\"📊\", \"Objects\", [\"bar_chart\"]),\r\n new Emoji(\"📈\", \"Objects\", [\"chart_with_upwards_trend\"]),\r\n new Emoji(\"📉\", \"Objects\", [\"chart_with_downwards_trend\"]),\r\n new Emoji(\"🗒\", \"Objects\", [\"spiral_notepad\"]),\r\n new Emoji(\"🗓\", \"Objects\", [\"spiral_calendar\"]),\r\n new Emoji(\"📆\", \"Objects\", [\"calendar\"]),\r\n new Emoji(\"📅\", \"Objects\", [\"date\"]),\r\n new Emoji(\"📇\", \"Objects\", [\"card_index\"]),\r\n new Emoji(\"🗃\", \"Objects\", [\"card_file_box\"]),\r\n new Emoji(\"🗳\", \"Objects\", [\"ballot_box\"]),\r\n new Emoji(\"🗄\", \"Objects\", [\"file_cabinet\"]),\r\n new Emoji(\"📋\", \"Objects\", [\"clipboard\"]),\r\n new Emoji(\"📁\", \"Objects\", [\"file_folder\"]),\r\n new Emoji(\"📂\", \"Objects\", [\"open_file_folder\"]),\r\n new Emoji(\"🗂\", \"Objects\", [\"card_index_dividers\"]),\r\n new Emoji(\"🗞\", \"Objects\", [\"newspaper_roll\"]),\r\n new Emoji(\"📰\", \"Objects\", [\"newspaper\"]),\r\n new Emoji(\"📓\", \"Objects\", [\"notebook\"]),\r\n new Emoji(\"📔\", \"Objects\", [\"notebook_with_decorative_cover\"]),\r\n new Emoji(\"📒\", \"Objects\", [\"ledger\"]),\r\n new Emoji(\"📕\", \"Objects\", [\"closed_book\"]),\r\n new Emoji(\"📗\", \"Objects\", [\"green_book\"]),\r\n new Emoji(\"📘\", \"Objects\", [\"blue_book\"]),\r\n new Emoji(\"📙\", \"Objects\", [\"orange_book\"]),\r\n new Emoji(\"📚\", \"Objects\", [\"books\"]),\r\n new Emoji(\"📖\", \"Objects\", [\"book\", \"open_book\"]),\r\n new Emoji(\"🔖\", \"Objects\", [\"bookmark\"]),\r\n new Emoji(\"🔗\", \"Objects\", [\"link\"]),\r\n new Emoji(\"📎\", \"Objects\", [\"paperclip\"]),\r\n new Emoji(\"🖇\", \"Objects\", [\"paperclips\"]),\r\n new Emoji(\"📐\", \"Objects\", [\"triangular_ruler\"]),\r\n new Emoji(\"📏\", \"Objects\", [\"straight_ruler\"]),\r\n new Emoji(\"📌\", \"Objects\", [\"pushpin\"]),\r\n new Emoji(\"📍\", \"Objects\", [\"round_pushpin\"]),\r\n new Emoji(\"✂️\", \"Objects\", [\"scissors\"]),\r\n new Emoji(\"🖊\", \"Objects\", [\"pen\"]),\r\n new Emoji(\"🖋\", \"Objects\", [\"fountain_pen\"]),\r\n new Emoji(\"✒️\", \"Objects\", [\"black_nib\"]),\r\n new Emoji(\"🖌\", \"Objects\", [\"paintbrush\"]),\r\n new Emoji(\"🖍\", \"Objects\", [\"crayon\"]),\r\n new Emoji(\"📝\", \"Objects\", [\"memo\", \"pencil\"]),\r\n new Emoji(\"✏️\", \"Objects\", [\"pencil2\"]),\r\n new Emoji(\"🔍\", \"Objects\", [\"mag\"]),\r\n new Emoji(\"🔎\", \"Objects\", [\"mag_right\"]),\r\n new Emoji(\"🔏\", \"Objects\", [\"lock_with_ink_pen\"]),\r\n new Emoji(\"🔐\", \"Objects\", [\"closed_lock_with_key\"]),\r\n new Emoji(\"🔒\", \"Objects\", [\"lock\"]),\r\n new Emoji(\"🔓\", \"Objects\", [\"unlock\"]),\r\n new Emoji(\"❤️\", \"Symbols\", [\"heart\"]),\r\n new Emoji(\"💛\", \"Symbols\", [\"yellow_heart\"]),\r\n new Emoji(\"💚\", \"Symbols\", [\"green_heart\"]),\r\n new Emoji(\"💙\", \"Symbols\", [\"blue_heart\"]),\r\n new Emoji(\"💜\", \"Symbols\", [\"purple_heart\"]),\r\n new Emoji(\"🖤\", \"Symbols\", [\"black_heart\"]),\r\n new Emoji(\"💔\", \"Symbols\", [\"broken_heart\"]),\r\n new Emoji(\"❣️\", \"Symbols\", [\"heavy_heart_exclamation\"]),\r\n new Emoji(\"💕\", \"Symbols\", [\"two_hearts\"]),\r\n new Emoji(\"💞\", \"Symbols\", [\"revolving_hearts\"]),\r\n new Emoji(\"💓\", \"Symbols\", [\"heartbeat\"]),\r\n new Emoji(\"💗\", \"Symbols\", [\"heartpulse\"]),\r\n new Emoji(\"💖\", \"Symbols\", [\"sparkling_heart\"]),\r\n new Emoji(\"💘\", \"Symbols\", [\"cupid\"]),\r\n new Emoji(\"💝\", \"Symbols\", [\"gift_heart\"]),\r\n new Emoji(\"💟\", \"Symbols\", [\"heart_decoration\"]),\r\n new Emoji(\"☮️\", \"Symbols\", [\"peace_symbol\"]),\r\n new Emoji(\"✝️\", \"Symbols\", [\"latin_cross\"]),\r\n new Emoji(\"☪️\", \"Symbols\", [\"star_and_crescent\"]),\r\n new Emoji(\"🕉\", \"Symbols\", [\"om\"]),\r\n new Emoji(\"☸️\", \"Symbols\", [\"wheel_of_dharma\"]),\r\n new Emoji(\"✡️\", \"Symbols\", [\"star_of_david\"]),\r\n new Emoji(\"🔯\", \"Symbols\", [\"six_pointed_star\"]),\r\n new Emoji(\"🕎\", \"Symbols\", [\"menorah\"]),\r\n new Emoji(\"☯️\", \"Symbols\", [\"yin_yang\"]),\r\n new Emoji(\"☦️\", \"Symbols\", [\"orthodox_cross\"]),\r\n new Emoji(\"🛐\", \"Symbols\", [\"place_of_worship\"]),\r\n new Emoji(\"⛎\", \"Symbols\", [\"ophiuchus\"]),\r\n new Emoji(\"♈️\", \"Symbols\", [\"aries\"]),\r\n new Emoji(\"♉️\", \"Symbols\", [\"taurus\"]),\r\n new Emoji(\"♊️\", \"Symbols\", [\"gemini\"]),\r\n new Emoji(\"♋️\", \"Symbols\", [\"cancer\"]),\r\n new Emoji(\"♌️\", \"Symbols\", [\"leo\"]),\r\n new Emoji(\"♍️\", \"Symbols\", [\"virgo\"]),\r\n new Emoji(\"♎️\", \"Symbols\", [\"libra\"]),\r\n new Emoji(\"♏️\", \"Symbols\", [\"scorpius\"]),\r\n new Emoji(\"♐️\", \"Symbols\", [\"sagittarius\"]),\r\n new Emoji(\"♑️\", \"Symbols\", [\"capricorn\"]),\r\n new Emoji(\"♒️\", \"Symbols\", [\"aquarius\"]),\r\n new Emoji(\"♓️\", \"Symbols\", [\"pisces\"]),\r\n new Emoji(\"🆔\", \"Symbols\", [\"id\"]),\r\n new Emoji(\"⚛️\", \"Symbols\", [\"atom_symbol\"]),\r\n new Emoji(\"🉑\", \"Symbols\", [\"accept\"]),\r\n new Emoji(\"☢️\", \"Symbols\", [\"radioactive\"]),\r\n new Emoji(\"☣️\", \"Symbols\", [\"biohazard\"]),\r\n new Emoji(\"📴\", \"Symbols\", [\"mobile_phone_off\"]),\r\n new Emoji(\"📳\", \"Symbols\", [\"vibration_mode\"]),\r\n new Emoji(\"🈶\", \"Symbols\", [\"u6709\"]),\r\n new Emoji(\"🈚️\", \"Symbols\", [\"u7121\"]),\r\n new Emoji(\"🈸\", \"Symbols\", [\"u7533\"]),\r\n new Emoji(\"🈺\", \"Symbols\", [\"u55b6\"]),\r\n new Emoji(\"🈷️\", \"Symbols\", [\"u6708\"]),\r\n new Emoji(\"✴️\", \"Symbols\", [\"eight_pointed_black_star\"]),\r\n new Emoji(\"🆚\", \"Symbols\", [\"vs\"]),\r\n new Emoji(\"💮\", \"Symbols\", [\"white_flower\"]),\r\n new Emoji(\"🉐\", \"Symbols\", [\"ideograph_advantage\"]),\r\n new Emoji(\"㊙️\", \"Symbols\", [\"secret\"]),\r\n new Emoji(\"㊗️\", \"Symbols\", [\"congratulations\"]),\r\n new Emoji(\"🈴\", \"Symbols\", [\"u5408\"]),\r\n new Emoji(\"🈵\", \"Symbols\", [\"u6e80\"]),\r\n new Emoji(\"🈹\", \"Symbols\", [\"u5272\"]),\r\n new Emoji(\"🈲\", \"Symbols\", [\"u7981\"]),\r\n new Emoji(\"🅰️\", \"Symbols\", [\"a\"]),\r\n new Emoji(\"🅱️\", \"Symbols\", [\"b\"]),\r\n new Emoji(\"🆎\", \"Symbols\", [\"ab\"]),\r\n new Emoji(\"🆑\", \"Symbols\", [\"cl\"]),\r\n new Emoji(\"🅾️\", \"Symbols\", [\"o2\"]),\r\n new Emoji(\"🆘\", \"Symbols\", [\"sos\"]),\r\n new Emoji(\"❌\", \"Symbols\", [\"x\"]),\r\n new Emoji(\"⭕️\", \"Symbols\", [\"o\"]),\r\n new Emoji(\"🛑\", \"Symbols\", [\"stop_sign\"]),\r\n new Emoji(\"⛔️\", \"Symbols\", [\"no_entry\"]),\r\n new Emoji(\"📛\", \"Symbols\", [\"name_badge\"]),\r\n new Emoji(\"🚫\", \"Symbols\", [\"no_entry_sign\"]),\r\n new Emoji(\"💯\", \"Symbols\", [\"100\"]),\r\n new Emoji(\"💢\", \"Symbols\", [\"anger\"]),\r\n new Emoji(\"♨️\", \"Symbols\", [\"hotsprings\"]),\r\n new Emoji(\"🚷\", \"Symbols\", [\"no_pedestrians\"]),\r\n new Emoji(\"🚯\", \"Symbols\", [\"do_not_litter\"]),\r\n new Emoji(\"🚳\", \"Symbols\", [\"no_bicycles\"]),\r\n new Emoji(\"🚱\", \"Symbols\", [\"non-potable_water\"]),\r\n new Emoji(\"🔞\", \"Symbols\", [\"underage\"]),\r\n new Emoji(\"📵\", \"Symbols\", [\"no_mobile_phones\"]),\r\n new Emoji(\"🚭\", \"Symbols\", [\"no_smoking\"]),\r\n new Emoji(\"❗️\", \"Symbols\", [\"exclamation\", \"heavy_exclamation_mark\"]),\r\n new Emoji(\"❕\", \"Symbols\", [\"grey_exclamation\"]),\r\n new Emoji(\"❓\", \"Symbols\", [\"question\"]),\r\n new Emoji(\"❔\", \"Symbols\", [\"grey_question\"]),\r\n new Emoji(\"‼️\", \"Symbols\", [\"bangbang\"]),\r\n new Emoji(\"⁉️\", \"Symbols\", [\"interrobang\"]),\r\n new Emoji(\"🔅\", \"Symbols\", [\"low_brightness\"]),\r\n new Emoji(\"🔆\", \"Symbols\", [\"high_brightness\"]),\r\n new Emoji(\"〽️\", \"Symbols\", [\"part_alternation_mark\"]),\r\n new Emoji(\"⚠️\", \"Symbols\", [\"warning\"]),\r\n new Emoji(\"🚸\", \"Symbols\", [\"children_crossing\"]),\r\n new Emoji(\"🔱\", \"Symbols\", [\"trident\"]),\r\n new Emoji(\"⚜️\", \"Symbols\", [\"fleur_de_lis\"]),\r\n new Emoji(\"🔰\", \"Symbols\", [\"beginner\"]),\r\n new Emoji(\"♻️\", \"Symbols\", [\"recycle\"]),\r\n new Emoji(\"✅\", \"Symbols\", [\"white_check_mark\"]),\r\n new Emoji(\"🈯️\", \"Symbols\", [\"u6307\"]),\r\n new Emoji(\"💹\", \"Symbols\", [\"chart\"]),\r\n new Emoji(\"❇️\", \"Symbols\", [\"sparkle\"]),\r\n new Emoji(\"✳️\", \"Symbols\", [\"eight_spoked_asterisk\"]),\r\n new Emoji(\"❎\", \"Symbols\", [\"negative_squared_cross_mark\"]),\r\n new Emoji(\"🌐\", \"Symbols\", [\"globe_with_meridians\"]),\r\n new Emoji(\"💠\", \"Symbols\", [\"diamond_shape_with_a_dot_inside\"]),\r\n new Emoji(\"Ⓜ️\", \"Symbols\", [\"m\"]),\r\n new Emoji(\"🌀\", \"Symbols\", [\"cyclone\"]),\r\n new Emoji(\"💤\", \"Symbols\", [\"zzz\"]),\r\n new Emoji(\"🏧\", \"Symbols\", [\"atm\"]),\r\n new Emoji(\"🚾\", \"Symbols\", [\"wc\"]),\r\n new Emoji(\"♿️\", \"Symbols\", [\"wheelchair\"]),\r\n new Emoji(\"🅿️\", \"Symbols\", [\"parking\"]),\r\n new Emoji(\"🈳\", \"Symbols\", [\"u7a7a\"]),\r\n new Emoji(\"🈂️\", \"Symbols\", [\"sa\"]),\r\n new Emoji(\"🛂\", \"Symbols\", [\"passport_control\"]),\r\n new Emoji(\"🛃\", \"Symbols\", [\"customs\"]),\r\n new Emoji(\"🛄\", \"Symbols\", [\"baggage_claim\"]),\r\n new Emoji(\"🛅\", \"Symbols\", [\"left_luggage\"]),\r\n new Emoji(\"🚹\", \"Symbols\", [\"mens\"]),\r\n new Emoji(\"🚺\", \"Symbols\", [\"womens\"]),\r\n new Emoji(\"🚼\", \"Symbols\", [\"baby_symbol\"]),\r\n new Emoji(\"🚻\", \"Symbols\", [\"restroom\"]),\r\n new Emoji(\"🚮\", \"Symbols\", [\"put_litter_in_its_place\"]),\r\n new Emoji(\"🎦\", \"Symbols\", [\"cinema\"]),\r\n new Emoji(\"📶\", \"Symbols\", [\"signal_strength\"]),\r\n new Emoji(\"🈁\", \"Symbols\", [\"koko\"]),\r\n new Emoji(\"🔣\", \"Symbols\", [\"symbols\"]),\r\n new Emoji(\"ℹ️\", \"Symbols\", [\"information_source\"]),\r\n new Emoji(\"🔤\", \"Symbols\", [\"abc\"]),\r\n new Emoji(\"🔡\", \"Symbols\", [\"abcd\"]),\r\n new Emoji(\"🔠\", \"Symbols\", [\"capital_abcd\"]),\r\n new Emoji(\"🆖\", \"Symbols\", [\"ng\"]),\r\n new Emoji(\"🆗\", \"Symbols\", [\"ok\"]),\r\n new Emoji(\"🆙\", \"Symbols\", [\"up\"]),\r\n new Emoji(\"🆒\", \"Symbols\", [\"cool\"]),\r\n new Emoji(\"🆕\", \"Symbols\", [\"new\"]),\r\n new Emoji(\"🆓\", \"Symbols\", [\"free\"]),\r\n new Emoji(\"0️⃣\", \"Symbols\", [\"zero\"]),\r\n new Emoji(\"1️⃣\", \"Symbols\", [\"one\"]),\r\n new Emoji(\"2️⃣\", \"Symbols\", [\"two\"]),\r\n new Emoji(\"3️⃣\", \"Symbols\", [\"three\"]),\r\n new Emoji(\"4️⃣\", \"Symbols\", [\"four\"]),\r\n new Emoji(\"5️⃣\", \"Symbols\", [\"five\"]),\r\n new Emoji(\"6️⃣\", \"Symbols\", [\"six\"]),\r\n new Emoji(\"7️⃣\", \"Symbols\", [\"seven\"]),\r\n new Emoji(\"8️⃣\", \"Symbols\", [\"eight\"]),\r\n new Emoji(\"9️⃣\", \"Symbols\", [\"nine\"]),\r\n new Emoji(\"🔟\", \"Symbols\", [\"keycap_ten\"]),\r\n new Emoji(\"🔢\", \"Symbols\", [\"1234\"]),\r\n new Emoji(\"#️⃣\", \"Symbols\", [\"hash\"]),\r\n new Emoji(\"*️⃣\", \"Symbols\", [\"asterisk\"]),\r\n new Emoji(\"▶️\", \"Symbols\", [\"arrow_forward\"]),\r\n new Emoji(\"⏸\", \"Symbols\", [\"pause_button\"]),\r\n new Emoji(\"⏯\", \"Symbols\", [\"play_or_pause_button\"]),\r\n new Emoji(\"⏹\", \"Symbols\", [\"stop_button\"]),\r\n new Emoji(\"⏺\", \"Symbols\", [\"record_button\"]),\r\n new Emoji(\"⏭\", \"Symbols\", [\"next_track_button\"]),\r\n new Emoji(\"⏮\", \"Symbols\", [\"previous_track_button\"]),\r\n new Emoji(\"⏩\", \"Symbols\", [\"fast_forward\"]),\r\n new Emoji(\"⏪\", \"Symbols\", [\"rewind\"]),\r\n new Emoji(\"⏫\", \"Symbols\", [\"arrow_double_up\"]),\r\n new Emoji(\"⏬\", \"Symbols\", [\"arrow_double_down\"]),\r\n new Emoji(\"◀️\", \"Symbols\", [\"arrow_backward\"]),\r\n new Emoji(\"🔼\", \"Symbols\", [\"arrow_up_small\"]),\r\n new Emoji(\"🔽\", \"Symbols\", [\"arrow_down_small\"]),\r\n new Emoji(\"➡️\", \"Symbols\", [\"arrow_right\"]),\r\n new Emoji(\"⬅️\", \"Symbols\", [\"arrow_left\"]),\r\n new Emoji(\"⬆️\", \"Symbols\", [\"arrow_up\"]),\r\n new Emoji(\"⬇️\", \"Symbols\", [\"arrow_down\"]),\r\n new Emoji(\"↗️\", \"Symbols\", [\"arrow_upper_right\"]),\r\n new Emoji(\"↘️\", \"Symbols\", [\"arrow_lower_right\"]),\r\n new Emoji(\"↙️\", \"Symbols\", [\"arrow_lower_left\"]),\r\n new Emoji(\"↖️\", \"Symbols\", [\"arrow_upper_left\"]),\r\n new Emoji(\"↕️\", \"Symbols\", [\"arrow_up_down\"]),\r\n new Emoji(\"↔️\", \"Symbols\", [\"left_right_arrow\"]),\r\n new Emoji(\"↪️\", \"Symbols\", [\"arrow_right_hook\"]),\r\n new Emoji(\"↩️\", \"Symbols\", [\"leftwards_arrow_with_hook\"]),\r\n new Emoji(\"⤴️\", \"Symbols\", [\"arrow_heading_up\"]),\r\n new Emoji(\"⤵️\", \"Symbols\", [\"arrow_heading_down\"]),\r\n new Emoji(\"🔀\", \"Symbols\", [\"twisted_rightwards_arrows\"]),\r\n new Emoji(\"🔁\", \"Symbols\", [\"repeat\"]),\r\n new Emoji(\"🔂\", \"Symbols\", [\"repeat_one\"]),\r\n new Emoji(\"🔄\", \"Symbols\", [\"arrows_counterclockwise\"]),\r\n new Emoji(\"🔃\", \"Symbols\", [\"arrows_clockwise\"]),\r\n new Emoji(\"🎵\", \"Symbols\", [\"musical_note\"]),\r\n new Emoji(\"🎶\", \"Symbols\", [\"notes\"]),\r\n new Emoji(\"➕\", \"Symbols\", [\"heavy_plus_sign\"]),\r\n new Emoji(\"➖\", \"Symbols\", [\"heavy_minus_sign\"]),\r\n new Emoji(\"➗\", \"Symbols\", [\"heavy_division_sign\"]),\r\n new Emoji(\"✖️\", \"Symbols\", [\"heavy_multiplication_x\"]),\r\n new Emoji(\"💲\", \"Symbols\", [\"heavy_dollar_sign\"]),\r\n new Emoji(\"💱\", \"Symbols\", [\"currency_exchange\"]),\r\n new Emoji(\"™️\", \"Symbols\", [\"tm\"]),\r\n new Emoji(\"©️\", \"Symbols\", [\"copyright\"]),\r\n new Emoji(\"®️\", \"Symbols\", [\"registered\"]),\r\n new Emoji(\"〰️\", \"Symbols\", [\"wavy_dash\"]),\r\n new Emoji(\"➰\", \"Symbols\", [\"curly_loop\"]),\r\n new Emoji(\"➿\", \"Symbols\", [\"loop\"]),\r\n new Emoji(\"🔚\", \"Symbols\", [\"end\"]),\r\n new Emoji(\"🔙\", \"Symbols\", [\"back\"]),\r\n new Emoji(\"🔛\", \"Symbols\", [\"on\"]),\r\n new Emoji(\"🔝\", \"Symbols\", [\"top\"]),\r\n new Emoji(\"🔜\", \"Symbols\", [\"soon\"]),\r\n new Emoji(\"✔️\", \"Symbols\", [\"heavy_check_mark\"]),\r\n new Emoji(\"☑️\", \"Symbols\", [\"ballot_box_with_check\"]),\r\n new Emoji(\"🔘\", \"Symbols\", [\"radio_button\"]),\r\n new Emoji(\"⚪️\", \"Symbols\", [\"white_circle\"]),\r\n new Emoji(\"⚫️\", \"Symbols\", [\"black_circle\"]),\r\n new Emoji(\"🔴\", \"Symbols\", [\"red_circle\"]),\r\n new Emoji(\"🔵\", \"Symbols\", [\"large_blue_circle\"]),\r\n new Emoji(\"🔺\", \"Symbols\", [\"small_red_triangle\"]),\r\n new Emoji(\"🔻\", \"Symbols\", [\"small_red_triangle_down\"]),\r\n new Emoji(\"🔸\", \"Symbols\", [\"small_orange_diamond\"]),\r\n new Emoji(\"🔹\", \"Symbols\", [\"small_blue_diamond\"]),\r\n new Emoji(\"🔶\", \"Symbols\", [\"large_orange_diamond\"]),\r\n new Emoji(\"🔷\", \"Symbols\", [\"large_blue_diamond\"]),\r\n new Emoji(\"🔳\", \"Symbols\", [\"white_square_button\"]),\r\n new Emoji(\"🔲\", \"Symbols\", [\"black_square_button\"]),\r\n new Emoji(\"▪️\", \"Symbols\", [\"black_small_square\"]),\r\n new Emoji(\"▫️\", \"Symbols\", [\"white_small_square\"]),\r\n new Emoji(\"◾️\", \"Symbols\", [\"black_medium_small_square\"]),\r\n new Emoji(\"◽️\", \"Symbols\", [\"white_medium_small_square\"]),\r\n new Emoji(\"◼️\", \"Symbols\", [\"black_medium_square\"]),\r\n new Emoji(\"◻️\", \"Symbols\", [\"white_medium_square\"]),\r\n new Emoji(\"⬛️\", \"Symbols\", [\"black_large_square\"]),\r\n new Emoji(\"⬜️\", \"Symbols\", [\"white_large_square\"]),\r\n new Emoji(\"🔈\", \"Symbols\", [\"speaker\"]),\r\n new Emoji(\"🔇\", \"Symbols\", [\"mute\"]),\r\n new Emoji(\"🔉\", \"Symbols\", [\"sound\"]),\r\n new Emoji(\"🔊\", \"Symbols\", [\"loud_sound\"]),\r\n new Emoji(\"🔔\", \"Symbols\", [\"bell\"]),\r\n new Emoji(\"🔕\", \"Symbols\", [\"no_bell\"]),\r\n new Emoji(\"📣\", \"Symbols\", [\"mega\"]),\r\n new Emoji(\"📢\", \"Symbols\", [\"loudspeaker\"]),\r\n new Emoji(\"👁‍🗨\", \"Symbols\", [\"eye_speech_bubble\"]),\r\n new Emoji(\"💬\", \"Symbols\", [\"speech_balloon\"]),\r\n new Emoji(\"💭\", \"Symbols\", [\"thought_balloon\"]),\r\n new Emoji(\"🗯\", \"Symbols\", [\"right_anger_bubble\"]),\r\n new Emoji(\"♠️\", \"Symbols\", [\"spades\"]),\r\n new Emoji(\"♣️\", \"Symbols\", [\"clubs\"]),\r\n new Emoji(\"♥️\", \"Symbols\", [\"hearts\"]),\r\n new Emoji(\"♦️\", \"Symbols\", [\"diamonds\"]),\r\n new Emoji(\"🃏\", \"Symbols\", [\"black_joker\"]),\r\n new Emoji(\"🎴\", \"Symbols\", [\"flower_playing_cards\"]),\r\n new Emoji(\"🀄️\", \"Symbols\", [\"mahjong\"]),\r\n new Emoji(\"🕐\", \"Symbols\", [\"clock1\"]),\r\n new Emoji(\"🕑\", \"Symbols\", [\"clock2\"]),\r\n new Emoji(\"🕒\", \"Symbols\", [\"clock3\"]),\r\n new Emoji(\"🕓\", \"Symbols\", [\"clock4\"]),\r\n new Emoji(\"🕔\", \"Symbols\", [\"clock5\"]),\r\n new Emoji(\"🕕\", \"Symbols\", [\"clock6\"]),\r\n new Emoji(\"🕖\", \"Symbols\", [\"clock7\"]),\r\n new Emoji(\"🕗\", \"Symbols\", [\"clock8\"]),\r\n new Emoji(\"🕘\", \"Symbols\", [\"clock9\"]),\r\n new Emoji(\"🕙\", \"Symbols\", [\"clock10\"]),\r\n new Emoji(\"🕚\", \"Symbols\", [\"clock11\"]),\r\n new Emoji(\"🕛\", \"Symbols\", [\"clock12\"]),\r\n new Emoji(\"🕜\", \"Symbols\", [\"clock130\"]),\r\n new Emoji(\"🕝\", \"Symbols\", [\"clock230\"]),\r\n new Emoji(\"🕞\", \"Symbols\", [\"clock330\"]),\r\n new Emoji(\"🕟\", \"Symbols\", [\"clock430\"]),\r\n new Emoji(\"🕠\", \"Symbols\", [\"clock530\"]),\r\n new Emoji(\"🕡\", \"Symbols\", [\"clock630\"]),\r\n new Emoji(\"🕢\", \"Symbols\", [\"clock730\"]),\r\n new Emoji(\"🕣\", \"Symbols\", [\"clock830\"]),\r\n new Emoji(\"🕤\", \"Symbols\", [\"clock930\"]),\r\n new Emoji(\"🕥\", \"Symbols\", [\"clock1030\"]),\r\n new Emoji(\"🕦\", \"Symbols\", [\"clock1130\"]),\r\n new Emoji(\"🕧\", \"Symbols\", [\"clock1230\"]),\r\n new Emoji(\"🏳️\", \"Flags\", [\"white_flag\"]),\r\n new Emoji(\"🏴\", \"Flags\", [\"black_flag\"]),\r\n new Emoji(\"🏁\", \"Flags\", [\"checkered_flag\"]),\r\n new Emoji(\"🚩\", \"Flags\", [\"triangular_flag_on_post\"]),\r\n new Emoji(\"🏳️‍🌈\", \"Flags\", [\"rainbow_flag\"]),\r\n new Emoji(\"🇦🇫\", \"Flags\", [\"afghanistan\"]),\r\n new Emoji(\"🇦🇽\", \"Flags\", [\"aland_islands\"]),\r\n new Emoji(\"🇦🇱\", \"Flags\", [\"albania\"]),\r\n new Emoji(\"🇩🇿\", \"Flags\", [\"algeria\"]),\r\n new Emoji(\"🇦🇸\", \"Flags\", [\"american_samoa\"]),\r\n new Emoji(\"🇦🇩\", \"Flags\", [\"andorra\"]),\r\n new Emoji(\"🇦🇴\", \"Flags\", [\"angola\"]),\r\n new Emoji(\"🇦🇮\", \"Flags\", [\"anguilla\"]),\r\n new Emoji(\"🇦🇶\", \"Flags\", [\"antarctica\"]),\r\n new Emoji(\"🇦🇬\", \"Flags\", [\"antigua_barbuda\"]),\r\n new Emoji(\"🇦🇷\", \"Flags\", [\"argentina\"]),\r\n new Emoji(\"🇦🇲\", \"Flags\", [\"armenia\"]),\r\n new Emoji(\"🇦🇼\", \"Flags\", [\"aruba\"]),\r\n new Emoji(\"🇦🇺\", \"Flags\", [\"australia\"]),\r\n new Emoji(\"🇦🇹\", \"Flags\", [\"austria\"]),\r\n new Emoji(\"🇦🇿\", \"Flags\", [\"azerbaijan\"]),\r\n new Emoji(\"🇧🇸\", \"Flags\", [\"bahamas\"]),\r\n new Emoji(\"🇧🇭\", \"Flags\", [\"bahrain\"]),\r\n new Emoji(\"🇧🇩\", \"Flags\", [\"bangladesh\"]),\r\n new Emoji(\"🇧🇧\", \"Flags\", [\"barbados\"]),\r\n new Emoji(\"🇧🇾\", \"Flags\", [\"belarus\"]),\r\n new Emoji(\"🇧🇪\", \"Flags\", [\"belgium\"]),\r\n new Emoji(\"🇧🇿\", \"Flags\", [\"belize\"]),\r\n new Emoji(\"🇧🇯\", \"Flags\", [\"benin\"]),\r\n new Emoji(\"🇧🇲\", \"Flags\", [\"bermuda\"]),\r\n new Emoji(\"🇧🇹\", \"Flags\", [\"bhutan\"]),\r\n new Emoji(\"🇧🇴\", \"Flags\", [\"bolivia\"]),\r\n new Emoji(\"🇧🇶\", \"Flags\", [\"caribbean_netherlands\"]),\r\n new Emoji(\"🇧🇦\", \"Flags\", [\"bosnia_herzegovina\"]),\r\n new Emoji(\"🇧🇼\", \"Flags\", [\"botswana\"]),\r\n new Emoji(\"🇧🇷\", \"Flags\", [\"brazil\"]),\r\n new Emoji(\"🇮🇴\", \"Flags\", [\"british_indian_ocean_territory\"]),\r\n new Emoji(\"🇻🇬\", \"Flags\", [\"british_virgin_islands\"]),\r\n new Emoji(\"🇧🇳\", \"Flags\", [\"brunei\"]),\r\n new Emoji(\"🇧🇬\", \"Flags\", [\"bulgaria\"]),\r\n new Emoji(\"🇧🇫\", \"Flags\", [\"burkina_faso\"]),\r\n new Emoji(\"🇧🇮\", \"Flags\", [\"burundi\"]),\r\n new Emoji(\"🇨🇻\", \"Flags\", [\"cape_verde\"]),\r\n new Emoji(\"🇰🇭\", \"Flags\", [\"cambodia\"]),\r\n new Emoji(\"🇨🇲\", \"Flags\", [\"cameroon\"]),\r\n new Emoji(\"🇨🇦\", \"Flags\", [\"canada\"]),\r\n new Emoji(\"🇮🇨\", \"Flags\", [\"canary_islands\"]),\r\n new Emoji(\"🇰🇾\", \"Flags\", [\"cayman_islands\"]),\r\n new Emoji(\"🇨🇫\", \"Flags\", [\"central_african_republic\"]),\r\n new Emoji(\"🇹🇩\", \"Flags\", [\"chad\"]),\r\n new Emoji(\"🇨🇱\", \"Flags\", [\"chile\"]),\r\n new Emoji(\"🇨🇳\", \"Flags\", [\"cn\"]),\r\n new Emoji(\"🇨🇽\", \"Flags\", [\"christmas_island\"]),\r\n new Emoji(\"🇨🇨\", \"Flags\", [\"cocos_islands\"]),\r\n new Emoji(\"🇨🇴\", \"Flags\", [\"colombia\"]),\r\n new Emoji(\"🇰🇲\", \"Flags\", [\"comoros\"]),\r\n new Emoji(\"🇨🇬\", \"Flags\", [\"congo_brazzaville\"]),\r\n new Emoji(\"🇨🇩\", \"Flags\", [\"congo_kinshasa\"]),\r\n new Emoji(\"🇨🇰\", \"Flags\", [\"cook_islands\"]),\r\n new Emoji(\"🇨🇷\", \"Flags\", [\"costa_rica\"]),\r\n new Emoji(\"🇨🇮\", \"Flags\", [\"cote_divoire\"]),\r\n new Emoji(\"🇭🇷\", \"Flags\", [\"croatia\"]),\r\n new Emoji(\"🇨🇺\", \"Flags\", [\"cuba\"]),\r\n new Emoji(\"🇨🇼\", \"Flags\", [\"curacao\"]),\r\n new Emoji(\"🇨🇾\", \"Flags\", [\"cyprus\"]),\r\n new Emoji(\"🇨🇿\", \"Flags\", [\"czech_republic\"]),\r\n new Emoji(\"🇩🇰\", \"Flags\", [\"denmark\"]),\r\n new Emoji(\"🇩🇯\", \"Flags\", [\"djibouti\"]),\r\n new Emoji(\"🇩🇲\", \"Flags\", [\"dominica\"]),\r\n new Emoji(\"🇩🇴\", \"Flags\", [\"dominican_republic\"]),\r\n new Emoji(\"🇪🇨\", \"Flags\", [\"ecuador\"]),\r\n new Emoji(\"🇪🇬\", \"Flags\", [\"egypt\"]),\r\n new Emoji(\"🇸🇻\", \"Flags\", [\"el_salvador\"]),\r\n new Emoji(\"🇬🇶\", \"Flags\", [\"equatorial_guinea\"]),\r\n new Emoji(\"🇪🇷\", \"Flags\", [\"eritrea\"]),\r\n new Emoji(\"🇪🇪\", \"Flags\", [\"estonia\"]),\r\n new Emoji(\"🇪🇹\", \"Flags\", [\"ethiopia\"]),\r\n new Emoji(\"🇪🇺\", \"Flags\", [\"eu\", \"european_union\"]),\r\n new Emoji(\"🇫🇰\", \"Flags\", [\"falkland_islands\"]),\r\n new Emoji(\"🇫🇴\", \"Flags\", [\"faroe_islands\"]),\r\n new Emoji(\"🇫🇯\", \"Flags\", [\"fiji\"]),\r\n new Emoji(\"🇫🇮\", \"Flags\", [\"finland\"]),\r\n new Emoji(\"🇫🇷\", \"Flags\", [\"fr\"]),\r\n new Emoji(\"🇬🇫\", \"Flags\", [\"french_guiana\"]),\r\n new Emoji(\"🇵🇫\", \"Flags\", [\"french_polynesia\"]),\r\n new Emoji(\"🇹🇫\", \"Flags\", [\"french_southern_territories\"]),\r\n new Emoji(\"🇬🇦\", \"Flags\", [\"gabon\"]),\r\n new Emoji(\"🇬🇲\", \"Flags\", [\"gambia\"]),\r\n new Emoji(\"🇬🇪\", \"Flags\", [\"georgia\"]),\r\n new Emoji(\"🇩🇪\", \"Flags\", [\"de\"]),\r\n new Emoji(\"🇬🇭\", \"Flags\", [\"ghana\"]),\r\n new Emoji(\"🇬🇮\", \"Flags\", [\"gibraltar\"]),\r\n new Emoji(\"🇬🇷\", \"Flags\", [\"greece\"]),\r\n new Emoji(\"🇬🇱\", \"Flags\", [\"greenland\"]),\r\n new Emoji(\"🇬🇩\", \"Flags\", [\"grenada\"]),\r\n new Emoji(\"🇬🇵\", \"Flags\", [\"guadeloupe\"]),\r\n new Emoji(\"🇬🇺\", \"Flags\", [\"guam\"]),\r\n new Emoji(\"🇬🇹\", \"Flags\", [\"guatemala\"]),\r\n new Emoji(\"🇬🇬\", \"Flags\", [\"guernsey\"]),\r\n new Emoji(\"🇬🇳\", \"Flags\", [\"guinea\"]),\r\n new Emoji(\"🇬🇼\", \"Flags\", [\"guinea_bissau\"]),\r\n new Emoji(\"🇬🇾\", \"Flags\", [\"guyana\"]),\r\n new Emoji(\"🇭🇹\", \"Flags\", [\"haiti\"]),\r\n new Emoji(\"🇭🇳\", \"Flags\", [\"honduras\"]),\r\n new Emoji(\"🇭🇰\", \"Flags\", [\"hong_kong\"]),\r\n new Emoji(\"🇭🇺\", \"Flags\", [\"hungary\"]),\r\n new Emoji(\"🇮🇸\", \"Flags\", [\"iceland\"]),\r\n new Emoji(\"🇮🇳\", \"Flags\", [\"india\"]),\r\n new Emoji(\"🇮🇩\", \"Flags\", [\"indonesia\"]),\r\n new Emoji(\"🇮🇷\", \"Flags\", [\"iran\"]),\r\n new Emoji(\"🇮🇶\", \"Flags\", [\"iraq\"]),\r\n new Emoji(\"🇮🇪\", \"Flags\", [\"ireland\"]),\r\n new Emoji(\"🇮🇲\", \"Flags\", [\"isle_of_man\"]),\r\n new Emoji(\"🇮🇱\", \"Flags\", [\"israel\"]),\r\n new Emoji(\"🇮🇹\", \"Flags\", [\"it\"]),\r\n new Emoji(\"🇯🇲\", \"Flags\", [\"jamaica\"]),\r\n new Emoji(\"🇯🇵\", \"Flags\", [\"jp\"]),\r\n new Emoji(\"🎌\", \"Flags\", [\"crossed_flags\"]),\r\n new Emoji(\"🇯🇪\", \"Flags\", [\"jersey\"]),\r\n new Emoji(\"🇯🇴\", \"Flags\", [\"jordan\"]),\r\n new Emoji(\"🇰🇿\", \"Flags\", [\"kazakhstan\"]),\r\n new Emoji(\"🇰🇪\", \"Flags\", [\"kenya\"]),\r\n new Emoji(\"🇰🇮\", \"Flags\", [\"kiribati\"]),\r\n new Emoji(\"🇽🇰\", \"Flags\", [\"kosovo\"]),\r\n new Emoji(\"🇰🇼\", \"Flags\", [\"kuwait\"]),\r\n new Emoji(\"🇰🇬\", \"Flags\", [\"kyrgyzstan\"]),\r\n new Emoji(\"🇱🇦\", \"Flags\", [\"laos\"]),\r\n new Emoji(\"🇱🇻\", \"Flags\", [\"latvia\"]),\r\n new Emoji(\"🇱🇧\", \"Flags\", [\"lebanon\"]),\r\n new Emoji(\"🇱🇸\", \"Flags\", [\"lesotho\"]),\r\n new Emoji(\"🇱🇷\", \"Flags\", [\"liberia\"]),\r\n new Emoji(\"🇱🇾\", \"Flags\", [\"libya\"]),\r\n new Emoji(\"🇱🇮\", \"Flags\", [\"liechtenstein\"]),\r\n new Emoji(\"🇱🇹\", \"Flags\", [\"lithuania\"]),\r\n new Emoji(\"🇱🇺\", \"Flags\", [\"luxembourg\"]),\r\n new Emoji(\"🇲🇴\", \"Flags\", [\"macau\"]),\r\n new Emoji(\"🇲🇰\", \"Flags\", [\"macedonia\"]),\r\n new Emoji(\"🇲🇬\", \"Flags\", [\"madagascar\"]),\r\n new Emoji(\"🇲🇼\", \"Flags\", [\"malawi\"]),\r\n new Emoji(\"🇲🇾\", \"Flags\", [\"malaysia\"]),\r\n new Emoji(\"🇲🇻\", \"Flags\", [\"maldives\"]),\r\n new Emoji(\"🇲🇱\", \"Flags\", [\"mali\"]),\r\n new Emoji(\"🇲🇹\", \"Flags\", [\"malta\"]),\r\n new Emoji(\"🇲🇭\", \"Flags\", [\"marshall_islands\"]),\r\n new Emoji(\"🇲🇶\", \"Flags\", [\"martinique\"]),\r\n new Emoji(\"🇲🇷\", \"Flags\", [\"mauritania\"]),\r\n new Emoji(\"🇲🇺\", \"Flags\", [\"mauritius\"]),\r\n new Emoji(\"🇾🇹\", \"Flags\", [\"mayotte\"]),\r\n new Emoji(\"🇲🇽\", \"Flags\", [\"mexico\"]),\r\n new Emoji(\"🇫🇲\", \"Flags\", [\"micronesia\"]),\r\n new Emoji(\"🇲🇩\", \"Flags\", [\"moldova\"]),\r\n new Emoji(\"🇲🇨\", \"Flags\", [\"monaco\"]),\r\n new Emoji(\"🇲🇳\", \"Flags\", [\"mongolia\"]),\r\n new Emoji(\"🇲🇪\", \"Flags\", [\"montenegro\"]),\r\n new Emoji(\"🇲🇸\", \"Flags\", [\"montserrat\"]),\r\n new Emoji(\"🇲🇦\", \"Flags\", [\"morocco\"]),\r\n new Emoji(\"🇲🇿\", \"Flags\", [\"mozambique\"]),\r\n new Emoji(\"🇲🇲\", \"Flags\", [\"myanmar\"]),\r\n new Emoji(\"🇳🇦\", \"Flags\", [\"namibia\"]),\r\n new Emoji(\"🇳🇷\", \"Flags\", [\"nauru\"]),\r\n new Emoji(\"🇳🇵\", \"Flags\", [\"nepal\"]),\r\n new Emoji(\"🇳🇱\", \"Flags\", [\"netherlands\"]),\r\n new Emoji(\"🇳🇨\", \"Flags\", [\"new_caledonia\"]),\r\n new Emoji(\"🇳🇿\", \"Flags\", [\"new_zealand\"]),\r\n new Emoji(\"🇳🇮\", \"Flags\", [\"nicaragua\"]),\r\n new Emoji(\"🇳🇪\", \"Flags\", [\"niger\"]),\r\n new Emoji(\"🇳🇬\", \"Flags\", [\"nigeria\"]),\r\n new Emoji(\"🇳🇺\", \"Flags\", [\"niue\"]),\r\n new Emoji(\"🇳🇫\", \"Flags\", [\"norfolk_island\"]),\r\n new Emoji(\"🇲🇵\", \"Flags\", [\"northern_mariana_islands\"]),\r\n new Emoji(\"🇰🇵\", \"Flags\", [\"north_korea\"]),\r\n new Emoji(\"🇳🇴\", \"Flags\", [\"norway\"]),\r\n new Emoji(\"🇴🇲\", \"Flags\", [\"oman\"]),\r\n new Emoji(\"🇵🇰\", \"Flags\", [\"pakistan\"]),\r\n new Emoji(\"🇵🇼\", \"Flags\", [\"palau\"]),\r\n new Emoji(\"🇵🇸\", \"Flags\", [\"palestinian_territories\"]),\r\n new Emoji(\"🇵🇦\", \"Flags\", [\"panama\"]),\r\n new Emoji(\"🇵🇬\", \"Flags\", [\"papua_new_guinea\"]),\r\n new Emoji(\"🇵🇾\", \"Flags\", [\"paraguay\"]),\r\n new Emoji(\"🇵🇪\", \"Flags\", [\"peru\"]),\r\n new Emoji(\"🇵🇭\", \"Flags\", [\"philippines\"]),\r\n new Emoji(\"🇵🇳\", \"Flags\", [\"pitcairn_islands\"]),\r\n new Emoji(\"🇵🇱\", \"Flags\", [\"poland\"]),\r\n new Emoji(\"🇵🇹\", \"Flags\", [\"portugal\"]),\r\n new Emoji(\"🇵🇷\", \"Flags\", [\"puerto_rico\"]),\r\n new Emoji(\"🇶🇦\", \"Flags\", [\"qatar\"]),\r\n new Emoji(\"🇷🇪\", \"Flags\", [\"reunion\"]),\r\n new Emoji(\"🇷🇴\", \"Flags\", [\"romania\"]),\r\n new Emoji(\"🇷🇺\", \"Flags\", [\"ru\"]),\r\n new Emoji(\"🇷🇼\", \"Flags\", [\"rwanda\"]),\r\n new Emoji(\"🇧🇱\", \"Flags\", [\"st_barthelemy\"]),\r\n new Emoji(\"🇸🇭\", \"Flags\", [\"st_helena\"]),\r\n new Emoji(\"🇰🇳\", \"Flags\", [\"st_kitts_nevis\"]),\r\n new Emoji(\"🇱🇨\", \"Flags\", [\"st_lucia\"]),\r\n new Emoji(\"🇵🇲\", \"Flags\", [\"st_pierre_miquelon\"]),\r\n new Emoji(\"🇻🇨\", \"Flags\", [\"st_vincent_grenadines\"]),\r\n new Emoji(\"🇼🇸\", \"Flags\", [\"samoa\"]),\r\n new Emoji(\"🇸🇲\", \"Flags\", [\"san_marino\"]),\r\n new Emoji(\"🇸🇹\", \"Flags\", [\"sao_tome_principe\"]),\r\n new Emoji(\"🇸🇦\", \"Flags\", [\"saudi_arabia\"]),\r\n new Emoji(\"🇸🇳\", \"Flags\", [\"senegal\"]),\r\n new Emoji(\"🇷🇸\", \"Flags\", [\"serbia\"]),\r\n new Emoji(\"🇸🇨\", \"Flags\", [\"seychelles\"]),\r\n new Emoji(\"🇸🇱\", \"Flags\", [\"sierra_leone\"]),\r\n new Emoji(\"🇸🇬\", \"Flags\", [\"singapore\"]),\r\n new Emoji(\"🇸🇽\", \"Flags\", [\"sint_maarten\"]),\r\n new Emoji(\"🇸🇰\", \"Flags\", [\"slovakia\"]),\r\n new Emoji(\"🇸🇮\", \"Flags\", [\"slovenia\"]),\r\n new Emoji(\"🇸🇧\", \"Flags\", [\"solomon_islands\"]),\r\n new Emoji(\"🇸🇴\", \"Flags\", [\"somalia\"]),\r\n new Emoji(\"🇿🇦\", \"Flags\", [\"south_africa\"]),\r\n new Emoji(\"🇬🇸\", \"Flags\", [\"south_georgia_south_sandwich_islands\"]),\r\n new Emoji(\"🇰🇷\", \"Flags\", [\"kr\"]),\r\n new Emoji(\"🇸🇸\", \"Flags\", [\"south_sudan\"]),\r\n new Emoji(\"🇪🇸\", \"Flags\", [\"es\"]),\r\n new Emoji(\"🇱🇰\", \"Flags\", [\"sri_lanka\"]),\r\n new Emoji(\"🇸🇩\", \"Flags\", [\"sudan\"]),\r\n new Emoji(\"🇸🇷\", \"Flags\", [\"suriname\"]),\r\n new Emoji(\"🇸🇿\", \"Flags\", [\"swaziland\"]),\r\n new Emoji(\"🇸🇪\", \"Flags\", [\"sweden\"]),\r\n new Emoji(\"🇨🇭\", \"Flags\", [\"switzerland\"]),\r\n new Emoji(\"🇸🇾\", \"Flags\", [\"syria\"]),\r\n new Emoji(\"🇹🇼\", \"Flags\", [\"taiwan\"]),\r\n new Emoji(\"🇹🇯\", \"Flags\", [\"tajikistan\"]),\r\n new Emoji(\"🇹🇿\", \"Flags\", [\"tanzania\"]),\r\n new Emoji(\"🇹🇭\", \"Flags\", [\"thailand\"]),\r\n new Emoji(\"🇹🇱\", \"Flags\", [\"timor_leste\"]),\r\n new Emoji(\"🇹🇬\", \"Flags\", [\"togo\"]),\r\n new Emoji(\"🇹🇰\", \"Flags\", [\"tokelau\"]),\r\n new Emoji(\"🇹🇴\", \"Flags\", [\"tonga\"]),\r\n new Emoji(\"🇹🇹\", \"Flags\", [\"trinidad_tobago\"]),\r\n new Emoji(\"🇹🇳\", \"Flags\", [\"tunisia\"]),\r\n new Emoji(\"🇹🇷\", \"Flags\", [\"tr\"]),\r\n new Emoji(\"🇹🇲\", \"Flags\", [\"turkmenistan\"]),\r\n new Emoji(\"🇹🇨\", \"Flags\", [\"turks_caicos_islands\"]),\r\n new Emoji(\"🇹🇻\", \"Flags\", [\"tuvalu\"]),\r\n new Emoji(\"🇺🇬\", \"Flags\", [\"uganda\"]),\r\n new Emoji(\"🇺🇦\", \"Flags\", [\"ukraine\"]),\r\n new Emoji(\"🇦🇪\", \"Flags\", [\"united_arab_emirates\"]),\r\n new Emoji(\"🇬🇧\", \"Flags\", [\"gb\", \"uk\"]),\r\n new Emoji(\"🇺🇸\", \"Flags\", [\"us\"]),\r\n new Emoji(\"🇻🇮\", \"Flags\", [\"us_virgin_islands\"]),\r\n new Emoji(\"🇺🇾\", \"Flags\", [\"uruguay\"]),\r\n new Emoji(\"🇺🇿\", \"Flags\", [\"uzbekistan\"]),\r\n new Emoji(\"🇻🇺\", \"Flags\", [\"vanuatu\"]),\r\n new Emoji(\"🇻🇦\", \"Flags\", [\"vatican_city\"]),\r\n new Emoji(\"🇻🇪\", \"Flags\", [\"venezuela\"]),\r\n new Emoji(\"🇻🇳\", \"Flags\", [\"vietnam\"]),\r\n new Emoji(\"🇼🇫\", \"Flags\", [\"wallis_futuna\"]),\r\n new Emoji(\"🇪🇭\", \"Flags\", [\"western_sahara\"]),\r\n new Emoji(\"🇾🇪\", \"Flags\", [\"yemen\"]),\r\n new Emoji(\"🇿🇲\", \"Flags\", [\"zambia\"]),\r\n new Emoji(\"🇿🇼\", \"Flags\", [\"zimbabwe\"])\r\n];var CategoryItem = /** @class */ (function (_super) {\r\n __extends(CategoryItem, _super);\r\n function CategoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(CategoryItem.prototype, \"styleSVG\", {\r\n get: function () {\r\n return __assign({}, this.styles);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n __decorate([\r\n Prop({ required: true })\r\n ], CategoryItem.prototype, \"label\", void 0);\r\n __decorate([\r\n Prop({ required: true })\r\n ], CategoryItem.prototype, \"icon\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], CategoryItem.prototype, \"styles\", void 0);\r\n CategoryItem = __decorate([\r\n Component({})\r\n ], CategoryItem);\r\n return CategoryItem;\r\n}(Vue));function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}const isOldIE$1 = typeof navigator !== 'undefined' &&\r\n /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\r\nfunction createInjector$1(context) {\r\n return (id, style) => addStyle$1(id, style);\r\n}\r\nlet HEAD$1;\r\nconst styles$1 = {};\r\nfunction addStyle$1(id, css) {\r\n const group = isOldIE$1 ? css.media || 'default' : id;\r\n const style = styles$1[group] || (styles$1[group] = { ids: new Set(), styles: [] });\r\n if (!style.ids.has(id)) {\r\n style.ids.add(id);\r\n let code = css.source;\r\n if (css.map) {\r\n // https://developer.chrome.com/devtools/docs/javascript-debugging\r\n // this makes source maps inside style tags work properly in Chrome\r\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */';\r\n // http://stackoverflow.com/a/26603875\r\n code +=\r\n '\\n/*# sourceMappingURL=data:application/json;base64,' +\r\n btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) +\r\n ' */';\r\n }\r\n if (!style.element) {\r\n style.element = document.createElement('style');\r\n style.element.type = 'text/css';\r\n if (css.media)\r\n style.element.setAttribute('media', css.media);\r\n if (HEAD$1 === undefined) {\r\n HEAD$1 = document.head || document.getElementsByTagName('head')[0];\r\n }\r\n HEAD$1.appendChild(style.element);\r\n }\r\n if ('styleSheet' in style.element) {\r\n style.styles.push(code);\r\n style.element.styleSheet.cssText = style.styles\r\n .filter(Boolean)\r\n .join('\\n');\r\n }\r\n else {\r\n const index = style.ids.size - 1;\r\n const textNode = document.createTextNode(code);\r\n const nodes = style.element.childNodes;\r\n if (nodes[index])\r\n style.element.removeChild(nodes[index]);\r\n if (nodes.length)\r\n style.element.insertBefore(textNode, nodes[index]);\r\n else\r\n style.element.appendChild(textNode);\r\n }\r\n }\r\n}/* script */\nconst __vue_script__$3 = CategoryItem;\n\n/* template */\nvar __vue_render__$3 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"svg\",style:(_vm.styleSVG),attrs:{\"title\":_vm.label},domProps:{\"innerHTML\":_vm._s(_vm.icon)}})};\nvar __vue_staticRenderFns__$3 = [];\n\n /* style */\n const __vue_inject_styles__$3 = function (inject) {\n if (!inject) return\n inject(\"data-v-3d397e3a_0\", { source: \".svg[data-v-3d397e3a]{display:inline-block;vertical-align:middle}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$3 = \"data-v-3d397e3a\";\n /* module identifier */\n const __vue_module_identifier__$3 = undefined;\n /* functional template */\n const __vue_is_functional_template__$3 = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$4 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },\n __vue_inject_styles__$3,\n __vue_script__$3,\n __vue_scope_id__$3,\n __vue_is_functional_template__$3,\n __vue_module_identifier__$3,\n false,\n createInjector$1,\n undefined,\n undefined\n );var Categories = /** @class */ (function (_super) {\r\n __extends(Categories, _super);\r\n function Categories() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Categories.prototype.onSelect = function (category) {\r\n return category;\r\n };\r\n __decorate([\r\n Prop({})\r\n ], Categories.prototype, \"categories\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], Categories.prototype, \"current\", void 0);\r\n __decorate([\r\n Emit(\"select\")\r\n ], Categories.prototype, \"onSelect\", null);\r\n Categories = __decorate([\r\n Component({\r\n components: {\r\n CategoryItem: __vue_component__$4\r\n }\r\n })\r\n ], Categories);\r\n return Categories;\r\n}(Vue));/* script */\nconst __vue_script__$1$1 = Categories;\n\n/* template */\nvar __vue_render__$1$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"Categories\"}},_vm._l((_vm.categories),function(category,index){return _c('div',{key:index,class:['category', { active: category.name === _vm.current }],on:{\"click\":function($event){return _vm.onSelect(category)}}},[_c('CategoryItem',{attrs:{\"label\":category.label,\"icon\":category.icon}})],1)}),0)};\nvar __vue_staticRenderFns__$1$1 = [];\n\n /* style */\n const __vue_inject_styles__$1$1 = function (inject) {\n if (!inject) return\n inject(\"data-v-6d975e7c_0\", { source: \"#Categories[data-v-6d975e7c]{display:flex;width:100%;flex-direction:row;align-items:center;border-bottom:1px solid var(--ep-color-border);background:var(--ep-color-bg);overflow-x:auto}.category[data-v-6d975e7c]{flex:1;padding:5px;text-align:center;cursor:pointer}.category.active[data-v-6d975e7c]{border-bottom:3px solid var(--ep-color-active);filter:saturate(3);padding-bottom:2px}.category>img[data-v-6d975e7c]{width:22px;height:22px}.category[data-v-6d975e7c]:hover{filter:saturate(3)}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$1$1 = \"data-v-6d975e7c\";\n /* module identifier */\n const __vue_module_identifier__$1$1 = undefined;\n /* functional template */\n const __vue_is_functional_template__$1$1 = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$1$1 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$1$1, staticRenderFns: __vue_staticRenderFns__$1$1 },\n __vue_inject_styles__$1$1,\n __vue_script__$1$1,\n __vue_scope_id__$1$1,\n __vue_is_functional_template__$1$1,\n __vue_module_identifier__$1$1,\n false,\n createInjector$1,\n undefined,\n undefined\n );var EmojiItem = /** @class */ (function (_super) {\r\n __extends(EmojiItem, _super);\r\n function EmojiItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(EmojiItem.prototype, \"styleSize\", {\r\n get: function () {\r\n return {\r\n fontSize: this.size - 5 + \"px\",\r\n lineHeight: this.size + \"px\",\r\n height: this.size + \"px\",\r\n width: this.size + \"px\"\r\n };\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n __decorate([\r\n Prop({})\r\n ], EmojiItem.prototype, \"emoji\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], EmojiItem.prototype, \"size\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], EmojiItem.prototype, \"withBorder\", void 0);\r\n EmojiItem = __decorate([\r\n Component({})\r\n ], EmojiItem);\r\n return EmojiItem;\r\n}(Vue));/* script */\nconst __vue_script__$2$1 = EmojiItem;\n\n/* template */\nvar __vue_render__$2$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{class:['emoji', { 'border': _vm.withBorder } ],style:(_vm.styleSize),domProps:{\"innerHTML\":_vm._s(_vm.emoji.data)}})};\nvar __vue_staticRenderFns__$2$1 = [];\n\n /* style */\n const __vue_inject_styles__$2$1 = function (inject) {\n if (!inject) return\n inject(\"data-v-5a35c3ac_0\", { source: \".emoji[data-v-5a35c3ac]{display:inline-block;text-align:center;padding:3px;box-sizing:content-box;overflow:hidden;transition:transform .2s;cursor:pointer}.emoji[data-v-5a35c3ac]:hover{transform:scale(1.05)}.border[data-v-5a35c3ac]:hover{background:#00000010;border-radius:8px}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$2$1 = \"data-v-5a35c3ac\";\n /* module identifier */\n const __vue_module_identifier__$2$1 = undefined;\n /* functional template */\n const __vue_is_functional_template__$2$1 = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$2$1 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$2$1, staticRenderFns: __vue_staticRenderFns__$2$1 },\n __vue_inject_styles__$2$1,\n __vue_script__$2$1,\n __vue_scope_id__$2$1,\n __vue_is_functional_template__$2$1,\n __vue_module_identifier__$2$1,\n false,\n createInjector$1,\n undefined,\n undefined\n );var CategoryLabel = /** @class */ (function (_super) {\r\n __extends(CategoryLabel, _super);\r\n function CategoryLabel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Prop({ required: true })\r\n ], CategoryLabel.prototype, \"name\", void 0);\r\n CategoryLabel = __decorate([\r\n Component({})\r\n ], CategoryLabel);\r\n return CategoryLabel;\r\n}(Vue));/* script */\nconst __vue_script__$3$1 = CategoryLabel;\n\n/* template */\nvar __vue_render__$3$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"category-title\"},[_vm._v(_vm._s(_vm.name))])};\nvar __vue_staticRenderFns__$3$1 = [];\n\n /* style */\n const __vue_inject_styles__$3$1 = function (inject) {\n if (!inject) return\n inject(\"data-v-b863a738_0\", { source: \".category-title[data-v-b863a738]{text-transform:uppercase;font-size:.8em;padding:5px 0 0 16px;color:#676666}.category-title[data-v-b863a738]:not(:first-of-type){padding:10px 0 0 16px}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$3$1 = \"data-v-b863a738\";\n /* module identifier */\n const __vue_module_identifier__$3$1 = undefined;\n /* functional template */\n const __vue_is_functional_template__$3$1 = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$3$1 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$3$1, staticRenderFns: __vue_staticRenderFns__$3$1 },\n __vue_inject_styles__$3$1,\n __vue_script__$3$1,\n __vue_scope_id__$3$1,\n __vue_is_functional_template__$3$1,\n __vue_module_identifier__$3$1,\n false,\n createInjector$1,\n undefined,\n undefined\n );var EmojiList = /** @class */ (function (_super) {\r\n __extends(EmojiList, _super);\r\n function EmojiList() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n EmojiList.prototype.searchByAlias = function (term, emoji) {\r\n var isRelevant = function (alias) { return alias.toLowerCase().includes(term); };\r\n return emoji.aliases.some(function (alias) { return isRelevant(alias); });\r\n };\r\n EmojiList.prototype.calcScrollTop = function () {\r\n return this.hasSearch ? 88 : 44;\r\n };\r\n Object.defineProperty(EmojiList.prototype, \"gridDynamic\", {\r\n get: function () {\r\n var percent = 100 / this.emojisByRow;\r\n return {\r\n gridTemplateColumns: \"repeat(\" + this.emojisByRow + \", \" + percent + \"%)\"\r\n };\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(EmojiList.prototype, \"dataFiltered\", {\r\n get: function () {\r\n var _this = this;\r\n var data = this.data[this.category];\r\n var searchValue = this.filter.trim().toLowerCase();\r\n if (searchValue) {\r\n data = data.filter(function (emoji) {\r\n return _this.searchByAlias(searchValue, emoji);\r\n });\r\n }\r\n return data;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(EmojiList.prototype, \"dataFilteredByCategory\", {\r\n get: function () {\r\n var _this = this;\r\n var _data = Object.assign({}, this.data);\r\n var searchValue = this.filter.trim().toLowerCase();\r\n if (searchValue) {\r\n this.categories.forEach(function (category) {\r\n _data[category] = _this.data[category].filter(function (item) {\r\n return _this.searchByAlias(searchValue, item);\r\n });\r\n });\r\n }\r\n return _data;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(EmojiList.prototype, \"categories\", {\r\n get: function () {\r\n return Object.keys(this.data);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(EmojiList.prototype, \"containerEmoji\", {\r\n get: function () {\r\n return this.$refs[\"container-emoji\"];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n EmojiList.prototype.onSelect = function (emoji) {\r\n return emoji;\r\n };\r\n EmojiList.prototype.onDataChanged = function () {\r\n this.containerEmoji.scrollTop = 0;\r\n };\r\n EmojiList.prototype.onCategoryChanged = function (newValue) {\r\n if (this.continuousList) {\r\n var categoryEl = this.$refs[newValue][0].$el;\r\n this.containerEmoji.scrollTop =\r\n categoryEl.offsetTop - this.calcScrollTop();\r\n }\r\n };\r\n __decorate([\r\n Prop({ required: true })\r\n ], EmojiList.prototype, \"data\", void 0);\r\n __decorate([\r\n Prop({ required: true })\r\n ], EmojiList.prototype, \"emojisByRow\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], EmojiList.prototype, \"emojiWithBorder\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], EmojiList.prototype, \"emojiSize\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], EmojiList.prototype, \"filter\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], EmojiList.prototype, \"continuousList\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], EmojiList.prototype, \"category\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], EmojiList.prototype, \"hasSearch\", void 0);\r\n __decorate([\r\n Emit(\"select\")\r\n ], EmojiList.prototype, \"onSelect\", null);\r\n __decorate([\r\n Watch(\"data\")\r\n ], EmojiList.prototype, \"onDataChanged\", null);\r\n __decorate([\r\n Watch(\"category\")\r\n ], EmojiList.prototype, \"onCategoryChanged\", null);\r\n EmojiList = __decorate([\r\n Component({\r\n components: {\r\n EmojiItem: __vue_component__$2$1,\r\n CategoryLabel: __vue_component__$3$1\r\n }\r\n })\r\n ], EmojiList);\r\n return EmojiList;\r\n}(Vue));/* script */\nconst __vue_script__$4 = EmojiList;\n\n/* template */\nvar __vue_render__$4 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"Emojis\"}},[_c('div',{ref:\"container-emoji\",staticClass:\"container-emoji\"},[(_vm.continuousList)?_vm._l((_vm.dataFilteredByCategory),function(category,category_name){return _c('div',{key:category_name},[_c('CategoryLabel',{directives:[{name:\"show\",rawName:\"v-show\",value:(category.length),expression:\"category.length\"}],ref:category_name,refInFor:true,attrs:{\"name\":category_name}}),_vm._v(\" \"),(category.length)?_c('div',{staticClass:\"grid-emojis\",style:(_vm.gridDynamic)},_vm._l((category),function(emoji,index_e){return _c('EmojiItem',{key:(category_name + \"-\" + index_e),attrs:{\"emoji\":emoji,\"size\":_vm.emojiSize,\"withBorder\":_vm.emojiWithBorder},nativeOn:{\"click\":function($event){return _vm.onSelect(emoji)}}})}),1):_vm._e()],1)}):[_c('div',{staticClass:\"grid-emojis\",style:(_vm.gridDynamic)},_vm._l((_vm.dataFiltered),function(emoji,index){return _c('EmojiItem',{key:index,attrs:{\"emoji\":emoji,\"size\":_vm.emojiSize,\"withBorder\":_vm.emojiWithBorder},nativeOn:{\"click\":function($event){return _vm.onSelect(emoji)}}})}),1)]],2)])};\nvar __vue_staticRenderFns__$4 = [];\n\n /* style */\n const __vue_inject_styles__$4 = function (inject) {\n if (!inject) return\n inject(\"data-v-5c988bee_0\", { source: \"#Emojis[data-v-5c988bee]{font-family:Twemoji,NotomojiColor,Notomoji,EmojiOne Color,Symbola,Noto,Segoe UI Emoji,OpenSansEmoji,monospace;display:block;width:100%;max-width:100%;color:var(--ep-color-text)}#Emojis[data-v-5c988bee] ::-webkit-scrollbar{border-radius:4px;width:4px;overflow:hidden}.container-emoji[data-v-5c988bee]{overflow-x:hidden;overflow-y:scroll;height:350px}.grid-emojis[data-v-5c988bee]{display:grid;margin:5px 0;justify-items:center}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$4 = \"data-v-5c988bee\";\n /* module identifier */\n const __vue_module_identifier__$4 = undefined;\n /* functional template */\n const __vue_is_functional_template__$4 = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$4$1 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },\n __vue_inject_styles__$4,\n __vue_script__$4,\n __vue_scope_id__$4,\n __vue_is_functional_template__$4,\n __vue_module_identifier__$4,\n false,\n createInjector$1,\n undefined,\n undefined\n );var timemout = 500;\r\nvar listenInput;\r\nvar InputSearch = /** @class */ (function (_super) {\r\n __extends(InputSearch, _super);\r\n function InputSearch() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.inputSearch = \"\";\r\n return _this;\r\n }\r\n InputSearch.prototype.onInputChanged = function (newValue, old) {\r\n var _this = this;\r\n clearTimeout(listenInput);\r\n listenInput = setTimeout(function () { return _this.$emit(\"update\", newValue); }, timemout);\r\n };\r\n Object.defineProperty(InputSearch.prototype, \"placeholder\", {\r\n get: function () {\r\n return t(\"search\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n __decorate([\r\n Watch(\"inputSearch\")\r\n ], InputSearch.prototype, \"onInputChanged\", null);\r\n InputSearch = __decorate([\r\n Component({})\r\n ], InputSearch);\r\n return InputSearch;\r\n}(Vue));/* script */\nconst __vue_script__$5 = InputSearch;\n\n/* template */\nvar __vue_render__$5 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"InputSearch\"}},[_c('div',{staticClass:\"container-search\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputSearch),expression:\"inputSearch\"}],attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder},domProps:{\"value\":(_vm.inputSearch)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.inputSearch=$event.target.value;}}})])])};\nvar __vue_staticRenderFns__$5 = [];\n\n /* style */\n const __vue_inject_styles__$5 = function (inject) {\n if (!inject) return\n inject(\"data-v-839ecda0_0\", { source: \"#InputSearch[data-v-839ecda0]{display:block;width:100%;max-width:100%}.container-search[data-v-839ecda0]{display:block;justify-content:center;box-sizing:border-box;width:100%;margin:5px 0;padding:0 5%}.container-search input[data-v-839ecda0]{width:100%;font-size:14px;padding:6px 8px;box-sizing:border-box;border-radius:8px;background:var(--ep-color-sbg);color:var(--ep-color-text);border:1px solid var(--ep-color-border)}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$5 = \"data-v-839ecda0\";\n /* module identifier */\n const __vue_module_identifier__$5 = undefined;\n /* functional template */\n const __vue_is_functional_template__$5 = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$5 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },\n __vue_inject_styles__$5,\n __vue_script__$5,\n __vue_scope_id__$5,\n __vue_is_functional_template__$5,\n __vue_module_identifier__$5,\n false,\n createInjector$1,\n undefined,\n undefined\n );var VEmojiPicker = /** @class */ (function (_super) {\r\n __extends(VEmojiPicker, _super);\r\n function VEmojiPicker() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.mapEmojis = {};\r\n _this.currentCategory = _this.initialCategory;\r\n _this.filterEmoji = \"\";\r\n return _this;\r\n }\r\n VEmojiPicker.prototype.created = function () {\r\n var categoriesNames = this.customCategories.map(function (c) { return c.name; });\r\n if (!categoriesNames.includes(this.initialCategory)) {\r\n this.initialCategory = categoriesNames[0];\r\n }\r\n // Create map\r\n this.mapperEmojisCategory(this.customEmojis);\r\n this.restoreFrequentlyEmojis();\r\n // Configure i18n\r\n if (this.i18n) {\r\n locale.i18n(this.i18n);\r\n }\r\n };\r\n VEmojiPicker.prototype.beforeDestroy = function () {\r\n this.mapEmojis = {};\r\n };\r\n VEmojiPicker.prototype.onSearch = function (term) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.filterEmoji = term;\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n VEmojiPicker.prototype.changeCategory = function (category) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var hasEmojis;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n hasEmojis = this.mapEmojis[category.name].length;\r\n this.currentCategory = category.name;\r\n if (!hasEmojis) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.onChangeCategory(category)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n VEmojiPicker.prototype.updateFrequently = function (emoji) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var oldEmojis, emojis;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n oldEmojis = this.mapEmojis[\"Frequently\"];\r\n emojis = __spread(new Set(__spread([emoji], oldEmojis)));\r\n this.mapEmojis[\"Frequently\"] = emojis.slice(0, this.limitFrequently);\r\n return [4 /*yield*/, this.saveFrequentlyEmojis(emojis)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n VEmojiPicker.prototype.mapperEmojisCategory = function (emojis) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.$set(this.mapEmojis, \"Frequently\", []);\r\n emojis\r\n .filter(function (emoji) { return !_this.exceptEmojis.includes(emoji); })\r\n .forEach(function (emoji) {\r\n var _category = emoji.category;\r\n if (!_this.mapEmojis[_category]) {\r\n _this.$set(_this.mapEmojis, _category, []);\r\n }\r\n _this.mapEmojis[_category].push(emoji);\r\n });\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n VEmojiPicker.prototype.restoreFrequentlyEmojis = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var jsonMapIndexEmojis, mapIndexEmojis;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n jsonMapIndexEmojis = localStorage.getItem(\"frequentlyEmojis\");\r\n mapIndexEmojis = JSON.parse(jsonMapIndexEmojis) || [];\r\n this.mapEmojis[\"Frequently\"] = mapIndexEmojis.map(function (index) { return _this.customEmojis[index]; });\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n VEmojiPicker.prototype.saveFrequentlyEmojis = function (emojis) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var mapIndexEmojis;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n mapIndexEmojis = emojis.map(function (emoji) {\r\n return _this.customEmojis.indexOf(emoji);\r\n });\r\n localStorage.setItem(\"frequentlyEmojis\", JSON.stringify(mapIndexEmojis));\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n Object.defineProperty(VEmojiPicker.prototype, \"categoriesFiltered\", {\r\n get: function () {\r\n var _this = this;\r\n return this.customCategories.filter(function (category) { return !_this.exceptCategories.includes(category); });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n VEmojiPicker.prototype.onSelectEmoji = function (emoji) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.updateFrequently(emoji)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, emoji];\r\n }\r\n });\r\n });\r\n };\r\n VEmojiPicker.prototype.onChangeCategory = function (category) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, category];\r\n });\r\n });\r\n };\r\n VEmojiPicker.prototype.onChangeCustomEmojis = function (newEmojis) {\r\n if (newEmojis && newEmojis.length) {\r\n this.mapEmojis = {};\r\n this.mapperEmojisCategory(newEmojis);\r\n }\r\n };\r\n __decorate([\r\n Prop({ default: function () { return emojisDefault; } })\r\n ], VEmojiPicker.prototype, \"customEmojis\", void 0);\r\n __decorate([\r\n Prop({ default: function () { return categoriesDefault; } })\r\n ], VEmojiPicker.prototype, \"customCategories\", void 0);\r\n __decorate([\r\n Prop({ default: 15 })\r\n ], VEmojiPicker.prototype, \"limitFrequently\", void 0);\r\n __decorate([\r\n Prop({ default: 5 })\r\n ], VEmojiPicker.prototype, \"emojisByRow\", void 0);\r\n __decorate([\r\n Prop({ default: false })\r\n ], VEmojiPicker.prototype, \"continuousList\", void 0);\r\n __decorate([\r\n Prop({ default: 32 })\r\n ], VEmojiPicker.prototype, \"emojiSize\", void 0);\r\n __decorate([\r\n Prop({ default: true })\r\n ], VEmojiPicker.prototype, \"emojiWithBorder\", void 0);\r\n __decorate([\r\n Prop({ default: true })\r\n ], VEmojiPicker.prototype, \"showSearch\", void 0);\r\n __decorate([\r\n Prop({ default: true })\r\n ], VEmojiPicker.prototype, \"showCategories\", void 0);\r\n __decorate([\r\n Prop({ default: false })\r\n ], VEmojiPicker.prototype, \"dark\", void 0);\r\n __decorate([\r\n Prop({ default: \"Peoples\" })\r\n ], VEmojiPicker.prototype, \"initialCategory\", void 0);\r\n __decorate([\r\n Prop({ default: function () { return []; } })\r\n ], VEmojiPicker.prototype, \"exceptCategories\", void 0);\r\n __decorate([\r\n Prop({ default: function () { return []; } })\r\n ], VEmojiPicker.prototype, \"exceptEmojis\", void 0);\r\n __decorate([\r\n Prop({})\r\n ], VEmojiPicker.prototype, \"i18n\", void 0);\r\n __decorate([\r\n Emit(\"select\")\r\n ], VEmojiPicker.prototype, \"onSelectEmoji\", null);\r\n __decorate([\r\n Emit(\"changeCategory\")\r\n ], VEmojiPicker.prototype, \"onChangeCategory\", null);\r\n __decorate([\r\n Watch(\"customEmojis\")\r\n ], VEmojiPicker.prototype, \"onChangeCustomEmojis\", null);\r\n VEmojiPicker = __decorate([\r\n Component({\r\n components: {\r\n Categories: __vue_component__$1$1,\r\n EmojiList: __vue_component__$4$1,\r\n InputSearch: __vue_component__$5\r\n }\r\n })\r\n ], VEmojiPicker);\r\n return VEmojiPicker;\r\n}(Vue));/* script */\nconst __vue_script__$6 = VEmojiPicker;\n\n/* template */\nvar __vue_render__$6 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['emoji-picker', {dark: _vm.dark}],attrs:{\"id\":\"EmojiPicker\"}},[(_vm.showCategories)?_c('Categories',{attrs:{\"categories\":_vm.categoriesFiltered,\"current\":_vm.currentCategory},on:{\"select\":_vm.changeCategory}}):_vm._e(),_vm._v(\" \"),(_vm.showSearch)?_c('InputSearch',{on:{\"update\":_vm.onSearch}}):_vm._e(),_vm._v(\" \"),_c('EmojiList',{attrs:{\"data\":_vm.mapEmojis,\"category\":_vm.currentCategory,\"filter\":_vm.filterEmoji,\"emojiWithBorder\":_vm.emojiWithBorder,\"emojiSize\":_vm.emojiSize,\"emojisByRow\":_vm.emojisByRow,\"continuousList\":_vm.continuousList,\"hasSearch\":_vm.showSearch},on:{\"select\":_vm.onSelectEmoji}})],1)};\nvar __vue_staticRenderFns__$6 = [];\n\n /* style */\n const __vue_inject_styles__$6 = function (inject) {\n if (!inject) return\n inject(\"data-v-f1d527bc_0\", { source: \".emoji-picker[data-v-f1d527bc]{--ep-color-bg:#f0f0f0;--ep-color-sbg:#f6f6f6;--ep-color-border:#e4e4e4;--ep-color-text:#4a4a4a;--ep-color-active:#009688;display:inline-flex;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeSpeed;flex-direction:column;align-items:center;background-color:var(--ep-color-bg);border-radius:4px;border:1px solid var(--ep-color-border);overflow:hidden;width:325px;user-select:none}@media screen and (max-width:325px){.emoji-picker[data-v-f1d527bc]{width:100%}}.dark[data-v-f1d527bc]{--ep-color-bg:#191B1A;--ep-color-sbg:#212221;--ep-color-border:#3E3D42;--ep-color-text:#f0f0f0;--ep-color-active:#009688}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$6 = \"data-v-f1d527bc\";\n /* module identifier */\n const __vue_module_identifier__$6 = undefined;\n /* functional template */\n const __vue_is_functional_template__$6 = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$6 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },\n __vue_inject_styles__$6,\n __vue_script__$6,\n __vue_scope_id__$6,\n __vue_is_functional_template__$6,\n __vue_module_identifier__$6,\n false,\n createInjector$1,\n undefined,\n undefined\n );\n\nlet default_1$2 = class default_1 extends Vue {\n constructor() {\n super(...arguments);\n this.value = false;\n this.absoluteX = 0;\n this.absoluteY = 0;\n }\n apply(emoji) {\n this.$emit(\"emojiSelected\", emoji.data);\n }\n async onValueChange() {\n if (!this.value) {\n this.$destroy();\n this.$el.parentNode.removeChild(this.$el);\n }\n }\n};\n__decorate$1([Prop()], default_1$2.prototype, \"activator\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1$2.prototype, \"dark\", void 0);\n__decorate$1([Watch(\"value\")], default_1$2.prototype, \"onValueChange\", null);\ndefault_1$2 = __decorate$1([Component({\n components: {\n VEmojiPicker: __vue_component__$6,\n VMenu: VMenu\n }\n})], default_1$2);\nvar script$2 = default_1$2;\n\nconst isOldIE = typeof navigator !== 'undefined' &&\r\n /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\r\nfunction createInjector(context) {\r\n return (id, style) => addStyle(id, style);\r\n}\r\nlet HEAD;\r\nconst styles = {};\r\nfunction addStyle(id, css) {\r\n const group = isOldIE ? css.media || 'default' : id;\r\n const style = styles[group] || (styles[group] = { ids: new Set(), styles: [] });\r\n if (!style.ids.has(id)) {\r\n style.ids.add(id);\r\n let code = css.source;\r\n if (css.map) {\r\n // https://developer.chrome.com/devtools/docs/javascript-debugging\r\n // this makes source maps inside style tags work properly in Chrome\r\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */';\r\n // http://stackoverflow.com/a/26603875\r\n code +=\r\n '\\n/*# sourceMappingURL=data:application/json;base64,' +\r\n btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) +\r\n ' */';\r\n }\r\n if (!style.element) {\r\n style.element = document.createElement('style');\r\n style.element.type = 'text/css';\r\n if (css.media)\r\n style.element.setAttribute('media', css.media);\r\n if (HEAD === undefined) {\r\n HEAD = document.head || document.getElementsByTagName('head')[0];\r\n }\r\n HEAD.appendChild(style.element);\r\n }\r\n if ('styleSheet' in style.element) {\r\n style.styles.push(code);\r\n style.element.styleSheet.cssText = style.styles\r\n .filter(Boolean)\r\n .join('\\n');\r\n }\r\n else {\r\n const index = style.ids.size - 1;\r\n const textNode = document.createTextNode(code);\r\n const nodes = style.element.childNodes;\r\n if (nodes[index])\r\n style.element.removeChild(nodes[index]);\r\n if (nodes.length)\r\n style.element.insertBefore(textNode, nodes[index]);\r\n else\r\n style.element.appendChild(textNode);\r\n }\r\n }\r\n}\n\n/* script */\nconst __vue_script__$2 = script$2;\n\n/* template */\nvar __vue_render__$2 = function () {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c('v-menu', {\n attrs: {\n \"top\": \"\",\n \"center\": \"\",\n \"nudge-top\": 18,\n \"nudge-left\": 160,\n \"absolute\": \"\",\n \"close-on-content-click\": false,\n \"dark\": _vm.dark\n },\n model: {\n value: _vm.value,\n callback: function ($$v) {\n _vm.value = $$v;\n },\n expression: \"value\"\n }\n }, [_c('VEmojiPicker', {\n attrs: {\n \"labelSearch\": 'search',\n \"dark\": _vm.dark,\n \"emojisByRow\": \"10\",\n \"emojiSize\": \"25\",\n \"lang\": \"pt-BR\"\n },\n on: {\n \"select\": _vm.apply\n }\n })], 1);\n};\nvar __vue_staticRenderFns__$2 = [];\n\n/* style */\nconst __vue_inject_styles__$2 = function (inject) {\n if (!inject) return;\n inject(\"data-v-94b39444_0\", {\n source: \".emoji-picker .container-emoji{height:150px!important}.emoji-picker .container-emoji::after{content:\\\" \\\";background:linear-gradient(rgba(240,240,240,0),rgba(240,240,240,.75),#f0f0f0);position:absolute;bottom:0;height:24px;left:0;right:0}.emoji-picker .container-emoji::-webkit-scrollbar{width:8px!important}.emoji-picker .container-emoji::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.emoji-picker .container-emoji::-webkit-scrollbar-thumb:hover{background:#888}.emoji-picker .container-search{padding:0 4px!important}.dark .container-emoji::after{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.75),#000)}\",\n map: undefined,\n media: undefined\n });\n};\n/* scoped */\nconst __vue_scope_id__$2 = undefined;\n/* module identifier */\nconst __vue_module_identifier__$2 = undefined;\n/* functional template */\nconst __vue_is_functional_template__$2 = false;\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nconst __vue_component__$3 = /*#__PURE__*/normalizeComponent$1({\n render: __vue_render__$2,\n staticRenderFns: __vue_staticRenderFns__$2\n}, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, createInjector, undefined, undefined);\nvar EmojiPicker = __vue_component__$3;\n\nlet default_1$1 = class default_1 extends Vue {\n constructor() {\n super(...arguments);\n this.menu = false;\n this.colors = [\"#f44336\", \"#e91e63\", \"#9c27b0\", \"#673ab7\", \"#3f51b5\", \"#2196f3\", \"#03a9f4\", \"#00bcd4\", \"#009688\", \"#4caf50\", \"#8bc34a\", \"#cddc39\", \"#ffeb3b\", \"#ffc107\", \"#ff9800\", \"#ff5722\", \"#000000\", \"#333333\", \"#666666\", \"#999999\", \"#CCCCCC\", \"#D5D5D4\", \"#E8E8E8\", \"#EEEEEE\"];\n this.picker = false;\n }\n setColor(color) {\n this.$emit(\"input\", color);\n this.menu = false;\n }\n};\n__decorate$1([Prop()], default_1$1.prototype, \"value\", void 0);\n__decorate$1([Prop({\n default: 0\n})], default_1$1.prototype, \"nudgeLeft\", void 0);\n__decorate$1([Prop({\n default: 0\n})], default_1$1.prototype, \"nudgeTop\", void 0);\n__decorate$1([Prop({\n default: true\n})], default_1$1.prototype, \"more\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1$1.prototype, \"dark\", void 0);\ndefault_1$1 = __decorate$1([Component({\n components: {\n VIcon: VIcon,\n VBtn: VBtn,\n VContainer: VContainer,\n VDivider: VDivider,\n VColorPicker: VColorPicker,\n VExpandTransition: VExpandTransition,\n VList: VList,\n VMenu: VMenu\n }\n})], default_1$1);\nvar script$1 = default_1$1;\n\n/* script */\nconst __vue_script__$1 = script$1;\n\n/* template */\nvar __vue_render__$1 = function () {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c('v-menu', {\n attrs: {\n \"offset-y\": \"\",\n \"dark\": _vm.dark,\n \"nudge-left\": _vm.nudgeLeft || 255,\n \"nudge-top\": _vm.nudgeTop || 42,\n \"close-on-content-click\": false,\n \"transition\": \"scale-transition\",\n \"origin\": !_vm.nudgeLeft ? 'top right' : 'top left'\n },\n scopedSlots: _vm._u([{\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on;\n return [_vm._t(\"button\", function () {\n return [_c('v-btn', _vm._g({\n staticStyle: {\n \"border\": \"1px solid rgba(0, 0, 0, 0.25) !important\",\n \"top\": \"-2px\"\n },\n attrs: {\n \"color\": _vm.value,\n \"icon\": \"\",\n \"small\": \"\"\n }\n }, on), [_c('v-icon', [_vm._v(\"mdi-circle\")])], 1)];\n }, null, {\n on: on\n })];\n }\n }], null, true),\n model: {\n value: _vm.menu,\n callback: function ($$v) {\n _vm.menu = $$v;\n },\n expression: \"menu\"\n }\n }, [_vm._v(\" \"), _c('v-list', {\n staticClass: \"pb-0 pl-2\"\n }, [_c('v-container', {\n staticStyle: {\n \"padding-bottom\": \"0\"\n },\n attrs: {\n \"fluid\": \"\"\n }\n }, [_c('div', {\n staticClass: \"d-flex flex-wrap\",\n staticStyle: {\n \"max-width\": \"230px\"\n }\n }, _vm._l(_vm.colors, function (color) {\n return _c('div', {\n key: color,\n staticClass: \"text-center\"\n }, [_c('v-btn', {\n attrs: {\n \"icon\": \"\",\n \"small\": \"\"\n },\n on: {\n \"click\": function ($event) {\n return _vm.setColor(color);\n }\n }\n }, [_c('v-icon', {\n attrs: {\n \"color\": color\n }\n }, [_vm._v(\"mdi-circle\")])], 1)], 1);\n }), 0)]), _vm._v(\" \"), _c('v-divider', {\n staticClass: \"mt-2\",\n attrs: {\n \"horizontal\": \"\"\n }\n }), _vm._v(\" \"), _vm.more ? [!_vm.picker ? _c('v-btn', {\n staticClass: \"ma-0 py-3\",\n staticStyle: {\n \"margin\": \"1rem 0 0 0\",\n \"height\": \"auto\"\n },\n attrs: {\n \"x-small\": \"\",\n \"block\": \"\",\n \"text\": \"\"\n },\n on: {\n \"click\": function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n _vm.picker = true;\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.__(\"words.show-more\")) + \"\\n \")]) : _c('v-btn', {\n staticClass: \"ma-0 py-3\",\n staticStyle: {\n \"margin\": \"1rem 0 0 0\",\n \"height\": \"auto\"\n },\n attrs: {\n \"x-small\": \"\",\n \"block\": \"\",\n \"text\": \"\"\n },\n on: {\n \"click\": function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n _vm.picker = false;\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.__(\"words.show-less\")) + \"\\n \")]), _vm._v(\" \"), _c('v-expand-transition', [_vm.picker ? _c('div', {\n staticClass: \"text-center\"\n }, [_c('v-divider'), _vm._v(\" \"), _c('v-color-picker', {\n attrs: {\n \"value\": _vm.value,\n \"width\": \"300\"\n },\n on: {\n \"input\": function ($event) {\n return _vm.$emit('input', $event);\n }\n }\n })], 1) : _vm._e()])] : _vm._e()], 2)], 1);\n};\nvar __vue_staticRenderFns__$1 = [];\n\n/* style */\nconst __vue_inject_styles__$1 = undefined;\n/* scoped */\nconst __vue_scope_id__$1 = undefined;\n/* module identifier */\nconst __vue_module_identifier__$1 = undefined;\n/* functional template */\nconst __vue_is_functional_template__$1 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nconst __vue_component__$1 = /*#__PURE__*/normalizeComponent$1({\n render: __vue_render__$1,\n staticRenderFns: __vue_staticRenderFns__$1\n}, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);\nvar __vue_component__$2 = __vue_component__$1;\n\nvar components = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ImageDialog: __vue_component__$c,\n LinkDialog: __vue_component__$a,\n VideoDialog: __vue_component__$8,\n EmojiPicker: EmojiPicker,\n ColorPicker: __vue_component__$2,\n VAvatar: VAvatar,\n VInput: VInput,\n VCard: VCard,\n VBtn: VBtn,\n VImg: VImg,\n VIcon: VIcon,\n VFileInput: VFileInput,\n VList: VList,\n VListItem: VListItem,\n VListItemContent: VListItemContent,\n VListItemAvatar: VListItemAvatar,\n VListItemTitle: VListItemTitle,\n VMenu: VMenu,\n VProgressLinear: VProgressLinear,\n VSelect: VSelect,\n VSpacer: VSpacer,\n VToolbar: VToolbar,\n VTooltip: VTooltip\n});\n\nvar toolbarItems = [\"bold\", \"italic\", \"underline\", \"strike\", \"color\", \"|\", \"headings\", \"|\", \"left\", \"center\", \"right\", \"justify\", \"|\", \"bulletList\", \"orderedList\", \"|\", \"link\", \"image\", \"video\", \"emoji\", \"|\", \"clear\"];\n\nvar icons = {\n get(iconName) {\n let packName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.pack || \"mdi\";\n return this.packs[packName][iconName];\n },\n packs: {\n md: {\n bold: \"format_bold\",\n italic: \"format_italic\",\n underline: \"format_underlined\",\n strike: \"format_strikethrough\",\n color: \"format_color_text\",\n highlight: \"format_color_fill\",\n h1: \"mdi-format-header-1\",\n h2: \"mdi-format-header-2\",\n h3: \"mdi-format-header-3\",\n p: \"mdi-format-paragraph\",\n left: \"format_align_left\",\n center: \"format_align_center\",\n right: \"format_align_right\",\n justify: \"format_align_justify\",\n bulletList: \"format_list_bulleted\",\n orderedList: \"format_list_numbered\",\n checkbox: \"ballot\",\n link: \"link\",\n image: \"image\",\n video: \"videocam\",\n emoji: \"tag_faces\",\n blockquote: \"format_quote\",\n rule: \"horizontal_rule\",\n code: \"code\",\n codeBlock: \"terminal\",\n clear: \"format_clear\"\n },\n mdi: {\n bold: \"mdi-format-bold\",\n italic: \"mdi-format-italic\",\n underline: \"mdi-format-underline\",\n strike: \"mdi-format-strikethrough\",\n color: \"mdi-palette\",\n highlight: \"mdi-grease-pencil\",\n h1: \"mdi-format-header-1\",\n h2: \"mdi-format-header-2\",\n h3: \"mdi-format-header-3\",\n p: \"mdi-format-paragraph\",\n left: \"mdi-format-align-left\",\n center: \"mdi-format-align-center\",\n right: \"mdi-format-align-right\",\n justify: \"mdi-format-align-justify\",\n bulletList: \"mdi-format-list-bulleted\",\n orderedList: \"mdi-format-list-numbered\",\n checkbox: \"mdi-format-list-checkbox\",\n link: \"mdi-link\",\n image: \"mdi-image\",\n video: \"mdi-video\",\n emoji: \"mdi-emoticon-outline\",\n blockquote: \"mdi-format-quote-open\",\n rule: \"mdi-minus\",\n code: \"mdi-code-tags\",\n codeBlock: \"mdi-code-braces-box\",\n clear: \"mdi-format-clear\"\n },\n fa: {\n bold: \"fa-bold\",\n italic: \"fa-italic\",\n underline: \"fa-underline\",\n strike: \"fa-strikethrough\",\n color: \"fa-paint-brush\",\n highlight: \"fa-highlighter\",\n h1: \"mdi-format-header-1\",\n h2: \"mdi-format-header-2\",\n h3: \"mdi-format-header-3\",\n p: \"mdi-format-paragraph\",\n left: \"fa-align-left\",\n center: \"fa-align-center\",\n right: \"fa-align-right\",\n justify: \"fa-align-justify\",\n bulletList: \"fa-list-ul\",\n orderedList: \"fa-list-ol\",\n checkbox: \"fa-check\",\n link: \"fa-link\",\n image: \"fa-image\",\n video: \"fa-video\",\n emoji: \"fa-regular fa-face-grin\",\n blockquote: \"fa-quote-left\",\n rule: \"fa-minus\",\n code: \"fa-code\",\n codeBlock: \"fa-code\",\n clear: \"fa-text-slash\"\n }\n }\n};\n\nfunction makeToolbarDefinitions(context) {\n const definitions = {\n // Special items\n \"|\": {\n type: \"divider\"\n },\n divider: {\n type: \"divider\"\n },\n \">\": {\n type: \"spacer\"\n },\n spacer: {\n type: \"spacer\"\n },\n // Standard buttons\n bold: {\n title: \"Bold\",\n icon: \"bold\",\n action: () => context.editor.chain().focus().toggleBold().run(),\n isActive: () => context.editor.isActive(\"bold\")\n },\n italic: {\n title: \"Italic\",\n icon: \"italic\",\n action: () => context.editor.chain().focus().toggleItalic().run(),\n isActive: () => context.editor.isActive(\"italic\")\n },\n underline: {\n title: \"Underline\",\n icon: \"underline\",\n action: () => context.editor.chain().focus().toggleUnderline().run(),\n isActive: () => context.editor.isActive(\"underline\")\n },\n strike: {\n title: \"Strike\",\n icon: \"strike\",\n action: () => context.editor.chain().focus().toggleStrike().run(),\n isActive: () => context.editor.isActive(\"strike\")\n },\n color: {\n title: \"Color\",\n icon: \"color\",\n action: color => context.editor.chain().focus().setColor(color).run(),\n isActive: () => context.editor.isActive(\"textStyle\")\n },\n highlight: {\n title: \"Highlight\",\n icon: \"highlight\",\n action: () => context.editor.chain().focus().toggleHighlight().run(),\n isActive: () => context.editor.isActive(\"highlight\")\n },\n headings: {\n type: \"headings\"\n },\n h1: {\n title: \"Heading 1\",\n icon: \"h1\",\n action: () => context.editor.chain().focus().toggleHeading({\n level: 1\n }).run(),\n isActive: () => context.editor.isActive(\"heading\", {\n level: 1\n })\n },\n h2: {\n title: \"Heading 2\",\n icon: \"h2\",\n action: () => context.editor.chain().focus().toggleHeading({\n level: 2\n }).run(),\n isActive: () => context.editor.isActive(\"heading\", {\n level: 2\n })\n },\n h3: {\n title: \"Heading 3\",\n icon: \"h3\",\n action: () => context.editor.chain().focus().toggleHeading({\n level: 3\n }).run(),\n isActive: () => context.editor.isActive(\"heading\", {\n level: 3\n })\n },\n p: {\n title: \"Paragraph\",\n icon: \"p\",\n action: () => context.editor.chain().focus().setParagraph().run(),\n isActive: () => context.editor.isActive(\"paragraph\")\n },\n left: {\n title: \"left\",\n icon: \"left\",\n action: () => context.editor.chain().focus().setTextAlign(\"left\").run(),\n isActive: () => context.editor.isActive({\n textAlign: \"left\"\n })\n },\n center: {\n title: \"center\",\n icon: \"center\",\n action: () => context.editor.chain().focus().setTextAlign(\"center\").run(),\n isActive: () => context.editor.isActive({\n textAlign: \"center\"\n })\n },\n right: {\n title: \"right\",\n icon: \"right\",\n action: () => context.editor.chain().focus().setTextAlign(\"right\").run(),\n isActive: () => context.editor.isActive({\n textAlign: \"right\"\n })\n },\n justify: {\n title: \"justify\",\n icon: \"justify\",\n action: () => context.editor.chain().focus().setTextAlign(\"justify\").run(),\n isActive: () => context.editor.isActive({\n textAlign: \"justify\"\n })\n },\n bulletList: {\n title: \"Bullet List\",\n icon: \"bulletList\",\n action: () => context.editor.chain().focus().toggleBulletList().run(),\n isActive: () => context.editor.isActive(\"bulletList\")\n },\n orderedList: {\n title: \"Ordered List\",\n icon: \"orderedList\",\n action: () => context.editor.chain().focus().toggleOrderedList().run(),\n isActive: () => context.editor.isActive(\"orderedList\")\n },\n checkbox: {\n title: \"Task List\",\n icon: \"checkbox\",\n action: () => context.editor.chain().focus().toggleTaskList().run(),\n isActive: () => context.editor.isActive(\"taskList\")\n },\n link: {\n title: \"Link\",\n icon: \"link\",\n action: () => context.linkDialog = true,\n isActive: () => context.editor.isActive(\"link\")\n },\n image: {\n title: \"Image\",\n icon: \"image\",\n action: () => context.imageDialog = true,\n isActive: () => context.editor.isActive(\"image\")\n },\n video: {\n title: \"Video\",\n icon: \"video\",\n action: () => context.videoDialog = true,\n isActive: () => context.editor.isActive(\"iframe\")\n },\n emoji: {\n title: \"Emoji\",\n icon: \"emoji\",\n action: context.setEmoji\n },\n blockquote: {\n title: \"Blockquote\",\n icon: \"blockquote\",\n action: () => context.editor.chain().focus().toggleBlockquote().run(),\n isActive: () => context.editor.isActive(\"blockquote\")\n },\n rule: {\n title: \"Horizontal Rule\",\n icon: \"rule\",\n action: () => context.editor.chain().focus().setHorizontalRule().run()\n },\n code: {\n title: \"Code\",\n icon: \"code\",\n action: () => context.editor.chain().focus().toggleCode().run(),\n isActive: () => context.editor.isActive(\"code\")\n },\n codeBlock: {\n title: \"Code Block\",\n icon: \"codeBlock\",\n action: () => context.editor.chain().focus().toggleCodeBlock().run(),\n isActive: () => context.editor.isActive(\"codeBlock\")\n },\n clear: {\n title: \"Clear Format\",\n icon: \"clear\",\n /* eslint newline-per-chained-call: \"off\" */\n action: () => context.editor.chain().focus().clearNodes().unsetAllMarks().run()\n }\n };\n let toolbarItems = [];\n const toolbar = context.toolbar.concat(context.append);\n for (let i of toolbar) {\n if (definitions[i]) {\n definitions[i].icon = icons.get(definitions[i].icon, context.$vuetify.icons.iconfont);\n definitions[i].type = definitions[i].type || i;\n toolbarItems.push(definitions[i]);\n } else if (i[0] === \"#\") {\n toolbarItems.push({\n type: \"slot\",\n slot: i.substring(1)\n });\n }\n }\n return toolbarItems;\n}\n\nfunction renderSuggestion(component) {\n return () => {\n const {\n mentionConfig\n } = component;\n return {\n onStart: props => {\n mentionConfig.show = true;\n mentionConfig.items = props.items;\n mentionConfig.command = props.command;\n mentionConfig.selected = 0;\n const {\n x,\n y\n } = props.clientRect();\n mentionConfig.x = x;\n mentionConfig.y = y + 24;\n },\n onUpdate(props) {\n mentionConfig.items = props.items;\n },\n onKeyDown(props) {\n const {\n event\n } = props;\n if (event.key === \"Escape\") {\n mentionConfig.show = false;\n return true;\n }\n if (event.key === \"ArrowUp\") {\n mentionConfig.selected = (mentionConfig.selected + mentionConfig.items.length - 1) % mentionConfig.items.length;\n return true;\n }\n if (event.key === \"ArrowDown\") {\n mentionConfig.selected = (mentionConfig.selected + 1) % mentionConfig.items.length;\n return true;\n }\n if (event.key === \"Enter\") {\n component.selectMention(mentionConfig.selected);\n return true;\n }\n return false;\n },\n onExit() {\n mentionConfig.show = false;\n }\n };\n };\n}\n\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\nfunction getDefaultWhiteList$1 () {\n // 白名单值说明:\n // true: 允许该属性\n // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许\n // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许\n // 除上面列出的值外均表示不允许\n var whiteList = {};\n\n whiteList['align-content'] = false; // default: auto\n whiteList['align-items'] = false; // default: auto\n whiteList['align-self'] = false; // default: auto\n whiteList['alignment-adjust'] = false; // default: auto\n whiteList['alignment-baseline'] = false; // default: baseline\n whiteList['all'] = false; // default: depending on individual properties\n whiteList['anchor-point'] = false; // default: none\n whiteList['animation'] = false; // default: depending on individual properties\n whiteList['animation-delay'] = false; // default: 0\n whiteList['animation-direction'] = false; // default: normal\n whiteList['animation-duration'] = false; // default: 0\n whiteList['animation-fill-mode'] = false; // default: none\n whiteList['animation-iteration-count'] = false; // default: 1\n whiteList['animation-name'] = false; // default: none\n whiteList['animation-play-state'] = false; // default: running\n whiteList['animation-timing-function'] = false; // default: ease\n whiteList['azimuth'] = false; // default: center\n whiteList['backface-visibility'] = false; // default: visible\n whiteList['background'] = true; // default: depending on individual properties\n whiteList['background-attachment'] = true; // default: scroll\n whiteList['background-clip'] = true; // default: border-box\n whiteList['background-color'] = true; // default: transparent\n whiteList['background-image'] = true; // default: none\n whiteList['background-origin'] = true; // default: padding-box\n whiteList['background-position'] = true; // default: 0% 0%\n whiteList['background-repeat'] = true; // default: repeat\n whiteList['background-size'] = true; // default: auto\n whiteList['baseline-shift'] = false; // default: baseline\n whiteList['binding'] = false; // default: none\n whiteList['bleed'] = false; // default: 6pt\n whiteList['bookmark-label'] = false; // default: content()\n whiteList['bookmark-level'] = false; // default: none\n whiteList['bookmark-state'] = false; // default: open\n whiteList['border'] = true; // default: depending on individual properties\n whiteList['border-bottom'] = true; // default: depending on individual properties\n whiteList['border-bottom-color'] = true; // default: current color\n whiteList['border-bottom-left-radius'] = true; // default: 0\n whiteList['border-bottom-right-radius'] = true; // default: 0\n whiteList['border-bottom-style'] = true; // default: none\n whiteList['border-bottom-width'] = true; // default: medium\n whiteList['border-collapse'] = true; // default: separate\n whiteList['border-color'] = true; // default: depending on individual properties\n whiteList['border-image'] = true; // default: none\n whiteList['border-image-outset'] = true; // default: 0\n whiteList['border-image-repeat'] = true; // default: stretch\n whiteList['border-image-slice'] = true; // default: 100%\n whiteList['border-image-source'] = true; // default: none\n whiteList['border-image-width'] = true; // default: 1\n whiteList['border-left'] = true; // default: depending on individual properties\n whiteList['border-left-color'] = true; // default: current color\n whiteList['border-left-style'] = true; // default: none\n whiteList['border-left-width'] = true; // default: medium\n whiteList['border-radius'] = true; // default: 0\n whiteList['border-right'] = true; // default: depending on individual properties\n whiteList['border-right-color'] = true; // default: current color\n whiteList['border-right-style'] = true; // default: none\n whiteList['border-right-width'] = true; // default: medium\n whiteList['border-spacing'] = true; // default: 0\n whiteList['border-style'] = true; // default: depending on individual properties\n whiteList['border-top'] = true; // default: depending on individual properties\n whiteList['border-top-color'] = true; // default: current color\n whiteList['border-top-left-radius'] = true; // default: 0\n whiteList['border-top-right-radius'] = true; // default: 0\n whiteList['border-top-style'] = true; // default: none\n whiteList['border-top-width'] = true; // default: medium\n whiteList['border-width'] = true; // default: depending on individual properties\n whiteList['bottom'] = false; // default: auto\n whiteList['box-decoration-break'] = true; // default: slice\n whiteList['box-shadow'] = true; // default: none\n whiteList['box-sizing'] = true; // default: content-box\n whiteList['box-snap'] = true; // default: none\n whiteList['box-suppress'] = true; // default: show\n whiteList['break-after'] = true; // default: auto\n whiteList['break-before'] = true; // default: auto\n whiteList['break-inside'] = true; // default: auto\n whiteList['caption-side'] = false; // default: top\n whiteList['chains'] = false; // default: none\n whiteList['clear'] = true; // default: none\n whiteList['clip'] = false; // default: auto\n whiteList['clip-path'] = false; // default: none\n whiteList['clip-rule'] = false; // default: nonzero\n whiteList['color'] = true; // default: implementation dependent\n whiteList['color-interpolation-filters'] = true; // default: auto\n whiteList['column-count'] = false; // default: auto\n whiteList['column-fill'] = false; // default: balance\n whiteList['column-gap'] = false; // default: normal\n whiteList['column-rule'] = false; // default: depending on individual properties\n whiteList['column-rule-color'] = false; // default: current color\n whiteList['column-rule-style'] = false; // default: medium\n whiteList['column-rule-width'] = false; // default: medium\n whiteList['column-span'] = false; // default: none\n whiteList['column-width'] = false; // default: auto\n whiteList['columns'] = false; // default: depending on individual properties\n whiteList['contain'] = false; // default: none\n whiteList['content'] = false; // default: normal\n whiteList['counter-increment'] = false; // default: none\n whiteList['counter-reset'] = false; // default: none\n whiteList['counter-set'] = false; // default: none\n whiteList['crop'] = false; // default: auto\n whiteList['cue'] = false; // default: depending on individual properties\n whiteList['cue-after'] = false; // default: none\n whiteList['cue-before'] = false; // default: none\n whiteList['cursor'] = false; // default: auto\n whiteList['direction'] = false; // default: ltr\n whiteList['display'] = true; // default: depending on individual properties\n whiteList['display-inside'] = true; // default: auto\n whiteList['display-list'] = true; // default: none\n whiteList['display-outside'] = true; // default: inline-level\n whiteList['dominant-baseline'] = false; // default: auto\n whiteList['elevation'] = false; // default: level\n whiteList['empty-cells'] = false; // default: show\n whiteList['filter'] = false; // default: none\n whiteList['flex'] = false; // default: depending on individual properties\n whiteList['flex-basis'] = false; // default: auto\n whiteList['flex-direction'] = false; // default: row\n whiteList['flex-flow'] = false; // default: depending on individual properties\n whiteList['flex-grow'] = false; // default: 0\n whiteList['flex-shrink'] = false; // default: 1\n whiteList['flex-wrap'] = false; // default: nowrap\n whiteList['float'] = false; // default: none\n whiteList['float-offset'] = false; // default: 0 0\n whiteList['flood-color'] = false; // default: black\n whiteList['flood-opacity'] = false; // default: 1\n whiteList['flow-from'] = false; // default: none\n whiteList['flow-into'] = false; // default: none\n whiteList['font'] = true; // default: depending on individual properties\n whiteList['font-family'] = true; // default: implementation dependent\n whiteList['font-feature-settings'] = true; // default: normal\n whiteList['font-kerning'] = true; // default: auto\n whiteList['font-language-override'] = true; // default: normal\n whiteList['font-size'] = true; // default: medium\n whiteList['font-size-adjust'] = true; // default: none\n whiteList['font-stretch'] = true; // default: normal\n whiteList['font-style'] = true; // default: normal\n whiteList['font-synthesis'] = true; // default: weight style\n whiteList['font-variant'] = true; // default: normal\n whiteList['font-variant-alternates'] = true; // default: normal\n whiteList['font-variant-caps'] = true; // default: normal\n whiteList['font-variant-east-asian'] = true; // default: normal\n whiteList['font-variant-ligatures'] = true; // default: normal\n whiteList['font-variant-numeric'] = true; // default: normal\n whiteList['font-variant-position'] = true; // default: normal\n whiteList['font-weight'] = true; // default: normal\n whiteList['grid'] = false; // default: depending on individual properties\n whiteList['grid-area'] = false; // default: depending on individual properties\n whiteList['grid-auto-columns'] = false; // default: auto\n whiteList['grid-auto-flow'] = false; // default: none\n whiteList['grid-auto-rows'] = false; // default: auto\n whiteList['grid-column'] = false; // default: depending on individual properties\n whiteList['grid-column-end'] = false; // default: auto\n whiteList['grid-column-start'] = false; // default: auto\n whiteList['grid-row'] = false; // default: depending on individual properties\n whiteList['grid-row-end'] = false; // default: auto\n whiteList['grid-row-start'] = false; // default: auto\n whiteList['grid-template'] = false; // default: depending on individual properties\n whiteList['grid-template-areas'] = false; // default: none\n whiteList['grid-template-columns'] = false; // default: none\n whiteList['grid-template-rows'] = false; // default: none\n whiteList['hanging-punctuation'] = false; // default: none\n whiteList['height'] = true; // default: auto\n whiteList['hyphens'] = false; // default: manual\n whiteList['icon'] = false; // default: auto\n whiteList['image-orientation'] = false; // default: auto\n whiteList['image-resolution'] = false; // default: normal\n whiteList['ime-mode'] = false; // default: auto\n whiteList['initial-letters'] = false; // default: normal\n whiteList['inline-box-align'] = false; // default: last\n whiteList['justify-content'] = false; // default: auto\n whiteList['justify-items'] = false; // default: auto\n whiteList['justify-self'] = false; // default: auto\n whiteList['left'] = false; // default: auto\n whiteList['letter-spacing'] = true; // default: normal\n whiteList['lighting-color'] = true; // default: white\n whiteList['line-box-contain'] = false; // default: block inline replaced\n whiteList['line-break'] = false; // default: auto\n whiteList['line-grid'] = false; // default: match-parent\n whiteList['line-height'] = false; // default: normal\n whiteList['line-snap'] = false; // default: none\n whiteList['line-stacking'] = false; // default: depending on individual properties\n whiteList['line-stacking-ruby'] = false; // default: exclude-ruby\n whiteList['line-stacking-shift'] = false; // default: consider-shifts\n whiteList['line-stacking-strategy'] = false; // default: inline-line-height\n whiteList['list-style'] = true; // default: depending on individual properties\n whiteList['list-style-image'] = true; // default: none\n whiteList['list-style-position'] = true; // default: outside\n whiteList['list-style-type'] = true; // default: disc\n whiteList['margin'] = true; // default: depending on individual properties\n whiteList['margin-bottom'] = true; // default: 0\n whiteList['margin-left'] = true; // default: 0\n whiteList['margin-right'] = true; // default: 0\n whiteList['margin-top'] = true; // default: 0\n whiteList['marker-offset'] = false; // default: auto\n whiteList['marker-side'] = false; // default: list-item\n whiteList['marks'] = false; // default: none\n whiteList['mask'] = false; // default: border-box\n whiteList['mask-box'] = false; // default: see individual properties\n whiteList['mask-box-outset'] = false; // default: 0\n whiteList['mask-box-repeat'] = false; // default: stretch\n whiteList['mask-box-slice'] = false; // default: 0 fill\n whiteList['mask-box-source'] = false; // default: none\n whiteList['mask-box-width'] = false; // default: auto\n whiteList['mask-clip'] = false; // default: border-box\n whiteList['mask-image'] = false; // default: none\n whiteList['mask-origin'] = false; // default: border-box\n whiteList['mask-position'] = false; // default: center\n whiteList['mask-repeat'] = false; // default: no-repeat\n whiteList['mask-size'] = false; // default: border-box\n whiteList['mask-source-type'] = false; // default: auto\n whiteList['mask-type'] = false; // default: luminance\n whiteList['max-height'] = true; // default: none\n whiteList['max-lines'] = false; // default: none\n whiteList['max-width'] = true; // default: none\n whiteList['min-height'] = true; // default: 0\n whiteList['min-width'] = true; // default: 0\n whiteList['move-to'] = false; // default: normal\n whiteList['nav-down'] = false; // default: auto\n whiteList['nav-index'] = false; // default: auto\n whiteList['nav-left'] = false; // default: auto\n whiteList['nav-right'] = false; // default: auto\n whiteList['nav-up'] = false; // default: auto\n whiteList['object-fit'] = false; // default: fill\n whiteList['object-position'] = false; // default: 50% 50%\n whiteList['opacity'] = false; // default: 1\n whiteList['order'] = false; // default: 0\n whiteList['orphans'] = false; // default: 2\n whiteList['outline'] = false; // default: depending on individual properties\n whiteList['outline-color'] = false; // default: invert\n whiteList['outline-offset'] = false; // default: 0\n whiteList['outline-style'] = false; // default: none\n whiteList['outline-width'] = false; // default: medium\n whiteList['overflow'] = false; // default: depending on individual properties\n whiteList['overflow-wrap'] = false; // default: normal\n whiteList['overflow-x'] = false; // default: visible\n whiteList['overflow-y'] = false; // default: visible\n whiteList['padding'] = true; // default: depending on individual properties\n whiteList['padding-bottom'] = true; // default: 0\n whiteList['padding-left'] = true; // default: 0\n whiteList['padding-right'] = true; // default: 0\n whiteList['padding-top'] = true; // default: 0\n whiteList['page'] = false; // default: auto\n whiteList['page-break-after'] = false; // default: auto\n whiteList['page-break-before'] = false; // default: auto\n whiteList['page-break-inside'] = false; // default: auto\n whiteList['page-policy'] = false; // default: start\n whiteList['pause'] = false; // default: implementation dependent\n whiteList['pause-after'] = false; // default: implementation dependent\n whiteList['pause-before'] = false; // default: implementation dependent\n whiteList['perspective'] = false; // default: none\n whiteList['perspective-origin'] = false; // default: 50% 50%\n whiteList['pitch'] = false; // default: medium\n whiteList['pitch-range'] = false; // default: 50\n whiteList['play-during'] = false; // default: auto\n whiteList['position'] = false; // default: static\n whiteList['presentation-level'] = false; // default: 0\n whiteList['quotes'] = false; // default: text\n whiteList['region-fragment'] = false; // default: auto\n whiteList['resize'] = false; // default: none\n whiteList['rest'] = false; // default: depending on individual properties\n whiteList['rest-after'] = false; // default: none\n whiteList['rest-before'] = false; // default: none\n whiteList['richness'] = false; // default: 50\n whiteList['right'] = false; // default: auto\n whiteList['rotation'] = false; // default: 0\n whiteList['rotation-point'] = false; // default: 50% 50%\n whiteList['ruby-align'] = false; // default: auto\n whiteList['ruby-merge'] = false; // default: separate\n whiteList['ruby-position'] = false; // default: before\n whiteList['shape-image-threshold'] = false; // default: 0.0\n whiteList['shape-outside'] = false; // default: none\n whiteList['shape-margin'] = false; // default: 0\n whiteList['size'] = false; // default: auto\n whiteList['speak'] = false; // default: auto\n whiteList['speak-as'] = false; // default: normal\n whiteList['speak-header'] = false; // default: once\n whiteList['speak-numeral'] = false; // default: continuous\n whiteList['speak-punctuation'] = false; // default: none\n whiteList['speech-rate'] = false; // default: medium\n whiteList['stress'] = false; // default: 50\n whiteList['string-set'] = false; // default: none\n whiteList['tab-size'] = false; // default: 8\n whiteList['table-layout'] = false; // default: auto\n whiteList['text-align'] = true; // default: start\n whiteList['text-align-last'] = true; // default: auto\n whiteList['text-combine-upright'] = true; // default: none\n whiteList['text-decoration'] = true; // default: none\n whiteList['text-decoration-color'] = true; // default: currentColor\n whiteList['text-decoration-line'] = true; // default: none\n whiteList['text-decoration-skip'] = true; // default: objects\n whiteList['text-decoration-style'] = true; // default: solid\n whiteList['text-emphasis'] = true; // default: depending on individual properties\n whiteList['text-emphasis-color'] = true; // default: currentColor\n whiteList['text-emphasis-position'] = true; // default: over right\n whiteList['text-emphasis-style'] = true; // default: none\n whiteList['text-height'] = true; // default: auto\n whiteList['text-indent'] = true; // default: 0\n whiteList['text-justify'] = true; // default: auto\n whiteList['text-orientation'] = true; // default: mixed\n whiteList['text-overflow'] = true; // default: clip\n whiteList['text-shadow'] = true; // default: none\n whiteList['text-space-collapse'] = true; // default: collapse\n whiteList['text-transform'] = true; // default: none\n whiteList['text-underline-position'] = true; // default: auto\n whiteList['text-wrap'] = true; // default: normal\n whiteList['top'] = false; // default: auto\n whiteList['transform'] = false; // default: none\n whiteList['transform-origin'] = false; // default: 50% 50% 0\n whiteList['transform-style'] = false; // default: flat\n whiteList['transition'] = false; // default: depending on individual properties\n whiteList['transition-delay'] = false; // default: 0s\n whiteList['transition-duration'] = false; // default: 0s\n whiteList['transition-property'] = false; // default: all\n whiteList['transition-timing-function'] = false; // default: ease\n whiteList['unicode-bidi'] = false; // default: normal\n whiteList['vertical-align'] = false; // default: baseline\n whiteList['visibility'] = false; // default: visible\n whiteList['voice-balance'] = false; // default: center\n whiteList['voice-duration'] = false; // default: auto\n whiteList['voice-family'] = false; // default: implementation dependent\n whiteList['voice-pitch'] = false; // default: medium\n whiteList['voice-range'] = false; // default: medium\n whiteList['voice-rate'] = false; // default: normal\n whiteList['voice-stress'] = false; // default: normal\n whiteList['voice-volume'] = false; // default: medium\n whiteList['volume'] = false; // default: medium\n whiteList['white-space'] = false; // default: normal\n whiteList['widows'] = false; // default: 2\n whiteList['width'] = true; // default: auto\n whiteList['will-change'] = false; // default: auto\n whiteList['word-break'] = true; // default: normal\n whiteList['word-spacing'] = true; // default: normal\n whiteList['word-wrap'] = true; // default: normal\n whiteList['wrap-flow'] = false; // default: auto\n whiteList['wrap-through'] = false; // default: wrap\n whiteList['writing-mode'] = false; // default: horizontal-tb\n whiteList['z-index'] = false; // default: auto\n\n return whiteList;\n}\n\n\n/**\n * 匹配到白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onAttr (name, value, options) {\n // do nothing\n}\n\n/**\n * 匹配到不在白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreAttr (name, value, options) {\n // do nothing\n}\n\nvar REGEXP_URL_JAVASCRIPT = /javascript\\s*\\:/img;\n\n/**\n * 过滤属性值\n *\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction safeAttrValue$1(name, value) {\n if (REGEXP_URL_JAVASCRIPT.test(value)) return '';\n return value;\n}\n\n\nvar whiteList$1 = getDefaultWhiteList$1();\nvar getDefaultWhiteList_1$1 = getDefaultWhiteList$1;\nvar onAttr_1 = onAttr;\nvar onIgnoreAttr_1 = onIgnoreAttr;\nvar safeAttrValue_1$1 = safeAttrValue$1;\n\nvar _default$1 = {\n\twhiteList: whiteList$1,\n\tgetDefaultWhiteList: getDefaultWhiteList_1$1,\n\tonAttr: onAttr_1,\n\tonIgnoreAttr: onIgnoreAttr_1,\n\tsafeAttrValue: safeAttrValue_1$1\n};\n\nvar util$1 = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n trimRight: function (str) {\n if (String.prototype.trimRight) {\n return str.trimRight();\n }\n return str.replace(/(\\s*$)/g, '');\n }\n};\n\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\n\n\n\n/**\n * 解析style\n *\n * @param {String} css\n * @param {Function} onAttr 处理属性的函数\n * 参数格式: function (sourcePosition, position, name, value, source)\n * @return {String}\n */\nfunction parseStyle (css, onAttr) {\n css = util$1.trimRight(css);\n if (css[css.length - 1] !== ';') css += ';';\n var cssLength = css.length;\n var isParenthesisOpen = false;\n var lastPos = 0;\n var i = 0;\n var retCSS = '';\n\n function addNewAttr () {\n // 如果没有正常的闭合圆括号,则直接忽略当前属性\n if (!isParenthesisOpen) {\n var source = util$1.trim(css.slice(lastPos, i));\n var j = source.indexOf(':');\n if (j !== -1) {\n var name = util$1.trim(source.slice(0, j));\n var value = util$1.trim(source.slice(j + 1));\n // 必须有属性名称\n if (name) {\n var ret = onAttr(lastPos, retCSS.length, name, value, source);\n if (ret) retCSS += ret + '; ';\n }\n }\n }\n lastPos = i + 1;\n }\n\n for (; i < cssLength; i++) {\n var c = css[i];\n if (c === '/' && css[i + 1] === '*') {\n // 备注开始\n var j = css.indexOf('*/', i + 2);\n // 如果没有正常的备注结束,则后面的部分全部跳过\n if (j === -1) break;\n // 直接将当前位置调到备注结尾,并且初始化状态\n i = j + 1;\n lastPos = i + 1;\n isParenthesisOpen = false;\n } else if (c === '(') {\n isParenthesisOpen = true;\n } else if (c === ')') {\n isParenthesisOpen = false;\n } else if (c === ';') {\n if (isParenthesisOpen) ; else {\n addNewAttr();\n }\n } else if (c === '\\n') {\n addNewAttr();\n }\n }\n\n return util$1.trim(retCSS);\n}\n\nvar parser$1 = parseStyle;\n\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\n\n\n\n\n\n/**\n * 返回值是否为空\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull$1 (obj) {\n return (obj === undefined || obj === null);\n}\n\n/**\n * 浅拷贝对象\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject$1 (obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * 创建CSS过滤器\n *\n * @param {Object} options\n * - {Object} whiteList\n * - {Function} onAttr\n * - {Function} onIgnoreAttr\n * - {Function} safeAttrValue\n */\nfunction FilterCSS$2 (options) {\n options = shallowCopyObject$1(options || {});\n options.whiteList = options.whiteList || _default$1.whiteList;\n options.onAttr = options.onAttr || _default$1.onAttr;\n options.onIgnoreAttr = options.onIgnoreAttr || _default$1.onIgnoreAttr;\n options.safeAttrValue = options.safeAttrValue || _default$1.safeAttrValue;\n this.options = options;\n}\n\nFilterCSS$2.prototype.process = function (css) {\n // 兼容各种奇葩输入\n css = css || '';\n css = css.toString();\n if (!css) return '';\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onAttr = options.onAttr;\n var onIgnoreAttr = options.onIgnoreAttr;\n var safeAttrValue = options.safeAttrValue;\n\n var retCSS = parser$1(css, function (sourcePosition, position, name, value, source) {\n\n var check = whiteList[name];\n var isWhite = false;\n if (check === true) isWhite = check;\n else if (typeof check === 'function') isWhite = check(value);\n else if (check instanceof RegExp) isWhite = check.test(value);\n if (isWhite !== true) isWhite = false;\n\n // 如果过滤后 value 为空则直接忽略\n value = safeAttrValue(name, value);\n if (!value) return;\n\n var opts = {\n position: position,\n sourcePosition: sourcePosition,\n source: source,\n isWhite: isWhite\n };\n\n if (isWhite) {\n\n var ret = onAttr(name, value, opts);\n if (isNull$1(ret)) {\n return name + ':' + value;\n } else {\n return ret;\n }\n\n } else {\n\n var ret = onIgnoreAttr(name, value, opts);\n if (!isNull$1(ret)) {\n return ret;\n }\n\n }\n });\n\n return retCSS;\n};\n\n\nvar css = FilterCSS$2;\n\nvar lib$1 = createCommonjsModule(function (module, exports) {\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\n\n\n\n\n/**\n * XSS过滤\n *\n * @param {String} css 要过滤的CSS代码\n * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr\n * @return {String}\n */\nfunction filterCSS (html, options) {\n var xss = new css(options);\n return xss.process(html);\n}\n\n\n// 输出\nexports = module.exports = filterCSS;\nexports.FilterCSS = css;\nfor (var i in _default$1) exports[i] = _default$1[i];\n\n// 在浏览器端使用\nif (typeof window !== 'undefined') {\n window.filterCSS = module.exports;\n}\n});\n\nvar util = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, \"\");\n },\n spaceIndex: function (str) {\n var reg = /\\s|\\n|\\t/;\n var match = reg.exec(str);\n return match ? match.index : -1;\n },\n};\n\n/**\n * default settings\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS$1 = lib$1.FilterCSS;\nvar getDefaultCSSWhiteList = lib$1.getDefaultWhiteList;\n\n\nfunction getDefaultWhiteList() {\n return {\n a: [\"target\", \"href\", \"title\"],\n abbr: [\"title\"],\n address: [],\n area: [\"shape\", \"coords\", \"href\", \"alt\"],\n article: [],\n aside: [],\n audio: [\n \"autoplay\",\n \"controls\",\n \"crossorigin\",\n \"loop\",\n \"muted\",\n \"preload\",\n \"src\",\n ],\n b: [],\n bdi: [\"dir\"],\n bdo: [\"dir\"],\n big: [],\n blockquote: [\"cite\"],\n br: [],\n caption: [],\n center: [],\n cite: [],\n code: [],\n col: [\"align\", \"valign\", \"span\", \"width\"],\n colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n dd: [],\n del: [\"datetime\"],\n details: [\"open\"],\n div: [],\n dl: [],\n dt: [],\n em: [],\n figcaption: [],\n figure: [],\n font: [\"color\", \"size\", \"face\"],\n footer: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n header: [],\n hr: [],\n i: [],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\"],\n ins: [\"datetime\"],\n li: [],\n mark: [],\n nav: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n section: [],\n small: [],\n span: [],\n sub: [],\n summary: [],\n sup: [],\n strong: [],\n strike: [],\n table: [\"width\", \"border\", \"align\", \"valign\"],\n tbody: [\"align\", \"valign\"],\n td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n tfoot: [\"align\", \"valign\"],\n th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n thead: [\"align\", \"valign\"],\n tr: [\"rowspan\", \"align\", \"valign\"],\n tt: [],\n u: [],\n ul: [],\n video: [\n \"autoplay\",\n \"controls\",\n \"crossorigin\",\n \"loop\",\n \"muted\",\n \"playsinline\",\n \"poster\",\n \"preload\",\n \"src\",\n \"height\",\n \"width\",\n ],\n };\n}\n\nvar defaultCSSFilter = new FilterCSS$1();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n return html.replace(REGEXP_LT, \"<\").replace(REGEXP_GT, \">\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n // unescape attribute value firstly\n value = friendlyAttrValue(value);\n\n if (name === \"href\" || name === \"src\") {\n // filter `href` and `src` attribute\n // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n value = util.trim(value);\n if (value === \"#\") return \"#\";\n if (\n !(\n value.substr(0, 7) === \"http://\" ||\n value.substr(0, 8) === \"https://\" ||\n value.substr(0, 7) === \"mailto:\" ||\n value.substr(0, 4) === \"tel:\" ||\n value.substr(0, 11) === \"data:image/\" ||\n value.substr(0, 6) === \"ftp://\" ||\n value.substr(0, 2) === \"./\" ||\n value.substr(0, 3) === \"../\" ||\n value[0] === \"#\" ||\n value[0] === \"/\"\n )\n ) {\n return \"\";\n }\n } else if (name === \"background\") {\n // filter `background` attribute (maybe no use)\n // `javascript:`\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n } else if (name === \"style\") {\n // `expression()`\n REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n return \"\";\n }\n // `url()`\n REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n }\n if (cssFilter !== false) {\n cssFilter = cssFilter || defaultCSSFilter;\n value = cssFilter.process(value);\n }\n }\n\n // escape `<>\"` before returns\n value = escapeAttrValue(value);\n return value;\n}\n\n// RegExp list\nvar REGEXP_LT = //g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /"/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /:?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\n// var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 =\n /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a):/gi;\n// var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\n// var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 =\n /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n return str.replace(REGEXP_QUOTE, \""\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n return code[0] === \"x\" || code[0] === \"X\"\n ? String.fromCharCode(parseInt(code.substr(1), 16))\n : String.fromCharCode(parseInt(code, 10));\n });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n return str\n .replace(REGEXP_ATTR_VALUE_COLON, \":\")\n .replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n var str2 = \"\";\n for (var i = 0, len = str.length; i < len; i++) {\n str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n }\n return util.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n str = unescapeQuote(str);\n str = escapeHtmlEntities(str);\n str = escapeDangerHtml5Entities(str);\n str = clearNonPrintableCharacter(str);\n return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n str = escapeQuote(str);\n str = escapeHtml(str);\n return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n if (typeof next !== \"function\") {\n next = function () {};\n }\n\n var isRemoveAllTag = !Array.isArray(tags);\n function isRemoveTag(tag) {\n if (isRemoveAllTag) return true;\n return util.indexOf(tags, tag) !== -1;\n }\n\n var removeList = [];\n var posStart = false;\n\n return {\n onIgnoreTag: function (tag, html, options) {\n if (isRemoveTag(tag)) {\n if (options.isClosing) {\n var ret = \"[/removed]\";\n var end = options.position + ret.length;\n removeList.push([\n posStart !== false ? posStart : options.position,\n end,\n ]);\n posStart = false;\n return ret;\n } else {\n if (!posStart) {\n posStart = options.position;\n }\n return \"[removed]\";\n }\n } else {\n return next(tag, html, options);\n }\n },\n remove: function (html) {\n var rethtml = \"\";\n var lastPos = 0;\n util.forEach(removeList, function (pos) {\n rethtml += html.slice(lastPos, pos[0]);\n lastPos = pos[1];\n });\n rethtml += html.slice(lastPos);\n return rethtml;\n },\n };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n var retHtml = \"\";\n var lastPos = 0;\n while (lastPos < html.length) {\n var i = html.indexOf(\"\", i);\n if (j === -1) {\n break;\n }\n lastPos = j + 3;\n }\n return retHtml;\n}\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n var chars = html.split(\"\");\n chars = chars.filter(function (char) {\n var c = char.charCodeAt(0);\n if (c === 127) return false;\n if (c <= 31) {\n if (c === 10 || c === 13) return true;\n return false;\n }\n return true;\n });\n return chars.join(\"\");\n}\n\nvar whiteList = getDefaultWhiteList();\nvar getDefaultWhiteList_1 = getDefaultWhiteList;\nvar onTag_1 = onTag;\nvar onIgnoreTag_1 = onIgnoreTag;\nvar onTagAttr_1 = onTagAttr;\nvar onIgnoreTagAttr_1 = onIgnoreTagAttr;\nvar safeAttrValue_1 = safeAttrValue;\nvar escapeHtml_1 = escapeHtml;\nvar escapeQuote_1 = escapeQuote;\nvar unescapeQuote_1 = unescapeQuote;\nvar escapeHtmlEntities_1 = escapeHtmlEntities;\nvar escapeDangerHtml5Entities_1 = escapeDangerHtml5Entities;\nvar clearNonPrintableCharacter_1 = clearNonPrintableCharacter;\nvar friendlyAttrValue_1 = friendlyAttrValue;\nvar escapeAttrValue_1 = escapeAttrValue;\nvar onIgnoreTagStripAll_1 = onIgnoreTagStripAll;\nvar StripTagBody_1 = StripTagBody;\nvar stripCommentTag_1 = stripCommentTag;\nvar stripBlankChar_1 = stripBlankChar;\nvar cssFilter = defaultCSSFilter;\nvar getDefaultCSSWhiteList_1 = getDefaultCSSWhiteList;\n\nvar _default = {\n\twhiteList: whiteList,\n\tgetDefaultWhiteList: getDefaultWhiteList_1,\n\tonTag: onTag_1,\n\tonIgnoreTag: onIgnoreTag_1,\n\tonTagAttr: onTagAttr_1,\n\tonIgnoreTagAttr: onIgnoreTagAttr_1,\n\tsafeAttrValue: safeAttrValue_1,\n\tescapeHtml: escapeHtml_1,\n\tescapeQuote: escapeQuote_1,\n\tunescapeQuote: unescapeQuote_1,\n\tescapeHtmlEntities: escapeHtmlEntities_1,\n\tescapeDangerHtml5Entities: escapeDangerHtml5Entities_1,\n\tclearNonPrintableCharacter: clearNonPrintableCharacter_1,\n\tfriendlyAttrValue: friendlyAttrValue_1,\n\tescapeAttrValue: escapeAttrValue_1,\n\tonIgnoreTagStripAll: onIgnoreTagStripAll_1,\n\tStripTagBody: StripTagBody_1,\n\tstripCommentTag: stripCommentTag_1,\n\tstripBlankChar: stripBlankChar_1,\n\tcssFilter: cssFilter,\n\tgetDefaultCSSWhiteList: getDefaultCSSWhiteList_1\n};\n\n/**\n * Simple HTML Parser\n *\n * @author Zongmin Lei\n */\n\n\n\n/**\n * get tag name\n *\n * @param {String} html e.g. ''\n * @return {String}\n */\nfunction getTagName(html) {\n var i = util.spaceIndex(html);\n var tagName;\n if (i === -1) {\n tagName = html.slice(1, -1);\n } else {\n tagName = html.slice(1, i + 1);\n }\n tagName = util.trim(tagName).toLowerCase();\n if (tagName.slice(0, 1) === \"/\") tagName = tagName.slice(1);\n if (tagName.slice(-1) === \"/\") tagName = tagName.slice(0, -1);\n return tagName;\n}\n\n/**\n * is close tag?\n *\n * @param {String} html 如:''\n * @return {Boolean}\n */\nfunction isClosing(html) {\n return html.slice(0, 2) === \"\" || currentPos === len - 1) {\n rethtml += escapeHtml(html.slice(lastPos, tagStart));\n currentHtml = html.slice(tagStart, currentPos + 1);\n currentTagName = getTagName(currentHtml);\n rethtml += onTag(\n tagStart,\n rethtml.length,\n currentTagName,\n currentHtml,\n isClosing(currentHtml)\n );\n lastPos = currentPos + 1;\n tagStart = false;\n continue;\n }\n if (c === '\"' || c === \"'\") {\n var i = 1;\n var ic = html.charAt(currentPos - i);\n\n while (ic.trim() === \"\" || ic === \"=\") {\n if (ic === \"=\") {\n quoteStart = c;\n continue chariterator;\n }\n ic = html.charAt(currentPos - ++i);\n }\n }\n } else {\n if (c === quoteStart) {\n quoteStart = false;\n continue;\n }\n }\n }\n }\n if (lastPos < len) {\n rethtml += escapeHtml(html.substr(lastPos));\n }\n\n return rethtml;\n}\n\nvar REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9\\\\_:.-]/gim;\n\n/**\n * parse input attributes and returns processed attributes\n *\n * @param {String} html e.g. `href=\"#\" target=\"_blank\"`\n * @param {Function} onAttr e.g. `function (name, value)`\n * @return {String}\n */\nfunction parseAttr$1(html, onAttr) {\n\n var lastPos = 0;\n var lastMarkPos = 0;\n var retAttrs = [];\n var tmpName = false;\n var len = html.length;\n\n function addAttr(name, value) {\n name = util.trim(name);\n name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, \"\").toLowerCase();\n if (name.length < 1) return;\n var ret = onAttr(name, value || \"\");\n if (ret) retAttrs.push(ret);\n }\n\n // 逐个分析字符\n for (var i = 0; i < len; i++) {\n var c = html.charAt(i);\n var v, j;\n if (tmpName === false && c === \"=\") {\n tmpName = html.slice(lastPos, i);\n lastPos = i + 1;\n lastMarkPos = html.charAt(lastPos) === '\"' || html.charAt(lastPos) === \"'\" ? lastPos : findNextQuotationMark(html, i + 1);\n continue;\n }\n if (tmpName !== false) {\n if (\n i === lastMarkPos\n ) {\n j = html.indexOf(c, i + 1);\n if (j === -1) {\n break;\n } else {\n v = util.trim(html.slice(lastMarkPos + 1, j));\n addAttr(tmpName, v);\n tmpName = false;\n i = j;\n lastPos = i + 1;\n continue;\n }\n }\n }\n if (/\\s|\\n|\\t/.test(c)) {\n html = html.replace(/\\s|\\n|\\t/g, \" \");\n if (tmpName === false) {\n j = findNextEqual(html, i);\n if (j === -1) {\n v = util.trim(html.slice(lastPos, i));\n addAttr(v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n i = j - 1;\n continue;\n }\n } else {\n j = findBeforeEqual(html, i - 1);\n if (j === -1) {\n v = util.trim(html.slice(lastPos, i));\n v = stripQuoteWrap(v);\n addAttr(tmpName, v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n continue;\n }\n }\n }\n }\n\n if (lastPos < html.length) {\n if (tmpName === false) {\n addAttr(html.slice(lastPos));\n } else {\n addAttr(tmpName, stripQuoteWrap(util.trim(html.slice(lastPos))));\n }\n }\n\n return util.trim(retAttrs.join(\" \"));\n}\n\nfunction findNextEqual(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction findNextQuotationMark(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"'\" || c === '\"') return i;\n return -1;\n }\n}\n\nfunction findBeforeEqual(str, i) {\n for (; i > 0; i--) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction isQuoteWrapString(text) {\n if (\n (text[0] === '\"' && text[text.length - 1] === '\"') ||\n (text[0] === \"'\" && text[text.length - 1] === \"'\")\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction stripQuoteWrap(text) {\n if (isQuoteWrapString(text)) {\n return text.substr(1, text.length - 2);\n } else {\n return text;\n }\n}\n\nvar parseTag_1 = parseTag$1;\nvar parseAttr_1 = parseAttr$1;\n\nvar parser = {\n\tparseTag: parseTag_1,\n\tparseAttr: parseAttr_1\n};\n\n/**\n * filter xss\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = lib$1.FilterCSS;\n\n\nvar parseTag = parser.parseTag;\nvar parseAttr = parser.parseAttr;\n\n\n/**\n * returns `true` if the input value is `undefined` or `null`\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * get attributes for a tag\n *\n * @param {String} html\n * @return {Object}\n * - {String} html\n * - {Boolean} closing\n */\nfunction getAttrs(html) {\n var i = util.spaceIndex(html);\n if (i === -1) {\n return {\n html: \"\",\n closing: html[html.length - 2] === \"/\",\n };\n }\n html = util.trim(html.slice(i + 1, -1));\n var isClosing = html[html.length - 1] === \"/\";\n if (isClosing) html = util.trim(html.slice(0, -1));\n return {\n html: html,\n closing: isClosing,\n };\n}\n\n/**\n * shallow copy\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\nfunction keysToLowerCase(obj) {\n var ret = {};\n for (var i in obj) {\n if (Array.isArray(obj[i])) {\n ret[i.toLowerCase()] = obj[i].map(function (item) {\n return item.toLowerCase();\n });\n } else {\n ret[i.toLowerCase()] = obj[i];\n }\n }\n return ret;\n}\n\n/**\n * FilterXSS class\n *\n * @param {Object} options\n * whiteList (or allowList), onTag, onTagAttr, onIgnoreTag,\n * onIgnoreTagAttr, safeAttrValue, escapeHtml\n * stripIgnoreTagBody, allowCommentTag, stripBlankChar\n * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`\n */\nfunction FilterXSS(options) {\n options = shallowCopyObject(options || {});\n\n if (options.stripIgnoreTag) {\n if (options.onIgnoreTag) {\n console.error(\n 'Notes: cannot use these two options \"stripIgnoreTag\" and \"onIgnoreTag\" at the same time'\n );\n }\n options.onIgnoreTag = _default.onIgnoreTagStripAll;\n }\n if (options.whiteList || options.allowList) {\n options.whiteList = keysToLowerCase(options.whiteList || options.allowList);\n } else {\n options.whiteList = _default.whiteList;\n }\n\n options.onTag = options.onTag || _default.onTag;\n options.onTagAttr = options.onTagAttr || _default.onTagAttr;\n options.onIgnoreTag = options.onIgnoreTag || _default.onIgnoreTag;\n options.onIgnoreTagAttr = options.onIgnoreTagAttr || _default.onIgnoreTagAttr;\n options.safeAttrValue = options.safeAttrValue || _default.safeAttrValue;\n options.escapeHtml = options.escapeHtml || _default.escapeHtml;\n this.options = options;\n\n if (options.css === false) {\n this.cssFilter = false;\n } else {\n options.css = options.css || {};\n this.cssFilter = new FilterCSS(options.css);\n }\n}\n\n/**\n * start process and returns result\n *\n * @param {String} html\n * @return {String}\n */\nFilterXSS.prototype.process = function (html) {\n // compatible with the input\n html = html || \"\";\n html = html.toString();\n if (!html) return \"\";\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onTag = options.onTag;\n var onIgnoreTag = options.onIgnoreTag;\n var onTagAttr = options.onTagAttr;\n var onIgnoreTagAttr = options.onIgnoreTagAttr;\n var safeAttrValue = options.safeAttrValue;\n var escapeHtml = options.escapeHtml;\n var cssFilter = me.cssFilter;\n\n // remove invisible characters\n if (options.stripBlankChar) {\n html = _default.stripBlankChar(html);\n }\n\n // remove html comments\n if (!options.allowCommentTag) {\n html = _default.stripCommentTag(html);\n }\n\n // if enable stripIgnoreTagBody\n var stripIgnoreTagBody = false;\n if (options.stripIgnoreTagBody) {\n stripIgnoreTagBody = _default.StripTagBody(\n options.stripIgnoreTagBody,\n onIgnoreTag\n );\n onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;\n }\n\n var retHtml = parseTag(\n html,\n function (sourcePosition, position, tag, html, isClosing) {\n var info = {\n sourcePosition: sourcePosition,\n position: position,\n isClosing: isClosing,\n isWhite: Object.prototype.hasOwnProperty.call(whiteList, tag),\n };\n\n // call `onTag()`\n var ret = onTag(tag, html, info);\n if (!isNull(ret)) return ret;\n\n if (info.isWhite) {\n if (info.isClosing) {\n return \"\";\n }\n\n var attrs = getAttrs(html);\n var whiteAttrList = whiteList[tag];\n var attrsHtml = parseAttr(attrs.html, function (name, value) {\n // call `onTagAttr()`\n var isWhiteAttr = util.indexOf(whiteAttrList, name) !== -1;\n var ret = onTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n\n if (isWhiteAttr) {\n // call `safeAttrValue()`\n value = safeAttrValue(tag, name, value, cssFilter);\n if (value) {\n return name + '=\"' + value + '\"';\n } else {\n return name;\n }\n } else {\n // call `onIgnoreTagAttr()`\n ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n return;\n }\n });\n\n // build new tag html\n html = \"<\" + tag;\n if (attrsHtml) html += \" \" + attrsHtml;\n if (attrs.closing) html += \" /\";\n html += \">\";\n return html;\n } else {\n // call `onIgnoreTag()`\n ret = onIgnoreTag(tag, html, info);\n if (!isNull(ret)) return ret;\n return escapeHtml(html);\n }\n },\n escapeHtml\n );\n\n // if enable stripIgnoreTagBody\n if (stripIgnoreTagBody) {\n retHtml = stripIgnoreTagBody.remove(retHtml);\n }\n\n return retHtml;\n};\n\nvar xss = FilterXSS;\n\nvar lib = createCommonjsModule(function (module, exports) {\n/**\n * xss\n *\n * @author Zongmin Lei\n */\n\n\n\n\n\n/**\n * filter xss function\n *\n * @param {String} html\n * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }\n * @return {String}\n */\nfunction filterXSS(html, options) {\n var xss$1 = new xss(options);\n return xss$1.process(html);\n}\n\nexports = module.exports = filterXSS;\nexports.filterXSS = filterXSS;\nexports.FilterXSS = xss;\n\n(function () {\n for (var i in _default) {\n exports[i] = _default[i];\n }\n for (var j in parser) {\n exports[j] = parser[j];\n }\n})();\n\n// using `xss` on the browser, output `filterXSS` to the globals\nif (typeof window !== \"undefined\") {\n window.filterXSS = module.exports;\n}\n\n// using `xss` on the WebWorker, output `filterXSS` to the globals\nfunction isWorkerEnv() {\n return (\n typeof self !== \"undefined\" &&\n typeof DedicatedWorkerGlobalScope !== \"undefined\" &&\n self instanceof DedicatedWorkerGlobalScope\n );\n}\nif (isWorkerEnv()) {\n self.filterXSS = module.exports;\n}\n});\n\nvar xssRules = {\n a: [\"href\", \"title\", \"target\"],\n span: [\"style\", \"data-type\", \"class\", \"data-label\", \"data-id\"],\n blockquote: [\"style\"],\n p: [\"style\"],\n hr: [],\n pre: [],\n code: [],\n strong: [],\n img: [\"src\", \"alt\", \"title\"],\n label: [\"contenteditable\"],\n input: [\"type\", \"value\"],\n div: [\"class\"],\n iframe: [\"src\", \"allowfullscreen\"],\n em: [],\n s: [],\n mark: [],\n h1: [\"style\"],\n h2: [\"style\"],\n h3: [\"style\"],\n ul: [\"class\", \"data-type\"],\n li: [\"data-checked\"],\n ol: [],\n u: [],\n tr: [\"class\", \"style\"],\n td: [\"class\", \"style\"],\n th: [\"class\", \"style\"],\n tbody: [\"class\", \"style\"],\n table: [\"class\", \"style\"],\n br: []\n};\n\nlet default_1 = class default_1 extends Vue {\n constructor() {\n super(...arguments);\n this.editor = null;\n // --- Features --- //\n // Alignment\n this.selectedAlignment = \"left\";\n // Color\n this.selectedColor = null;\n // Headings\n this.headingsItems = [{\n components: {\n VSpacer: VSpacer,\n VSelect: VSelect,\n VIcon: VIcon,\n VBtn: VBtn,\n VTooltip: VTooltip,\n VToolbar: VToolbar,\n VCard: VCard,\n VProgressLinear: VProgressLinear,\n VImg: VImg,\n VListItemAvatar: VListItemAvatar,\n VListItemTitle: VListItemTitle,\n VListItemContent: VListItemContent,\n VListItem: VListItem,\n VList: VList,\n VMenu: VMenu,\n VInput: VInput\n },\n\n text: \"Heading 1\",\n value: 1\n }, {\n text: \"Heading 2\",\n value: 2\n }, {\n text: \"Heading 3\",\n value: 3\n }, {\n text: \"Text\",\n value: 0\n }];\n this.selectedHeading = 0;\n this.imageDialog = false;\n // Link\n this.linkDialog = false;\n // Video\n this.videoDialog = false;\n this.mentionConfig = {\n loading: false,\n items: [],\n selected: 0,\n show: false,\n query: \"\",\n x: 0,\n y: 0,\n command: _ => 0,\n fetchMentions: null\n };\n }\n get cleanValue() {\n if (this.xss === false) {\n return this.value;\n }\n const value = this.value.replace(\"https://youtu.be/\", \"https://www.youtube.com/watch?v=\").replace(\"watch?v=\", \"embed/\").replace(\"https://vimeo.com/\", \"https://player.vimeo.com/video/\");\n let whiteList = this.xssOptions;\n if (Array.isArray(this.xssOptions)) {\n whiteList = this.xssOptions.reduce((acc, rule) => {\n acc[rule] = xssRules[rule];\n return acc;\n }, {});\n }\n return lib(value, {\n whiteList\n });\n }\n get items() {\n return makeToolbarDefinitions(this);\n }\n created() {\n this.editor = new Editor({\n content: this.value,\n editorProps: {\n handleKeyDown: this.handleKeyDown\n },\n onSelectionUpdate: this.onSelectionUpdate,\n onUpdate: this.onUpdate,\n extensions: [TiptapKit.configure({\n bold: {},\n blockquote: {\n HTMLAttributes: {\n class: \"blockquote\"\n }\n },\n history: {\n depth: 10\n },\n heading: {\n levels: [1, 2, 3]\n },\n placeholder: {\n placeholder: () => this.placeholder || \"\"\n },\n textAlign: {\n types: [\"heading\", \"paragraph\"]\n },\n focus: {\n className: \"focus\"\n },\n color: {},\n highlight: {\n multicolor: true\n },\n image: {\n inline: true\n },\n link: {\n openOnClick: false\n },\n taskList: {\n HTMLAttributes: {\n class: \"task-list\"\n }\n },\n taskItem: {\n HTMLAttributes: {\n itemTypeName: \"task-list\"\n }\n },\n textStyle: {},\n underline: {},\n video: {},\n mention: this.mention ? {\n HTMLAttributes: {\n class: \"mention\"\n },\n suggestion: {\n items: async _ref => {\n let {\n query\n } = _ref;\n this.mentionConfig.query = query;\n if (typeof this.defaultMentionItems === \"function\") {\n const config = this.mentionConfig;\n config.loading = true;\n config.fetchMentions = config.fetchMentions ?? debounce_1(async query => {\n const items = await this.defaultMentionItems(query);\n config.items = items;\n config.loading = false;\n }, 1000);\n config.fetchMentions(query);\n return config.items;\n }\n return this.defaultMentionItems.filter(item => item.text.toLowerCase().startsWith(query.toLowerCase())).slice(0, 5);\n },\n render: renderSuggestion(this)\n }\n } : false\n }), ...this.extensions],\n autofocus: false,\n editable: true,\n injectCSS: true\n });\n }\n onValueChanged(value) {\n const code = this.editor.getHTML();\n if (code === value) {\n return;\n }\n this.editor.commands.setContent(value);\n }\n onDisabledChanged(disabled) {\n this.editor.setEditable(!disabled);\n }\n beforeDestroy() {\n this.editor.destroy();\n }\n //\n handleKeyDown(view, event) {\n if (event.key === \"Enter\" && this.$listeners.enter && !event.shiftKey && !this.mentionConfig.show) {\n this.$emit(\"enter\");\n return true;\n }\n return false;\n }\n onSelectionUpdate(_ref2) {\n let {\n editor\n } = _ref2;\n // Color\n const {\n color\n } = editor.getAttributes(\"textStyle\");\n this.selectedColor = color;\n // Heading\n this.selectedHeading = this.getHeading();\n }\n onUpdate(_ref3) {\n let {\n editor\n } = _ref3;\n this.$emit(\"input\", editor.getHTML());\n }\n onAlignmentChanged(newValue, oldValue) {\n if (newValue === oldValue || newValue === this.getAlignment()) {\n return;\n }\n this.editor.chain().focus().setTextAlign(newValue).run();\n }\n getAlignment() {\n if (this.editor.isActive({\n textAlign: \"left\"\n })) {\n return \"left\";\n }\n if (this.editor.isActive({\n textAlign: \"center\"\n })) {\n return \"center\";\n }\n if (this.editor.isActive({\n textAlign: \"right\"\n })) {\n return \"right\";\n }\n if (this.editor.isActive({\n textAlign: \"justify\"\n })) {\n return \"justify\";\n }\n return \"left\";\n }\n get selectedColorBorder() {\n let opacity = !this.disableToolbar ? \"0.67\" : \"0.2\";\n if (this.selectedColor) {\n let color = `${this.selectedColor}`;\n if (color[0] === \"r\") {\n opacity = !this.disableToolbar ? \"0.75\" : \"0.25\";\n return `3px solid ${color.replace(\")\", `, ${opacity})`)}`;\n } else {\n opacity = !this.disableToolbar ? \"C0\" : \"30\";\n return `3px solid ${color.concat(opacity)}`;\n }\n }\n return `3px solid rgba(0, 0, 0, ${opacity})`;\n }\n // Emoji\n setEmoji(e) {\n const activator = e.target;\n const EmojiPickerComponent = Vue.extend(EmojiPicker);\n const instance = new EmojiPickerComponent({\n vuetify: vuetify,\n propsData: {\n dark: this.dark\n }\n });\n instance.$mount();\n instance.$on(\"emojiSelected\", emoji => {\n this.editor.commands.insertContent(emoji);\n });\n document.querySelector(\"body\").appendChild(instance.$el);\n // Set Position\n const position = activator.getBoundingClientRect();\n instance.$children[0].absoluteX = position.x + 14;\n instance.$children[0].absoluteY = position.y + 14;\n // Display emoji picker\n instance.value = true;\n }\n onHeadingChanged(newValue, oldValue) {\n if (newValue === oldValue || newValue === this.getHeading()) {\n return;\n }\n if (newValue > 0) {\n this.editor.chain().focus().toggleHeading({\n level: newValue\n }).run();\n } else {\n this.editor.chain().focus().setParagraph().run();\n }\n }\n getHeading() {\n if (this.editor.isActive(\"heading\", {\n level: 1\n })) {\n return 1;\n }\n if (this.editor.isActive(\"heading\", {\n level: 2\n })) {\n return 2;\n }\n if (this.editor.isActive(\"heading\", {\n level: 3\n })) {\n return 3;\n }\n return 0;\n }\n get defaultUploadImage() {\n return this.uploadImage || getOption(\"uploadImage\");\n }\n get selectedImage() {\n return this.editor.view.state.selection[\"node\"]?.attrs?.src;\n }\n get selectedLink() {\n return this.editor.getAttributes(\"link\").href;\n }\n get selectedVideo() {\n return this.editor.getAttributes(\"iframe\").src;\n }\n // Mention\n get defaultMentionItems() {\n return this.mentionItems || getOption(\"mentionItems\");\n }\n selectMention(index) {\n const item = this.mentionConfig.items[index];\n this.mentionConfig.command({\n id: item.value,\n label: item.text\n });\n this.mentionConfig.show = false;\n this.$emit(\"mention\", item);\n // Workaround for mention bug\n try {\n const from = this.editor.state.selection.ranges[0].$from.pos;\n const to = from + this.mentionConfig.query.length;\n const text = this.editor.state.doc.textBetween(from, to);\n if (text === this.mentionConfig.query) {\n this.editor.commands.setTextSelection({\n from,\n to\n });\n this.editor.commands.deleteSelection();\n }\n } catch (e) {\n // Ignore\n }\n }\n};\n__decorate$1([Prop({\n default: \"\"\n})], default_1.prototype, \"value\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1.prototype, \"view\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1.prototype, \"dark\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1.prototype, \"dense\", void 0);\n__decorate$1([Prop({\n default: true\n})], default_1.prototype, \"outlined\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1.prototype, \"disabled\", void 0);\n__decorate$1([Prop()], default_1.prototype, \"label\", void 0);\n__decorate$1([Prop()], default_1.prototype, \"placeholder\", void 0);\n__decorate$1([Prop({\n default: () => toolbarItems\n})], default_1.prototype, \"toolbar\", void 0);\n__decorate$1([Prop({\n default: () => []\n})], default_1.prototype, \"append\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1.prototype, \"hideToolbar\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1.prototype, \"disableToolbar\", void 0);\n__decorate$1([Prop({\n default: true\n})], default_1.prototype, \"xss\", void 0);\n__decorate$1([Prop({\n default: () => xssRules\n})], default_1.prototype, \"xssOptions\", void 0);\n__decorate$1([Prop({\n default: () => []\n})], default_1.prototype, \"extensions\", void 0);\n__decorate$1([Prop()], default_1.prototype, \"editorClass\", void 0);\n__decorate$1([Watch(\"value\")], default_1.prototype, \"onValueChanged\", null);\n__decorate$1([Watch(\"disabled\")], default_1.prototype, \"onDisabledChanged\", null);\n__decorate$1([Watch(\"selectedAlignment\")], default_1.prototype, \"onAlignmentChanged\", null);\n__decorate$1([Watch(\"selectedHeading\")], default_1.prototype, \"onHeadingChanged\", null);\n__decorate$1([Prop()], default_1.prototype, \"uploadImage\", void 0);\n__decorate$1([Prop()], default_1.prototype, \"mentionItems\", void 0);\n__decorate$1([Prop({\n default: false\n})], default_1.prototype, \"mention\", void 0);\ndefault_1 = __decorate$1([Component({\n components: {\n EditorContent,\n ...components\n }\n})], default_1);\nvar script = default_1;\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c('div', {\n staticClass: \"v-tiptap\",\n class: {\n dense: _vm.dense,\n view: _vm.view\n }\n }, [_vm.view !== false ? _c('div', {\n staticStyle: {\n \"width\": \"100%\"\n },\n domProps: {\n \"innerHTML\": _vm._s(_vm.cleanValue)\n }\n }) : [_vm.label ? _c('label', {\n staticClass: \"v-label\"\n }, [_vm._v(_vm._s(_vm.label))]) : _vm._e(), _vm._v(\" \"), _c('v-input', _vm._b({\n staticClass: \"simple outside-label\",\n staticStyle: {\n \"padding-top\": \"0px !important\"\n },\n attrs: {\n \"hide-details\": \"auto\"\n }\n }, 'v-input', _vm.$attrs, false), [_c('v-card', _vm._b({\n staticStyle: {\n \"width\": \"100%\"\n },\n style: {\n borderColor: _vm.$attrs['error-messages'] ? '#ff5252' : undefined\n },\n attrs: {\n \"flat\": \"\",\n \"outlined\": _vm.outlined,\n \"dark\": _vm.dark\n }\n }, 'v-card', _vm.$attrs, false), [!_vm.hideToolbar && _vm.toolbar && _vm.toolbar.length ? _c('v-toolbar', {\n staticClass: \"py-1\",\n attrs: {\n \"dense\": \"\",\n \"flat\": \"\",\n \"color\": _vm.dark ? undefined : 'grey lighten-4',\n \"height\": \"auto\"\n }\n }, [_vm._l(_vm.items, function (item, key) {\n return [item.type === 'spacer' ? _c('v-spacer', {\n key: \"spacer-\" + key\n }) : item.type === 'divider' ? _c('div', {\n key: \"divider-\" + key,\n staticClass: \"divider\"\n }) : item.type === 'slot' ? _c('div', {\n key: \"slot-\" + key\n }, [_vm._t(item.slot, null, null, {\n editor: _vm.editor,\n disabled: _vm.disableToolbar\n })], 2) : _c('div', {\n key: \"button-\" + key\n }, [_c('v-tooltip', {\n attrs: {\n \"open-delay\": 500,\n \"top\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on;\n var attrs = ref.attrs;\n return [item.type === 'headings' ? _c('div', {\n staticClass: \"ml-n1\"\n }, [_c('v-select', {\n staticStyle: {\n \"width\": \"104px\"\n },\n attrs: {\n \"disabled\": _vm.disableToolbar,\n \"items\": _vm.headingsItems,\n \"menu-props\": {\n dark: _vm.dark\n },\n \"dark\": _vm.dark,\n \"dense\": \"\",\n \"hide-details\": \"auto\",\n \"data-testid\": item.type\n },\n model: {\n value: _vm.selectedHeading,\n callback: function ($$v) {\n _vm.selectedHeading = $$v;\n },\n expression: \"selectedHeading\"\n }\n })], 1) : item.title === 'Color' ? _c('div', {\n staticClass: \"mr-1\"\n }, [_c('ColorPicker', _vm._g(_vm._b({\n attrs: {\n \"dark\": _vm.dark,\n \"more\": false,\n \"nudge-top\": -4,\n \"nudge-left\": 8\n },\n on: {\n \"input\": function ($event) {\n return item.action(_vm.selectedColor);\n }\n },\n scopedSlots: _vm._u([{\n key: \"button\",\n fn: function (ref) {\n var on = ref.on;\n return [_c('v-btn', _vm._g({\n attrs: {\n \"disabled\": _vm.disableToolbar,\n \"icon\": \"\",\n \"small\": \"\",\n \"data-testid\": item.type\n }\n }, on), [_c('v-icon', {\n style: {\n 'border-bottom': _vm.selectedColorBorder,\n height: '18px',\n top: '2px',\n width: '20px'\n }\n }, [_vm._v(\"\\n mdi-format-color-text\\n \")])], 1)];\n }\n }], null, true),\n model: {\n value: _vm.selectedColor,\n callback: function ($$v) {\n _vm.selectedColor = $$v;\n },\n expression: \"selectedColor\"\n }\n }, 'ColorPicker', attrs, false), on))], 1) : _c('v-btn', _vm._g(_vm._b({\n staticClass: \"mr-1\",\n class: {\n 'v-btn--active': item.isActive && item.isActive()\n },\n attrs: {\n \"disabled\": _vm.disableToolbar,\n \"color\": item.isActive && item.isActive() ? 'primary' : undefined,\n \"icon\": \"\",\n \"small\": \"\",\n \"data-testid\": item.type\n },\n on: {\n \"click\": item.action\n }\n }, 'v-btn', attrs, false), on), [_c('v-icon', [_vm._v(_vm._s(item.icon))])], 1)];\n }\n }], null, true)\n }, [_c('span', [_vm._v(_vm._s(item.title))])])], 1)];\n })], 2) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"d-flex\"\n }, [_vm._t(\"prepend\", null, null, {\n editor: _vm.editor\n }), _vm._v(\" \"), _vm._t(\"editor\", function () {\n return [_c('editor-content', {\n staticClass: \"flex-grow-1\",\n class: _vm.editorClass,\n attrs: {\n \"editor\": _vm.editor,\n \"data-testid\": \"value\"\n }\n })];\n }, null, {\n editor: _vm.editor\n }), _vm._v(\" \"), _vm._t(\"append\", null, null, {\n editor: _vm.editor\n })], 2), _vm._v(\" \"), _vm._t(\"bottom\", null, null, {\n editor: _vm.editor\n })], 2), _vm._v(\" \"), _c('ImageDialog', {\n attrs: {\n \"value\": _vm.selectedImage,\n \"show\": _vm.imageDialog,\n \"dark\": _vm.dark,\n \"uploadImage\": _vm.defaultUploadImage\n },\n on: {\n \"close\": function ($event) {\n _vm.imageDialog = false;\n },\n \"apply\": function ($event) {\n _vm.editor.chain().focus().setImage({\n src: $event\n }).run();\n }\n }\n }), _vm._v(\" \"), _c('LinkDialog', {\n attrs: {\n \"value\": _vm.selectedLink,\n \"show\": _vm.linkDialog,\n \"dark\": _vm.dark\n },\n on: {\n \"close\": function ($event) {\n _vm.linkDialog = false;\n },\n \"apply\": function ($event) {\n _vm.editor.chain().focus().extendMarkRange('link').setLink({\n href: $event\n }).run();\n }\n }\n }), _vm._v(\" \"), _c('VideoDialog', {\n attrs: {\n \"value\": _vm.selectedVideo,\n \"show\": _vm.videoDialog,\n \"dark\": _vm.dark\n },\n on: {\n \"close\": function ($event) {\n _vm.videoDialog = false;\n },\n \"apply\": function ($event) {\n _vm.editor.chain().focus().setIframe({\n src: $event\n }).run();\n }\n }\n }), _vm._v(\" \"), _c('v-menu', {\n attrs: {\n \"value\": _vm.mentionConfig.show && (_vm.mentionConfig.loading || _vm.mentionConfig.items.length),\n \"dense\": \"\",\n \"absolute\": \"\",\n \"position-x\": _vm.mentionConfig.x,\n \"position-y\": _vm.mentionConfig.y,\n \"offset-y\": \"\",\n \"max-height\": \"230px\"\n }\n }, [_vm.mentionConfig.loading ? _c('v-progress-linear', {\n staticStyle: {\n \"min-width\": \"120px\"\n },\n style: {\n marginBottom: _vm.mentionConfig.items.length != 0 ? '-6px' : '0px',\n zIndex: 9\n },\n attrs: {\n \"color\": \"primary\",\n \"indeterminate\": \"\",\n \"height\": \"6\"\n }\n }) : _vm._e(), _vm._v(\" \"), _vm.mentionConfig.items.length > 0 ? _c('v-list', {\n staticClass: \"py-0 v-tiptap-mentions\",\n attrs: {\n \"dense\": \"\"\n }\n }, _vm._l(_vm.mentionConfig.items, function (item, index) {\n return _c('v-list-item', {\n key: item.text,\n staticClass: \"item\",\n style: {\n background: index === _vm.mentionConfig.selected ? '#EEE' : undefined\n },\n on: {\n \"click\": function ($event) {\n return _vm.selectMention(index);\n }\n }\n }, [item.avatar ? _c('v-list-item-avatar', {\n attrs: {\n \"size\": \"20\"\n }\n }, [_c('v-img', {\n attrs: {\n \"alt\": item.text + \" avatar\",\n \"src\": item.avatar\n }\n })], 1) : _vm._e(), _vm._v(\" \"), _c('v-list-item-content', [_c('v-list-item-title', [_vm._v(_vm._s(item.text))])], 1)], 1);\n }), 1) : _vm._e()], 1)], 1)]], 2);\n};\nvar __vue_staticRenderFns__ = [];\n\n/* style */\nconst __vue_inject_styles__ = function (inject) {\n if (!inject) return;\n inject(\"data-v-2de9d069_0\", {\n source: \".v-tiptap{overflow-wrap:anywhere}.v-tiptap .v-btn>.v-btn__content .v-icon.fa{font-size:18px!important}.v-tiptap .ProseMirror{padding:8px 18px;min-height:180px;overflow-wrap:anywhere}.v-tiptap.dense .ProseMirror{padding:6px 12px;min-height:32px}.v-tiptap.dense p{padding:0 0;line-height:1.2rem}.v-tiptap .ProseMirror p.is-editor-empty:first-child::before{content:attr(data-placeholder);float:left;color:#adb5bd;pointer-events:none;height:0;font-style:italic}.v-tiptap .v-select__selection--disabled{color:rgba(0,0,0,.26)!important}.v-tiptap .theme--dark .v-select__selection{color:#fcfcfc!important}.v-tiptap .theme--dark .v-input__slot:hover{background:#1e1e1e!important}.v-tiptap .theme--dark .v-select__selection--disabled{color:#fcfcfc71!important}.v-tiptap .v-toolbar__content{flex-wrap:wrap;padding:4px 12px}.v-tiptap .v-toolbar__content .v-select{width:min-content;margin-bottom:0!important}.v-tiptap .v-toolbar__content .v-select .v-input__slot:hover{background:#fcfcfc;border-radius:4px}.v-tiptap .v-toolbar__content .v-select .v-input__slot::after,.v-tiptap .v-toolbar__content .v-select .v-input__slot::before{display:none}.v-tiptap .v-toolbar__content .v-select .v-input__control>div{height:28px;min-height:24px!important;padding:6px!important}.v-tiptap .v-toolbar__content .v-select .v-input__icon{min-width:auto;width:auto;margin-left:-4px;margin-right:-4px}.v-tiptap .v-toolbar__content .v-select .v-input__append-inner{padding:0}.v-tiptap .v-toolbar__content .v-select .v-select__selection{margin-top:0;font-size:14px;margin-right:8px;font-weight:500;color:rgba(0,0,0,.7)}.v-tiptap .v-toolbar__content .v-btn.v-btn--icon{border-radius:4px}.v-tiptap .divider{width:2px;height:1.25rem;background-color:rgba(0,0,0,.1);margin-left:.25rem;margin-right:.5rem}.v-tiptap :focus-visible{outline:-webkit-focus-ring-color auto 0}.v-tiptap p{padding:.35em 0;margin:2px 0;margin-bottom:0;line-height:1.5rem}.v-tiptap h1{font-size:2.125rem!important;line-height:2.5rem;letter-spacing:.0073529412em!important;font-weight:400;font-family:Roboto,sans-serif!important;margin:.75em 0 .5em 0}.v-tiptap h1:first-child{margin-top:.25em}.v-tiptap h2{line-height:2rem;font-family:Roboto,sans-serif!important;font-size:1.5rem!important;font-weight:400;letter-spacing:normal!important;margin:.75em 0 .5em 0}.v-tiptap h3{font-size:1.25rem!important;font-weight:500;letter-spacing:.0125em!important;line-height:2rem;font-family:Roboto,sans-serif!important;margin:.75em 0 .5em 0}.v-tiptap blockquote{margin-left:1rem;padding-left:.75em;font-weight:300;border-left:3px solid rgba(13,13,13,.2)}.v-tiptap img{max-width:min(640px,100%);height:auto}.v-tiptap img.focus{outline:4px solid #50adf8}.v-tiptap .iframe-wrapper iframe{width:640px;height:360px}.v-tiptap .iframe-wrapper.focus iframe{outline:4px solid #50adf8}.v-tiptap ol,.v-tiptap ul{padding-left:20px}.v-tiptap ul[data-type=taskList]{list-style:none;padding:0}.v-tiptap ul[data-type=taskList] p{margin:0}.v-tiptap ul[data-type=taskList] li{display:flex}.v-tiptap ul[data-type=taskList] li>label{flex:0 0 auto;margin-right:.5rem;margin-top:.4rem;user-select:none}.v-tiptap ul[data-type=taskList] li>div{flex:1 1 auto}.v-tiptap .mention{color:#08c}.v-tiptap .v-label{color:rgba(0,0,0,.7)!important;font-weight:500;line-height:2rem}.v-tiptap .v-list{padding:0 0}.v-tiptap-mentions .v-list-item__avatar:first-child{margin-right:8px!important;margin-left:-8px!important}.v-tiptap-mentions .v-list--dense .v-list-item,.v-tiptap-mentions .v-list-item--dense{min-height:36px}\",\n map: undefined,\n media: undefined\n });\n};\n/* scoped */\nconst __vue_scope_id__ = undefined;\n/* module identifier */\nconst __vue_module_identifier__ = undefined;\n/* functional template */\nconst __vue_is_functional_template__ = false;\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nconst __vue_component__ = /*#__PURE__*/normalizeComponent$1({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, createInjector, undefined, undefined);\nvar VTiptap = __vue_component__;\n\nconst install = (Vue, options) => {\n mergeOptions(options || {});\n Vue.component(\"VTiptap\", VTiptap);\n};\n\nexport { VTiptap, install as default };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Vuetify\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"Vuetify\"] = factory(root[\"Vue\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_vue__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNodeData } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n closeIcon: {\n type: String,\n default: '$cancel',\n },\n icon: {\n default: '',\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n staticClass: 'v-alert__border',\n class: {\n [`v-alert__border--${this.border}`]: true,\n },\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return this.$createElement('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return this.$createElement(VBtn, {\n staticClass: 'v-alert__dismissible',\n props: {\n color,\n icon: true,\n small: true,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: () => (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n getSlot(this, 'prepend') || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n getSlot(this, 'append'),\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, getSlot(this))\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n on: this.listeners$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","import VAlert from './VAlert'\n\nexport { VAlert }\nexport default VAlert\n","// Styles\nimport './VApp.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(\n Themeable\n).extend({\n name: 'v-app',\n\n props: {\n dark: {\n type: Boolean,\n default: undefined,\n },\n id: {\n type: String,\n default: 'app',\n },\n light: {\n type: Boolean,\n default: undefined,\n },\n },\n\n computed: {\n isDark (): boolean {\n return this.$vuetify.theme.dark\n },\n },\n\n beforeCreate () {\n if (!this.$vuetify || (this.$vuetify === this.$root as any)) {\n throw new Error('Vuetify is not properly initialized, see https://v2.vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object')\n }\n },\n\n render (h) {\n const wrapper = h('div', { staticClass: 'v-application--wrap' }, getSlot(this))\n\n return h('div', {\n staticClass: 'v-application',\n class: {\n 'v-application--is-rtl': this.$vuetify.rtl,\n 'v-application--is-ltr': !this.$vuetify.rtl,\n ...this.themeClasses,\n },\n attrs: { 'data-app': true },\n domProps: { id: this.id },\n }, [wrapper])\n },\n})\n","import VApp from './VApp'\n\nexport { VApp }\nexport default VApp\n","// Styles\nimport './VAppBar.sass'\n\n// Extensions\nimport VToolbar from '../VToolbar/VToolbar'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Scrollable from '../../mixins/scrollable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VToolbar,\n Scrollable,\n SSRBootable,\n Toggleable,\n Applicationable('top', [\n 'clippedLeft',\n 'clippedRight',\n 'computedHeight',\n 'invertedScroll',\n 'isExtended',\n 'isProminent',\n 'value',\n ])\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-app-bar',\n\n directives: { Scroll },\n\n provide (): object {\n return { VAppBar: this }\n },\n\n props: {\n clippedLeft: Boolean,\n clippedRight: Boolean,\n collapseOnScroll: Boolean,\n elevateOnScroll: Boolean,\n fadeImgOnScroll: Boolean,\n hideOnScroll: Boolean,\n invertedScroll: Boolean,\n scrollOffScreen: Boolean,\n shrinkOnScroll: Boolean,\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n isActive: this.value,\n }\n },\n\n computed: {\n applicationProperty (): string {\n return !this.bottom ? 'top' : 'bottom'\n },\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.invertedScroll ||\n this.elevateOnScroll ||\n this.hideOnScroll ||\n this.collapseOnScroll ||\n this.isBooted ||\n // If falsy, user has provided an\n // explicit value which should\n // overwrite anything we do\n !this.value\n )\n )\n },\n classes (): object {\n return {\n ...VToolbar.options.computed.classes.call(this),\n 'v-toolbar--collapse': this.collapse || this.collapseOnScroll,\n 'v-app-bar': true,\n 'v-app-bar--clipped': this.clippedLeft || this.clippedRight,\n 'v-app-bar--fade-img-on-scroll': this.fadeImgOnScroll,\n 'v-app-bar--elevate-on-scroll': this.elevateOnScroll,\n 'v-app-bar--fixed': !this.absolute && (this.app || this.fixed),\n 'v-app-bar--hide-shadow': this.hideShadow,\n 'v-app-bar--is-scrolled': this.currentScroll > 0,\n 'v-app-bar--shrink-on-scroll': this.shrinkOnScroll,\n }\n },\n scrollRatio (): number {\n const threshold = this.computedScrollThreshold\n return Math.max((threshold - this.currentScroll) / threshold, 0)\n },\n computedContentHeight (): number {\n if (!this.shrinkOnScroll) return VToolbar.options.computed.computedContentHeight.call(this)\n\n const min = this.dense ? 48 : 56\n const max = this.computedOriginalHeight\n\n return min + (max - min) * this.scrollRatio\n },\n computedFontSize (): number | undefined {\n if (!this.isProminent) return undefined\n\n const min = 1.25\n const max = 1.5\n\n return min + (max - min) * this.scrollRatio\n },\n computedLeft (): number {\n if (!this.app || this.clippedLeft) return 0\n\n return this.$vuetify.application.left\n },\n computedMarginTop (): number {\n if (!this.app) return 0\n\n return this.$vuetify.application.bar\n },\n computedOpacity (): number | undefined {\n if (!this.fadeImgOnScroll) return undefined\n\n return this.scrollRatio\n },\n computedOriginalHeight (): number {\n let height = VToolbar.options.computed.computedContentHeight.call(this)\n if (this.isExtended) height += parseInt(this.extensionHeight)\n return height\n },\n computedRight (): number {\n if (!this.app || this.clippedRight) return 0\n\n return this.$vuetify.application.right\n },\n computedScrollThreshold (): number {\n if (this.scrollThreshold) return Number(this.scrollThreshold)\n\n return this.computedOriginalHeight - (this.dense ? 48 : 56)\n },\n computedTransform (): number {\n if (\n !this.canScroll ||\n (this.elevateOnScroll && this.currentScroll === 0 && this.isActive)\n ) return 0\n\n if (this.isActive) return 0\n\n const scrollOffScreen = this.scrollOffScreen\n ? this.computedHeight\n : this.computedContentHeight\n\n return this.bottom ? scrollOffScreen : -scrollOffScreen\n },\n hideShadow (): boolean {\n if (this.elevateOnScroll && this.isExtended) {\n return this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.elevateOnScroll) {\n return this.currentScroll === 0 ||\n this.computedTransform < 0\n }\n\n return (\n !this.isExtended ||\n this.scrollOffScreen\n ) && this.computedTransform !== 0\n },\n isCollapsed (): boolean {\n if (!this.collapseOnScroll) {\n return VToolbar.options.computed.isCollapsed.call(this)\n }\n\n return this.currentScroll > 0\n },\n isProminent (): boolean {\n return (\n VToolbar.options.computed.isProminent.call(this) ||\n this.shrinkOnScroll\n )\n },\n styles (): object {\n return {\n ...VToolbar.options.computed.styles.call(this),\n fontSize: convertToUnit(this.computedFontSize, 'rem'),\n marginTop: convertToUnit(this.computedMarginTop),\n transform: `translateY(${convertToUnit(this.computedTransform)})`,\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n }\n },\n },\n\n watch: {\n canScroll: 'onScroll',\n computedTransform () {\n // Normally we do not want the v-app-bar\n // to update the application top value\n // to avoid screen jump. However, in\n // this situation, we must so that\n // the clipped drawer can update\n // its top value when scrolled\n if (\n !this.canScroll ||\n (!this.clippedLeft && !this.clippedRight)\n ) return\n\n this.callUpdate()\n },\n invertedScroll (val: boolean) {\n this.isActive = !val || this.currentScroll !== 0\n },\n hideOnScroll (val: boolean) {\n this.isActive = !val || this.currentScroll < this.computedScrollThreshold\n },\n },\n\n created () {\n if (this.invertedScroll) this.isActive = false\n },\n\n methods: {\n genBackground () {\n const render = VToolbar.options.methods.genBackground.call(this)\n\n render.data = this._b(render.data || {}, render.tag!, {\n style: { opacity: this.computedOpacity },\n })\n\n return render\n },\n updateApplication (): number {\n return this.invertedScroll\n ? 0\n : this.computedHeight + this.computedTransform\n },\n thresholdMet () {\n if (this.invertedScroll) {\n this.isActive = this.currentScroll > this.computedScrollThreshold\n return\n }\n\n if (this.hideOnScroll) {\n this.isActive = this.isScrollingUp ||\n this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.currentThreshold < this.computedScrollThreshold) return\n\n this.savedScroll = this.currentScroll\n },\n },\n\n render (h): VNode {\n const render = VToolbar.options.render.call(this, h)\n\n render.data = render.data || {}\n\n if (this.canScroll) {\n render.data.directives = render.data.directives || []\n render.data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return render\n },\n})\n","// Components\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn/VBtn'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-app-bar-nav-icon',\n\n functional: true,\n\n render (h, { slots, listeners, props, data }) {\n const d = Object.assign(data, {\n staticClass: (`v-app-bar__nav-icon ${data.staticClass || ''}`).trim(),\n props: {\n ...props,\n icon: true,\n },\n on: listeners,\n })\n\n const defaultSlot = slots().default\n\n return h(VBtn, d, defaultSlot || [h(VIcon, '$menu')])\n },\n})\n","// Mixins\nimport { inject } from '../../mixins/registrable'\n\n// Types\nimport { VNode } from 'vue'\nimport { ExtractVue } from '../../util/mixins'\nimport VAppBar from './VAppBar'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { easeInOutCubic } from '../../services/goto/easing-patterns'\n\nconst base = inject<'VAppBar', typeof VAppBar>('VAppBar', 'v-app-bar-title', 'v-app-bar')\n\ninterface options extends ExtractVue {\n $refs: {\n content: Element\n placeholder: Element\n }\n}\n\nexport default base.extend().extend({\n name: 'v-app-bar-title',\n\n data: () => ({\n contentWidth: 0,\n left: 0,\n width: 0,\n }),\n\n watch: {\n '$vuetify.breakpoint.width': 'updateDimensions',\n },\n\n computed: {\n styles (): object {\n if (!this.contentWidth) return {}\n\n const min = this.width\n const max = this.contentWidth\n const ratio = easeInOutCubic(Math.min(1, this.VAppBar.scrollRatio * 1.5))\n return {\n width: convertToUnit(min + (max - min) * ratio),\n visibility: this.VAppBar.scrollRatio ? 'visible' : 'hidden',\n }\n },\n },\n\n mounted () {\n this.updateDimensions()\n },\n\n methods: {\n updateDimensions (): void {\n const dimensions = this.$refs.placeholder.getBoundingClientRect()\n this.width = dimensions.width\n this.left = dimensions.left\n this.contentWidth = this.$refs.content.scrollWidth\n },\n },\n\n render (h): VNode {\n return h('div', {\n class: 'v-toolbar__title v-app-bar-title',\n }, [\n h('div', {\n class: 'v-app-bar-title__content',\n style: this.styles,\n ref: 'content',\n }, getSlot(this)),\n h('div', {\n class: 'v-app-bar-title__placeholder',\n style: {\n visibility: this.VAppBar.scrollRatio ? 'hidden' : 'visible',\n },\n ref: 'placeholder',\n }, getSlot(this)),\n ])\n },\n})\n","import VAppBar from './VAppBar'\nimport VAppBarNavIcon from './VAppBarNavIcon'\nimport VAppBarTitle from './VAppBarTitle'\n\nexport { VAppBar, VAppBarNavIcon, VAppBarTitle }\n\nexport default {\n $_vuetify_subcomponents: {\n VAppBar,\n VAppBarNavIcon,\n VAppBarTitle,\n },\n}\n","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n","import VAutocomplete from './VAutocomplete'\n\nexport { VAutocomplete }\nexport default VAutocomplete\n","import './VAvatar.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n Colorable,\n Measurable,\n Roundable,\n /* @vue/component */\n).extend({\n name: 'v-avatar',\n\n props: {\n left: Boolean,\n right: Boolean,\n size: {\n type: [Number, String],\n default: 48,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-avatar--left': this.left,\n 'v-avatar--right': this.right,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return {\n height: convertToUnit(this.size),\n minWidth: convertToUnit(this.size),\n width: convertToUnit(this.size),\n ...this.measurableStyles,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-avatar',\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n }\n\n return h('div', this.setBackgroundColor(this.color, data), getSlot(this))\n },\n})\n","import VAvatar from './VAvatar'\n\nexport { VAvatar }\nexport default VAvatar\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-badge__badge',\n style: this.styles,\n attrs: {\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n },\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = this.$createElement('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return this.$createElement(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return this.$createElement('span', {\n staticClass: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (h): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', {\n staticClass: 'v-badge',\n attrs,\n class: this.classes,\n }, children)\n },\n})\n","import VBadge from './VBadge'\n\nexport { VBadge }\nexport default VBadge\n","// Styles\nimport './VBanner.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VAvatar from '../VAvatar'\nimport VIcon from '../VIcon'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Typeslint\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Mobile,\n Toggleable\n).extend({\n name: 'v-banner',\n\n inheritAttrs: false,\n\n props: {\n app: Boolean,\n icon: String,\n iconColor: String,\n singleLine: Boolean,\n sticky: Boolean,\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-banner--has-icon': this.hasIcon,\n 'v-banner--is-mobile': this.isMobile,\n 'v-banner--single-line': this.singleLine,\n 'v-banner--sticky': this.isSticky,\n }\n },\n hasIcon (): boolean {\n return Boolean(this.icon || this.$slots.icon || this.$scopedSlots.icon)\n },\n isSticky (): boolean {\n return this.sticky || this.app\n },\n styles (): object {\n const styles: Record = { ...VSheet.options.computed.styles.call(this) }\n\n if (this.isSticky) {\n const top = !this.app\n ? 0\n : (this.$vuetify.application.bar + this.$vuetify.application.top)\n\n styles.top = convertToUnit(top)\n styles.position = 'sticky'\n styles.zIndex = 1\n }\n\n return styles\n },\n },\n\n methods: {\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n iconClick (e: MouseEvent) {\n this.$emit('click:icon', e)\n },\n genIcon () {\n if (!this.hasIcon) return undefined\n\n let content\n\n if (this.icon) {\n content = this.$createElement(VIcon, {\n props: {\n color: this.iconColor,\n size: 28,\n },\n }, [this.icon])\n } else {\n content = getSlot(this, 'icon')\n }\n\n return this.$createElement(VAvatar, {\n staticClass: 'v-banner__icon',\n props: {\n color: this.color,\n size: 40,\n },\n on: {\n click: this.iconClick,\n },\n }, [content])\n },\n genText () {\n return this.$createElement('div', {\n staticClass: 'v-banner__text',\n }, getSlot(this))\n },\n genActions () {\n const children = getSlot(this, 'actions', {\n dismiss: () => this.isActive = false,\n })\n\n if (!children) return undefined\n\n return this.$createElement('div', {\n staticClass: 'v-banner__actions',\n }, children)\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-banner__content',\n }, [\n this.genIcon(),\n this.genText(),\n ])\n },\n genWrapper () {\n return this.$createElement('div', {\n staticClass: 'v-banner__wrapper',\n }, [\n this.genContent(),\n this.genActions(),\n ])\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-banner',\n attrs: this.attrs$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n return h(VExpandTransition, [\n h(\n 'div',\n this.outlined ? data : this.setBackgroundColor(this.color, data),\n [this.genWrapper()],\n ),\n ])\n },\n})\n","import VBanner from './VBanner'\n\nexport { VBanner }\nexport default VBanner\n","// Styles\nimport './VBottomNavigation.sass'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport ButtonGroup from '../../mixins/button-group'\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Proxyable from '../../mixins/proxyable'\nimport Scrollable from '../../mixins/scrollable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Applicationable('bottom', [\n 'height',\n 'inputValue',\n ]),\n Colorable,\n Measurable,\n ToggleableFactory('inputValue'),\n Proxyable,\n Scrollable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-bottom-navigation',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-btn--active',\n },\n backgroundColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: 56,\n },\n hideOnScroll: Boolean,\n horizontal: Boolean,\n inputValue: {\n type: Boolean,\n default: true,\n },\n mandatory: Boolean,\n shift: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n isActive: this.inputValue,\n }\n },\n\n computed: {\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.hideOnScroll ||\n !this.inputValue\n )\n )\n },\n classes (): object {\n return {\n 'v-bottom-navigation--absolute': this.absolute,\n 'v-bottom-navigation--grow': this.grow,\n 'v-bottom-navigation--fixed': !this.absolute && (this.app || this.fixed),\n 'v-bottom-navigation--horizontal': this.horizontal,\n 'v-bottom-navigation--shift': this.shift,\n }\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n transform: this.isActive ? 'none' : 'translateY(100%)',\n }\n },\n },\n\n watch: {\n canScroll: 'onScroll',\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('active')) {\n breaking('active.sync', 'value or v-model', this)\n }\n },\n\n methods: {\n thresholdMet () {\n if (this.hideOnScroll) {\n this.isActive = !this.isScrollingUp ||\n this.currentScroll > this.computedScrollThreshold\n\n this.$emit('update:input-value', this.isActive)\n }\n\n if (this.currentThreshold < this.computedScrollThreshold) return\n\n this.savedScroll = this.currentScroll\n },\n updateApplication (): number {\n return this.$el\n ? this.$el.clientHeight\n : 0\n },\n updateValue (val: any) {\n this.$emit('change', val)\n },\n },\n\n render (h): VNode {\n const data = this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-bottom-navigation',\n class: this.classes,\n style: this.styles,\n props: {\n activeClass: this.activeClass,\n mandatory: Boolean(\n this.mandatory ||\n this.value !== undefined\n ),\n tag: this.tag,\n value: this.internalValue,\n },\n on: { change: this.updateValue },\n })\n\n if (this.canScroll) {\n data.directives = data.directives || []\n\n data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return h(ButtonGroup, this.setTextColor(this.color, data), getSlot(this))\n },\n})\n","import VBottomNavigation from './VBottomNavigation'\n\nexport { VBottomNavigation }\nexport default VBottomNavigation\n","import './VBottomSheet.sass'\n\n// Extensions\nimport VDialog from '../VDialog/VDialog'\n\n/* @vue/component */\nexport default VDialog.extend({\n name: 'v-bottom-sheet',\n\n props: {\n inset: Boolean,\n maxWidth: [String, Number],\n transition: {\n type: String,\n default: 'bottom-sheet-transition',\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VDialog.options.computed.classes.call(this),\n 'v-bottom-sheet': true,\n 'v-bottom-sheet--inset': this.inset,\n }\n },\n },\n})\n","import VBottomSheet from './VBottomSheet'\n\nexport { VBottomSheet }\nexport default VBottomSheet\n","// Styles\nimport './VBreadcrumbs.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VBreadcrumbsItem from './VBreadcrumbsItem'\nimport VBreadcrumbsDivider from './VBreadcrumbsDivider'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-breadcrumbs',\n\n props: {\n divider: {\n type: String,\n default: '/',\n },\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n large: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-breadcrumbs--large': this.large,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genDivider () {\n return this.$createElement(VBreadcrumbsDivider, this.$slots.divider ? this.$slots.divider : this.divider)\n },\n genItems () {\n const items = []\n const hasSlot = !!this.$scopedSlots.item\n const keys = []\n\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i]\n\n keys.push(item.text)\n\n if (hasSlot) items.push(this.$scopedSlots.item!({ item }))\n else items.push(this.$createElement(VBreadcrumbsItem, { key: keys.join('.'), props: item }, [item.text]))\n\n if (i < this.items.length - 1) items.push(this.genDivider())\n }\n\n return items\n },\n },\n\n render (h): VNode {\n const children = getSlot(this) || this.genItems()\n\n return h('ul', {\n staticClass: 'v-breadcrumbs',\n class: this.classes,\n }, children)\n },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('v-breadcrumbs__divider', 'li')\n","import Routable from '../../mixins/routable'\n\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(Routable).extend({\n name: 'v-breadcrumbs-item',\n\n props: {\n // In a breadcrumb, the currently\n // active item should be dimmed\n activeClass: {\n type: String,\n default: 'v-breadcrumbs__item--disabled',\n },\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-breadcrumbs__item': true,\n [this.activeClass]: this.disabled,\n }\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n return h('li', [\n h(tag, {\n ...data,\n attrs: {\n ...data.attrs,\n 'aria-current': this.isActive && this.isLink ? 'page' : undefined,\n },\n }, getSlot(this)),\n ])\n },\n})\n","import VBreadcrumbs from './VBreadcrumbs'\nimport VBreadcrumbsItem from './VBreadcrumbsItem'\nimport VBreadcrumbsDivider from './VBreadcrumbsDivider'\n\nexport { VBreadcrumbs, VBreadcrumbsItem, VBreadcrumbsDivider }\n\nexport default {\n $_vuetify_subcomponents: {\n VBreadcrumbs,\n VBreadcrumbsItem,\n VBreadcrumbsDivider,\n },\n}\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, getSlot(this))\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, getSlot(this, 'loader') || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","// Styles\nimport './VBtnToggle.sass'\n\n// Mixins\nimport ButtonGroup from '../../mixins/button-group'\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n ButtonGroup,\n Colorable\n).extend({\n name: 'v-btn-toggle',\n\n props: {\n backgroundColor: String,\n borderless: Boolean,\n dense: Boolean,\n group: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...ButtonGroup.options.computed.classes.call(this),\n 'v-btn-toggle': true,\n 'v-btn-toggle--borderless': this.borderless,\n 'v-btn-toggle--dense': this.dense,\n 'v-btn-toggle--group': this.group,\n 'v-btn-toggle--rounded': this.rounded,\n 'v-btn-toggle--shaped': this.shaped,\n 'v-btn-toggle--tile': this.tile,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genData () {\n const data = this.setTextColor(this.color, {\n ...ButtonGroup.options.methods.genData.call(this),\n })\n\n if (this.group) return data\n\n return this.setBackgroundColor(this.backgroundColor, data)\n },\n },\n})\n","import VBtnToggle from './VBtnToggle'\n\nexport { VBtnToggle }\nexport default VBtnToggle\n","// Styles\n// import '../../stylus/components/_calendar-daily.styl'\n\n// Types\nimport { VNode, Component } from 'vue'\n\n// Mixins\nimport CalendarWithEvents from './mixins/calendar-with-events'\n\n// Util\nimport props from './util/props'\nimport {\n DAYS_IN_MONTH_MAX,\n DAY_MIN,\n DAYS_IN_WEEK,\n parseTimestamp,\n validateTimestamp,\n relativeDays,\n nextDay,\n prevDay,\n copyTimestamp,\n updateFormatted,\n updateWeekday,\n updateRelative,\n getStartOfMonth,\n getEndOfMonth,\n VTime,\n VTimestampInput,\n timestampToDate,\n} from './util/timestamp'\n\n// Calendars\nimport VCalendarMonthly from './VCalendarMonthly'\nimport VCalendarDaily from './VCalendarDaily'\nimport VCalendarWeekly from './VCalendarWeekly'\nimport VCalendarCategory from './VCalendarCategory'\nimport { CalendarTimestamp, CalendarFormatter, CalendarCategory } from 'vuetify/types'\nimport { getParsedCategories } from './util/parser'\n\n// Types\ninterface VCalendarRenderProps {\n start: CalendarTimestamp\n end: CalendarTimestamp\n component: string | Component\n maxDays: number\n weekdays: number[]\n categories: CalendarCategory[]\n}\n\n/* @vue/component */\nexport default CalendarWithEvents.extend({\n name: 'v-calendar',\n\n props: {\n ...props.calendar,\n ...props.weeks,\n ...props.intervals,\n ...props.category,\n },\n\n data: () => ({\n lastStart: null as CalendarTimestamp | null,\n lastEnd: null as CalendarTimestamp | null,\n }),\n\n computed: {\n parsedValue (): CalendarTimestamp {\n return (validateTimestamp(this.value)\n ? parseTimestamp(this.value, true)\n : (this.parsedStart || this.times.today))\n },\n parsedCategoryDays (): number {\n return parseInt(this.categoryDays) || 1\n },\n renderProps (): VCalendarRenderProps {\n const around = this.parsedValue\n let component: any = null\n let maxDays = this.maxDays\n let weekdays = this.parsedWeekdays\n let categories = this.parsedCategories\n let start = around\n let end = around\n switch (this.type) {\n case 'month':\n component = VCalendarMonthly\n start = getStartOfMonth(around)\n end = getEndOfMonth(around)\n break\n case 'week':\n component = VCalendarDaily\n start = this.getStartOfWeek(around)\n end = this.getEndOfWeek(around)\n maxDays = 7\n break\n case 'day':\n component = VCalendarDaily\n maxDays = 1\n weekdays = [start.weekday]\n break\n case '4day':\n component = VCalendarDaily\n end = relativeDays(copyTimestamp(end), nextDay, 3)\n updateFormatted(end)\n maxDays = 4\n weekdays = [\n start.weekday,\n (start.weekday + 1) % 7,\n (start.weekday + 2) % 7,\n (start.weekday + 3) % 7,\n ]\n break\n case 'custom-weekly':\n component = VCalendarWeekly\n start = this.parsedStart || around\n end = this.parsedEnd\n break\n case 'custom-daily':\n component = VCalendarDaily\n start = this.parsedStart || around\n end = this.parsedEnd\n break\n case 'category':\n const days = this.parsedCategoryDays\n\n component = VCalendarCategory\n end = relativeDays(copyTimestamp(end), nextDay, days)\n updateFormatted(end)\n maxDays = days\n weekdays = []\n\n for (let i = 0; i < days; i++) {\n weekdays.push((start.weekday + i) % 7)\n }\n\n categories = this.getCategoryList(categories)\n break\n default:\n throw new Error(this.type + ' is not a valid Calendar type')\n }\n\n return { component, start, end, maxDays, weekdays, categories }\n },\n eventWeekdays (): number[] {\n return this.renderProps.weekdays\n },\n categoryMode (): boolean {\n return this.type === 'category'\n },\n title (): string {\n const { start, end } = this.renderProps\n const spanYears = start.year !== end.year\n const spanMonths = spanYears || start.month !== end.month\n\n if (spanYears) {\n return this.monthShortFormatter(start, true) + ' ' + start.year + ' - ' + this.monthShortFormatter(end, true) + ' ' + end.year\n }\n\n if (spanMonths) {\n return this.monthShortFormatter(start, true) + ' - ' + this.monthShortFormatter(end, true) + ' ' + end.year\n } else {\n return this.monthLongFormatter(start, false) + ' ' + start.year\n }\n },\n monthLongFormatter (): CalendarFormatter {\n return this.getFormatter({\n timeZone: 'UTC', month: 'long',\n })\n },\n monthShortFormatter (): CalendarFormatter {\n return this.getFormatter({\n timeZone: 'UTC', month: 'short',\n })\n },\n parsedCategories (): CalendarCategory[] {\n return getParsedCategories(this.categories, this.categoryText)\n },\n },\n\n watch: {\n renderProps: 'checkChange',\n },\n\n mounted () {\n this.updateEventVisibility()\n this.checkChange()\n },\n\n updated () {\n window.requestAnimationFrame(this.updateEventVisibility)\n },\n\n methods: {\n checkChange (): void {\n const { lastStart, lastEnd } = this\n const { start, end } = this.renderProps\n if (!lastStart || !lastEnd ||\n start.date !== lastStart.date ||\n end.date !== lastEnd.date) {\n this.lastStart = start\n this.lastEnd = end\n this.$emit('change', { start, end })\n }\n },\n move (amount = 1): void {\n const moved = copyTimestamp(this.parsedValue)\n const forward = amount > 0\n const mover = forward ? nextDay : prevDay\n const limit = forward ? DAYS_IN_MONTH_MAX : DAY_MIN\n let times = forward ? amount : -amount\n\n while (--times >= 0) {\n switch (this.type) {\n case 'month':\n moved.day = limit\n mover(moved)\n break\n case 'week':\n relativeDays(moved, mover, DAYS_IN_WEEK)\n break\n case 'day':\n relativeDays(moved, mover, 1)\n break\n case '4day':\n relativeDays(moved, mover, 4)\n break\n case 'category':\n relativeDays(moved, mover, this.parsedCategoryDays)\n break\n }\n }\n\n updateWeekday(moved)\n updateFormatted(moved)\n updateRelative(moved, this.times.now)\n\n if (this.value instanceof Date) {\n this.$emit('input', timestampToDate(moved))\n } else if (typeof this.value === 'number') {\n this.$emit('input', timestampToDate(moved).getTime())\n } else {\n this.$emit('input', moved.date)\n }\n\n this.$emit('moved', moved)\n },\n next (amount = 1): void {\n this.move(amount)\n },\n prev (amount = 1): void {\n this.move(-amount)\n },\n timeToY (time: VTime, clamp = true): number | false {\n const c = this.$children[0] as any\n\n if (c && c.timeToY) {\n return c.timeToY(time, clamp)\n } else {\n return false\n }\n },\n timeDelta (time: VTime): number | false {\n const c = this.$children[0] as any\n\n if (c && c.timeDelta) {\n return c.timeDelta(time)\n } else {\n return false\n }\n },\n minutesToPixels (minutes: number): number {\n const c = this.$children[0] as any\n\n if (c && c.minutesToPixels) {\n return c.minutesToPixels(minutes)\n } else {\n return -1\n }\n },\n scrollToTime (time: VTime): boolean {\n const c = this.$children[0] as any\n\n if (c && c.scrollToTime) {\n return c.scrollToTime(time)\n } else {\n return false\n }\n },\n parseTimestamp (input: VTimestampInput, required?: false): CalendarTimestamp | null {\n return parseTimestamp(input, required, this.times.now)\n },\n timestampToDate (timestamp: CalendarTimestamp): Date {\n return timestampToDate(timestamp)\n },\n getCategoryList (categories: CalendarCategory[]): CalendarCategory[] {\n if (!this.noEvents) {\n const categoryMap: any = categories.reduce((map: any, category, index) => {\n if (typeof category === 'object' && category.categoryName) map[category.categoryName] = { index, count: 0 }\n else if (typeof category === 'string') map[category] = { index, count: 0 }\n return map\n }, {})\n\n if (!this.categoryHideDynamic || !this.categoryShowAll) {\n let categoryLength = categories.length\n\n this.parsedEvents.forEach(ev => {\n let category = ev.category\n\n if (typeof category !== 'string') {\n category = this.categoryForInvalid\n }\n\n if (!category) {\n return\n }\n\n if (category in categoryMap) {\n categoryMap[category].count++\n } else if (!this.categoryHideDynamic) {\n categoryMap[category] = {\n index: categoryLength++,\n count: 1,\n }\n }\n })\n }\n\n if (!this.categoryShowAll) {\n for (const category in categoryMap) {\n if (categoryMap[category].count === 0) {\n delete categoryMap[category]\n }\n }\n }\n\n categories = categories.filter((category: CalendarCategory) => {\n if (typeof category === 'object' && category.categoryName) {\n return categoryMap.hasOwnProperty(category.categoryName)\n } else if (typeof category === 'string') {\n return categoryMap.hasOwnProperty(category)\n }\n return false\n })\n }\n return categories\n },\n },\n\n render (h): VNode {\n const { start, end, maxDays, component, weekdays, categories } = this.renderProps\n\n return h(component, {\n staticClass: 'v-calendar',\n class: {\n 'v-calendar-events': !this.noEvents,\n },\n props: {\n ...this.$props,\n start: start.date,\n end: end.date,\n maxDays,\n weekdays,\n categories,\n },\n attrs: {\n role: 'grid',\n },\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.updateEventVisibility,\n }],\n on: {\n ...this.$listeners,\n\n 'click:date': (day: CalendarTimestamp, e?: MouseEvent) => {\n if (this.$listeners.input) {\n this.$emit('input', day.date)\n }\n if (this.$listeners['click:date']) {\n this.$emit('click:date', day, e)\n }\n },\n },\n scopedSlots: this.getScopedSlots(),\n })\n },\n})\n","// Styles\nimport './VCalendarCategory.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport VCalendarDaily from './VCalendarDaily'\n\n// Util\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { CalendarCategory, CalendarTimestamp } from 'types'\nimport props from './util/props'\nimport { getParsedCategories } from './util/parser'\n\n/* @vue/component */\nexport default VCalendarDaily.extend({\n name: 'v-calendar-category',\n\n props: props.category,\n\n computed: {\n classes (): object {\n return {\n 'v-calendar-daily': true,\n 'v-calendar-category': true,\n ...this.themeClasses,\n }\n },\n parsedCategories (): CalendarCategory[] {\n return getParsedCategories(this.categories, this.categoryText)\n },\n },\n methods: {\n genDayHeader (day: CalendarTimestamp, index: number): VNode[] {\n const data = {\n staticClass: 'v-calendar-category__columns',\n }\n const scope = {\n week: this.days, ...day, index,\n }\n\n const children = this.parsedCategories.map(category => {\n return this.genDayHeaderCategory(day, this.getCategoryScope(scope, category))\n })\n\n return [this.$createElement('div', data, children)]\n },\n getCategoryScope (scope: any, category: CalendarCategory) {\n const cat = typeof category === 'object' && category &&\n category.categoryName === this.categoryForInvalid ? null : category\n return {\n ...scope,\n category: cat,\n }\n },\n genDayHeaderCategory (day: CalendarTimestamp, scope: any): VNode {\n const headerTitle = typeof scope.category === 'object' ? scope.category.categoryName : scope.category\n return this.$createElement('div', {\n staticClass: 'v-calendar-category__column-header',\n on: this.getDefaultMouseEventHandlers(':day-category', e => {\n return this.getCategoryScope(this.getSlotScope(day), scope.category)\n }),\n }, [\n getSlot(this, 'category', scope) || this.genDayHeaderCategoryTitle(headerTitle),\n getSlot(this, 'day-header', scope),\n ])\n },\n genDayHeaderCategoryTitle (categoryName: string | null) {\n return this.$createElement('div', {\n staticClass: 'v-calendar-category__category',\n }, categoryName === null ? this.categoryForInvalid : categoryName)\n },\n genDays (): VNode[] {\n const days: VNode[] = []\n this.days.forEach((d, j) => {\n const day = new Array(this.parsedCategories.length || 1)\n day.fill(d)\n days.push(...day.map((v, i) => this.genDay(v, j, i)))\n })\n return days\n },\n genDay (day: CalendarTimestamp, index: number, categoryIndex: number): VNode {\n const category = this.parsedCategories[categoryIndex]\n return this.$createElement('div', {\n key: day.date + '-' + categoryIndex,\n staticClass: 'v-calendar-daily__day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':time', e => {\n return this.getSlotScope(this.getTimestampAtEvent(e, day))\n }),\n }, [\n ...this.genDayIntervals(index, category),\n ...this.genDayBody(day, category),\n ])\n },\n genDayIntervals (index: number, category: CalendarCategory): VNode[] {\n return this.intervals[index].map(v => this.genDayInterval(v, category))\n },\n genDayInterval (interval: CalendarTimestamp, category: CalendarCategory): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const styler = this.intervalStyle || this.intervalStyleDefault\n\n const data = {\n key: interval.time,\n staticClass: 'v-calendar-daily__day-interval',\n style: {\n height,\n ...styler({ ...interval, category }),\n },\n }\n\n const children = getSlot(this, 'interval', () =>\n this.getCategoryScope(this.getSlotScope(interval), category)\n )\n\n return this.$createElement('div', data, children)\n },\n genDayBody (day: CalendarTimestamp, category: CalendarCategory): VNode[] {\n const data = {\n staticClass: 'v-calendar-category__columns',\n }\n\n const children = [this.genDayBodyCategory(day, category)]\n\n return [this.$createElement('div', data, children)]\n },\n genDayBodyCategory (day: CalendarTimestamp, category: CalendarCategory): VNode {\n const data = {\n staticClass: 'v-calendar-category__column',\n on: this.getDefaultMouseEventHandlers(':time-category', e => {\n return this.getCategoryScope(this.getSlotScope(this.getTimestampAtEvent(e, day)), category)\n }),\n }\n\n const children = getSlot(this, 'day-body', () => this.getCategoryScope(this.getSlotScope(day), category))\n\n return this.$createElement('div', data, children)\n },\n },\n})\n","// Styles\nimport './VCalendarDaily.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarWithIntervals from './mixins/calendar-with-intervals'\n\n// Util\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { CalendarTimestamp } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarWithIntervals.extend({\n name: 'v-calendar-daily',\n\n directives: { Resize },\n\n data: () => ({\n scrollPush: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-calendar-daily': true,\n ...this.themeClasses,\n }\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n this.$nextTick(this.onResize)\n },\n onResize () {\n this.scrollPush = this.getScrollPush()\n },\n getScrollPush (): number {\n const area = this.$refs.scrollArea as HTMLElement\n const pane = this.$refs.pane as HTMLElement\n\n return area && pane ? (area.offsetWidth - pane.offsetWidth) : 0\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__head',\n style: {\n marginRight: this.scrollPush + 'px',\n },\n }, [\n this.genHeadIntervals(),\n ...this.genHeadDays(),\n ])\n },\n genHeadIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__intervals-head',\n style: {\n width,\n },\n }, getSlot(this, 'interval-header'))\n },\n genHeadDays (): VNode[] {\n return this.days.map(this.genHeadDay)\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily_head-day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {\n return { nativeEvent, ...this.getSlotScope(day) }\n }),\n }, [\n this.genHeadWeekday(day),\n this.genHeadDayLabel(day),\n ...this.genDayHeader(day, index),\n ])\n },\n genDayHeader (day: CalendarTimestamp, index: number): VNode[] {\n return getSlot(this, 'day-header', () => ({\n week: this.days, ...day, index,\n })) || []\n },\n genHeadWeekday (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-daily_head-weekday',\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genHeadDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily_head-day-label',\n }, getSlot(this, 'day-label-header', day) || [this.genHeadDayButton(day)])\n },\n genHeadDayButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, nativeEvent => {\n return { nativeEvent, ...day }\n }),\n }, this.dayFormatter(day, false))\n },\n genBody (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__body',\n }, [\n this.genScrollArea(),\n ])\n },\n genScrollArea (): VNode {\n return this.$createElement('div', {\n ref: 'scrollArea',\n staticClass: 'v-calendar-daily__scroll-area',\n }, [\n this.genPane(),\n ])\n },\n genPane (): VNode {\n return this.$createElement('div', {\n ref: 'pane',\n staticClass: 'v-calendar-daily__pane',\n style: {\n height: convertToUnit(this.bodyHeight),\n },\n }, [\n this.genDayContainer(),\n ])\n },\n genDayContainer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__day-container',\n }, [\n this.genBodyIntervals(),\n ...this.genDays(),\n ])\n },\n genDays (): VNode[] {\n return this.days.map(this.genDay)\n },\n genDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily__day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':time', nativeEvent => {\n return { nativeEvent, ...this.getSlotScope(this.getTimestampAtEvent(nativeEvent, day)) }\n }),\n }, [\n ...this.genDayIntervals(index),\n ...this.genDayBody(day),\n ])\n },\n genDayBody (day: CalendarTimestamp): VNode[] {\n return getSlot(this, 'day-body', () => this.getSlotScope(day)) || []\n },\n genDayIntervals (index: number): VNode[] {\n return this.intervals[index].map(this.genDayInterval)\n },\n genDayInterval (interval: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const styler = this.intervalStyle || this.intervalStyleDefault\n\n const data = {\n key: interval.time,\n staticClass: 'v-calendar-daily__day-interval',\n style: {\n height,\n ...styler(interval),\n },\n\n }\n\n const children = getSlot(this, 'interval', () => this.getSlotScope(interval))\n\n return this.$createElement('div', data, children)\n },\n genBodyIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n const data = {\n staticClass: 'v-calendar-daily__intervals-body',\n style: {\n width,\n },\n on: this.getDefaultMouseEventHandlers(':interval', nativeEvent => {\n return { nativeEvent, ...this.getTimestampAtEvent(nativeEvent, this.parsedStart) }\n }),\n }\n\n return this.$createElement('div', data, this.genIntervalLabels())\n },\n genIntervalLabels (): VNode[] | null {\n if (!this.intervals.length) return null\n\n return this.intervals[0].map(this.genIntervalLabel)\n },\n genIntervalLabel (interval: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const short: boolean = this.shortIntervals\n const shower = this.showIntervalLabel || this.showIntervalLabelDefault\n const show = shower(interval)\n const label = show ? this.intervalFormatter(interval, short) : undefined\n\n return this.$createElement('div', {\n key: interval.time,\n staticClass: 'v-calendar-daily__interval',\n style: {\n height,\n },\n }, [\n this.$createElement('div', {\n staticClass: 'v-calendar-daily__interval-text',\n }, label),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n }, [\n !this.hideHeader ? this.genHead() : '',\n this.genBody(),\n ])\n },\n})\n","// Styles\nimport './VCalendarWeekly.sass'\n\n// Mixins\nimport VCalendarWeekly from './VCalendarWeekly'\n\n// Util\nimport { parseTimestamp, getStartOfMonth, getEndOfMonth } from './util/timestamp'\nimport { CalendarTimestamp } from 'vuetify/types'\n\n/* @vue/component */\nexport default VCalendarWeekly.extend({\n name: 'v-calendar-monthly',\n\n computed: {\n staticClass (): string {\n return 'v-calendar-monthly v-calendar-weekly'\n },\n parsedStart (): CalendarTimestamp {\n return getStartOfMonth(parseTimestamp(this.start, true))\n },\n parsedEnd (): CalendarTimestamp {\n return getEndOfMonth(parseTimestamp(this.end, true))\n },\n },\n\n})\n","// Styles\nimport './VCalendarWeekly.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarBase from './mixins/calendar-base'\n\n// Util\nimport { getSlot } from '../../util/helpers'\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport props from './util/props'\nimport {\n createDayList,\n getDayIdentifier,\n createNativeLocaleFormatter,\n} from './util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'v-calendar-weekly',\n\n props: props.weeks,\n\n computed: {\n staticClass (): string {\n return 'v-calendar-weekly'\n },\n classes (): object {\n return this.themeClasses\n },\n parsedMinWeeks (): number {\n return parseInt(this.minWeeks)\n },\n days (): CalendarTimestamp[] {\n const minDays = this.parsedMinWeeks * this.parsedWeekdays.length\n const start = this.getStartOfWeek(this.parsedStart)\n const end = this.getEndOfWeek(this.parsedEnd)\n\n return createDayList(\n start,\n end,\n this.times.today,\n this.weekdaySkips,\n Number.MAX_SAFE_INTEGER,\n minDays\n )\n },\n todayWeek (): CalendarTimestamp[] {\n const today = this.times.today\n const start = this.getStartOfWeek(today)\n const end = this.getEndOfWeek(today)\n\n return createDayList(\n start,\n end,\n today,\n this.weekdaySkips,\n this.parsedWeekdays.length,\n this.parsedWeekdays.length\n )\n },\n monthFormatter (): CalendarFormatter {\n if (this.monthFormat) {\n return this.monthFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', month: 'long' }\n const shortOptions = { timeZone: 'UTC', month: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n isOutside (day: CalendarTimestamp): boolean {\n const dayIdentifier = getDayIdentifier(day)\n\n return dayIdentifier < getDayIdentifier(this.parsedStart) ||\n dayIdentifier > getDayIdentifier(this.parsedEnd)\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head',\n attrs: {\n role: 'row',\n },\n }, this.genHeadDays())\n },\n genHeadDays (): VNode[] {\n const header = this.todayWeek.map(this.genHeadDay)\n\n if (this.showWeek) {\n header.unshift(this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head-weeknumber',\n }))\n }\n\n return header\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n const outside = this.isOutside(this.days[index])\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n key: day.date,\n staticClass: 'v-calendar-weekly__head-weekday',\n class: this.getRelativeClasses(day, outside),\n attrs: {\n role: 'columnheader',\n },\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genWeeks (): VNode[] {\n const days = this.days\n const weekDays = this.parsedWeekdays.length\n const weeks: VNode[] = []\n\n for (let i = 0; i < days.length; i += weekDays) {\n weeks.push(this.genWeek(days.slice(i, i + weekDays), this.getWeekNumber(days[i])))\n }\n\n return weeks\n },\n genWeek (week: CalendarTimestamp[], weekNumber: number): VNode {\n const weekNodes = week.map((day, index) => this.genDay(day, index, week))\n\n if (this.showWeek) {\n weekNodes.unshift(this.genWeekNumber(weekNumber))\n }\n\n return this.$createElement('div', {\n key: week[0].date,\n staticClass: 'v-calendar-weekly__week',\n attrs: {\n role: 'row',\n },\n }, weekNodes)\n },\n getWeekNumber (determineDay: CalendarTimestamp) {\n return weekNumber(\n determineDay.year,\n determineDay.month - 1,\n determineDay.day,\n this.parsedWeekdays[0],\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__weeknumber',\n }, [\n this.$createElement('small', String(weekNumber)),\n ])\n },\n genDay (day: CalendarTimestamp, index: number, week: CalendarTimestamp[]): VNode {\n const outside = this.isOutside(day)\n\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-weekly__day',\n class: this.getRelativeClasses(day, outside),\n attrs: {\n role: 'cell',\n },\n on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n }, [\n this.genDayLabel(day),\n ...(getSlot(this, 'day', () => ({ outside, index, week, ...day })) || []),\n ])\n },\n genDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__day-label',\n }, getSlot(this, 'day-label', day) || [this.genDayLabelButton(day)])\n },\n genDayLabelButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n const hasMonth = day.day === 1 && this.showMonthOnFirst\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n small: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, nativeEvent => ({ nativeEvent, ...day })),\n }, hasMonth\n ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false)\n : this.dayFormatter(day, false)\n )\n },\n genDayMonth (day: CalendarTimestamp): VNode | string {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-weekly__day-month',\n }), getSlot(this, 'day-month', day) || this.monthFormatter(day, this.shortMonths))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: this.staticClass,\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n }, [\n !this.hideHeader ? this.genHead() : '',\n ...this.genWeeks(),\n ])\n },\n})\n","import VCalendar from './VCalendar'\nimport VCalendarDaily from './VCalendarDaily'\nimport VCalendarWeekly from './VCalendarWeekly'\nimport VCalendarMonthly from './VCalendarMonthly'\nimport VCalendarCategory from './VCalendarCategory'\n\nexport { VCalendar, VCalendarCategory, VCalendarDaily, VCalendarWeekly, VCalendarMonthly }\n\nexport default {\n $_vuetify_subcomponents: {\n VCalendar,\n VCalendarCategory,\n VCalendarDaily,\n VCalendarWeekly,\n VCalendarMonthly,\n },\n}\n","\n// Mixins\nimport mixins from '../../../util/mixins'\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Mouse from '../../../mixins/mouse'\nimport Themeable from '../../../mixins/themeable'\nimport Times from './times'\n\n// Directives\nimport Resize from '../../../directives/resize'\n\n// Util\nimport props from '../util/props'\nimport {\n parseTimestamp,\n getWeekdaySkips,\n createDayList,\n createNativeLocaleFormatter,\n getStartOfWeek,\n getEndOfWeek,\n getTimestampIdentifier,\n} from '../util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\nexport default mixins(\n Colorable,\n Localable,\n Mouse,\n Themeable,\n Times\n/* @vue/component */\n).extend({\n name: 'calendar-base',\n\n directives: {\n Resize,\n },\n\n props: props.base,\n\n computed: {\n parsedWeekdays (): number[] {\n return Array.isArray(this.weekdays)\n ? this.weekdays\n : (this.weekdays || '').split(',').map(x => parseInt(x, 10))\n },\n weekdaySkips (): number[] {\n return getWeekdaySkips(this.parsedWeekdays)\n },\n weekdaySkipsReverse (): number [] {\n const reversed = this.weekdaySkips.slice()\n reversed.reverse()\n return reversed\n },\n parsedStart (): CalendarTimestamp {\n return parseTimestamp(this.start, true)\n },\n parsedEnd (): CalendarTimestamp {\n const start = this.parsedStart\n const end: CalendarTimestamp = this.end ? parseTimestamp(this.end) || start : start\n\n return getTimestampIdentifier(end) < getTimestampIdentifier(start) ? start : end\n },\n days (): CalendarTimestamp[] {\n return createDayList(\n this.parsedStart,\n this.parsedEnd,\n this.times.today,\n this.weekdaySkips\n )\n },\n dayFormatter (): CalendarFormatter {\n if (this.dayFormat) {\n return this.dayFormat as CalendarFormatter\n }\n\n const options = { timeZone: 'UTC', day: 'numeric' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, _short) => options\n )\n },\n weekdayFormatter (): CalendarFormatter {\n if (this.weekdayFormat) {\n return this.weekdayFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', weekday: 'long' }\n const shortOptions = { timeZone: 'UTC', weekday: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n getRelativeClasses (timestamp: CalendarTimestamp, outside = false): object {\n return {\n 'v-present': timestamp.present,\n 'v-past': timestamp.past,\n 'v-future': timestamp.future,\n 'v-outside': outside,\n }\n },\n getStartOfWeek (timestamp: CalendarTimestamp): CalendarTimestamp {\n return getStartOfWeek(timestamp, this.parsedWeekdays, this.times.today)\n },\n getEndOfWeek (timestamp: CalendarTimestamp): CalendarTimestamp {\n return getEndOfWeek(timestamp, this.parsedWeekdays, this.times.today)\n },\n getFormatter (options: object): CalendarFormatter {\n return createNativeLocaleFormatter(\n this.locale,\n (_tms, _short) => options\n )\n },\n },\n})\n","// Styles\nimport './calendar-with-events.sass'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n// Directives\nimport ripple from '../../../directives/ripple'\n\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Util\nimport props from '../util/props'\nimport {\n CalendarEventOverlapModes,\n} from '../modes'\nimport {\n getDayIdentifier, diffMinutes,\n} from '../util/timestamp'\nimport {\n parseEvent,\n isEventStart,\n isEventOn,\n isEventOverlapping,\n isEventHiddenOn,\n} from '../util/events'\nimport {\n CalendarTimestamp,\n CalendarEventParsed,\n CalendarEventVisual,\n CalendarEventColorFunction,\n CalendarEventNameFunction,\n CalendarEventTimedFunction,\n CalendarDaySlotScope,\n CalendarDayBodySlotScope,\n CalendarEventOverlapMode,\n CalendarEvent,\n CalendarEventCategoryFunction,\n CalendarCategory,\n} from 'vuetify/types'\n\n// Types\ntype VEventGetter = (day: D) => CalendarEventParsed[]\n\ntype VEventVisualToNode = (visual: CalendarEventVisual, day: D) => VNode | false\n\ntype VEventsToNodes = (\n day: D,\n getter: VEventGetter,\n mapper: VEventVisualToNode,\n timed: boolean) => VNode[] | undefined\n\ntype VDailyEventsMap = {\n [date: string]: {\n parent: HTMLElement\n more: HTMLElement | null\n events: HTMLElement[]\n }\n}\n\ninterface VEventScopeInput {\n eventParsed: CalendarEventParsed\n day: CalendarDaySlotScope\n start: boolean\n end: boolean\n timed: boolean\n}\n\nconst WIDTH_FULL = 100\nconst WIDTH_START = 95\nconst MINUTES_IN_DAY = 1440\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-events',\n\n directives: {\n ripple,\n },\n\n props: {\n ...props.events,\n ...props.calendar,\n ...props.category,\n },\n\n computed: {\n noEvents (): boolean {\n return this.events.length === 0\n },\n parsedEvents (): CalendarEventParsed[] {\n return this.events.map(this.parseEvent)\n },\n parsedEventOverlapThreshold (): number {\n return parseInt(this.eventOverlapThreshold)\n },\n eventTimedFunction (): CalendarEventTimedFunction {\n return typeof this.eventTimed === 'function'\n ? this.eventTimed\n : event => !!event[this.eventTimed as string]\n },\n eventCategoryFunction (): CalendarEventCategoryFunction {\n return typeof this.eventCategory === 'function'\n ? this.eventCategory\n : event => event[this.eventCategory as string]\n },\n eventTextColorFunction (): CalendarEventColorFunction {\n return typeof this.eventTextColor === 'function'\n ? this.eventTextColor\n : () => this.eventTextColor as string\n },\n eventNameFunction (): CalendarEventNameFunction {\n return typeof this.eventName === 'function'\n ? this.eventName\n : (event, timedEvent) => event.input[this.eventName as string] as string || ''\n },\n eventModeFunction (): CalendarEventOverlapMode {\n return typeof this.eventOverlapMode === 'function'\n ? this.eventOverlapMode\n : CalendarEventOverlapModes[this.eventOverlapMode]\n },\n eventWeekdays (): number[] {\n return this.parsedWeekdays\n },\n categoryMode (): boolean {\n return this.type === 'category'\n },\n },\n\n methods: {\n eventColorFunction (e: CalendarEvent): string {\n return typeof this.eventColor === 'function'\n ? this.eventColor(e)\n : e.color || this.eventColor\n },\n parseEvent (input: CalendarEvent, index = 0): CalendarEventParsed {\n return parseEvent(\n input,\n index,\n this.eventStart,\n this.eventEnd,\n this.eventTimedFunction(input),\n this.categoryMode ? this.eventCategoryFunction(input) : false,\n )\n },\n formatTime (withTime: CalendarTimestamp, ampm: boolean): string {\n const formatter = this.getFormatter({\n timeZone: 'UTC',\n hour: 'numeric',\n minute: withTime.minute > 0 ? 'numeric' : undefined,\n })\n\n return formatter(withTime, true)\n },\n updateEventVisibility () {\n if (this.noEvents || !this.eventMore) {\n return\n }\n\n const eventHeight = this.eventHeight\n const eventsMap = this.getEventsMap()\n\n for (const date in eventsMap) {\n const { parent, events, more } = eventsMap[date]\n if (!more) {\n break\n }\n\n const parentBounds = parent.getBoundingClientRect()\n const last = events.length - 1\n const eventsSorted = events.map(event => ({\n event,\n bottom: event.getBoundingClientRect().bottom,\n })).sort((a, b) => a.bottom - b.bottom)\n let hidden = 0\n\n for (let i = 0; i <= last; i++) {\n const bottom = eventsSorted[i].bottom\n const hide = i === last\n ? (bottom > parentBounds.bottom)\n : (bottom + eventHeight > parentBounds.bottom)\n\n if (hide) {\n eventsSorted[i].event.style.display = 'none'\n hidden++\n }\n }\n\n if (hidden) {\n more.style.display = ''\n more.innerHTML = this.$vuetify.lang.t(this.eventMoreText, hidden)\n } else {\n more.style.display = 'none'\n }\n }\n },\n getEventsMap (): VDailyEventsMap {\n const eventsMap: VDailyEventsMap = {}\n const elements = this.$refs.events as HTMLElement[]\n\n if (!elements || !elements.forEach) {\n return eventsMap\n }\n\n elements.forEach(el => {\n const date = el.getAttribute('data-date')\n if (el.parentElement && date) {\n if (!(date in eventsMap)) {\n eventsMap[date] = {\n parent: el.parentElement,\n more: null,\n events: [],\n }\n }\n if (el.getAttribute('data-more')) {\n eventsMap[date].more = el\n } else {\n eventsMap[date].events.push(el)\n el.style.display = ''\n }\n }\n })\n\n return eventsMap\n },\n genDayEvent ({ event }: CalendarEventVisual, day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n const dayIdentifier = getDayIdentifier(day)\n const week = day.week\n const start = dayIdentifier === event.startIdentifier\n let end = dayIdentifier === event.endIdentifier\n let width = WIDTH_START\n\n if (!this.categoryMode) {\n for (let i = day.index + 1; i < week.length; i++) {\n const weekdayIdentifier = getDayIdentifier(week[i])\n if (event.endIdentifier >= weekdayIdentifier) {\n width += WIDTH_FULL\n end = end || weekdayIdentifier === event.endIdentifier\n } else {\n end = true\n break\n }\n }\n }\n const scope = { eventParsed: event, day, start, end, timed: false }\n\n return this.genEvent(event, scope, false, {\n staticClass: 'v-event',\n class: {\n 'v-event-start': start,\n 'v-event-end': end,\n },\n style: {\n height: `${eventHeight}px`,\n width: `${width}%`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n key: event.index,\n ref: 'events',\n refInFor: true,\n })\n },\n genTimedEvent ({ event, left, width }: CalendarEventVisual, day: CalendarDayBodySlotScope): VNode | false {\n if (day.timeDelta(event.end) < 0 || day.timeDelta(event.start) >= 1 || isEventHiddenOn(event, day)) {\n return false\n }\n\n const dayIdentifier = getDayIdentifier(day)\n const start = event.startIdentifier >= dayIdentifier\n const end = event.endIdentifier > dayIdentifier\n const top = start ? day.timeToY(event.start) : 0\n const bottom = end ? day.timeToY(MINUTES_IN_DAY) : day.timeToY(event.end)\n const height = Math.max(this.eventHeight, bottom - top)\n const scope = { eventParsed: event, day, start, end, timed: true }\n\n return this.genEvent(event, scope, true, {\n staticClass: 'v-event-timed',\n style: {\n top: `${top}px`,\n height: `${height}px`,\n left: `${left}%`,\n width: `${width}%`,\n },\n })\n },\n genEvent (event: CalendarEventParsed, scopeInput: VEventScopeInput, timedEvent: boolean, data: VNodeData): VNode {\n const slot = this.$scopedSlots.event\n const text = this.eventTextColorFunction(event.input)\n const background = this.eventColorFunction(event.input)\n const overlapsNoon = event.start.hour < 12 && event.end.hour >= 12\n const singline = diffMinutes(event.start, event.end) <= this.parsedEventOverlapThreshold\n const formatTime = this.formatTime\n const timeSummary = () => formatTime(event.start, overlapsNoon) + ' - ' + formatTime(event.end, true)\n const eventSummary = () => {\n const name = this.eventNameFunction(event, timedEvent)\n if (event.start.hasTime) {\n if (timedEvent) {\n const time = timeSummary()\n const delimiter = singline ? ', ' : this.$createElement('br')\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [\n this.$createElement('strong', [name]),\n delimiter,\n time,\n ])\n } else {\n const time = formatTime(event.start, true)\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [\n this.$createElement('strong', [time]),\n ' ',\n name,\n ])\n }\n }\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [name])\n }\n\n const scope = {\n ...scopeInput,\n event: event.input,\n outside: scopeInput.day.outside,\n singline,\n overlapsNoon,\n formatTime,\n timeSummary,\n eventSummary,\n }\n\n return this.$createElement('div',\n this.setTextColor(text,\n this.setBackgroundColor(background, {\n on: this.getDefaultMouseEventHandlers(':event', nativeEvent => ({ ...scope, nativeEvent })),\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n ...data,\n })\n ), slot\n ? slot(scope)\n : [this.genName(eventSummary)]\n )\n },\n genName (eventSummary: () => string | VNode): VNode {\n return this.$createElement('div', {\n staticClass: 'pl-1',\n }, [eventSummary()])\n },\n genPlaceholder (day: CalendarTimestamp): VNode {\n const height = this.eventHeight + this.eventMarginBottom\n\n return this.$createElement('div', {\n style: {\n height: `${height}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n genMore (day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n\n return this.$createElement('div', {\n staticClass: 'v-event-more pl-1',\n class: {\n 'v-outside': day.outside,\n },\n attrs: {\n 'data-date': day.date,\n 'data-more': 1,\n },\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n on: this.getDefaultMouseEventHandlers(':more', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n\n style: {\n display: 'none',\n height: `${eventHeight}px`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n getVisibleEvents (): CalendarEventParsed[] {\n const start = getDayIdentifier(this.days[0])\n const end = getDayIdentifier(this.days[this.days.length - 1])\n\n return this.parsedEvents.filter(\n event => isEventOverlapping(event, start, end)\n )\n },\n isEventForCategory (event: CalendarEventParsed, category: CalendarCategory): boolean {\n return !this.categoryMode ||\n (typeof category === 'object' && category.categoryName &&\n category.categoryName === event.category) ||\n (typeof event.category === 'string' && category === event.category) ||\n (typeof event.category !== 'string' && category === null)\n },\n getEventsForDay (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => isEventStart(event, day, identifier, firstWeekday)\n )\n },\n getEventsForDayAll (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => event.allDay &&\n (this.categoryMode ? isEventOn(event, identifier) : isEventStart(event, day, identifier, firstWeekday)) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getEventsForDayTimed (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n return this.parsedEvents.filter(\n event => !event.allDay &&\n isEventOn(event, identifier) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getScopedSlots () {\n if (this.noEvents) {\n return { ...this.$scopedSlots }\n }\n\n const mode = this.eventModeFunction(\n this.parsedEvents,\n this.eventWeekdays[0],\n this.parsedEventOverlapThreshold\n )\n\n const isNode = (input: VNode | false): input is VNode => !!input\n const getSlotChildren: VEventsToNodes = (day, getter, mapper, timed) => {\n const events = getter(day)\n const visuals = mode(day, events, timed, this.categoryMode)\n\n if (timed) {\n return visuals.map(visual => mapper(visual, day)).filter(isNode)\n }\n\n const children: VNode[] = []\n\n visuals.forEach((visual, index) => {\n while (children.length < visual.column) {\n children.push(this.genPlaceholder(day))\n }\n\n const mapped = mapper(visual, day)\n if (mapped) {\n children.push(mapped)\n }\n })\n\n return children\n }\n\n const slots = this.$scopedSlots\n const slotDay = slots.day\n const slotDayHeader = slots['day-header']\n const slotDayBody = slots['day-body']\n\n return {\n ...slots,\n day: (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDay, this.genDayEvent, false)\n if (children && children.length > 0 && this.eventMore) {\n children.push(this.genMore(day))\n }\n if (slotDay) {\n const slot = slotDay(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-header': (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDayAll, this.genDayEvent, false)\n\n if (slotDayHeader) {\n const slot = slotDayHeader(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-body': (day: CalendarDayBodySlotScope) => {\n const events = getSlotChildren(day, this.getEventsForDayTimed, this.genTimedEvent, true)\n let children: VNode[] = [\n this.$createElement('div', {\n staticClass: 'v-event-timed-container',\n }, events),\n ]\n\n if (slotDayBody) {\n const slot = slotDayBody(day)\n if (slot) {\n children = children.concat(slot)\n }\n }\n return children\n },\n }\n },\n },\n})\n","\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Util\nimport props from '../util/props'\nimport {\n parseTime,\n copyTimestamp,\n updateMinutes,\n createDayList,\n createIntervalList,\n createNativeLocaleFormatter,\n VTime,\n MINUTES_IN_DAY,\n} from '../util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter, CalendarDayBodySlotScope } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-intervals',\n\n props: props.intervals,\n\n computed: {\n parsedFirstInterval (): number {\n return parseInt(this.firstInterval)\n },\n parsedIntervalMinutes (): number {\n return parseInt(this.intervalMinutes)\n },\n parsedIntervalCount (): number {\n return parseInt(this.intervalCount)\n },\n parsedIntervalHeight (): number {\n return parseFloat(this.intervalHeight)\n },\n parsedFirstTime (): number | false {\n return parseTime(this.firstTime)\n },\n firstMinute (): number {\n const time = this.parsedFirstTime\n\n return time !== false && time >= 0 && time <= MINUTES_IN_DAY\n ? time\n : this.parsedFirstInterval * this.parsedIntervalMinutes\n },\n bodyHeight (): number {\n return this.parsedIntervalCount * this.parsedIntervalHeight\n },\n days (): CalendarTimestamp[] {\n return createDayList(\n this.parsedStart,\n this.parsedEnd,\n this.times.today,\n this.weekdaySkips,\n this.maxDays\n )\n },\n intervals (): CalendarTimestamp[][] {\n const days: CalendarTimestamp[] = this.days\n const first: number = this.firstMinute\n const minutes: number = this.parsedIntervalMinutes\n const count: number = this.parsedIntervalCount\n const now: CalendarTimestamp = this.times.now\n\n return days.map(d => createIntervalList(d, first, minutes, count, now))\n },\n intervalFormatter (): CalendarFormatter {\n if (this.intervalFormat) {\n return this.intervalFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', hour: '2-digit', minute: '2-digit' }\n const shortOptions = { timeZone: 'UTC', hour: 'numeric', minute: '2-digit' }\n const shortHourOptions = { timeZone: 'UTC', hour: 'numeric' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (tms, short) => short ? (tms.minute === 0 ? shortHourOptions : shortOptions) : longOptions\n )\n },\n },\n\n methods: {\n showIntervalLabelDefault (interval: CalendarTimestamp): boolean {\n const first: CalendarTimestamp = this.intervals[0][0]\n const isFirst: boolean = first.hour === interval.hour && first.minute === interval.minute\n return !isFirst\n },\n intervalStyleDefault (_interval: CalendarTimestamp): object | undefined {\n return undefined\n },\n getTimestampAtEvent (e: MouseEvent | TouchEvent, day: CalendarTimestamp): CalendarTimestamp {\n const timestamp: CalendarTimestamp = copyTimestamp(day)\n const bounds = (e.currentTarget as HTMLElement).getBoundingClientRect()\n const baseMinutes: number = this.firstMinute\n const touchEvent: TouchEvent = e as TouchEvent\n const mouseEvent: MouseEvent = e as MouseEvent\n const touches: TouchList = touchEvent.changedTouches || touchEvent.touches\n const clientY: number = touches && touches[0] ? touches[0].clientY : mouseEvent.clientY\n const addIntervals: number = (clientY - bounds.top) / this.parsedIntervalHeight\n const addMinutes: number = Math.floor(addIntervals * this.parsedIntervalMinutes)\n const minutes: number = baseMinutes + addMinutes\n\n return updateMinutes(timestamp, minutes, this.times.now)\n },\n getSlotScope (timestamp: CalendarTimestamp): CalendarDayBodySlotScope {\n const scope = copyTimestamp(timestamp) as any\n scope.timeToY = this.timeToY\n scope.timeDelta = this.timeDelta\n scope.minutesToPixels = this.minutesToPixels\n scope.week = this.days\n return scope\n },\n scrollToTime (time: VTime): boolean {\n const y = this.timeToY(time)\n const pane = this.$refs.scrollArea as HTMLElement\n\n if (y === false || !pane) {\n return false\n }\n\n pane.scrollTop = y\n\n return true\n },\n minutesToPixels (minutes: number): number {\n return minutes / this.parsedIntervalMinutes * this.parsedIntervalHeight\n },\n timeToY (time: VTime, clamp = true): number | false {\n let y = this.timeDelta(time)\n\n if (y !== false) {\n y *= this.bodyHeight\n\n if (clamp) {\n if (y < 0) {\n y = 0\n }\n if (y > this.bodyHeight) {\n y = this.bodyHeight\n }\n }\n }\n\n return y\n },\n timeDelta (time: VTime): number | false {\n const minutes = parseTime(time)\n\n if (minutes === false) {\n return false\n }\n\n const min: number = this.firstMinute\n const gap: number = this.parsedIntervalCount * this.parsedIntervalMinutes\n\n return (minutes - min) / gap\n },\n },\n})\n","import Vue from 'vue'\n\nimport {\n validateTimestamp,\n parseTimestamp,\n parseDate,\n} from '../util/timestamp'\nimport { CalendarTimestamp } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'times',\n\n props: {\n now: {\n type: String,\n validator: validateTimestamp,\n },\n },\n\n data: () => ({\n times: {\n now: parseTimestamp('0000-00-00 00:00', true),\n today: parseTimestamp('0000-00-00', true),\n },\n }),\n\n computed: {\n parsedNow (): CalendarTimestamp | null {\n return this.now ? parseTimestamp(this.now, true) : null\n },\n },\n\n watch: {\n parsedNow: 'updateTimes',\n },\n\n created () {\n this.updateTimes()\n this.setPresent()\n },\n\n methods: {\n setPresent (): void {\n this.times.now.present = this.times.today.present = true\n this.times.now.past = this.times.today.past = false\n this.times.now.future = this.times.today.future = false\n },\n updateTimes (): void {\n const now: CalendarTimestamp = this.parsedNow || this.getNow()\n this.updateDay(now, this.times.now)\n this.updateTime(now, this.times.now)\n this.updateDay(now, this.times.today)\n },\n getNow (): CalendarTimestamp {\n return parseDate(new Date())\n },\n updateDay (now: CalendarTimestamp, target: CalendarTimestamp): void {\n if (now.date !== target.date) {\n target.year = now.year\n target.month = now.month\n target.day = now.day\n target.weekday = now.weekday\n target.date = now.date\n }\n },\n updateTime (now: CalendarTimestamp, target: CalendarTimestamp): void {\n if (now.time !== target.time) {\n target.hour = now.hour\n target.minute = now.minute\n target.time = now.time\n }\n },\n },\n})\n","import { CalendarEventOverlapMode } from 'vuetify/types'\nimport { getOverlapGroupHandler } from './common'\n\nconst FULL_WIDTH = 100\n\nexport const column: CalendarEventOverlapMode = (events, firstWeekday, overlapThreshold) => {\n const handler = getOverlapGroupHandler(firstWeekday)\n\n return (day, dayEvents, timed, reset) => {\n const visuals = handler.getVisuals(day, dayEvents, timed, reset)\n\n if (timed) {\n visuals.forEach(visual => {\n visual.left = visual.column * FULL_WIDTH / visual.columnCount\n visual.width = FULL_WIDTH / visual.columnCount\n })\n }\n\n return visuals\n }\n}\n","import { CalendarEventParsed, CalendarEventVisual, CalendarTimestamp } from 'vuetify/types'\nimport { getTimestampIdentifier } from '../util/timestamp'\n\nconst MILLIS_IN_DAY = 86400000\n\nexport type GetRange = (event: CalendarEventParsed) => [number, number]\n\nexport function getVisuals (events: CalendarEventParsed[], minStart = 0): CalendarEventVisual[] {\n const visuals = events.map(event => ({\n event,\n columnCount: 0,\n column: 0,\n left: 0,\n width: 100,\n }))\n\n visuals.sort((a, b) => {\n return (Math.max(minStart, a.event.startTimestampIdentifier) - Math.max(minStart, b.event.startTimestampIdentifier)) ||\n (b.event.endTimestampIdentifier - a.event.endTimestampIdentifier)\n })\n\n return visuals\n}\n\nexport interface ColumnGroup {\n start: number\n end: number\n visuals: CalendarEventVisual[]\n}\n\nexport function hasOverlap (s0: number, e0: number, s1: number, e1: number, exclude = true): boolean {\n return exclude ? !(s0 >= e1 || e0 <= s1) : !(s0 > e1 || e0 < s1)\n}\n\nexport function setColumnCount (groups: ColumnGroup[]) {\n groups.forEach(group => {\n group.visuals.forEach(groupVisual => {\n groupVisual.columnCount = groups.length\n })\n })\n}\n\nexport function getRange (event: CalendarEventParsed): [number, number] {\n return [event.startTimestampIdentifier, event.endTimestampIdentifier]\n}\n\nexport function getDayRange (event: CalendarEventParsed): [number, number] {\n return [event.startIdentifier, event.endIdentifier]\n}\n\nexport function getNormalizedRange (event: CalendarEventParsed, dayStart: number): [number, number] {\n return [Math.max(dayStart, event.startTimestampIdentifier), Math.min(dayStart + MILLIS_IN_DAY, event.endTimestampIdentifier)]\n}\n\nexport function getOpenGroup (groups: ColumnGroup[], start: number, end: number, timed: boolean) {\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i]\n let intersected = false\n\n if (hasOverlap(start, end, group.start, group.end, timed)) {\n for (let k = 0; k < group.visuals.length; k++) {\n const groupVisual = group.visuals[k]\n const [groupStart, groupEnd] = timed ? getRange(groupVisual.event) : getDayRange(groupVisual.event)\n\n if (hasOverlap(start, end, groupStart, groupEnd, timed)) {\n intersected = true\n break\n }\n }\n }\n\n if (!intersected) {\n return i\n }\n }\n\n return -1\n}\n\nexport function getOverlapGroupHandler (firstWeekday: number) {\n const handler = {\n groups: [] as ColumnGroup[],\n min: -1,\n max: -1,\n reset: () => {\n handler.groups = []\n handler.min = handler.max = -1\n },\n getVisuals: (day: CalendarTimestamp, dayEvents: CalendarEventParsed[], timed: boolean, reset = false) => {\n if (day.weekday === firstWeekday || reset) {\n handler.reset()\n }\n\n const dayStart = getTimestampIdentifier(day)\n const visuals = getVisuals(dayEvents, dayStart)\n\n visuals.forEach(visual => {\n const [start, end] = timed ? getRange(visual.event) : getDayRange(visual.event)\n\n if (handler.groups.length > 0 && !hasOverlap(start, end, handler.min, handler.max, timed)) {\n setColumnCount(handler.groups)\n handler.reset()\n }\n\n let targetGroup = getOpenGroup(handler.groups, start, end, timed)\n\n if (targetGroup === -1) {\n targetGroup = handler.groups.length\n\n handler.groups.push({ start, end, visuals: [] })\n }\n\n const target = handler.groups[targetGroup]\n target.visuals.push(visual)\n target.start = Math.min(target.start, start)\n target.end = Math.max(target.end, end)\n\n visual.column = targetGroup\n\n if (handler.min === -1) {\n handler.min = start\n handler.max = end\n } else {\n handler.min = Math.min(handler.min, start)\n handler.max = Math.max(handler.max, end)\n }\n })\n\n setColumnCount(handler.groups)\n\n if (timed) {\n handler.reset()\n }\n\n return visuals\n },\n }\n\n return handler\n}\n","import { CalendarEventOverlapMode } from 'vuetify/types'\nimport { stack } from './stack'\nimport { column } from './column'\n\nexport const CalendarEventOverlapModes: Record = {\n stack,\n column,\n}\n","import { CalendarEventOverlapMode, CalendarEventVisual } from 'vuetify/types'\nimport { getOverlapGroupHandler, getVisuals, hasOverlap, getNormalizedRange } from './common'\nimport { getTimestampIdentifier } from '../util/timestamp'\n\ninterface Group {\n start: number\n end: number\n visuals: CalendarEventVisual[]\n}\n\ninterface Node {\n parent: Node | null\n sibling: boolean\n index: number\n visual: CalendarEventVisual\n start: number\n end: number\n children: Node[]\n}\n\nconst FULL_WIDTH = 100\n\nconst DEFAULT_OFFSET = 5\n\nconst WIDTH_MULTIPLIER = 1.7\n\n/**\n * Variation of column mode where events can be stacked. The priority of this\n * mode is to stack events together taking up the least amount of space while\n * trying to ensure the content of the event is always visible as well as its\n * start and end. A sibling column has intersecting event content and must be\n * placed beside each other. Non-sibling columns are offset by 5% from the\n * previous column. The width is scaled by 1.7 so the events overlap and\n * whitespace is reduced. If there is a hole in columns the event width is\n * scaled up so it intersects with the next column. The columns have equal\n * width in the space they are given. If the event doesn't have any to the\n * right of it that intersect with it's content it's right side is extended\n * to the right side.\n */\n\nexport const stack: CalendarEventOverlapMode = (events, firstWeekday, overlapThreshold) => {\n const handler = getOverlapGroupHandler(firstWeekday)\n\n // eslint-disable-next-line max-statements\n return (day, dayEvents, timed, reset) => {\n if (!timed) {\n return handler.getVisuals(day, dayEvents, timed, reset)\n }\n\n const dayStart = getTimestampIdentifier(day)\n const visuals = getVisuals(dayEvents, dayStart)\n const groups = getGroups(visuals, dayStart)\n\n for (const group of groups) {\n const nodes: Node[] = []\n\n for (const visual of group.visuals) {\n const child = getNode(visual, dayStart)\n const index = getNextIndex(child, nodes)\n\n if (index === false) {\n const parent = getParent(child, nodes)\n if (parent) {\n child.parent = parent\n child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold))\n child.index = parent.index + 1\n parent.children.push(child)\n }\n } else {\n const [parent] = getOverlappingRange(child, nodes, index - 1, index - 1)\n const children = getOverlappingRange(child, nodes, index + 1, index + nodes.length, true)\n\n child.children = children\n child.index = index\n\n if (parent) {\n child.parent = parent\n child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold))\n parent.children.push(child)\n }\n\n for (const grand of children) {\n if (grand.parent === parent) {\n grand.parent = child\n }\n\n const grandNext = grand.index - child.index <= 1\n if (grandNext && child.sibling &&\n hasOverlap(child.start, addTime(child.start, overlapThreshold), grand.start, grand.end)) {\n grand.sibling = true\n }\n }\n }\n\n nodes.push(child)\n }\n\n calculateBounds(nodes, overlapThreshold)\n }\n\n visuals.sort((a, b) => (a.left - b.left) || (a.event.startTimestampIdentifier - b.event.startTimestampIdentifier))\n\n return visuals\n }\n}\n\nfunction calculateBounds (nodes: Node[], overlapThreshold: number) {\n for (const node of nodes) {\n const { visual, parent } = node\n const columns = getMaxChildIndex(node) + 1\n const spaceLeft = parent ? parent.visual.left : 0\n const spaceWidth = FULL_WIDTH - spaceLeft\n const offset = Math.min(DEFAULT_OFFSET, FULL_WIDTH / columns)\n const columnWidthMultiplier = getColumnWidthMultiplier(node, nodes)\n const columnOffset = spaceWidth / (columns - node.index + 1)\n const columnWidth = spaceWidth / (columns - node.index + (node.sibling ? 1 : 0)) * columnWidthMultiplier\n\n if (parent) {\n visual.left = node.sibling\n ? spaceLeft + columnOffset\n : spaceLeft + offset\n }\n\n visual.width = hasFullWidth(node, nodes, overlapThreshold)\n ? FULL_WIDTH - visual.left\n : Math.min(FULL_WIDTH - visual.left, columnWidth * WIDTH_MULTIPLIER)\n }\n}\n\nfunction getColumnWidthMultiplier (node: Node, nodes: Node[]): number {\n if (!node.children.length) {\n return 1\n }\n\n const maxColumn = node.index + nodes.length\n const minColumn = node.children.reduce((min, c) => Math.min(min, c.index), maxColumn)\n\n return minColumn - node.index\n}\n\nfunction getOverlappingIndices (node: Node, nodes: Node[]): number[] {\n const indices: number[] = []\n for (const other of nodes) {\n if (hasOverlap(node.start, node.end, other.start, other.end)) {\n indices.push(other.index)\n }\n }\n return indices\n}\n\nfunction getNextIndex (node: Node, nodes: Node[]): number | false {\n const indices = getOverlappingIndices(node, nodes)\n indices.sort()\n\n for (let i = 0; i < indices.length; i++) {\n if (i < indices[i]) {\n return i\n }\n }\n return false\n}\n\nfunction getOverlappingRange (node: Node, nodes: Node[], indexMin: number, indexMax: number, returnFirstColumn = false): Node[] {\n const overlapping: Node[] = []\n for (const other of nodes) {\n if (other.index >= indexMin && other.index <= indexMax && hasOverlap(node.start, node.end, other.start, other.end)) {\n overlapping.push(other)\n }\n }\n if (returnFirstColumn && overlapping.length > 0) {\n const first = overlapping.reduce((min, n) => Math.min(min, n.index), overlapping[0].index)\n return overlapping.filter(n => n.index === first)\n }\n return overlapping\n}\n\nfunction getParent (node: Node, nodes: Node[]): Node | null {\n let parent: Node | null = null\n for (const other of nodes) {\n if (hasOverlap(node.start, node.end, other.start, other.end) && (parent === null || other.index > parent.index)) {\n parent = other\n }\n }\n return parent\n}\n\nfunction hasFullWidth (node: Node, nodes: Node[], overlapThreshold: number): boolean {\n for (const other of nodes) {\n if (other !== node &&\n other.index > node.index &&\n hasOverlap(node.start, addTime(node.start, overlapThreshold), other.start, other.end)) {\n return false\n }\n }\n\n return true\n}\n\nfunction getGroups (visuals: CalendarEventVisual[], dayStart: number): Group[] {\n const groups: Group[] = []\n\n for (const visual of visuals) {\n const [start, end] = getNormalizedRange(visual.event, dayStart)\n let added = false\n\n for (const group of groups) {\n if (hasOverlap(start, end, group.start, group.end)) {\n group.visuals.push(visual)\n group.end = Math.max(group.end, end)\n added = true\n break\n }\n }\n\n if (!added) {\n groups.push({ start, end, visuals: [visual] })\n }\n }\n\n return groups\n}\n\nfunction getNode (visual: CalendarEventVisual, dayStart: number): Node {\n const [start, end] = getNormalizedRange(visual.event, dayStart)\n\n return {\n parent: null,\n sibling: true,\n index: 0,\n visual,\n start,\n end,\n children: [],\n }\n}\n\nfunction getMaxChildIndex (node: Node): number {\n let max = node.index\n for (const child of node.children) {\n const childMax = getMaxChildIndex(child)\n if (childMax > max) {\n max = childMax\n }\n }\n return max\n}\n\nfunction addTime (identifier: number, minutes: number): number {\n const removeMinutes = identifier % 100\n const totalMinutes = removeMinutes + minutes\n const addHours = Math.floor(totalMinutes / 60)\n const addMinutes = totalMinutes % 60\n\n return identifier - removeMinutes + addHours * 100 + addMinutes\n}\n","import {\n parseTimestamp,\n getDayIdentifier,\n getTimestampIdentifier,\n isTimedless,\n updateHasTime,\n} from './timestamp'\nimport { CalendarTimestamp, CalendarEvent, CalendarEventParsed } from 'vuetify/types'\n\nexport function parseEvent (\n input: CalendarEvent,\n index: number,\n startProperty: string,\n endProperty: string,\n timed = false,\n category: string | false = false,\n): CalendarEventParsed {\n const startInput = input[startProperty]\n const endInput = input[endProperty]\n const startParsed: CalendarTimestamp = parseTimestamp(startInput, true)\n const endParsed: CalendarTimestamp = (endInput ? parseTimestamp(endInput, true) : startParsed)\n const start: CalendarTimestamp = isTimedless(startInput)\n ? updateHasTime(startParsed, timed)\n : startParsed\n const end: CalendarTimestamp = isTimedless(endInput)\n ? updateHasTime(endParsed, timed)\n : endParsed\n const startIdentifier: number = getDayIdentifier(start)\n const startTimestampIdentifier: number = getTimestampIdentifier(start)\n const endIdentifier: number = getDayIdentifier(end)\n const endOffset: number = start.hasTime ? 0 : 2359\n const endTimestampIdentifier: number = getTimestampIdentifier(end) + endOffset\n const allDay = !start.hasTime\n\n return { input, start, startIdentifier, startTimestampIdentifier, end, endIdentifier, endTimestampIdentifier, allDay, index, category }\n}\n\nexport function isEventOn (event: CalendarEventParsed, dayIdentifier: number): boolean {\n return dayIdentifier >= event.startIdentifier && dayIdentifier <= event.endIdentifier\n}\n\nexport function isEventHiddenOn (event: CalendarEventParsed, day: CalendarTimestamp): boolean {\n return event.end.time === '00:00' && event.end.date === day.date && event.start.date !== day.date\n}\n\nexport function isEventStart (event: CalendarEventParsed, day: CalendarTimestamp, dayIdentifier: number, firstWeekday: number): boolean {\n return dayIdentifier === event.startIdentifier || (firstWeekday === day.weekday && isEventOn(event, dayIdentifier))\n}\n\nexport function isEventOverlapping (event: CalendarEventParsed, startIdentifier: number, endIdentifier: number): boolean {\n return startIdentifier <= event.endIdentifier && endIdentifier >= event.startIdentifier\n}\n","import { CalendarCategory, CalendarCategoryTextFunction } from 'types'\n\nexport function parsedCategoryText (\n category: CalendarCategory,\n categoryText: string | CalendarCategoryTextFunction\n): string {\n return typeof categoryText === 'string' && typeof category === 'object' && category\n ? category[categoryText]\n : typeof categoryText === 'function'\n ? categoryText(category)\n : category\n}\n\nexport function getParsedCategories (\n categories: CalendarCategory | CalendarCategory[],\n categoryText: string | CalendarCategoryTextFunction\n): CalendarCategory[] {\n if (typeof categories === 'string') return categories.split(/\\s*,\\s/)\n if (Array.isArray(categories)) {\n return categories.map((category: CalendarCategory) => {\n if (typeof category === 'string') return category\n\n const categoryName = typeof category.categoryName === 'string'\n ? category.categoryName\n : parsedCategoryText(category, categoryText)\n return { ...category, categoryName }\n })\n }\n return []\n}\n","\nimport { validateTimestamp, parseDate, DAYS_IN_WEEK, validateTime } from './timestamp'\nimport { PropType } from 'vue'\nimport { CalendarEvent, CalendarFormatter, CalendarTimestamp, CalendarEventOverlapMode, CalendarEventNameFunction, CalendarEventColorFunction, CalendarEventCategoryFunction, CalendarEventTimedFunction, CalendarCategoryTextFunction, CalendarCategory } from 'vuetify/types'\nimport { CalendarEventOverlapModes } from '../modes'\nimport { PropValidator } from 'vue/types/options'\n\nexport default {\n base: {\n start: {\n type: [String, Number, Date],\n validate: validateTimestamp,\n default: () => parseDate(new Date()).date,\n },\n end: {\n type: [String, Number, Date],\n validate: validateTimestamp,\n },\n weekdays: {\n type: [Array, String] as PropType,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n validate: validateWeekdays,\n },\n hideHeader: {\n type: Boolean,\n },\n shortWeekdays: {\n type: Boolean,\n default: true,\n },\n weekdayFormat: {\n type: Function as PropType,\n default: null,\n },\n dayFormat: {\n type: Function as PropType,\n default: null,\n },\n },\n intervals: {\n maxDays: {\n type: Number,\n default: 7,\n },\n shortIntervals: {\n type: Boolean,\n default: true,\n },\n intervalHeight: {\n type: [Number, String],\n default: 48,\n validate: validateNumber,\n },\n intervalWidth: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n intervalMinutes: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n firstInterval: {\n type: [Number, String],\n default: 0,\n validate: validateNumber,\n },\n firstTime: {\n type: [Number, String, Object],\n validate: validateTime,\n },\n intervalCount: {\n type: [Number, String],\n default: 24,\n validate: validateNumber,\n },\n intervalFormat: {\n type: Function as PropType,\n default: null,\n },\n intervalStyle: {\n type: Function as PropType<(interval: CalendarTimestamp) => object>,\n default: null,\n },\n showIntervalLabel: {\n type: Function as PropType<(interval: CalendarTimestamp) => boolean>,\n default: null,\n },\n },\n weeks: {\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n minWeeks: {\n validate: validateNumber,\n default: 1,\n },\n shortMonths: {\n type: Boolean,\n default: true,\n },\n showMonthOnFirst: {\n type: Boolean,\n default: true,\n },\n showWeek: Boolean,\n monthFormat: {\n type: Function as PropType,\n default: null,\n },\n },\n calendar: {\n type: {\n type: String,\n default: 'month',\n },\n value: {\n type: [String, Number, Date] as PropType,\n validate: validateTimestamp,\n },\n },\n category: {\n categories: {\n type: [Array, String] as PropType,\n default: '',\n },\n categoryText: {\n type: [String, Function] as PropType,\n },\n categoryHideDynamic: {\n type: Boolean,\n },\n categoryShowAll: {\n type: Boolean,\n },\n categoryForInvalid: {\n type: String,\n default: '',\n },\n categoryDays: {\n type: [Number, String],\n default: 1,\n validate: (x: any) => isFinite(parseInt(x)) && parseInt(x) > 0,\n },\n },\n events: {\n events: {\n type: Array,\n default: () => [],\n } as PropValidator,\n eventStart: {\n type: String,\n default: 'start',\n },\n eventEnd: {\n type: String,\n default: 'end',\n },\n eventTimed: {\n type: [String, Function] as PropType,\n default: 'timed',\n },\n eventCategory: {\n type: [String, Function] as PropType,\n default: 'category',\n },\n eventHeight: {\n type: Number,\n default: 20,\n },\n eventColor: {\n type: [String, Function] as PropType,\n default: 'primary',\n },\n eventTextColor: {\n type: [String, Function] as PropType,\n default: 'white',\n },\n eventName: {\n type: [String, Function] as PropType,\n default: 'name',\n },\n eventOverlapThreshold: {\n type: [String, Number],\n default: 60,\n },\n eventOverlapMode: {\n type: [String, Function],\n default: 'stack',\n validate: (mode: any) => mode in CalendarEventOverlapModes || typeof mode === 'function',\n } as PropValidator<'stack' | 'column' | CalendarEventOverlapMode>,\n eventMore: {\n type: Boolean,\n default: true,\n },\n eventMoreText: {\n type: String,\n default: '$vuetify.calendar.moreEvents',\n },\n eventRipple: {\n type: [Boolean, Object],\n default: null,\n },\n eventMarginBottom: {\n type: Number,\n default: 1,\n },\n },\n}\n\nexport function validateNumber (input: any): boolean {\n return isFinite(parseInt(input))\n}\n\nexport function validateWeekdays (input: string | (number | string)[]): boolean {\n if (typeof input === 'string') {\n input = input.split(',')\n }\n\n if (Array.isArray(input)) {\n const ints = input.map(x => parseInt(x))\n\n if (ints.length > DAYS_IN_WEEK || ints.length === 0) {\n return false\n }\n\n const visited: Record = {}\n let wrapped = false\n\n for (let i = 0; i < ints.length; i++) {\n const x = ints[i]\n\n if (!isFinite(x) || x < 0 || x >= DAYS_IN_WEEK) {\n return false\n }\n\n if (i > 0) {\n const d = x - ints[i - 1]\n if (d < 0) {\n if (wrapped) {\n return false\n }\n wrapped = true\n } else if (d === 0) {\n return false\n }\n }\n\n if (visited[x]) {\n return false\n }\n visited[x] = true\n }\n\n return true\n }\n\n return false\n}\n","import { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\nimport { isLeapYear } from '../../../util/dateTimeUtils'\n\nexport const PARSE_REGEX = /^(\\d{4})-(\\d{1,2})(-(\\d{1,2}))?([^\\d]+(\\d{1,2}))?(:(\\d{1,2}))?(:(\\d{1,2}))?$/\nexport const PARSE_TIME = /(\\d\\d?)(:(\\d\\d?)|)(:(\\d\\d?)|)/\n\nexport const DAYS_IN_MONTH: number[] = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_LEAP: number[] = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_MIN = 28\nexport const DAYS_IN_MONTH_MAX = 31\nexport const MONTH_MAX = 12\nexport const MONTH_MIN = 1\nexport const DAY_MIN = 1\nexport const DAYS_IN_WEEK = 7\nexport const MINUTES_IN_HOUR = 60\nexport const MINUTE_MAX = 59\nexport const MINUTES_IN_DAY = 24 * 60\nexport const HOURS_IN_DAY = 24\nexport const HOUR_MAX = 23\nexport const FIRST_HOUR = 0\nexport const OFFSET_YEAR = 10000\nexport const OFFSET_MONTH = 100\nexport const OFFSET_HOUR = 100\nexport const OFFSET_TIME = 10000\n\ntype CalendarTimestampFormatOptions = (timestamp: CalendarTimestamp, short: boolean) => object\ntype CalendarTimestampOperation = (timestamp: CalendarTimestamp) => CalendarTimestamp\nexport type VTime = number | string | {\n hour: number\n minute: number\n}\n\nexport type VTimestampInput = number | string | Date;\n\nexport function getStartOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n findWeekday(start, weekdays[0], prevDay)\n updateFormatted(start)\n if (today) {\n updateRelative(start, today, start.hasTime)\n }\n\n return start\n}\n\nexport function getEndOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n findWeekday(end, weekdays[weekdays.length - 1])\n updateFormatted(end)\n if (today) {\n updateRelative(end, today, end.hasTime)\n }\n\n return end\n}\n\nexport function getStartOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n start.day = DAY_MIN\n updateWeekday(start)\n updateFormatted(start)\n\n return start\n}\n\nexport function getEndOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n end.day = daysInMonth(end.year, end.month)\n updateWeekday(end)\n updateFormatted(end)\n\n return end\n}\n\nexport function validateTime (input: any): input is VTime {\n return (typeof input === 'number' && isFinite(input)) ||\n (!!PARSE_TIME.exec(input)) ||\n (typeof input === 'object' && isFinite(input.hour) && isFinite(input.minute))\n}\n\nexport function parseTime (input: any): number | false {\n if (typeof input === 'number') {\n // when a number is given, it's minutes since 12:00am\n return input\n } else if (typeof input === 'string') {\n // when a string is given, it's a hh:mm:ss format where seconds are optional\n const parts = PARSE_TIME.exec(input)\n if (!parts) {\n return false\n }\n\n return parseInt(parts[1]) * 60 + parseInt(parts[3] || 0)\n } else if (typeof input === 'object') {\n // when an object is given, it must have hour and minute\n if (typeof input.hour !== 'number' || typeof input.minute !== 'number') {\n return false\n }\n\n return input.hour * 60 + input.minute\n } else {\n // unsupported type\n return false\n }\n}\n\nexport function validateTimestamp (input: any): input is VTimestampInput {\n return (typeof input === 'number' && isFinite(input)) ||\n (typeof input === 'string' && !!PARSE_REGEX.exec(input)) ||\n (input instanceof Date)\n}\n\nexport function parseTimestamp (input: VTimestampInput, required?: false, now?: CalendarTimestamp): CalendarTimestamp | null\nexport function parseTimestamp (input: VTimestampInput, required: true, now?: CalendarTimestamp): CalendarTimestamp\nexport function parseTimestamp (input: VTimestampInput, required = false, now?: CalendarTimestamp): CalendarTimestamp | null {\n if (typeof input === 'number' && isFinite(input)) {\n input = new Date(input)\n }\n\n if (input instanceof Date) {\n const date: CalendarTimestamp = parseDate(input)\n\n if (now) {\n updateRelative(date, now, date.hasTime)\n }\n\n return date\n }\n\n if (typeof input !== 'string') {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n return null\n }\n\n // YYYY-MM-DD hh:mm:ss\n const parts = PARSE_REGEX.exec(input)\n\n if (!parts) {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n\n return null\n }\n\n const timestamp: CalendarTimestamp = {\n date: input,\n time: '',\n year: parseInt(parts[1]),\n month: parseInt(parts[2]),\n day: parseInt(parts[4]) || 1,\n hour: parseInt(parts[6]) || 0,\n minute: parseInt(parts[8]) || 0,\n weekday: 0,\n hasDay: !!parts[4],\n hasTime: !!(parts[6] && parts[8]),\n past: false,\n present: false,\n future: false,\n }\n\n updateWeekday(timestamp)\n updateFormatted(timestamp)\n\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n\n return timestamp\n}\n\nexport function parseDate (date: Date): CalendarTimestamp {\n return updateFormatted({\n date: '',\n time: '',\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate(),\n weekday: date.getDay(),\n hour: date.getHours(),\n minute: date.getMinutes(),\n hasDay: true,\n hasTime: true,\n past: false,\n present: true,\n future: false,\n })\n}\n\nexport function getDayIdentifier (timestamp: { year: number, month: number, day: number }): number {\n return timestamp.year * OFFSET_YEAR + timestamp.month * OFFSET_MONTH + timestamp.day\n}\n\nexport function getTimeIdentifier (timestamp: { hour: number, minute: number }): number {\n return timestamp.hour * OFFSET_HOUR + timestamp.minute\n}\n\nexport function getTimestampIdentifier (timestamp: CalendarTimestamp): number {\n return getDayIdentifier(timestamp) * OFFSET_TIME + getTimeIdentifier(timestamp)\n}\n\nexport function updateRelative (timestamp: CalendarTimestamp, now: CalendarTimestamp, time = false): CalendarTimestamp {\n let a = getDayIdentifier(now)\n let b = getDayIdentifier(timestamp)\n let present = a === b\n\n if (timestamp.hasTime && time && present) {\n a = getTimeIdentifier(now)\n b = getTimeIdentifier(timestamp)\n present = a === b\n }\n\n timestamp.past = b < a\n timestamp.present = present\n timestamp.future = b > a\n\n return timestamp\n}\n\nexport function isTimedless (input: VTimestampInput): input is (Date | number) {\n return (input instanceof Date) || (typeof input === 'number' && isFinite(input))\n}\n\nexport function updateHasTime (timestamp: CalendarTimestamp, hasTime: boolean, now?: CalendarTimestamp): CalendarTimestamp {\n if (timestamp.hasTime !== hasTime) {\n timestamp.hasTime = hasTime\n if (!hasTime) {\n timestamp.hour = HOUR_MAX\n timestamp.minute = MINUTE_MAX\n timestamp.time = getTime(timestamp)\n }\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n }\n\n return timestamp\n}\n\nexport function updateMinutes (timestamp: CalendarTimestamp, minutes: number, now?: CalendarTimestamp): CalendarTimestamp {\n timestamp.hasTime = true\n timestamp.hour = Math.floor(minutes / MINUTES_IN_HOUR)\n timestamp.minute = minutes % MINUTES_IN_HOUR\n timestamp.time = getTime(timestamp)\n if (now) {\n updateRelative(timestamp, now, true)\n }\n\n return timestamp\n}\n\nexport function updateWeekday (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.weekday = getWeekday(timestamp)\n\n return timestamp\n}\n\nexport function updateFormatted (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.time = getTime(timestamp)\n timestamp.date = getDate(timestamp)\n\n return timestamp\n}\n\nexport function getWeekday (timestamp: CalendarTimestamp): number {\n if (timestamp.hasDay) {\n const _ = Math.floor\n const k = timestamp.day\n const m = ((timestamp.month + 9) % MONTH_MAX) + 1\n const C = _(timestamp.year / 100)\n const Y = (timestamp.year % 100) - (timestamp.month <= 2 ? 1 : 0)\n\n return (((k + _(2.6 * m - 0.2) - 2 * C + Y + _(Y / 4) + _(C / 4)) % 7) + 7) % 7\n }\n\n return timestamp.weekday\n}\n\nexport function daysInMonth (year: number, month: number) {\n return isLeapYear(year) ? DAYS_IN_MONTH_LEAP[month] : DAYS_IN_MONTH[month]\n}\n\nexport function copyTimestamp (timestamp: CalendarTimestamp): CalendarTimestamp {\n const { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future } = timestamp\n\n return { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future }\n}\n\nexport function padNumber (x: number, length: number): string {\n let padded = String(x)\n while (padded.length < length) {\n padded = '0' + padded\n }\n\n return padded\n}\n\nexport function getDate (timestamp: CalendarTimestamp): string {\n let str = `${padNumber(timestamp.year, 4)}-${padNumber(timestamp.month, 2)}`\n\n if (timestamp.hasDay) str += `-${padNumber(timestamp.day, 2)}`\n\n return str\n}\n\nexport function getTime (timestamp: CalendarTimestamp): string {\n if (!timestamp.hasTime) {\n return ''\n }\n\n return `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n}\n\nexport function nextMinutes (timestamp: CalendarTimestamp, minutes: number): CalendarTimestamp {\n timestamp.minute += minutes\n while (timestamp.minute > MINUTES_IN_HOUR) {\n timestamp.minute -= MINUTES_IN_HOUR\n timestamp.hour++\n if (timestamp.hour >= HOURS_IN_DAY) {\n nextDay(timestamp)\n timestamp.hour = FIRST_HOUR\n }\n }\n\n return timestamp\n}\n\nexport function nextDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day++\n timestamp.weekday = (timestamp.weekday + 1) % DAYS_IN_WEEK\n if (timestamp.day > DAYS_IN_MONTH_MIN && timestamp.day > daysInMonth(timestamp.year, timestamp.month)) {\n timestamp.day = DAY_MIN\n timestamp.month++\n if (timestamp.month > MONTH_MAX) {\n timestamp.month = MONTH_MIN\n timestamp.year++\n }\n }\n\n return timestamp\n}\n\nexport function prevDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day--\n timestamp.weekday = (timestamp.weekday + 6) % DAYS_IN_WEEK\n if (timestamp.day < DAY_MIN) {\n timestamp.month--\n if (timestamp.month < MONTH_MIN) {\n timestamp.year--\n timestamp.month = MONTH_MAX\n }\n timestamp.day = daysInMonth(timestamp.year, timestamp.month)\n }\n\n return timestamp\n}\n\nexport function relativeDays (\n timestamp: CalendarTimestamp,\n mover: CalendarTimestampOperation = nextDay,\n days = 1\n): CalendarTimestamp {\n while (--days >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function diffMinutes (min: CalendarTimestamp, max: CalendarTimestamp) {\n const Y = (max.year - min.year) * 525600\n const M = (max.month - min.month) * 43800\n const D = (max.day - min.day) * 1440\n const h = (max.hour - min.hour) * 60\n const m = (max.minute - min.minute)\n\n return Y + M + D + h + m\n}\n\nexport function findWeekday (timestamp: CalendarTimestamp, weekday: number,\n mover: CalendarTimestampOperation = nextDay, maxDays = 6): CalendarTimestamp {\n while (timestamp.weekday !== weekday && --maxDays >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function getWeekdaySkips (weekdays: number[]): number[] {\n const skips: number[] = [1, 1, 1, 1, 1, 1, 1]\n const filled: number[] = [0, 0, 0, 0, 0, 0, 0]\n for (let i = 0; i < weekdays.length; i++) {\n filled[weekdays[i]] = 1\n }\n for (let k = 0; k < DAYS_IN_WEEK; k++) {\n let skip = 1\n for (let j = 1; j < DAYS_IN_WEEK; j++) {\n const next = (k + j) % DAYS_IN_WEEK\n if (filled[next]) {\n break\n }\n skip++\n }\n skips[k] = filled[k] * skip\n }\n\n return skips\n}\n\nexport function timestampToDate (timestamp: CalendarTimestamp): Date {\n const time = `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n const date = timestamp.date\n\n return new Date(`${date}T${time}:00+00:00`)\n}\n\nexport function createDayList (\n start: CalendarTimestamp,\n end: CalendarTimestamp,\n now: CalendarTimestamp,\n weekdaySkips: number[],\n max = 42,\n min = 0\n): CalendarTimestamp[] {\n const stop = getDayIdentifier(end)\n const days: CalendarTimestamp[] = []\n let current = copyTimestamp(start)\n let currentIdentifier = 0\n let stopped = currentIdentifier === stop\n\n if (stop < getDayIdentifier(start)) {\n throw new Error('End date is earlier than start date.')\n }\n\n while ((!stopped || days.length < min) && days.length < max) {\n currentIdentifier = getDayIdentifier(current)\n stopped = stopped || currentIdentifier === stop\n if (weekdaySkips[current.weekday] === 0) {\n current = nextDay(current)\n continue\n }\n const day = copyTimestamp(current)\n updateFormatted(day)\n updateRelative(day, now)\n days.push(day)\n current = relativeDays(current, nextDay, weekdaySkips[current.weekday])\n }\n\n if (!days.length) throw new Error('No dates found using specified start date, end date, and weekdays.')\n\n return days\n}\n\nexport function createIntervalList (timestamp: CalendarTimestamp, first: number,\n minutes: number, count: number, now?: CalendarTimestamp): CalendarTimestamp[] {\n const intervals: CalendarTimestamp[] = []\n\n for (let i = 0; i < count; i++) {\n const mins = first + (i * minutes)\n const int = copyTimestamp(timestamp)\n intervals.push(updateMinutes(int, mins, now))\n }\n\n return intervals\n}\n\nexport function createNativeLocaleFormatter (locale: string, getOptions: CalendarTimestampFormatOptions): CalendarFormatter {\n const emptyFormatter: CalendarFormatter = (_t, _s) => ''\n\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return emptyFormatter\n }\n\n return (timestamp, short) => {\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, getOptions(timestamp, short))\n\n return intlFormatter.format(timestampToDate(timestamp))\n } catch (e) {\n return ''\n }\n }\n}\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n getSlot(this),\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","// Styles\nimport './VCarousel.sass'\n\n// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport VProgressLinear from '../VProgressLinear'\n\n// Mixins\n// TODO: Move this into core components v2.0\nimport ButtonGroup from '../../mixins/button-group'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\nexport default VWindow.extend({\n name: 'v-carousel',\n\n props: {\n continuous: {\n type: Boolean,\n default: true,\n },\n cycle: Boolean,\n delimiterIcon: {\n type: String,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => value > 0,\n },\n mandatory: {\n type: Boolean,\n default: true,\n },\n progress: Boolean,\n progressColor: String,\n showArrows: {\n type: Boolean,\n default: true,\n },\n verticalDelimiters: {\n type: String as PropType<'' | 'left' | 'right'>,\n default: undefined,\n },\n },\n\n // pass down the parent's theme\n provide (): object {\n return {\n parentTheme: this.theme,\n }\n },\n\n data () {\n return {\n internalHeight: this.height,\n slideTimeout: undefined as number | undefined,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.options.computed.classes.call(this),\n 'v-carousel': true,\n 'v-carousel--hide-delimiter-background': this.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': this.isVertical,\n }\n },\n isDark (): boolean {\n return this.dark || !this.light\n },\n isVertical (): boolean {\n return this.verticalDelimiters != null\n },\n },\n\n watch: {\n internalValue: 'restartTimeout',\n interval: 'restartTimeout',\n height (val, oldVal) {\n if (val === oldVal || !val) return\n this.internalHeight = val\n },\n cycle (val) {\n if (val) {\n this.restartTimeout()\n } else {\n clearTimeout(this.slideTimeout)\n this.slideTimeout = undefined\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('hide-controls')) {\n breaking('hide-controls', ':show-arrows=\"false\"', this)\n }\n },\n\n mounted () {\n this.startTimeout()\n },\n\n methods: {\n genControlIcons () {\n if (this.isVertical) return null\n\n return VWindow.options.methods.genControlIcons.call(this)\n },\n genDelimiters (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-carousel__controls',\n style: {\n left: this.verticalDelimiters === 'left' && this.isVertical ? 0 : 'auto',\n right: this.verticalDelimiters === 'right' ? 0 : 'auto',\n },\n }, [this.genItems()])\n },\n genItems (): VNode {\n const length = this.items.length\n const children = []\n\n for (let i = 0; i < length; i++) {\n const child = this.$createElement(VBtn, {\n staticClass: 'v-carousel__controls__item',\n attrs: {\n 'aria-label': this.$vuetify.lang.t('$vuetify.carousel.ariaLabel.delimiter', i + 1, length),\n },\n props: {\n icon: true,\n small: true,\n value: this.getValue(this.items[i], i),\n },\n key: i,\n }, [\n this.$createElement(VIcon, {\n props: { size: 18 },\n }, this.delimiterIcon),\n ])\n\n children.push(child)\n }\n\n return this.$createElement(ButtonGroup, {\n props: {\n value: this.internalValue,\n mandatory: this.mandatory,\n },\n on: {\n change: (val: unknown) => {\n this.internalValue = val\n },\n },\n }, children)\n },\n genProgress () {\n return this.$createElement(VProgressLinear, {\n staticClass: 'v-carousel__progress',\n props: {\n color: this.progressColor,\n value: (this.internalIndex + 1) / this.items.length * 100,\n },\n })\n },\n restartTimeout () {\n this.slideTimeout && clearTimeout(this.slideTimeout)\n this.slideTimeout = undefined\n\n window.requestAnimationFrame(this.startTimeout)\n },\n startTimeout () {\n if (!this.cycle) return\n\n this.slideTimeout = window.setTimeout(this.next, +this.interval > 0 ? +this.interval : 6000)\n },\n },\n\n render (h): VNode {\n const render = VWindow.options.render.call(this, h)\n\n render.data!.style = `height: ${convertToUnit(this.height)};`\n\n /* istanbul ignore else */\n if (!this.hideDelimiters) {\n render.children!.push(this.genDelimiters())\n }\n\n /* istanbul ignore else */\n if (this.progress || this.progressColor) {\n render.children!.push(this.genProgress())\n }\n\n return render\n },\n})\n","// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n// Components\nimport { VImg } from '../VImg'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\nimport Routable from '../../mixins/routable'\n\n// Types\nconst baseMixins = mixins(\n VWindowItem,\n Routable\n)\n\ninterface options extends ExtractVue {\n parentTheme: {\n isDark: boolean\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-carousel-item',\n\n inject: {\n parentTheme: {\n default: {\n isDark: false,\n },\n },\n },\n\n // pass down the parent's theme\n provide (): object {\n return {\n theme: this.parentTheme,\n }\n },\n\n inheritAttrs: false,\n\n methods: {\n genDefaultSlot () {\n return [\n this.$createElement(VImg, {\n staticClass: 'v-carousel__item',\n props: {\n ...this.$attrs,\n height: this.windowGroup.internalHeight,\n },\n on: this.$listeners,\n scopedSlots: {\n placeholder: this.$scopedSlots.placeholder,\n },\n }, getSlot(this)),\n ]\n },\n genWindowItem () {\n const { tag, data } = this.generateRouteLink()\n\n data.staticClass = 'v-window-item'\n data.directives!.push({\n name: 'show',\n value: this.isActive,\n })\n\n return this.$createElement(tag, data, this.genDefaultSlot())\n },\n },\n})\n","import VCarousel from './VCarousel'\nimport VCarouselItem from './VCarouselItem'\n\nexport { VCarousel, VCarouselItem }\n\nexport default {\n $_vuetify_subcomponents: {\n VCarousel,\n VCarouselItem,\n },\n}\n","// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-checkbox',\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.isDisabled && !this.inputIndeterminate) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n isActive () {\n if (!this.indeterminate) return\n this.inputIndeterminate = false\n },\n },\n\n methods: {\n genCheckbox () {\n const { title, ...checkboxAttrs } = this.attrs$\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.dense,\n dark: this.dark,\n light: this.light,\n },\n }), this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': this.inputIndeterminate\n ? 'mixed'\n : this.isActive.toString(),\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\n },\n },\n})\n","import './VSimpleCheckbox.sass'\n\nimport Ripple from '../../directives/ripple'\n\nimport Vue, { VNode, VNodeDirective } from 'vue'\nimport { VIcon } from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-simple-checkbox',\n\n functional: true,\n\n directives: {\n Ripple,\n },\n\n props: {\n ...Colorable.options.props,\n ...Themeable.options.props,\n disabled: Boolean,\n ripple: {\n type: Boolean,\n default: true,\n },\n value: Boolean,\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n },\n\n render (h, { props, data, listeners }): VNode {\n const children = []\n let icon = props.offIcon\n if (props.indeterminate) icon = props.indeterminateIcon\n else if (props.value) icon = props.onIcon\n\n children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {\n props: {\n disabled: props.disabled,\n dark: props.dark,\n light: props.light,\n },\n }), icon))\n\n if (props.ripple && !props.disabled) {\n const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {\n staticClass: 'v-input--selection-controls__ripple',\n directives: [{\n def: Ripple,\n name: 'ripple',\n value: { center: true },\n }] as VNodeDirective[],\n }))\n\n children.push(ripple)\n }\n\n return h('div',\n mergeData(data, {\n class: {\n 'v-simple-checkbox': true,\n 'v-simple-checkbox--disabled': props.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (data.on && data.on.input && !props.disabled) {\n wrapInArray(data.on.input).forEach(f => f(!props.value))\n }\n },\n },\n }), [\n h('div', { staticClass: 'v-input--selection-controls__input' }, children),\n ])\n },\n})\n","import VCheckbox from './VCheckbox'\nimport VSimpleCheckbox from './VSimpleCheckbox'\n\nexport { VCheckbox, VSimpleCheckbox }\nexport default {\n $_vuetify_subcomponents: {\n VCheckbox,\n VSimpleCheckbox,\n },\n}\n","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n getSlot(this),\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\n","// Styles\nimport './VChipGroup.sass'\n\n// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n BaseSlideGroup,\n Colorable\n).extend({\n name: 'v-chip-group',\n\n provide () {\n return {\n chipGroup: this,\n }\n },\n\n props: {\n column: Boolean,\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-chip-group': true,\n 'v-chip-group--column': this.column,\n }\n },\n },\n\n watch: {\n column (val) {\n if (val) this.scrollOffset = 0\n\n this.$nextTick(this.onResize)\n },\n },\n\n methods: {\n genData () {\n return this.setTextColor(this.color, {\n ...BaseSlideGroup.options.methods.genData.call(this),\n })\n },\n },\n})\n","import VChipGroup from './VChipGroup'\n\nexport { VChipGroup }\nexport default VChipGroup\n","// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\nimport VColorPickerPreview from './VColorPickerPreview'\nimport VColorPickerCanvas from './VColorPickerCanvas'\nimport VColorPickerEdit, { Mode, modes } from './VColorPickerEdit'\nimport VColorPickerSwatches from './VColorPickerSwatches'\n\n// Helpers\nimport { VColorPickerColor, parseColor, fromRGBA, extractColor, hasAlpha } from './util'\nimport mixins from '../../util/mixins'\nimport { deepEqual } from '../../util/helpers'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\nexport default mixins(Elevatable, Themeable).extend({\n name: 'v-color-picker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n flat: Boolean,\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n showSwatches: Boolean,\n swatches: Array as PropType,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n value: {\n type: [Object, String],\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data: () => ({\n internalValue: fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n }),\n\n computed: {\n hideAlpha (): boolean {\n if (!this.value) return false\n\n return !hasAlpha(this.value)\n },\n },\n\n watch: {\n value: {\n handler (color: any) {\n this.updateColor(parseColor(color, this.internalValue))\n },\n immediate: true,\n },\n },\n\n methods: {\n updateColor (color: VColorPickerColor) {\n this.internalValue = color\n const value = extractColor(this.internalValue, this.value)\n\n if (!deepEqual(value, this.value)) {\n this.$emit('input', value)\n this.$emit('update:color', this.internalValue)\n }\n },\n genCanvas (): VNode {\n return this.$createElement(VColorPickerCanvas, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n dotSize: this.dotSize,\n width: this.width,\n height: this.canvasHeight,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n genControls (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__controls',\n }, [\n !this.hideSliders && this.genPreview(),\n !this.hideInputs && this.genEdit(),\n ])\n },\n genEdit (): VNode {\n return this.$createElement(VColorPickerEdit, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n hideModeSwitch: this.hideModeSwitch,\n mode: this.mode,\n },\n on: {\n 'update:color': this.updateColor,\n 'update:mode': (v: Mode) => this.$emit('update:mode', v),\n },\n })\n },\n genPreview (): VNode {\n return this.$createElement(VColorPickerPreview, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n genSwatches (): VNode {\n return this.$createElement(VColorPickerSwatches, {\n props: {\n dark: this.dark,\n light: this.light,\n disabled: this.disabled,\n swatches: this.swatches,\n color: this.internalValue,\n maxHeight: this.swatchesMaxHeight,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n },\n\n render (h): VNode {\n return h(VSheet, {\n staticClass: 'v-color-picker',\n class: {\n 'v-color-picker--flat': this.flat,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n props: {\n maxWidth: this.width,\n },\n }, [\n !this.hideCanvas && this.genCanvas(),\n (!this.hideSliders || !this.hideInputs) && this.genControls(),\n this.showSwatches && this.genSwatches(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerCanvas.sass'\n\n// Helpers\nimport { clamp, convertToUnit } from '../../util/helpers'\nimport { fromHSVA, VColorPickerColor, fromRGBA } from './util'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\n\nexport default Vue.extend({\n name: 'v-color-picker-canvas',\n\n props: {\n color: {\n type: Object as PropType,\n default: () => fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data () {\n return {\n boundingRect: {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n } as ClientRect,\n }\n },\n\n computed: {\n dot (): { x: number, y: number} {\n if (!this.color) return { x: 0, y: 0 }\n\n return {\n x: this.color.hsva.s * parseInt(this.width, 10),\n y: (1 - this.color.hsva.v) * parseInt(this.height, 10),\n }\n },\n },\n\n watch: {\n 'color.hue': 'updateCanvas',\n },\n\n mounted () {\n this.updateCanvas()\n },\n\n methods: {\n emitColor (x: number, y: number) {\n const { left, top, width, height } = this.boundingRect\n\n this.$emit('update:color', fromHSVA({\n h: this.color.hue,\n s: clamp(x - left, 0, width) / width,\n v: 1 - clamp(y - top, 0, height) / height,\n a: this.color.alpha,\n }))\n },\n updateCanvas () {\n if (!this.color) return\n\n const canvas = this.$refs.canvas as HTMLCanvasElement\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${this.color.hue}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n },\n handleClick (e: MouseEvent) {\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseDown (e: MouseEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n\n window.addEventListener('mousemove', this.handleMouseMove)\n window.addEventListener('mouseup', this.handleMouseUp)\n },\n handleMouseMove (e: MouseEvent) {\n if (this.disabled) return\n\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseUp () {\n window.removeEventListener('mousemove', this.handleMouseMove)\n window.removeEventListener('mouseup', this.handleMouseUp)\n },\n genCanvas (): VNode {\n return this.$createElement('canvas', {\n ref: 'canvas',\n attrs: {\n width: this.width,\n height: this.height,\n },\n })\n },\n genDot (): VNode {\n const radius = parseInt(this.dotSize, 10) / 2\n const x = convertToUnit(this.dot.x - radius)\n const y = convertToUnit(this.dot.y - radius)\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__canvas-dot',\n class: {\n 'v-color-picker__canvas-dot--disabled': this.disabled,\n },\n style: {\n width: convertToUnit(this.dotSize),\n height: convertToUnit(this.dotSize),\n transform: `translate(${x}, ${y})`,\n },\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__canvas',\n style: {\n width: convertToUnit(this.width),\n height: convertToUnit(this.height),\n },\n on: {\n click: this.handleClick,\n mousedown: this.handleMouseDown,\n },\n }, [\n this.genCanvas(),\n this.genDot(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Helpers\nimport { parseHex } from '../../util/colorUtils'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { VColorPickerColor, fromRGBA, fromHexa, fromHSLA } from './util'\n\ntype Input = [string, number, string]\n\nexport type Mode = {\n inputs?: Input[]\n from: Function\n}\n\nexport const modes = {\n rgba: {\n inputs: [\n ['r', 255, 'int'],\n ['g', 255, 'int'],\n ['b', 255, 'int'],\n ['a', 1, 'float'],\n ],\n from: fromRGBA,\n },\n hsla: {\n inputs: [\n ['h', 360, 'int'],\n ['s', 1, 'float'],\n ['l', 1, 'float'],\n ['a', 1, 'float'],\n ],\n from: fromHSLA,\n },\n hexa: {\n from: fromHexa,\n },\n} as { [key: string]: Mode }\n\nexport default Vue.extend({\n name: 'v-color-picker-edit',\n\n props: {\n color: Object as PropType,\n disabled: Boolean,\n hideAlpha: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n },\n\n data () {\n return {\n modes,\n internalMode: this.mode,\n }\n },\n\n computed: {\n currentMode (): Mode {\n return this.modes[this.internalMode]\n },\n },\n\n watch: {\n mode (mode) {\n this.internalMode = mode\n },\n },\n\n created () {\n this.internalMode = this.mode\n },\n\n methods: {\n getValue (v: any, type: string) {\n if (type === 'float') return Math.round(v * 100) / 100\n else if (type === 'int') return Math.round(v)\n else return 0\n },\n parseValue (v: string, type: string) {\n if (type === 'float') return parseFloat(v)\n else if (type === 'int') return parseInt(v, 10) || 0\n else return 0\n },\n changeMode () {\n const modes = Object.keys(this.modes)\n const index = modes.indexOf(this.internalMode)\n const newMode = modes[(index + 1) % modes.length]\n this.internalMode = newMode\n this.$emit('update:mode', newMode)\n },\n genInput (target: string, attrs: any, value: any, on: any): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__input',\n }, [\n this.$createElement('input', {\n key: target,\n attrs,\n domProps: {\n value,\n },\n on,\n }),\n this.$createElement('span', target.toUpperCase()),\n ])\n },\n genInputs (): VNode[] | VNode {\n if (this.internalMode === 'hexa') {\n const hex = this.color.hexa\n const value = this.hideAlpha && hex.endsWith('FF') ? hex.substr(0, 7) : hex\n return this.genInput(\n 'hex',\n {\n maxlength: this.hideAlpha ? 7 : 9,\n disabled: this.disabled,\n },\n value,\n {\n change: (e: Event) => {\n const el = e.target as HTMLInputElement\n this.$emit('update:color', this.currentMode.from(parseHex(el.value)))\n },\n }\n )\n } else {\n const inputs = this.hideAlpha ? this.currentMode.inputs!.slice(0, -1) : this.currentMode.inputs!\n return inputs.map(([target, max, type]) => {\n const value = this.color[this.internalMode as keyof VColorPickerColor] as any\n return this.genInput(\n target,\n {\n type: 'number',\n min: 0,\n max,\n step: type === 'float' ? '0.01' : type === 'int' ? '1' : undefined,\n disabled: this.disabled,\n },\n this.getValue(value[target], type),\n {\n input: (e: Event) => {\n const el = e.target as HTMLInputElement\n const newVal = this.parseValue(el.value || '0', type)\n\n this.$emit('update:color', this.currentMode.from(\n Object.assign({}, value, { [target]: newVal }),\n this.color.alpha\n ))\n },\n }\n )\n })\n }\n },\n genSwitch (): VNode {\n return this.$createElement(VBtn, {\n props: {\n small: true,\n icon: true,\n disabled: this.disabled,\n },\n on: {\n click: this.changeMode,\n },\n }, [\n this.$createElement(VIcon, '$unfold'),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__edit',\n }, [\n this.genInputs(),\n !this.hideModeSwitch && this.genSwitch(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport VSlider from '../VSlider/VSlider'\n\n// Utilities\nimport { RGBtoCSS, RGBAtoCSS } from '../../util/colorUtils'\n\n// Types\nimport Vue, { VNode, VNodeData, PropType } from 'vue'\nimport { VColorPickerColor, fromHSVA } from './util'\n\nexport default Vue.extend({\n name: 'v-color-picker-preview',\n\n props: {\n color: Object as PropType,\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n methods: {\n genAlpha (): VNode {\n return this.genTrack({\n staticClass: 'v-color-picker__alpha',\n props: {\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.alpha,\n step: 0,\n min: 0,\n max: 1,\n },\n style: {\n backgroundImage: this.disabled\n ? undefined\n : `linear-gradient(to ${this.$vuetify.rtl ? 'left' : 'right'}, transparent, ${RGBtoCSS(this.color.rgba)})`,\n },\n on: {\n input: (val: number) => this.color.alpha !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, a: val })),\n },\n })\n },\n genSliders (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__sliders',\n }, [\n this.genHue(),\n !this.hideAlpha && this.genAlpha(),\n ])\n },\n genDot (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__dot',\n }, [\n this.$createElement('div', {\n style: {\n background: RGBAtoCSS(this.color.rgba),\n },\n }),\n ])\n },\n genHue (): VNode {\n return this.genTrack({\n staticClass: 'v-color-picker__hue',\n props: {\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.hue,\n step: 0,\n min: 0,\n max: 360,\n },\n on: {\n input: (val: number) => this.color.hue !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, h: val })),\n },\n })\n },\n genTrack (options: VNodeData): VNode {\n return this.$createElement(VSlider, {\n class: 'v-color-picker__track',\n ...options,\n props: {\n disabled: this.disabled,\n ...options.props,\n },\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__preview',\n class: {\n 'v-color-picker__preview--hide-alpha': this.hideAlpha,\n },\n }, [\n this.genDot(),\n this.genSliders(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Helpers\nimport colors from '../../util/colors'\nimport { VColorPickerColor, fromHex, parseColor } from './util'\nimport { convertToUnit, deepEqual } from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { contrastRatio } from '../../util/colorUtils'\n\nfunction parseDefaultColors (colors: Record>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nconst white = fromHex('#FFFFFF').rgba\nconst black = fromHex('#000000').rgba\n\nexport default mixins(Themeable).extend({\n name: 'v-color-picker-swatches',\n\n props: {\n swatches: {\n type: Array as PropType,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType,\n maxWidth: [Number, String],\n maxHeight: [Number, String],\n },\n\n methods: {\n genColor (color: string) {\n const content = this.$createElement('div', {\n style: {\n background: color,\n },\n }, [\n deepEqual(this.color, parseColor(color, null)) && this.$createElement(VIcon, {\n props: {\n small: true,\n dark: contrastRatio(this.color.rgba, white) > 2 && this.color.alpha > 0.5,\n light: contrastRatio(this.color.rgba, black) > 2 && this.color.alpha > 0.5,\n },\n }, '$success'),\n ])\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__color',\n on: {\n // TODO: Less hacky way of catching transparent\n click: () => this.disabled || this.$emit('update:color', fromHex(color === 'transparent' ? '#00000000' : color)),\n },\n }, [content])\n },\n genSwatches () {\n return this.swatches.map(swatch => {\n const colors = swatch.map(this.genColor)\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__swatch',\n }, colors)\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__swatches',\n style: {\n maxWidth: convertToUnit(this.maxWidth),\n maxHeight: convertToUnit(this.maxHeight),\n },\n }, [\n this.$createElement('div', this.genSwatches()),\n ])\n },\n})\n","import VColorPicker from './VColorPicker'\nimport VColorPickerSwatches from './VColorPickerSwatches'\nimport VColorPickerCanvas from './VColorPickerCanvas'\n\nexport { VColorPicker, VColorPickerSwatches, VColorPickerCanvas }\nexport default VColorPicker\n","// Utilities\nimport {\n HSVA,\n HSVAtoRGBA,\n HSVAtoHex,\n RGBA,\n Hex,\n RGBAtoHSVA,\n HexToHSVA,\n HSLA,\n HSVAtoHSLA,\n RGBAtoHex,\n HSLAtoHSVA,\n parseHex,\n Hexa,\n} from '../../../util/colorUtils'\n\nexport interface VColorPickerColor {\n alpha: number\n hex: Hex\n hexa: Hexa\n hsla: HSLA\n hsva: HSVA\n hue: number\n rgba: RGBA\n}\n\nexport function fromHSVA (hsva: HSVA): VColorPickerColor {\n hsva = { ...hsva }\n const hexa = HSVAtoHex(hsva)\n const hsla = HSVAtoHSLA(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHSLA (hsla: HSLA): VColorPickerColor {\n const hsva = HSLAtoHSVA(hsla)\n const hexa = HSVAtoHex(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromRGBA (rgba: RGBA): VColorPickerColor {\n const hsva = RGBAtoHSVA(rgba)\n const hexa = RGBAtoHex(rgba)\n const hsla = HSVAtoHSLA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHexa (hexa: Hexa): VColorPickerColor {\n const hsva = HexToHSVA(hexa)\n const hsla = HSVAtoHSLA(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHex (hex: Hex): VColorPickerColor {\n return fromHexa(parseHex(hex))\n}\n\nfunction has (obj: object, key: string[]) {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\nexport function parseColor (color: any, oldColor: VColorPickerColor | null) {\n if (!color) return fromRGBA({ r: 255, g: 0, b: 0, a: 1 })\n\n if (typeof color === 'string') {\n if (color === 'transparent') return fromHexa('#00000000')\n\n const hex = parseHex(color)\n\n if (oldColor && hex === oldColor.hexa) return oldColor\n else return fromHexa(hex)\n }\n\n if (typeof color === 'object') {\n if (color.hasOwnProperty('alpha')) return color\n\n const a = color.hasOwnProperty('a') ? parseFloat(color.a) : 1\n\n if (has(color, ['r', 'g', 'b'])) {\n if (oldColor && color === oldColor.rgba) return oldColor\n else return fromRGBA({ ...color, a })\n } else if (has(color, ['h', 's', 'l'])) {\n if (oldColor && color === oldColor.hsla) return oldColor\n else return fromHSLA({ ...color, a })\n } else if (has(color, ['h', 's', 'v'])) {\n if (oldColor && color === oldColor.hsva) return oldColor\n else return fromHSVA({ ...color, a })\n }\n }\n\n return fromRGBA({ r: 255, g: 0, b: 0, a: 1 })\n}\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: VColorPickerColor, input: any) {\n if (input == null) return color\n\n if (typeof input === 'string') {\n return input.length === 7 ? color.hex : color.hexa\n }\n\n if (typeof input === 'object') {\n const shouldStrip = typeof input.a === 'number' && input.a === 0 ? !!input.a : !input.a\n if (has(input, ['r', 'g', 'b'])) return stripAlpha(color.rgba, shouldStrip)\n else if (has(input, ['h', 's', 'l'])) return stripAlpha(color.hsla, shouldStrip)\n else if (has(input, ['h', 's', 'v'])) return stripAlpha(color.hsva, shouldStrip)\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n","// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onTabDown (e: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n this.$emit('paste', event)\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\n },\n})\n","import VCombobox from './VCombobox'\n\nexport { VCombobox }\nexport default VCombobox\n","// Types\nimport { VNode } from 'vue'\n\n// Extensions\nimport VMain from '../VMain/VMain'\nimport { deprecate } from '../../util/console'\n\n/* @vue/component */\nexport default VMain.extend({\n name: 'v-main',\n\n created () {\n deprecate('v-content', 'v-main', this)\n },\n\n render (h): VNode {\n // Add the legacy class names\n const node = VMain.options.render.call(this, h)\n\n node.data!.staticClass += ' v-content'\n node.children![0]!.data!.staticClass += ' v-content__wrap'\n\n return h(node.tag, node.data, node.children)\n },\n})\n","import VContent from './VContent'\n\nexport { VContent }\n\nexport default VContent\n","// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-counter',\n\n functional: true,\n\n props: {\n value: {\n type: [Number, String],\n default: '',\n },\n max: [Number, String],\n },\n\n render (h, ctx): VNode {\n const { props } = ctx\n const max = parseInt(props.max, 10)\n const value = parseInt(props.value, 10)\n const content = max ? `${value} / ${max}` : String(props.value)\n const isGreater = max && (value > max)\n\n return h('div', {\n staticClass: 'v-counter',\n class: {\n 'error--text': isGreater,\n ...functionalThemeClasses(ctx),\n },\n }, content)\n },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems, fillArray } from '../../util/helpers'\nimport Vue, { VNode } from 'vue'\n\n// Types\nimport {\n DataOptions,\n DataPagination,\n DataScopeProps,\n DataSortFunction,\n DataGroupFunction,\n DataSearchFunction,\n ItemGroup,\n} from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Vue.extend({\n name: 'v-data',\n\n inheritAttrs: false,\n\n props: {\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n sortBy: {\n type: [String, Array],\n } as PropValidator,\n sortDesc: {\n type: [Boolean, Array],\n } as PropValidator,\n customSort: {\n type: Function,\n default: sortItems,\n } as PropValidator,\n mustSort: Boolean,\n multiSort: Boolean,\n page: {\n type: Number,\n default: 1,\n },\n itemsPerPage: {\n type: Number,\n default: 10,\n },\n groupBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n groupDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator,\n customGroup: {\n type: Function,\n default: groupItems,\n } as PropValidator,\n locale: {\n type: String,\n default: 'en-US',\n },\n disableSort: Boolean,\n disablePagination: Boolean,\n disableFiltering: Boolean,\n search: String,\n customFilter: {\n type: Function,\n default: searchItems,\n } as PropValidator,\n serverItemsLength: {\n type: Number,\n default: -1,\n },\n },\n\n data () {\n let internalOptions: DataOptions = {\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n sortBy: wrapInArray(this.sortBy),\n sortDesc: wrapInArray(this.sortDesc),\n groupBy: wrapInArray(this.groupBy),\n groupDesc: wrapInArray(this.groupDesc),\n mustSort: this.mustSort,\n multiSort: this.multiSort,\n }\n\n if (this.options) {\n internalOptions = Object.assign(internalOptions, this.options)\n }\n\n const { sortBy, sortDesc, groupBy, groupDesc } = internalOptions\n const sortDiff = sortBy.length - sortDesc.length\n const groupDiff = groupBy.length - groupDesc.length\n\n if (sortDiff > 0) {\n internalOptions.sortDesc.push(...fillArray(sortDiff, false))\n }\n\n if (groupDiff > 0) {\n internalOptions.groupDesc.push(...fillArray(groupDiff, false))\n }\n\n return {\n internalOptions,\n }\n },\n\n computed: {\n itemsLength (): number {\n return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length\n },\n pageCount (): number {\n return this.internalOptions.itemsPerPage <= 0\n ? 1\n : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage)\n },\n pageStart (): number {\n if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0\n\n return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage\n },\n pageStop (): number {\n if (this.internalOptions.itemsPerPage === -1) return this.itemsLength\n if (!this.items.length) return 0\n\n return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage)\n },\n isGrouped (): boolean {\n return !!this.internalOptions.groupBy.length\n },\n pagination (): DataPagination {\n return {\n page: this.internalOptions.page,\n itemsPerPage: this.internalOptions.itemsPerPage,\n pageStart: this.pageStart,\n pageStop: this.pageStop,\n pageCount: this.pageCount,\n itemsLength: this.itemsLength,\n }\n },\n filteredItems (): any[] {\n let items = this.items.slice()\n\n if (!this.disableFiltering && this.serverItemsLength <= 0) {\n items = this.customFilter(items, this.search)\n }\n\n return items\n },\n computedItems (): any[] {\n let items = this.filteredItems.slice()\n\n if ((!this.disableSort || this.internalOptions.groupBy.length) && this.serverItemsLength <= 0) {\n items = this.sortItems(items)\n }\n\n if (!this.disablePagination && this.serverItemsLength <= 0) {\n items = this.paginateItems(items)\n }\n\n return items\n },\n groupedItems (): ItemGroup[] | null {\n return this.isGrouped ? this.groupItems(this.computedItems) : null\n },\n scopedProps (): DataScopeProps {\n return {\n sort: this.sort,\n sortArray: this.sortArray,\n group: this.group,\n items: this.computedItems,\n options: this.internalOptions,\n updateOptions: this.updateOptions,\n pagination: this.pagination,\n groupedItems: this.groupedItems,\n originalItemsLength: this.items.length,\n }\n },\n computedOptions (): DataOptions {\n return { ...this.options } as DataOptions\n },\n },\n\n watch: {\n computedOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n\n this.updateOptions(options)\n },\n deep: true,\n immediate: true,\n },\n internalOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n this.$emit('update:options', options)\n },\n deep: true,\n immediate: true,\n },\n page (page: number) {\n this.updateOptions({ page })\n },\n 'internalOptions.page' (page: number) {\n this.$emit('update:page', page)\n },\n itemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage })\n },\n 'internalOptions.itemsPerPage' (itemsPerPage: number) {\n this.$emit('update:items-per-page', itemsPerPage)\n },\n sortBy (sortBy: string | string[]) {\n this.updateOptions({ sortBy: wrapInArray(sortBy) })\n },\n 'internalOptions.sortBy' (sortBy: string[], old: string[]) {\n !deepEqual(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0])\n },\n sortDesc (sortDesc: boolean | boolean[]) {\n this.updateOptions({ sortDesc: wrapInArray(sortDesc) })\n },\n 'internalOptions.sortDesc' (sortDesc: boolean[], old: boolean[]) {\n !deepEqual(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0])\n },\n groupBy (groupBy: string | string[]) {\n this.updateOptions({ groupBy: wrapInArray(groupBy) })\n },\n 'internalOptions.groupBy' (groupBy: string[], old: string[]) {\n !deepEqual(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0])\n },\n groupDesc (groupDesc: boolean | boolean[]) {\n this.updateOptions({ groupDesc: wrapInArray(groupDesc) })\n },\n 'internalOptions.groupDesc' (groupDesc: boolean[], old: boolean[]) {\n !deepEqual(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0])\n },\n multiSort (multiSort: boolean) {\n this.updateOptions({ multiSort })\n },\n 'internalOptions.multiSort' (multiSort: boolean) {\n this.$emit('update:multi-sort', multiSort)\n },\n mustSort (mustSort: boolean) {\n this.updateOptions({ mustSort })\n },\n 'internalOptions.mustSort' (mustSort: boolean) {\n this.$emit('update:must-sort', mustSort)\n },\n pageCount: {\n handler (pageCount: number) {\n this.$emit('page-count', pageCount)\n },\n immediate: true,\n },\n computedItems: {\n handler (computedItems: any[]) {\n this.$emit('current-items', computedItems)\n },\n immediate: true,\n },\n pagination: {\n handler (pagination: DataPagination, old: DataPagination) {\n if (deepEqual(pagination, old)) return\n this.$emit('pagination', this.pagination)\n },\n immediate: true,\n },\n },\n\n methods: {\n toggle (key: string, oldBy: string[], oldDesc: boolean[], page: number, mustSort: boolean, multiSort: boolean) {\n let by = oldBy.slice()\n let desc = oldDesc.slice()\n const byIndex = by.findIndex((k: string) => k === key)\n\n if (byIndex < 0) {\n if (!multiSort) {\n by = []\n desc = []\n }\n\n by.push(key)\n desc.push(false)\n } else if (byIndex >= 0 && !desc[byIndex]) {\n desc[byIndex] = true\n } else if (!mustSort) {\n by.splice(byIndex, 1)\n desc.splice(byIndex, 1)\n } else {\n desc[byIndex] = false\n }\n\n // Reset page to 1 if sortBy or sortDesc have changed\n if (!deepEqual(by, oldBy) || !deepEqual(desc, oldDesc)) {\n page = 1\n }\n\n return { by, desc, page }\n },\n group (key: string): void {\n const { by: groupBy, desc: groupDesc, page } = this.toggle(\n key,\n this.internalOptions.groupBy,\n this.internalOptions.groupDesc,\n this.internalOptions.page,\n true,\n false\n )\n this.updateOptions({ groupBy, groupDesc, page })\n },\n sort (key: string | string[]): void {\n if (Array.isArray(key)) return this.sortArray(key)\n\n const { by: sortBy, desc: sortDesc, page } = this.toggle(\n key,\n this.internalOptions.sortBy,\n this.internalOptions.sortDesc,\n this.internalOptions.page,\n this.internalOptions.mustSort,\n this.internalOptions.multiSort\n )\n this.updateOptions({ sortBy, sortDesc, page })\n },\n sortArray (sortBy: string[]) {\n const sortDesc = sortBy.map(s => {\n const i = this.internalOptions.sortBy.findIndex((k: string) => k === s)\n return i > -1 ? this.internalOptions.sortDesc[i] : false\n })\n\n this.updateOptions({ sortBy, sortDesc })\n },\n updateOptions (options: any) {\n this.internalOptions = {\n ...this.internalOptions,\n ...options,\n page: this.serverItemsLength < 0\n ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount))\n : options.page || this.internalOptions.page,\n }\n },\n sortItems (items: any[]): any[] {\n let sortBy: string[] = []\n let sortDesc: boolean[] = []\n\n if (!this.disableSort) {\n sortBy = this.internalOptions.sortBy\n sortDesc = this.internalOptions.sortDesc\n }\n\n if (this.internalOptions.groupBy.length) {\n sortBy = [...this.internalOptions.groupBy, ...sortBy]\n sortDesc = [...this.internalOptions.groupDesc, ...sortDesc]\n }\n\n return this.customSort(items, sortBy, sortDesc, this.locale)\n },\n groupItems (items: any[]): ItemGroup[] {\n return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc)\n },\n paginateItems (items: any[]): any[] {\n // Make sure we don't try to display non-existant page if items suddenly change\n // TODO: Could possibly move this to pageStart/pageStop?\n if (this.serverItemsLength === -1 && items.length <= this.pageStart) {\n this.internalOptions.page = Math.max(1, Math.ceil(items.length / this.internalOptions.itemsPerPage)) || 1 // Prevent NaN\n }\n\n return items.slice(this.pageStart, this.pageStop)\n },\n },\n\n render (): VNode {\n return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps) as any\n },\n})\n","import VData from './VData'\n\nexport { VData }\n\nexport default VData\n","import './VDataFooter.sass'\n\n// Components\nimport VSelect from '../VSelect/VSelect'\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { DataPagination, DataOptions, DataItemsPerPageOption } from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\nimport { getSlot } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-data-footer',\n\n props: {\n options: {\n type: Object as PropType,\n required: true,\n },\n pagination: {\n type: Object as PropType,\n required: true,\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => ([5, 10, 15, -1]),\n } as PropValidator,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n itemsPerPageAllText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageAll',\n },\n showFirstLastPage: Boolean,\n showCurrentPage: Boolean,\n disablePagination: Boolean,\n disableItemsPerPage: Boolean,\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n },\n\n computed: {\n disableNextPageIcon (): boolean {\n return this.options.itemsPerPage <= 0 ||\n this.options.page * this.options.itemsPerPage >= this.pagination.itemsLength ||\n this.pagination.pageStop < 0\n },\n computedDataItemsPerPageOptions (): any[] {\n return this.itemsPerPageOptions.map(option => {\n if (typeof option === 'object') return option\n else return this.genDataItemsPerPageOption(option)\n })\n },\n },\n\n methods: {\n updateOptions (obj: object) {\n this.$emit('update:options', Object.assign({}, this.options, obj))\n },\n onFirstPage () {\n this.updateOptions({ page: 1 })\n },\n onPreviousPage () {\n this.updateOptions({ page: this.options.page - 1 })\n },\n onNextPage () {\n this.updateOptions({ page: this.options.page + 1 })\n },\n onLastPage () {\n this.updateOptions({ page: this.pagination.pageCount })\n },\n onChangeItemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage, page: 1 })\n },\n genDataItemsPerPageOption (option: number) {\n return {\n text: option === -1 ? this.$vuetify.lang.t(this.itemsPerPageAllText) : String(option),\n value: option,\n }\n },\n genItemsPerPageSelect () {\n let value = this.options.itemsPerPage\n const computedIPPO = this.computedDataItemsPerPageOptions\n\n if (computedIPPO.length <= 1) return null\n\n if (!computedIPPO.find(ippo => ippo.value === value)) value = computedIPPO[0]\n\n return this.$createElement('div', {\n staticClass: 'v-data-footer__select',\n }, [\n this.$vuetify.lang.t(this.itemsPerPageText),\n this.$createElement(VSelect, {\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.itemsPerPageText),\n },\n props: {\n disabled: this.disableItemsPerPage,\n items: computedIPPO,\n value,\n hideDetails: true,\n auto: true,\n minWidth: '75px',\n },\n on: {\n input: this.onChangeItemsPerPage,\n },\n }),\n ])\n },\n genPaginationInfo () {\n let children: VNodeChildrenArrayContents = ['–']\n const itemsLength: number = this.pagination.itemsLength\n let pageStart: number = this.pagination.pageStart\n let pageStop: number = this.pagination.pageStop\n\n if (this.pagination.itemsLength && this.pagination.itemsPerPage) {\n pageStart = this.pagination.pageStart + 1\n pageStop = itemsLength < this.pagination.pageStop || this.pagination.pageStop < 0\n ? itemsLength\n : this.pagination.pageStop\n\n children = this.$scopedSlots['page-text']\n ? [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n : [this.$vuetify.lang.t(this.pageText, pageStart, pageStop, itemsLength)]\n } else if (this.$scopedSlots['page-text']) {\n children = [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n }\n\n return this.$createElement('div', {\n class: 'v-data-footer__pagination',\n }, children)\n },\n genIcon (click: Function, disabled: boolean, label: string, icon: string): VNode {\n return this.$createElement(VBtn, {\n props: {\n disabled: disabled || this.disablePagination,\n icon: true,\n text: true,\n // dark: this.dark, // TODO: add mixin\n // light: this.light // TODO: add mixin\n },\n on: {\n click,\n },\n attrs: {\n 'aria-label': label, // TODO: Localization\n },\n }, [this.$createElement(VIcon, icon)])\n },\n genIcons () {\n const before: VNodeChildrenArrayContents = []\n const after: VNodeChildrenArrayContents = []\n\n before.push(this.genIcon(\n this.onPreviousPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.prevPage'),\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon\n ))\n\n after.push(this.genIcon(\n this.onNextPage,\n this.disableNextPageIcon,\n this.$vuetify.lang.t('$vuetify.dataFooter.nextPage'),\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon\n ))\n\n if (this.showFirstLastPage) {\n before.unshift(this.genIcon(\n this.onFirstPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.firstPage'),\n this.$vuetify.rtl ? this.lastIcon : this.firstIcon\n ))\n\n after.push(this.genIcon(\n this.onLastPage,\n this.options.page >= this.pagination.pageCount || this.options.itemsPerPage === -1,\n this.$vuetify.lang.t('$vuetify.dataFooter.lastPage'),\n this.$vuetify.rtl ? this.firstIcon : this.lastIcon\n ))\n }\n\n return [\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-before',\n }, before),\n this.showCurrentPage && this.$createElement('span', [this.options.page.toString()]),\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-after',\n }, after),\n ]\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-data-footer',\n }, [\n getSlot(this, 'prepend'),\n this.genItemsPerPageSelect(),\n this.genPaginationInfo(),\n this.genIcons(),\n ])\n },\n})\n","// Components\nimport { VData } from '../VData'\nimport VDataFooter from './VDataFooter'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, camelizeObjectKeys, keyCodes } from '../../util/helpers'\nimport { breaking, removed } from '../../util/console'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { DataItemProps, DataScopeProps } from 'vuetify/types'\n\n/* @vue/component */\nexport default mixins(\n Mobile,\n Themeable\n).extend({\n name: 'v-data-iterator',\n\n props: {\n ...VData.options.props, // TODO: filter out props not used\n itemKey: {\n type: String,\n default: 'id',\n },\n value: {\n type: Array,\n default: () => [],\n } as PropValidator,\n singleSelect: Boolean,\n expanded: {\n type: Array,\n default: () => [],\n } as PropValidator,\n mobileBreakpoint: {\n ...Mobile.options.props.mobileBreakpoint,\n default: 600,\n },\n singleExpand: Boolean,\n loading: [Boolean, String],\n noResultsText: {\n type: String,\n default: '$vuetify.dataIterator.noResultsText',\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideDefaultFooter: Boolean,\n footerProps: Object,\n selectableKey: {\n type: String,\n default: 'isSelectable',\n },\n },\n\n data: () => ({\n selection: {} as Record,\n expansion: {} as Record,\n internalCurrentItems: [] as any[],\n shiftKeyDown: false,\n lastEntry: -1,\n }),\n\n computed: {\n everyItem (): boolean {\n return !!this.selectableItems.length && this.selectableItems.every((i: any) => this.isSelected(i))\n },\n someItems (): boolean {\n return this.selectableItems.some((i: any) => this.isSelected(i))\n },\n sanitizedFooterProps (): Record {\n return camelizeObjectKeys(this.footerProps)\n },\n selectableItems (): any[] {\n return this.internalCurrentItems.filter(item => this.isSelectable(item))\n },\n },\n\n watch: {\n value: {\n handler (value: any[]) {\n this.selection = value.reduce((selection, item) => {\n selection[getObjectValueByPath(item, this.itemKey)] = item\n return selection\n }, {})\n },\n immediate: true,\n },\n selection (value: Record, old: Record) {\n if (deepEqual(Object.keys(value), Object.keys(old))) return\n\n this.$emit('input', Object.values(value))\n },\n expanded: {\n handler (value: any[]) {\n this.expansion = value.reduce((expansion, item) => {\n expansion[getObjectValueByPath(item, this.itemKey)] = true\n return expansion\n }, {})\n },\n immediate: true,\n },\n expansion (value: Record, old: Record) {\n if (deepEqual(value, old)) return\n const keys = Object.keys(value).filter(k => value[k])\n const expanded = !keys.length ? [] : this.items.filter(i => keys.includes(String(getObjectValueByPath(i, this.itemKey))))\n this.$emit('update:expanded', expanded)\n },\n },\n\n created () {\n const breakingProps = [\n ['disable-initial-sort', 'sort-by'],\n ['filter', 'custom-filter'],\n ['pagination', 'options'],\n ['total-items', 'server-items-length'],\n ['hide-actions', 'hide-default-footer'],\n ['rows-per-page-items', 'footer-props.items-per-page-options'],\n ['rows-per-page-text', 'footer-props.items-per-page-text'],\n ['prev-icon', 'footer-props.prev-icon'],\n ['next-icon', 'footer-props.next-icon'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n const removedProps = [\n 'expand',\n 'content-class',\n 'content-props',\n 'content-tag',\n ]\n\n /* istanbul ignore next */\n removedProps.forEach(prop => {\n if (this.$attrs.hasOwnProperty(prop)) removed(prop)\n })\n },\n\n mounted () {\n window.addEventListener('keydown', this.onKeyDown)\n window.addEventListener('keyup', this.onKeyUp)\n },\n beforeDestroy () {\n window.removeEventListener('keydown', this.onKeyDown)\n window.removeEventListener('keyup', this.onKeyUp)\n },\n\n methods: {\n onKeyDown (e: KeyboardEvent): void {\n this.shiftKeyDown = e.keyCode === keyCodes.shift || e.shiftKey\n },\n onKeyUp (e: KeyboardEvent): void {\n if (e.keyCode === keyCodes.shift || !e.shiftKey) {\n this.shiftKeyDown = false\n }\n },\n toggleSelectAll (value: boolean): void {\n const selection = Object.assign({}, this.selection)\n\n for (let i = 0; i < this.selectableItems.length; i++) {\n const item = this.selectableItems[i]\n\n if (!this.isSelectable(item)) continue\n\n const key = getObjectValueByPath(item, this.itemKey)\n if (value) selection[key] = item\n else delete selection[key]\n }\n\n this.selection = selection\n this.$emit('toggle-select-all', { items: this.internalCurrentItems, value })\n },\n isSelectable (item: any): boolean {\n return getObjectValueByPath(item, this.selectableKey) !== false\n },\n isSelected (item: any): boolean {\n return !!this.selection[getObjectValueByPath(item, this.itemKey)] || false\n },\n select (item: any, value = true, emit = true): void {\n if (!this.isSelectable(item)) return\n\n const selection = this.singleSelect ? {} : Object.assign({}, this.selection)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) selection[key] = item\n else delete selection[key]\n\n const index = this.selectableItems.findIndex(x => getObjectValueByPath(x, this.itemKey) === key)\n if (this.lastEntry === -1) this.lastEntry = index\n else if (this.shiftKeyDown && !this.singleSelect && emit) {\n const lastEntryKey = getObjectValueByPath(this.selectableItems[this.lastEntry], this.itemKey)\n const lastEntryKeySelected = Object.keys(this.selection).includes(String(lastEntryKey))\n this.multipleSelect(lastEntryKeySelected, emit, selection, index)\n }\n this.lastEntry = index\n\n if (this.singleSelect && emit) {\n const keys = Object.keys(this.selection)\n const old = keys.length && getObjectValueByPath(this.selection[keys[0]], this.itemKey)\n old && old !== key && this.$emit('item-selected', { item: this.selection[old], value: false })\n }\n this.selection = selection\n emit && this.$emit('item-selected', { item, value })\n },\n multipleSelect (value = true, emit = true, selection: any, index: number): void {\n const start = index < this.lastEntry ? index : this.lastEntry\n const end = index < this.lastEntry ? this.lastEntry : index\n for (let i = start; i <= end; i++) {\n const currentItem = this.selectableItems[i]\n const key = getObjectValueByPath(currentItem, this.itemKey)\n if (value) selection[key] = currentItem\n else delete selection[key]\n emit && this.$emit('item-selected', { currentItem, value })\n }\n },\n isExpanded (item: any): boolean {\n return this.expansion[getObjectValueByPath(item, this.itemKey)] || false\n },\n expand (item: any, value = true): void {\n const expansion = this.singleExpand ? {} : Object.assign({}, this.expansion)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) expansion[key] = true\n else delete expansion[key]\n\n this.expansion = expansion\n this.$emit('item-expanded', { item, value })\n },\n createItemProps (item: any, index: number): DataItemProps {\n return {\n item,\n index,\n select: (v: boolean) => this.select(item, v),\n isSelected: this.isSelected(item),\n expand: (v: boolean) => this.expand(item, v),\n isExpanded: this.isExpanded(item),\n isMobile: this.isMobile,\n }\n },\n genEmptyWrapper (content: VNodeChildren) {\n return this.$createElement('div', content)\n },\n genEmpty (originalItemsLength: number, filteredItemsLength: number) {\n if (originalItemsLength === 0 && this.loading) {\n const loading = getSlot(this, 'loading') || this.$vuetify.lang.t(this.loadingText)\n return this.genEmptyWrapper(loading)\n } else if (originalItemsLength === 0) {\n const noData = getSlot(this, 'noData') || this.$vuetify.lang.t(this.noDataText)\n return this.genEmptyWrapper(noData)\n } else if (filteredItemsLength === 0) {\n const noResults = getSlot(this, 'noResults') || this.$vuetify.lang.t(this.noResultsText)\n return this.genEmptyWrapper(noResults)\n }\n\n return null\n },\n genItems (props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n if (this.$scopedSlots.default) {\n return this.$scopedSlots.default({\n ...props,\n isSelected: this.isSelected,\n select: this.select,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n expand: this.expand,\n })\n }\n\n if (this.$scopedSlots.item) {\n return props.items.map((item: any, index) => this.$scopedSlots.item!(this.createItemProps(\n item,\n index\n )))\n }\n\n return []\n },\n genFooter (props: DataScopeProps) {\n if (this.hideDefaultFooter) return null\n\n const data = {\n props: {\n ...this.sanitizedFooterProps,\n options: props.options,\n pagination: props.pagination,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n }\n\n const scopedSlots = getPrefixedScopedSlots('footer.', this.$scopedSlots)\n\n return this.$createElement(VDataFooter, {\n scopedSlots,\n ...data,\n })\n },\n genDefaultScopedSlot (props: any) {\n const outerProps = {\n ...props,\n someItems: this.someItems,\n everyItem: this.everyItem,\n toggleSelectAll: this.toggleSelectAll,\n }\n\n return this.$createElement('div', {\n staticClass: 'v-data-iterator',\n }, [\n getSlot(this, 'header', outerProps, true),\n this.genItems(props),\n this.genFooter(props),\n getSlot(this, 'footer', outerProps, true),\n ])\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: this.$props,\n on: {\n 'update:options': (v: any, old: any) => !deepEqual(v, old) && this.$emit('update:options', v),\n 'update:page': (v: any) => this.$emit('update:page', v),\n 'update:items-per-page': (v: any) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: any) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: any) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: any) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: any) => this.$emit('update:group-desc', v),\n pagination: (v: any, old: any) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n","import VDataIterator from './VDataIterator'\nimport VDataFooter from './VDataFooter'\n\nexport { VDataIterator, VDataFooter }\nexport default {\n $_vuetify_subcomponents: {\n VDataIterator,\n VDataFooter,\n },\n}\n","import Vue, { VNode, PropType } from 'vue'\nimport { getObjectValueByPath } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n hideDefaultHeader: Boolean,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns: VNode[] = props.headers.map((header: DataTableHeader) => {\n const classes = {\n 'v-data-table__mobile-row': true,\n }\n\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: true,\n header,\n index: props.index,\n value,\n }))\n } else if (regularSlot) {\n children.push(regularSlot)\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const mobileRowChildren = [\n h('div', {\n staticClass: 'v-data-table__mobile-row__cell',\n }, children),\n ]\n\n if (header.value !== 'dataTableSelect' && !props.hideDefaultHeader) {\n mobileRowChildren.unshift(\n h('div', {\n staticClass: 'v-data-table__mobile-row__header',\n }, [header.text])\n )\n }\n\n return h('td', { class: classes }, mobileRowChildren)\n })\n\n return h('tr', { ...data, staticClass: 'v-data-table__mobile-table-row' }, columns)\n },\n})\n","// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath, wrapInArray } from '../../util/helpers'\n\nfunction needsTd (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n !['td', 'th'].includes(slot![0]?.tag!)\n}\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns = props.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(...wrapInArray(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n })))\n } else if (regularSlot) {\n children.push(...wrapInArray(regularSlot))\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return needsTd(children)\n ? h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n : children\n })\n\n return h('tr', data, columns)\n },\n})\n","import Vue, { VNode } from 'vue'\n\nexport default Vue.extend({\n name: 'row-group',\n\n functional: true,\n\n props: {\n value: {\n type: Boolean,\n default: true,\n },\n headerClass: {\n type: String,\n default: 'v-row-group__header',\n },\n contentClass: String,\n summaryClass: {\n type: String,\n default: 'v-row-group__summary',\n },\n },\n\n render (h, { slots, props }): VNode {\n const computedSlots = slots()\n const children = []\n\n if (computedSlots['column.header']) {\n children.push(h('tr', {\n staticClass: props.headerClass,\n }, computedSlots['column.header']))\n } else if (computedSlots['row.header']) {\n children.push(...computedSlots['row.header'])\n }\n\n if (computedSlots['row.content'] && props.value) children.push(...computedSlots['row.content'])\n\n if (computedSlots['column.summary']) {\n children.push(h('tr', {\n staticClass: props.summaryClass,\n }, computedSlots['column.summary']))\n } else if (computedSlots['row.summary']) {\n children.push(...computedSlots['row.summary'])\n }\n\n return children as any\n },\n})\n","import './VDataTable.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DataTableHeader,\n DataTableFilterFunction,\n DataScopeProps,\n DataOptions,\n DataPagination,\n DataTableCompareFunction,\n DataItemsPerPageOption,\n ItemGroup,\n RowClassFunction,\n RowStyleFunction,\n DataTableItemProps,\n DataTableFilterMode,\n} from 'vuetify/types'\n\n// Components\nimport { VData } from '../VData'\nimport { VDataFooter, VDataIterator } from '../VDataIterator'\nimport VBtn from '../VBtn'\nimport VDataTableHeader from './VDataTableHeader'\n// import VVirtualTable from './VVirtualTable'\nimport VIcon from '../VIcon'\nimport Row from './Row'\nimport RowGroup from './RowGroup'\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VSimpleTable from './VSimpleTable'\nimport MobileRow from './MobileRow'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Mouse from '../../mixins/mouse'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, defaultFilter, camelizeObjectKeys, getPropertyFromItem } from '../../util/helpers'\nimport { breaking } from '../../util/console'\nimport { mergeClasses, mergeStyles } from '../../util/mergeData'\n\nfunction filterFn (item: any, search: string | null, filter: DataTableFilterFunction) {\n return (header: DataTableHeader) => {\n const value = getObjectValueByPath(item, header.value)\n return header.filter ? header.filter(value, search, item) : filter(value, search, item)\n }\n}\n\nfunction searchTableItems (\n items: any[],\n search: string | null,\n headersWithCustomFilters: DataTableHeader[],\n headersWithoutCustomFilters: DataTableHeader[],\n customFilter: DataTableFilterFunction,\n filterMode: DataTableFilterMode,\n) {\n search = typeof search === 'string' ? search.trim() : null\n\n if (filterMode === 'union') {\n // If the `search` property is empty and there are no custom filters in use, there is nothing to do.\n if (!(search && headersWithoutCustomFilters.length) && !headersWithCustomFilters.length) return items\n\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n if (headersWithCustomFilters.length && headersWithCustomFilters.every(filterFn(item, search, defaultFilter))) {\n return true\n }\n\n // Otherwise, the `search` property is used to filter columns without a custom filter.\n return (search && headersWithoutCustomFilters.some(filterFn(item, search, customFilter)))\n })\n } else if (filterMode === 'intersection') {\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n // We need to match every filter to be included in the results.\n const matchesColumnFilters = headersWithCustomFilters.every(filterFn(item, search, defaultFilter))\n\n // Headers without custom filters are only filtered by the `search` property if it is defined.\n // We only need a single column to match the search term to be included in the results.\n const matchesSearchTerm = !search || headersWithoutCustomFilters.some(filterFn(item, search, customFilter))\n\n return matchesColumnFilters && matchesSearchTerm\n })\n } else {\n return items\n }\n}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\n Mouse,\n).extend({\n name: 'v-data-table',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => [],\n } as PropValidator,\n showSelect: Boolean,\n checkboxColor: String,\n showExpand: Boolean,\n showGroupBy: Boolean,\n // TODO: Fix\n // virtualRows: Boolean,\n height: [Number, String],\n hideDefaultHeader: Boolean,\n caption: String,\n dense: Boolean,\n headerProps: Object,\n calculateWidths: Boolean,\n fixedHeader: Boolean,\n headersLength: Number,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n customFilter: {\n type: Function,\n default: defaultFilter,\n } as PropValidator,\n filterMode: {\n type: String,\n default: 'intersection',\n } as PropValidator,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator,\n itemStyle: {\n type: [String, Function],\n default: () => '',\n } as PropValidator,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n },\n\n data () {\n return {\n internalGroupBy: [] as string[],\n openCache: {} as { [key: string]: boolean },\n widths: [] as number[],\n }\n },\n\n computed: {\n computedHeaders (): DataTableHeader[] {\n if (!this.headers) return []\n const headers = this.headers.filter(h => h.value === undefined || !this.internalGroupBy.find(v => v === h.value))\n const defaultHeader = { text: '', sortable: false, width: '1px' }\n\n if (this.showSelect) {\n const index = headers.findIndex(h => h.value === 'data-table-select')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-select' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n if (this.showExpand) {\n const index = headers.findIndex(h => h.value === 'data-table-expand')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-expand' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n return headers\n },\n colspanAttrs (): object | undefined {\n return this.isMobile ? undefined : {\n colspan: this.headersLength || this.computedHeaders.length,\n }\n },\n columnSorters (): Record {\n return this.computedHeaders.reduce>((acc, header) => {\n if (header.sort) acc[header.value] = header.sort\n return acc\n }, {})\n },\n headersWithCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n headersWithoutCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n sanitizedHeaderProps (): Record {\n return camelizeObjectKeys(this.headerProps)\n },\n computedItemsPerPage (): number {\n const itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage\n const itemsPerPageOptions: DataItemsPerPageOption[] | undefined = this.sanitizedFooterProps.itemsPerPageOptions\n\n if (\n itemsPerPageOptions &&\n !itemsPerPageOptions.find(item => typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage)\n ) {\n const firstOption = itemsPerPageOptions[0]\n return typeof firstOption === 'object' ? firstOption.value : firstOption\n }\n\n return itemsPerPage\n },\n groupByText (): string {\n return this.headers?.find(header => header.value === this.internalGroupBy?.[0])?.text ?? ''\n },\n },\n\n created () {\n const breakingProps = [\n ['sort-icon', 'header-props.sort-icon'],\n ['hide-headers', 'hide-default-header'],\n ['select-all', 'show-select'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n mounted () {\n // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) {\n // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable)\n // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] })\n // }\n\n if (this.calculateWidths) {\n window.addEventListener('resize', this.calcWidths)\n this.calcWidths()\n }\n },\n\n beforeDestroy () {\n if (this.calculateWidths) {\n window.removeEventListener('resize', this.calcWidths)\n }\n },\n\n methods: {\n calcWidths () {\n this.widths = Array.from(this.$el.querySelectorAll('th')).map(e => e.clientWidth)\n },\n customFilterWithColumns (items: any[], search: string) {\n return searchTableItems(\n items,\n search,\n this.headersWithCustomFilters,\n this.headersWithoutCustomFilters,\n this.customFilter,\n this.filterMode\n )\n },\n customSortWithHeaders (items: any[], sortBy: string[], sortDesc: boolean[], locale: string) {\n return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters)\n },\n createItemProps (item: any, index: number): DataTableItemProps {\n const data = {\n ...VDataIterator.options.methods.createItemProps.call(this, item, index),\n headers: this.computedHeaders,\n }\n\n return {\n ...data,\n attrs: {\n class: {\n 'v-data-table__selected': data.isSelected,\n },\n },\n on: {\n ...this.getDefaultMouseEventHandlers(':row', () => data, true),\n // TODO: the first argument should be the event, and the second argument should be data,\n // but this is a breaking change so it's for v3\n click: (event: MouseEvent) => this.$emit('click:row', item, data, event),\n },\n }\n },\n genCaption (props: DataScopeProps) {\n if (this.caption) return [this.$createElement('caption', [this.caption])]\n\n return getSlot(this, 'caption', props, true)\n },\n genColgroup (props: DataScopeProps) {\n return this.$createElement('colgroup', this.computedHeaders.map(header => {\n return this.$createElement('col', {\n class: {\n divider: header.divider,\n },\n })\n }))\n },\n genLoading () {\n const th = this.$createElement('th', {\n staticClass: 'column',\n attrs: this.colspanAttrs,\n }, [this.genProgress()])\n\n const tr = this.$createElement('tr', {\n staticClass: 'v-data-table__progress',\n }, [th])\n\n return this.$createElement('thead', [tr])\n },\n genHeaders (props: DataScopeProps) {\n const data = {\n props: {\n ...this.sanitizedHeaderProps,\n headers: this.computedHeaders,\n options: props.options,\n mobile: this.isMobile,\n showGroupBy: this.showGroupBy,\n checkboxColor: this.checkboxColor,\n someItems: this.someItems,\n everyItem: this.everyItem,\n singleSelect: this.singleSelect,\n disableSort: this.disableSort,\n },\n on: {\n sort: props.sort,\n group: props.group,\n 'toggle-select-all': this.toggleSelectAll,\n },\n }\n\n // TODO: rename to 'head'? (thead, tbody, tfoot)\n const children: VNodeChildrenArrayContents = [getSlot(this, 'header', {\n ...data,\n isMobile: this.isMobile,\n })]\n\n if (!this.hideDefaultHeader) {\n const scopedSlots = getPrefixedScopedSlots('header.', this.$scopedSlots)\n children.push(this.$createElement(VDataTableHeader, {\n ...data,\n scopedSlots,\n }))\n }\n\n if (this.loading) children.push(this.genLoading())\n\n return children\n },\n genEmptyWrapper (content: VNodeChildrenArrayContents) {\n return this.$createElement('tr', {\n staticClass: 'v-data-table__empty-wrapper',\n }, [\n this.$createElement('td', {\n attrs: this.colspanAttrs,\n }, content),\n ])\n },\n genItems (items: any[], props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n return props.groupedItems\n ? this.genGroupedRows(props.groupedItems, props)\n : this.genRows(items, props)\n },\n genGroupedRows (groupedItems: ItemGroup[], props: DataScopeProps) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.$set(this.openCache, group.name, true)\n\n if (this.$scopedSlots.group) {\n return this.$scopedSlots.group({\n group: group.name,\n options: props.options,\n isMobile: this.isMobile,\n items: group.items,\n headers: this.computedHeaders,\n })\n } else {\n return this.genDefaultGroupedRow(group.name, group.items, props)\n }\n })\n },\n genDefaultGroupedRow (group: string, items: any[], props: DataScopeProps) {\n const isOpen = !!this.openCache[group]\n const children: VNodeChildren = [\n this.$createElement('template', { slot: 'row.content' }, this.genRows(items, props)),\n ]\n const toggleFn = () => this.$set(this.openCache, group, !this.openCache[group])\n const removeFn = () => props.updateOptions({ groupBy: [], groupDesc: [] })\n\n if (this.$scopedSlots['group.header']) {\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [\n this.$scopedSlots['group.header']!({\n group,\n groupBy: props.options.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n remove: removeFn,\n }),\n ]))\n } else {\n const toggle = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: toggleFn,\n },\n }, [this.$createElement(VIcon, [isOpen ? '$minus' : '$plus'])])\n\n const remove = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: removeFn,\n },\n }, [this.$createElement(VIcon, ['$close'])])\n\n const column = this.$createElement('td', {\n staticClass: 'text-start',\n attrs: this.colspanAttrs,\n }, [toggle, `${this.groupByText}: ${group}`, remove])\n\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [column]))\n }\n\n if (this.$scopedSlots['group.summary']) {\n children.push(this.$createElement('template', { slot: 'column.summary' }, [\n this.$scopedSlots['group.summary']!({\n group,\n groupBy: props.options.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n }),\n ]))\n }\n\n return this.$createElement(RowGroup, {\n key: group,\n props: {\n value: isOpen,\n },\n }, children)\n },\n genRows (items: any[], props: DataScopeProps) {\n return this.$scopedSlots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props)\n },\n genScopedRows (items: any[], props: DataScopeProps) {\n const rows = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n rows.push(this.$scopedSlots.item!({\n ...this.createItemProps(item, i),\n isMobile: this.isMobile,\n }))\n\n if (this.isExpanded(item)) {\n rows.push(this.$scopedSlots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n index: i,\n item,\n }))\n }\n }\n\n return rows\n },\n genDefaultRows (items: any[], props: DataScopeProps) {\n return this.$scopedSlots['expanded-item']\n ? items.map((item, index) => this.genDefaultExpandedRow(item, index))\n : items.map((item, index) => this.genDefaultSimpleRow(item, index))\n },\n genDefaultExpandedRow (item: any, index: number): VNode {\n const isExpanded = this.isExpanded(item)\n const classes = {\n 'v-data-table__expanded v-data-table__expanded__row': isExpanded,\n }\n const headerRow = this.genDefaultSimpleRow(item, index, classes)\n const expandedRow = this.$createElement('tr', {\n staticClass: 'v-data-table__expanded v-data-table__expanded__content',\n }, [this.$scopedSlots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n item,\n })])\n\n return this.$createElement(RowGroup, {\n props: {\n value: isExpanded,\n },\n }, [\n this.$createElement('template', { slot: 'row.header' }, [headerRow]),\n this.$createElement('template', { slot: 'row.content' }, [expandedRow]),\n ])\n },\n genDefaultSimpleRow (item: any, index: number, classes: Record = {}): VNode {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$scopedSlots)\n\n const data = this.createItemProps(item, index)\n\n if (this.showSelect) {\n const slot = scopedSlots['data-table-select']\n scopedSlots['data-table-select'] = slot ? () => slot({\n ...data,\n isMobile: this.isMobile,\n }) : () => this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n props: {\n value: data.isSelected,\n disabled: !this.isSelectable(item),\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (val: boolean) => data.select(val),\n },\n })\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand']\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => this.$createElement(VIcon, {\n staticClass: 'v-data-table__expand-icon',\n class: {\n 'v-data-table__expand-icon--active': data.isExpanded,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n data.expand(!data.isExpanded)\n },\n },\n }, [this.expandIcon])\n }\n\n return this.$createElement(this.isMobile ? MobileRow : Row, {\n key: getObjectValueByPath(item, this.itemKey),\n class: mergeClasses(\n { ...classes, 'v-data-table__selected': data.isSelected },\n getPropertyFromItem(item, this.itemClass)\n ),\n style: mergeStyles({}, getPropertyFromItem(item, this.itemStyle)),\n props: {\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n },\n scopedSlots,\n on: data.on,\n })\n },\n genBody (props: DataScopeProps): VNode | string | VNodeChildren {\n const data = {\n ...props,\n expand: this.expand,\n headers: this.computedHeaders,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n isSelected: this.isSelected,\n select: this.select,\n }\n\n if (this.$scopedSlots.body) {\n return this.$scopedSlots.body!(data)\n }\n\n return this.$createElement('tbody', [\n getSlot(this, 'body.prepend', data, true),\n this.genItems(props.items, props),\n getSlot(this, 'body.append', data, true),\n ])\n },\n genFoot (props: DataScopeProps): VNode[] | undefined {\n return this.$scopedSlots.foot?.(props)\n },\n genFooters (props: DataScopeProps) {\n const data = {\n props: {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n widths: this.widths,\n headers: this.computedHeaders,\n }\n\n const children: VNodeChildren = [\n getSlot(this, 'footer', data, true),\n ]\n\n if (!this.hideDefaultFooter) {\n children.push(this.$createElement(VDataFooter, {\n ...data,\n scopedSlots: getPrefixedScopedSlots('footer.', this.$scopedSlots),\n }))\n }\n\n return children\n },\n genDefaultScopedSlot (props: DataScopeProps): VNode {\n const simpleProps = {\n height: this.height,\n fixedHeader: this.fixedHeader,\n dense: this.dense,\n }\n\n // if (this.virtualRows) {\n // return this.$createElement(VVirtualTable, {\n // props: Object.assign(simpleProps, {\n // items: props.items,\n // height: this.height,\n // rowHeight: this.dense ? 24 : 48,\n // headerHeight: this.dense ? 32 : 48,\n // // TODO: expose rest of props from virtual table?\n // }),\n // scopedSlots: {\n // items: ({ items }) => this.genItems(items, props) as any,\n // },\n // }, [\n // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]),\n // this.proxySlot('bottom', this.genFooters(props)),\n // ])\n // }\n\n return this.$createElement(VSimpleTable, {\n props: simpleProps,\n class: {\n 'v-data-table--mobile': this.isMobile,\n 'v-data-table--selectable': this.showSelect,\n },\n }, [\n this.proxySlot('top', getSlot(this, 'top', {\n ...props,\n isMobile: this.isMobile,\n }, true)),\n this.genCaption(props),\n this.genColgroup(props),\n this.genHeaders(props),\n this.genBody(props),\n this.genFoot(props),\n this.proxySlot('bottom', this.genFooters(props)),\n ])\n },\n proxySlot (slot: string, content: VNodeChildren) {\n return this.$createElement('template', { slot }, content)\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: {\n ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage,\n },\n on: {\n 'update:options': (v: DataOptions, old: DataOptions) => {\n this.internalGroupBy = v.groupBy || []\n !deepEqual(v, old) && this.$emit('update:options', v)\n },\n 'update:page': (v: number) => this.$emit('update:page', v),\n 'update:items-per-page': (v: number) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: string | string[]) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: boolean | boolean[]) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: string | string[]) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: boolean | boolean[]) => this.$emit('update:group-desc', v),\n pagination: (v: DataPagination, old: DataPagination) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n","// Styles\nimport './VDataTableHeader.sass'\n\n// Components\nimport VDataTableHeaderMobile from './VDataTableHeaderMobile'\nimport VDataTableHeaderDesktop from './VDataTableHeaderDesktop'\n\n// Mixins\nimport header from './mixins/header'\n\n// Utilities\nimport dedupeModelListeners from '../../util/dedupeModelListeners'\nimport mergeData from '../../util/mergeData'\nimport rebuildSlots from '../../util/rebuildFunctionalSlots'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-data-table-header',\n\n functional: true,\n\n props: {\n ...header.options.props,\n mobile: Boolean,\n },\n\n render (h, { props, data, slots }) {\n dedupeModelListeners(data)\n const children = rebuildSlots(slots(), h)\n\n data = mergeData(data, { props })\n\n if (props.mobile) {\n return h(VDataTableHeaderMobile, data, children)\n } else {\n return h(VDataTableHeaderDesktop, data, children)\n }\n },\n})\n","// Helpers\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport header from './mixins/header'\nimport { wrapInArray, convertToUnit } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-desktop',\n\n methods: {\n genGroupByToggle (header: DataTableHeader) {\n return this.$createElement('span', {\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('group', header.value)\n },\n },\n }, ['group'])\n },\n getAria (beingSorted: boolean, isDesc: boolean) {\n const $t = (key: string) => this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${key}`)\n\n let ariaSort = 'none'\n let ariaLabel = [\n $t('sortNone'),\n $t('activateAscending'),\n ]\n\n if (!beingSorted) {\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n }\n\n if (isDesc) {\n ariaSort = 'descending'\n ariaLabel = [\n $t('sortDescending'),\n $t(this.options.mustSort ? 'activateAscending' : 'activateNone'),\n ]\n } else {\n ariaSort = 'ascending'\n ariaLabel = [\n $t('sortAscending'),\n $t('activateDescending'),\n ]\n }\n\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n },\n genHeader (header: DataTableHeader) {\n const data: Required> = {\n attrs: {\n role: 'columnheader',\n scope: 'col',\n 'aria-label': header.text || '',\n },\n style: {\n width: convertToUnit(header.width),\n minWidth: convertToUnit(header.width),\n },\n class: [\n `text-${header.align || 'start'}`,\n ...wrapInArray(header.class),\n header.divider && 'v-data-table__divider',\n ],\n on: {},\n }\n const children = []\n\n if (header.value === 'data-table-select' && !this.singleSelect) {\n return this.$createElement('th', data, [this.genSelectAll()])\n }\n\n children.push(\n this.$scopedSlots.hasOwnProperty(header.value)\n ? this.$scopedSlots[header.value]!({ header })\n : this.$createElement('span', [header.text])\n )\n\n if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {\n data.on.click = () => this.$emit('sort', header.value)\n\n const sortIndex = this.options.sortBy.findIndex(k => k === header.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n data.class.push('sortable')\n\n const { ariaLabel, ariaSort } = this.getAria(beingSorted, isDesc)\n\n data.attrs['aria-label'] += `${header.text ? ': ' : ''}${ariaLabel}`\n data.attrs['aria-sort'] = ariaSort\n\n if (beingSorted) {\n data.class.push('active')\n data.class.push(isDesc ? 'desc' : 'asc')\n }\n\n if (header.align === 'end') children.unshift(this.genSortIcon())\n else children.push(this.genSortIcon())\n\n if (this.options.multiSort && beingSorted) {\n children.push(this.$createElement('span', { class: 'v-data-table-header__sort-badge' }, [String(sortIndex + 1)]))\n }\n }\n\n if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header))\n\n return this.$createElement('th', data, children)\n },\n },\n\n render (): VNode {\n return this.$createElement('thead', {\n staticClass: 'v-data-table-header',\n }, [\n this.$createElement('tr', this.headers.map(header => this.genHeader(header))),\n ])\n },\n})\n","import { VNode, VNodeChildrenArrayContents } from 'vue'\nimport mixins from '../../util/mixins'\nimport VSelect from '../VSelect/VSelect'\nimport VChip from '../VChip'\nimport header from './mixins/header'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-mobile',\n\n props: {\n sortByText: {\n type: String,\n default: '$vuetify.dataTable.sortBy',\n },\n },\n\n methods: {\n genSortChip (props: any) {\n const children: VNodeChildrenArrayContents = [props.item.text]\n\n const sortIndex = this.options.sortBy.findIndex(k => k === props.item.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n children.push(this.$createElement('div', {\n staticClass: 'v-chip__close',\n class: {\n sortable: true,\n active: beingSorted,\n asc: beingSorted && !isDesc,\n desc: beingSorted && isDesc,\n },\n }, [this.genSortIcon()]))\n\n return this.$createElement(VChip, {\n staticClass: 'sortable',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('sort', props.item.value)\n },\n },\n }, children)\n },\n genSortSelect (items: any[]) {\n return this.$createElement(VSelect, {\n props: {\n label: this.$vuetify.lang.t(this.sortByText),\n items,\n hideDetails: true,\n multiple: this.options.multiSort,\n value: this.options.multiSort ? this.options.sortBy : this.options.sortBy[0],\n menuProps: { closeOnContentClick: true },\n },\n on: {\n change: (v: string | string[]) => this.$emit('sort', v),\n },\n scopedSlots: {\n selection: props => this.genSortChip(props),\n },\n })\n },\n },\n\n render (h): VNode {\n const children: VNodeChildrenArrayContents = []\n\n const header = this.headers.find(h => h.value === 'data-table-select')\n if (header && !this.singleSelect) {\n children.push(this.$createElement('div', {\n class: [\n 'v-data-table-header-mobile__select',\n ...wrapInArray(header.class),\n ],\n attrs: {\n width: header.width,\n },\n }, [this.genSelectAll()]))\n }\n\n const sortHeaders = this.headers\n .filter(h => h.sortable !== false && h.value !== 'data-table-select')\n .map(h => ({\n text: h.text,\n value: h.value,\n }))\n\n if (!this.disableSort && sortHeaders.length) {\n children.push(this.genSortSelect(sortHeaders))\n }\n\n const th = children.length\n ? h('th', [h('div', { staticClass: 'v-data-table-header-mobile__wrapper' }, children)])\n : undefined\n\n const tr = h('tr', [th])\n\n return h('thead', {\n staticClass: 'v-data-table-header v-data-table-header-mobile',\n }, [tr])\n },\n})\n","// Styles\nimport './VEditDialog.sass'\n\n// Mixins\nimport Returnable from '../../mixins/returnable'\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport { getSlot, keyCodes } from '../../util/helpers'\n\n// Component\nimport VBtn from '../VBtn'\nimport VMenu from '../VMenu'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Returnable, Themeable).extend({\n name: 'v-edit-dialog',\n\n props: {\n cancelText: {\n default: 'Cancel',\n },\n large: Boolean,\n eager: Boolean,\n persistent: Boolean,\n saveText: {\n default: 'Save',\n },\n transition: {\n type: String,\n default: 'slide-x-reverse-transition',\n },\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.$emit('open')\n setTimeout(this.focus, 50) // Give DOM time to paint\n } else {\n this.$emit('close')\n }\n },\n },\n\n methods: {\n cancel () {\n this.isActive = false\n this.$emit('cancel')\n },\n focus () {\n const input = (this.$refs.content as Element).querySelector('input')\n input && input.focus()\n },\n genButton (fn: Function, text: VNodeChildren): VNode {\n return this.$createElement(VBtn, {\n props: {\n text: true,\n color: 'primary',\n light: true,\n },\n on: { click: fn },\n }, text)\n },\n genActions (): VNode {\n return this.$createElement('div', {\n class: 'v-small-dialog__actions',\n }, [\n this.genButton(this.cancel, this.cancelText),\n this.genButton(() => {\n this.save(this.returnValue)\n this.$emit('save')\n }, this.saveText),\n ])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-small-dialog__content',\n on: {\n keydown: (e: KeyboardEvent) => {\n e.keyCode === keyCodes.esc && this.cancel()\n if (e.keyCode === keyCodes.enter) {\n this.save(this.returnValue)\n this.$emit('save')\n }\n },\n },\n ref: 'content',\n }, getSlot(this, 'input'))\n },\n },\n\n render (h): VNode {\n return h(VMenu, {\n staticClass: 'v-small-dialog',\n class: this.themeClasses,\n props: {\n contentClass: 'v-small-dialog__menu-content',\n transition: this.transition,\n origin: 'top right',\n right: true,\n value: this.isActive,\n closeOnClick: !this.persistent,\n closeOnContentClick: false,\n eager: this.eager,\n light: this.light,\n dark: this.dark,\n },\n on: {\n input: (val: boolean) => (this.isActive = val),\n },\n scopedSlots: {\n activator: ({ on }) => {\n return h('div', {\n staticClass: 'v-small-dialog__activator',\n on,\n }, [\n h('span', {\n staticClass: 'v-small-dialog__activator__content',\n }, getSlot(this)),\n ])\n },\n },\n }, [\n this.genContent(),\n this.large ? this.genActions() : null,\n ])\n },\n})\n","import './VSimpleTable.sass'\n\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nexport default mixins(Themeable).extend({\n name: 'v-simple-table',\n\n props: {\n dense: Boolean,\n fixedHeader: Boolean,\n height: [Number, String],\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-data-table--dense': this.dense,\n 'v-data-table--fixed-height': !!this.height && !this.fixedHeader,\n 'v-data-table--fixed-header': this.fixedHeader,\n 'v-data-table--has-top': !!this.$slots.top,\n 'v-data-table--has-bottom': !!this.$slots.bottom,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genWrapper () {\n return this.$slots.wrapper || this.$createElement('div', {\n staticClass: 'v-data-table__wrapper',\n style: {\n height: convertToUnit(this.height),\n },\n }, [\n this.$createElement('table', getSlot(this)),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-data-table',\n class: this.classes,\n }, [\n getSlot(this, 'top'),\n this.genWrapper(),\n getSlot(this, 'bottom'),\n ])\n },\n})\n","import './VVirtualTable.sass'\n\n// Components\nimport VSimpleTable from './VSimpleTable'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utiltiies\nimport { convertToUnit, debounce, getSlot } from '../../util/helpers'\n\n// Types\nconst baseMixins = mixins(VSimpleTable)\n\ninterface options extends InstanceType {\n $refs: {\n table: HTMLElement\n }\n cachedItems: VNodeChildren\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-virtual-table',\n\n props: {\n chunkSize: {\n type: Number,\n default: 25,\n },\n headerHeight: {\n type: Number,\n default: 48,\n },\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n rowHeight: {\n type: Number,\n default: 48,\n },\n },\n\n data: () => ({\n scrollTop: 0,\n oldChunk: 0,\n scrollDebounce: null as any,\n invalidateCache: false,\n }),\n\n computed: {\n itemsLength (): number {\n return this.items.length\n },\n totalHeight (): number {\n return (this.itemsLength * this.rowHeight) + this.headerHeight\n },\n topIndex (): number {\n return Math.floor(this.scrollTop / this.rowHeight)\n },\n chunkIndex (): number {\n return Math.floor(this.topIndex / this.chunkSize)\n },\n startIndex (): number {\n return Math.max(0, (this.chunkIndex * this.chunkSize) - this.chunkSize)\n },\n offsetTop (): number {\n return Math.max(0, this.startIndex * this.rowHeight)\n },\n stopIndex (): number {\n return Math.min(this.startIndex + (this.chunkSize * 3), this.itemsLength)\n },\n offsetBottom (): number {\n return Math.max(0, (this.itemsLength - this.stopIndex - this.startIndex) * this.rowHeight)\n },\n },\n\n watch: {\n chunkIndex (newValue, oldValue) {\n this.oldChunk = oldValue\n },\n items () {\n this.cachedItems = null\n this.$refs.table.scrollTop = 0\n },\n },\n\n created () {\n this.cachedItems = null\n },\n\n mounted () {\n this.scrollDebounce = debounce(this.onScroll, 50)\n\n this.$refs.table.addEventListener('scroll', this.scrollDebounce, { passive: true })\n },\n\n beforeDestroy () {\n this.$refs.table.removeEventListener('scroll', this.scrollDebounce)\n },\n\n methods: {\n createStyleHeight (height: number) {\n return {\n height: `${height}px`,\n }\n },\n genBody () {\n if (this.cachedItems === null || this.chunkIndex !== this.oldChunk) {\n this.cachedItems = this.genItems()\n this.oldChunk = this.chunkIndex\n }\n\n return this.$createElement('tbody', [\n this.$createElement('tr', { style: this.createStyleHeight(this.offsetTop) }),\n this.cachedItems,\n this.$createElement('tr', { style: this.createStyleHeight(this.offsetBottom) }),\n ])\n },\n genItems () {\n return this.$scopedSlots.items!({ items: this.items.slice(this.startIndex, this.stopIndex) })\n },\n onScroll (e: Event) {\n const target = e.target as Element\n this.scrollTop = target.scrollTop\n },\n genTable () {\n return this.$createElement('div', {\n ref: 'table',\n staticClass: 'v-virtual-table__table',\n }, [\n this.$createElement('table', [\n this.$slots['body.before'],\n this.genBody(),\n this.$slots['body.after'],\n ]),\n ])\n },\n genWrapper () {\n return this.$createElement('div', {\n staticClass: 'v-virtual-table__wrapper',\n style: {\n height: convertToUnit(this.height),\n },\n }, [\n this.genTable(),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-data-table v-virtual-table',\n class: this.classes,\n }, [\n getSlot(this, 'top'),\n this.genWrapper(),\n getSlot(this, 'bottom'),\n ])\n },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VDataTable from './VDataTable'\nimport VDataTableHeader from './VDataTableHeader'\nimport VEditDialog from './VEditDialog'\nimport VSimpleTable from './VSimpleTable'\nimport VVirtualTable from './VVirtualTable'\n\nconst VTableOverflow = createSimpleFunctional('v-table__overflow')\n\nexport { VDataTable, VEditDialog, VTableOverflow, VDataTableHeader, VSimpleTable, VVirtualTable }\n\nexport default {\n $_vuetify_subcomponents: {\n VDataTable,\n VDataTableHeader,\n VEditDialog,\n VTableOverflow,\n VSimpleTable,\n VVirtualTable,\n },\n}\n","import { VDataTable } from '../'\nimport VIcon from '../../VIcon'\nimport VSimpleCheckbox from '../../VCheckbox/VSimpleCheckbox'\nimport ripple from '../../../directives/ripple'\n\nimport Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../../util/mixins'\nimport { DataOptions, DataTableHeader } from 'vuetify/types'\n\ntype VDataTableInstance = InstanceType\n\ninterface options extends Vue {\n dataTable: VDataTableInstance\n}\n\nexport default mixins().extend({\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({\n page: 1,\n itemsPerPage: 10,\n sortBy: [],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: false,\n }),\n } as PropValidator,\n checkboxColor: String,\n sortIcon: {\n type: String,\n default: '$sort',\n },\n everyItem: Boolean,\n someItems: Boolean,\n showGroupBy: Boolean,\n singleSelect: Boolean,\n disableSort: Boolean,\n },\n\n methods: {\n genSelectAll () {\n const data = {\n props: {\n value: this.everyItem,\n indeterminate: !this.everyItem && this.someItems,\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (v: boolean) => this.$emit('toggle-select-all', v),\n },\n }\n\n if (this.$scopedSlots['data-table-select']) {\n return this.$scopedSlots['data-table-select']!(data)\n }\n\n return this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n ...data,\n })\n },\n genSortIcon () {\n return this.$createElement(VIcon, {\n staticClass: 'v-data-table-header__icon',\n props: {\n size: 18,\n },\n }, [this.sortIcon])\n },\n },\n})\n","// Components\nimport VDatePickerTitle from './VDatePickerTitle'\nimport VDatePickerHeader from './VDatePickerHeader'\nimport VDatePickerDateTable from './VDatePickerDateTable'\nimport VDatePickerMonthTable from './VDatePickerMonthTable'\nimport VDatePickerYears from './VDatePickerYears'\n\n// Mixins\nimport Localable from '../../mixins/localable'\nimport Picker from '../../mixins/picker'\n\n// Utils\nimport isDateAllowed from './util/isDateAllowed'\nimport mixins from '../../util/mixins'\nimport { wrapInArray } from '../../util/helpers'\nimport { daysInMonth } from '../VCalendar/util/timestamp'\nimport { consoleWarn } from '../../util/console'\nimport {\n createItemTypeListeners,\n createNativeLocaleFormatter,\n pad,\n sanitizeDateString,\n} from './util'\n\n// Types\nimport {\n PropType,\n PropValidator,\n} from 'vue/types/options'\nimport { VNode } from 'vue'\nimport {\n DatePickerFormatter,\n DatePickerMultipleFormatter,\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEvents,\n DatePickerType,\n} from 'vuetify/types'\n\ntype DatePickerValue = string | string[] | undefined\ninterface Formatters {\n year: DatePickerFormatter\n titleDate: DatePickerFormatter | DatePickerMultipleFormatter\n}\n\ntype ActivePicker = 'DATE' | 'MONTH' | 'YEAR';\n\nexport default mixins(\n Localable,\n Picker,\n/* @vue/component */\n).extend({\n name: 'v-date-picker',\n\n props: {\n activePicker: String as PropType,\n allowedDates: Function as PropType,\n // Function formatting the day in date picker table\n dayFormat: Function as PropType,\n disabled: Boolean,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n // Function formatting the tableDate in the day/month table header\n headerDateFormat: Function as PropType,\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n max: String,\n min: String,\n // Function formatting month in the months table\n monthFormat: Function as PropType,\n multiple: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n nextMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextMonthAriaLabel',\n },\n nextYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextYearAriaLabel',\n },\n pickerDate: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n prevMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevMonthAriaLabel',\n },\n prevYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevYearAriaLabel',\n },\n range: Boolean,\n reactive: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n showCurrent: {\n type: [Boolean, String],\n default: true,\n },\n selectedItemsText: {\n type: String,\n default: '$vuetify.datePicker.itemsSelected',\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n // Function formatting currently selected date in the picker title\n titleDateFormat: Function as PropType,\n type: {\n type: String,\n default: 'date',\n validator: (type: any) => ['date', 'month'].includes(type), // TODO: year\n } as PropValidator,\n value: [Array, String] as PropType,\n weekdayFormat: Function as PropType,\n // Function formatting the year in table header and pickup title\n yearFormat: Function as PropType,\n yearIcon: String,\n },\n\n data () {\n const now = new Date()\n return {\n internalActivePicker: this.type.toUpperCase(),\n inputDay: null as number | null,\n inputMonth: null as number | null,\n inputYear: null as number | null,\n isReversing: false,\n now,\n // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required)\n tableDate: (() => {\n if (this.pickerDate) {\n return this.pickerDate\n }\n\n const multipleValue = wrapInArray(this.value)\n const date = multipleValue[multipleValue.length - 1] ||\n (typeof this.showCurrent === 'string' ? this.showCurrent : `${now.getFullYear()}-${now.getMonth() + 1}`)\n return sanitizeDateString(date as string, this.type === 'date' ? 'month' : 'year')\n })(),\n }\n },\n\n computed: {\n multipleValue (): string[] {\n return wrapInArray(this.value)\n },\n isMultiple (): boolean {\n return this.multiple || this.range\n },\n lastValue (): string | null {\n return this.isMultiple ? this.multipleValue[this.multipleValue.length - 1] : (this.value as string | null)\n },\n selectedMonths (): string | string[] | undefined {\n if (!this.value || this.type === 'month') {\n return this.value\n } else if (this.isMultiple) {\n return this.multipleValue.map(val => val.substr(0, 7))\n } else {\n return (this.value as string).substr(0, 7)\n }\n },\n current (): string | null {\n if (this.showCurrent === true) {\n return sanitizeDateString(`${this.now.getFullYear()}-${this.now.getMonth() + 1}-${this.now.getDate()}`, this.type)\n }\n\n return this.showCurrent || null\n },\n inputDate (): string {\n return this.type === 'date'\n ? `${this.inputYear}-${pad(this.inputMonth! + 1)}-${pad(this.inputDay!)}`\n : `${this.inputYear}-${pad(this.inputMonth! + 1)}`\n },\n tableMonth (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[1]) - 1\n },\n tableYear (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[0])\n },\n minMonth (): string | null {\n return this.min ? sanitizeDateString(this.min, 'month') : null\n },\n maxMonth (): string | null {\n return this.max ? sanitizeDateString(this.max, 'month') : null\n },\n minYear (): string | null {\n return this.min ? sanitizeDateString(this.min, 'year') : null\n },\n maxYear (): string | null {\n return this.max ? sanitizeDateString(this.max, 'year') : null\n },\n formatters (): Formatters {\n return {\n year: this.yearFormat || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 }),\n titleDate: this.titleDateFormat ||\n (this.isMultiple ? this.defaultTitleMultipleDateFormatter : this.defaultTitleDateFormatter),\n }\n },\n defaultTitleMultipleDateFormatter (): DatePickerMultipleFormatter {\n return dates => {\n if (!dates.length) {\n return '-'\n }\n\n if (dates.length === 1) {\n return this.defaultTitleDateFormatter(dates[0])\n }\n\n return this.$vuetify.lang.t(this.selectedItemsText, dates.length)\n }\n },\n defaultTitleDateFormatter (): DatePickerFormatter {\n const titleFormats = {\n year: { year: 'numeric', timeZone: 'UTC' },\n month: { month: 'long', timeZone: 'UTC' },\n date: { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' },\n } as const\n\n const titleDateFormatter = createNativeLocaleFormatter(this.currentLocale, titleFormats[this.type], {\n start: 0,\n length: { date: 10, month: 7, year: 4 }[this.type],\n })\n\n const landscapeFormatter = (date: string) => titleDateFormatter(date)\n .replace(/([^\\d\\s])([\\d])/g, (match, nonDigit, digit) => `${nonDigit} ${digit}`)\n .replace(', ', ',
')\n\n return this.landscape ? landscapeFormatter : titleDateFormatter\n },\n },\n\n watch: {\n internalActivePicker: {\n immediate: true,\n handler (val: ActivePicker) {\n this.$emit('update:active-picker', val)\n },\n },\n activePicker (val: ActivePicker) {\n this.internalActivePicker = val\n },\n tableDate (val: string, prev: string) {\n // Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly\n // compare for example '2000-9' and '2000-10'\n const sanitizeType = this.type === 'month' ? 'year' : 'month'\n this.isReversing = sanitizeDateString(val, sanitizeType) < sanitizeDateString(prev, sanitizeType)\n this.$emit('update:picker-date', val)\n },\n pickerDate (val: string | null) {\n if (val) {\n this.tableDate = val\n } else if (this.lastValue && this.type === 'date') {\n this.tableDate = sanitizeDateString(this.lastValue, 'month')\n } else if (this.lastValue && this.type === 'month') {\n this.tableDate = sanitizeDateString(this.lastValue, 'year')\n }\n },\n value (newValue: DatePickerValue, oldValue: DatePickerValue) {\n this.checkMultipleProp()\n this.setInputDate()\n\n if (\n (!this.isMultiple && this.value && !this.pickerDate) ||\n (this.isMultiple && this.multipleValue.length && (!oldValue || !oldValue.length) && !this.pickerDate)\n ) {\n this.tableDate = sanitizeDateString(this.inputDate, this.type === 'month' ? 'year' : 'month')\n }\n },\n type (type: DatePickerType) {\n this.internalActivePicker = type.toUpperCase()\n\n if (this.value && this.value.length) {\n const output = this.multipleValue\n .map((val: string) => sanitizeDateString(val, type))\n .filter(this.isDateAllowed)\n this.$emit('input', this.isMultiple ? output : output[0])\n }\n },\n },\n\n created () {\n this.checkMultipleProp()\n\n if (this.pickerDate !== this.tableDate) {\n this.$emit('update:picker-date', this.tableDate)\n }\n this.setInputDate()\n },\n\n methods: {\n emitInput (newInput: string) {\n if (this.range) {\n if (this.multipleValue.length !== 1) {\n this.$emit('input', [newInput])\n } else {\n const output = [this.multipleValue[0], newInput]\n this.$emit('input', output)\n this.$emit('change', output)\n }\n return\n }\n\n const output = this.multiple\n ? (\n this.multipleValue.indexOf(newInput) === -1\n ? this.multipleValue.concat([newInput])\n : this.multipleValue.filter(x => x !== newInput)\n )\n : newInput\n\n this.$emit('input', output)\n this.multiple || this.$emit('change', newInput)\n },\n checkMultipleProp () {\n if (this.value == null) return\n const valueType = this.value.constructor.name\n const expected = this.isMultiple ? 'Array' : 'String'\n if (valueType !== expected) {\n consoleWarn(`Value must be ${this.isMultiple ? 'an' : 'a'} ${expected}, got ${valueType}`, this)\n }\n },\n isDateAllowed (value: string): boolean {\n return isDateAllowed(value, this.min, this.max, this.allowedDates)\n },\n yearClick (value: number) {\n this.inputYear = value\n if (this.type === 'month') {\n this.tableDate = `${value}`\n } else {\n this.tableDate = `${value}-${pad((this.tableMonth || 0) + 1)}`\n }\n this.internalActivePicker = 'MONTH'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n },\n monthClick (value: string) {\n const [year, month] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n\n if (this.type === 'date') {\n if (this.inputDay) {\n this.inputDay = Math.min(this.inputDay, daysInMonth(this.inputYear, this.inputMonth + 1))\n }\n\n this.tableDate = value\n this.internalActivePicker = 'DATE'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n } else {\n this.emitInput(this.inputDate)\n }\n },\n dateClick (value: string) {\n const [year, month, day] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n this.inputDay = parseInt(day, 10)\n\n this.emitInput(this.inputDate)\n },\n genPickerTitle (): VNode {\n return this.$createElement(VDatePickerTitle, {\n props: {\n date: this.value ? (this.formatters.titleDate as (value: any) => string)(this.isMultiple ? this.multipleValue : this.value) : '',\n disabled: this.disabled,\n readonly: this.readonly,\n selectingYear: this.internalActivePicker === 'YEAR',\n year: this.formatters.year(this.multipleValue.length ? `${this.inputYear}` : this.tableDate),\n yearIcon: this.yearIcon,\n value: this.multipleValue[0],\n },\n slot: 'title',\n on: {\n 'update:selecting-year': (value: boolean) => this.internalActivePicker = value ? 'YEAR' : this.type.toUpperCase(),\n },\n })\n },\n genTableHeader (): VNode {\n return this.$createElement(VDatePickerHeader, {\n props: {\n nextIcon: this.nextIcon,\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n format: this.headerDateFormat,\n light: this.light,\n locale: this.locale,\n min: this.internalActivePicker === 'DATE' ? this.minMonth : this.minYear,\n max: this.internalActivePicker === 'DATE' ? this.maxMonth : this.maxYear,\n nextAriaLabel: this.internalActivePicker === 'DATE' ? this.nextMonthAriaLabel : this.nextYearAriaLabel,\n prevAriaLabel: this.internalActivePicker === 'DATE' ? this.prevMonthAriaLabel : this.prevYearAriaLabel,\n prevIcon: this.prevIcon,\n readonly: this.readonly,\n value: this.internalActivePicker === 'DATE' ? `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}` : `${pad(this.tableYear, 4)}`,\n },\n on: {\n toggle: () => this.internalActivePicker = (this.internalActivePicker === 'DATE' ? 'MONTH' : 'YEAR'),\n input: (value: string) => this.tableDate = value,\n },\n })\n },\n genDateTable (): VNode {\n return this.$createElement(VDatePickerDateTable, {\n props: {\n allowedDates: this.allowedDates,\n color: this.color,\n current: this.current,\n dark: this.dark,\n disabled: this.disabled,\n events: this.events,\n eventColor: this.eventColor,\n firstDayOfWeek: this.firstDayOfWeek,\n format: this.dayFormat,\n light: this.light,\n locale: this.locale,\n localeFirstDayOfYear: this.localeFirstDayOfYear,\n min: this.min,\n max: this.max,\n range: this.range,\n readonly: this.readonly,\n scrollable: this.scrollable,\n showAdjacentMonths: this.showAdjacentMonths,\n showWeek: this.showWeek,\n tableDate: `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}`,\n value: this.value,\n weekdayFormat: this.weekdayFormat,\n },\n ref: 'table',\n on: {\n input: this.dateClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':date'),\n },\n })\n },\n genMonthTable (): VNode {\n return this.$createElement(VDatePickerMonthTable, {\n props: {\n allowedDates: this.type === 'month' ? this.allowedDates : null,\n color: this.color,\n current: this.current ? sanitizeDateString(this.current, 'month') : null,\n dark: this.dark,\n disabled: this.disabled,\n events: this.type === 'month' ? this.events : null,\n eventColor: this.type === 'month' ? this.eventColor : null,\n format: this.monthFormat,\n light: this.light,\n locale: this.locale,\n min: this.minMonth,\n max: this.maxMonth,\n range: this.range,\n readonly: this.readonly && this.type === 'month',\n scrollable: this.scrollable,\n value: this.selectedMonths,\n tableDate: `${pad(this.tableYear, 4)}`,\n },\n ref: 'table',\n on: {\n input: this.monthClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':month'),\n },\n })\n },\n genYears (): VNode {\n return this.$createElement(VDatePickerYears, {\n props: {\n color: this.color,\n format: this.yearFormat,\n locale: this.locale,\n min: this.minYear,\n max: this.maxYear,\n value: this.tableYear,\n },\n on: {\n input: this.yearClick,\n ...createItemTypeListeners(this, ':year'),\n },\n })\n },\n genPickerBody (): VNode {\n const children = this.internalActivePicker === 'YEAR' ? [\n this.genYears(),\n ] : [\n this.genTableHeader(),\n this.internalActivePicker === 'DATE' ? this.genDateTable() : this.genMonthTable(),\n ]\n\n return this.$createElement('div', {\n key: this.internalActivePicker,\n }, children)\n },\n setInputDate () {\n if (this.lastValue) {\n const array = this.lastValue.split('-')\n this.inputYear = parseInt(array[0], 10)\n this.inputMonth = parseInt(array[1], 10) - 1\n if (this.type === 'date') {\n this.inputDay = parseInt(array[2], 10)\n }\n } else {\n this.inputYear = this.inputYear || this.now.getFullYear()\n this.inputMonth = this.inputMonth == null ? this.inputMonth : this.now.getMonth()\n this.inputDay = this.inputDay || this.now.getDate()\n }\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--date')\n },\n})\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport { pad, createNativeLocaleFormatter, monthChange } from './util'\nimport { createRange } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-date-table',\n\n props: {\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n weekdayFormat: Function as PropType,\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { day: 'numeric', timeZone: 'UTC' }, { start: 8, length: 2 })\n },\n weekdayFormatter (): DatePickerFormatter | undefined {\n return this.weekdayFormat || createNativeLocaleFormatter(this.currentLocale, { weekday: 'narrow', timeZone: 'UTC' })\n },\n weekDays (): string[] {\n const first = parseInt(this.firstDayOfWeek, 10)\n\n return this.weekdayFormatter\n ? createRange(7).map(i => this.weekdayFormatter!(`2017-01-${first + i + 15}`)) // 2017-01-15 is Sunday\n : createRange(7).map(i => ['S', 'M', 'T', 'W', 'T', 'F', 'S'][(i + first) % 7])\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return monthChange(this.tableDate, Math.sign(delta || 1))\n },\n genTHead () {\n const days = this.weekDays.map(day => this.$createElement('th', day))\n if (this.showWeek) {\n days.unshift(this.$createElement('th'))\n }\n\n return this.$createElement('thead', this.genTR(days))\n },\n // Returns number of the days from the firstDayOfWeek to the first day of the current month\n weekDaysBeforeFirstDayOfTheMonth () {\n const firstDayOfTheMonth = new Date(`${this.displayedYear}-${pad(this.displayedMonth + 1)}-01T00:00:00+00:00`)\n const weekDay = firstDayOfTheMonth.getUTCDay()\n\n return (weekDay - parseInt(this.firstDayOfWeek) + 7) % 7\n },\n getWeekNumber (dayInMonth: number) {\n return weekNumber(\n this.displayedYear,\n this.displayedMonth,\n dayInMonth,\n parseInt(this.firstDayOfWeek),\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('td', [\n this.$createElement('small', {\n staticClass: 'v-date-picker-table--date__week',\n }, String(weekNumber).padStart(2, '0')),\n ])\n },\n // eslint-disable-next-line max-statements\n genTBody () {\n const children = []\n const daysInMonth = new Date(this.displayedYear, this.displayedMonth + 1, 0).getDate()\n let rows = []\n let day = this.weekDaysBeforeFirstDayOfTheMonth()\n\n if (this.showWeek) {\n rows.push(this.genWeekNumber(this.getWeekNumber(1)))\n }\n\n const prevMonthYear = this.displayedMonth ? this.displayedYear : this.displayedYear - 1\n const prevMonth = (this.displayedMonth + 11) % 12\n const firstDayFromPreviousMonth = new Date(this.displayedYear, this.displayedMonth, 0).getDate()\n const cellsInRow = this.showWeek ? 8 : 7\n\n while (day--) {\n const date = `${prevMonthYear}-${pad(prevMonth + 1)}-${pad(firstDayFromPreviousMonth - day)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n for (day = 1; day <= daysInMonth; day++) {\n const date = `${this.displayedYear}-${pad(this.displayedMonth + 1)}-${pad(day)}`\n\n rows.push(this.$createElement('td', [\n this.genButton(date, true, 'date', this.formatter),\n ]))\n\n if (rows.length % cellsInRow === 0) {\n children.push(this.genTR(rows))\n rows = []\n if (this.showWeek && (day < daysInMonth || this.showAdjacentMonths)) {\n rows.push(this.genWeekNumber(this.getWeekNumber(day + 7)))\n }\n }\n }\n\n const nextMonthYear = this.displayedMonth === 11 ? this.displayedYear + 1 : this.displayedYear\n const nextMonth = (this.displayedMonth + 1) % 12\n let nextMonthDay = 1\n\n while (rows.length < cellsInRow) {\n const date = `${nextMonthYear}-${pad(nextMonth + 1)}-${pad(nextMonthDay++)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n if (rows.length) {\n children.push(this.genTR(rows))\n }\n\n return this.$createElement('tbody', children)\n },\n genTR (children: VNodeChildren) {\n return [this.$createElement('tr', children)]\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--date', [\n this.genTHead(),\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","import './VDatePickerHeader.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport { createNativeLocaleFormatter, monthChange } from './util'\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-header',\n\n props: {\n disabled: Boolean,\n format: Function as PropType,\n min: String,\n max: String,\n nextAriaLabel: String,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevAriaLabel: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n readonly: Boolean,\n value: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n isReversing: false,\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n if (this.format) {\n return this.format\n } else if (String(this.value).split('-')[1]) {\n return createNativeLocaleFormatter(this.currentLocale, { month: 'long', year: 'numeric', timeZone: 'UTC' }, { length: 7 })\n } else {\n return createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n }\n },\n },\n\n watch: {\n value (newVal, oldVal) {\n this.isReversing = newVal < oldVal\n },\n },\n\n methods: {\n genBtn (change: number) {\n const ariaLabelId = change > 0 ? this.nextAriaLabel : this.prevAriaLabel\n const ariaLabel = ariaLabelId ? this.$vuetify.lang.t(ariaLabelId) : undefined\n const disabled = this.disabled ||\n (change < 0 && this.min && this.calculateChange(change) < this.min) ||\n (change > 0 && this.max && this.calculateChange(change) > this.max)\n\n return this.$createElement(VBtn, {\n attrs: { 'aria-label': ariaLabel },\n props: {\n dark: this.dark,\n disabled,\n icon: true,\n light: this.light,\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n this.$emit('input', this.calculateChange(change))\n },\n },\n }, [\n this.$createElement(VIcon, ((change < 0) === !this.$vuetify.rtl) ? this.prevIcon : this.nextIcon),\n ])\n },\n calculateChange (sign: number) {\n const [year, month] = String(this.value).split('-').map(Number)\n\n if (month == null) {\n return `${year + sign}`\n } else {\n return monthChange(String(this.value), sign)\n }\n },\n genHeader () {\n const color = !this.disabled && (this.color || 'accent')\n const header = this.$createElement('div', this.setTextColor(color, {\n key: String(this.value),\n }), [this.$createElement('button', {\n attrs: {\n type: 'button',\n },\n on: {\n click: () => this.$emit('toggle'),\n },\n }, getSlot(this) || [this.formatter(String(this.value))])])\n\n const transition = this.$createElement('transition', {\n props: {\n name: (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition',\n },\n }, [header])\n\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header__value',\n class: {\n 'v-date-picker-header__value--disabled': this.disabled,\n },\n }, [transition])\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header',\n class: {\n 'v-date-picker-header--disabled': this.disabled,\n ...this.themeClasses,\n },\n }, [\n this.genBtn(-1),\n this.genHeader(),\n this.genBtn(+1),\n ])\n },\n})\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { pad, createNativeLocaleFormatter } from './util'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-month-table',\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { month: 'short', timeZone: 'UTC' }, { start: 5, length: 2 })\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return `${parseInt(this.tableDate, 10) + Math.sign(delta || 1)}`\n },\n genTBody () {\n const children = []\n const cols = Array(3).fill(null)\n const rows = 12 / cols.length\n\n for (let row = 0; row < rows; row++) {\n const tds = cols.map((_, col) => {\n const month = row * cols.length + col\n const date = `${this.displayedYear}-${pad(month + 1)}`\n return this.$createElement('td', {\n key: month,\n }, [\n this.genButton(date, false, 'month', this.formatter),\n ])\n })\n\n children.push(this.$createElement('tr', {\n key: row,\n }, tds))\n }\n\n return this.$createElement('tbody', children)\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--month', [\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","import './VDatePickerTitle.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-date-picker-title',\n\n props: {\n date: {\n type: String,\n default: '',\n },\n disabled: Boolean,\n readonly: Boolean,\n selectingYear: Boolean,\n value: {\n type: String,\n },\n year: {\n type: [Number, String],\n default: '',\n },\n yearIcon: {\n type: String,\n },\n },\n\n data: () => ({\n isReversing: false,\n }),\n\n computed: {\n computedTransition (): string {\n return this.isReversing ? 'picker-reverse-transition' : 'picker-transition'\n },\n },\n\n watch: {\n value (val: string, prev: string) {\n this.isReversing = val < prev\n },\n },\n\n methods: {\n genYearIcon (): VNode {\n return this.$createElement(VIcon, {\n props: {\n dark: true,\n },\n }, this.yearIcon)\n },\n getYearBtn (): VNode {\n return this.genPickerButton('selectingYear', true, [\n String(this.year),\n this.yearIcon ? this.genYearIcon() : null,\n ], false, 'v-date-picker-title__year')\n },\n genTitleText (): VNode {\n return this.$createElement('transition', {\n props: {\n name: this.computedTransition,\n },\n }, [\n this.$createElement('div', {\n domProps: { innerHTML: this.date || ' ' },\n key: this.value,\n }),\n ])\n },\n genTitleDate (): VNode {\n return this.genPickerButton('selectingYear', false, [this.genTitleText()], false, 'v-date-picker-title__date')\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-date-picker-title',\n class: {\n 'v-date-picker-title--disabled': this.disabled,\n },\n }, [\n this.getYearBtn(),\n this.genTitleDate(),\n ])\n },\n})\n","import './VDatePickerYears.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\n\n// Utils\nimport {\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n} from './util'\nimport { mergeListeners } from '../../util/mergeData'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface options extends Vue {\n $el: HTMLElement\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n Colorable,\n Localable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-years',\n\n props: {\n format: Function as PropType,\n min: [Number, String],\n max: [Number, String],\n readonly: Boolean,\n value: [Number, String],\n },\n\n data () {\n return {\n defaultColor: 'primary',\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n },\n },\n\n mounted () {\n setTimeout(() => {\n const activeItem = this.$el.getElementsByClassName('active')[0]\n if (activeItem) {\n this.$el.scrollTop = activeItem.offsetTop - this.$el.offsetHeight / 2 + activeItem.offsetHeight / 2\n } else if (this.min && !this.max) {\n this.$el.scrollTop = this.$el.scrollHeight\n } else if (!this.min && this.max) {\n this.$el.scrollTop = 0\n } else {\n this.$el.scrollTop = this.$el.scrollHeight / 2 - this.$el.offsetHeight / 2\n }\n })\n },\n\n methods: {\n genYearItem (year: number): VNode {\n const formatted = this.formatter(`${year}`)\n const active = parseInt(this.value, 10) === year\n const color = active && (this.color || 'primary')\n\n return this.$createElement('li', this.setTextColor(color, {\n key: year,\n class: { active },\n on: mergeListeners({\n click: () => this.$emit('input', year),\n }, createItemTypeNativeListeners(this, ':year', year)),\n }), formatted)\n },\n\n genYearItems (): VNode[] {\n const children = []\n const selectedYear = this.value ? parseInt(this.value, 10) : new Date().getFullYear()\n const maxYear = this.max ? parseInt(this.max, 10) : (selectedYear + 100)\n const minYear = Math.min(maxYear, this.min ? parseInt(this.min, 10) : (selectedYear - 100))\n\n for (let year = maxYear; year >= minYear; year--) {\n children.push(this.genYearItem(year))\n }\n\n return children\n },\n },\n\n render (): VNode {\n return this.$createElement('ul', {\n staticClass: 'v-date-picker-years',\n ref: 'years',\n }, this.genYearItems())\n },\n})\n","import VDatePicker from './VDatePicker'\nimport VDatePickerTitle from './VDatePickerTitle'\nimport VDatePickerHeader from './VDatePickerHeader'\nimport VDatePickerDateTable from './VDatePickerDateTable'\nimport VDatePickerMonthTable from './VDatePickerMonthTable'\nimport VDatePickerYears from './VDatePickerYears'\n\nexport {\n VDatePicker,\n VDatePickerTitle,\n VDatePickerHeader,\n VDatePickerDateTable,\n VDatePickerMonthTable,\n VDatePickerYears,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VDatePicker,\n VDatePickerTitle,\n VDatePickerHeader,\n VDatePickerDateTable,\n VDatePickerMonthTable,\n VDatePickerYears,\n },\n}\n","import '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners, sanitizeDateString } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType,\n current: String,\n disabled: Boolean,\n format: Function as PropType,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (\n isAllowed: boolean,\n isFloating: boolean,\n isSelected: boolean,\n isCurrent: boolean,\n isFirst: boolean,\n isLast: boolean,\n ) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n 'v-date-picker--first-in-range': isFirst,\n 'v-date-picker--last-in-range': isLast,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n let isFirst = false\n let isLast = false\n if (this.range && !!this.value && Array.isArray(this.value)) {\n isFirst = value === this.value[0]\n isLast = value === this.value[this.value.length - 1]\n }\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(\n isAllowed && !isOtherMonth,\n isFloating,\n isSelected,\n isCurrent,\n isFirst,\n isLast,\n ),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n isValidScroll (value: number, calculateTableDate: CalculateTableDateFunction) {\n const tableDate = calculateTableDate(value)\n // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable\n const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'\n return (value < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||\n (value > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) &&\n (this.isValidScroll(1, calculateTableDate) && this.touch(1, calculateTableDate)),\n right: (e: TouchWrapper) => (e.offsetX > 15) &&\n (this.isValidScroll(-1, calculateTableDate) && this.touch(-1, calculateTableDate)),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n if (this.isValidScroll(e.deltaY, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n","import pad from './pad'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface SubstrOptions {\n start?: number\n length: number\n}\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions\n): DatePickerFormatter | undefined\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions\n): DatePickerFormatter\n\nfunction createNativeLocaleFormatter (\n locale: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions = { start: 0, length: 0 }\n): DatePickerFormatter | undefined {\n const makeIsoString = (dateString: string) => {\n const [year, month, date] = dateString.trim().split(' ')[0].split('-')\n return [pad(year, 4), pad(month || 1), pad(date || 1)].join('-')\n }\n\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, options)\n return (dateString: string) => intlFormatter.format(new Date(`${makeIsoString(dateString)}T00:00:00+00:00`))\n } catch (e) {\n return (substrOptions.start || substrOptions.length)\n ? (dateString: string) => makeIsoString(dateString).substr(substrOptions.start || 0, substrOptions.length)\n : undefined\n }\n}\n\nexport default createNativeLocaleFormatter\n","import Vue from 'vue'\n\nexport function createItemTypeNativeListeners (instance: Vue, itemTypeSuffix: string, value: any) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName.slice(0, -itemTypeSuffix.length)] = (event: Event) => instance.$emit(eventName, value, event)\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n\nexport function createItemTypeListeners (instance: Vue, itemTypeSuffix: string) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName] = instance.$listeners[eventName]\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n","import {\n createItemTypeListeners,\n createItemTypeNativeListeners,\n} from './eventHelpers'\nimport createNativeLocaleFormatter from './createNativeLocaleFormatter'\nimport monthChange from './monthChange'\nimport sanitizeDateString from './sanitizeDateString'\nimport pad from './pad'\n\nexport {\n createItemTypeListeners,\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n monthChange,\n sanitizeDateString,\n pad,\n}\n","import { DatePickerAllowedDatesFunction } from 'vuetify/types'\n\nexport default function isDateAllowed (date: string, min: string, max: string, allowedFn: DatePickerAllowedDatesFunction | undefined) {\n return (!allowedFn || allowedFn(date)) &&\n (!min || date >= min.substr(0, 10)) &&\n (!max || date <= max)\n}\n","import pad from './pad'\n\n/**\n * @param {String} value YYYY-MM format\n * @param {Number} sign -1 or +1\n */\nexport default (value: string, sign: number) => {\n const [year, month] = value.split('-').map(Number)\n\n if (month + sign === 0) {\n return `${year - 1}-12`\n } else if (month + sign === 13) {\n return `${year + 1}-01`\n } else {\n return `${year}-${pad(month + sign)}`\n }\n}\n","const padStart = (string: number | string, targetLength: number, padString: string) => {\n targetLength = targetLength >> 0\n string = String(string)\n padString = String(padString)\n if (string.length > targetLength) {\n return String(string)\n }\n\n targetLength = targetLength - string.length\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length)\n }\n return padString.slice(0, targetLength) + String(string)\n}\n\nexport default (n: string | number, length = 2) => padStart(n, length, '0')\n","// Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',\n// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'\nimport pad from './pad'\n\nexport default (dateString: string, type: 'date' | 'month' | 'year'): string => {\n const [year, month = 1, date = 1] = dateString.split('-')\n return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])\n}\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n attrs: {\n tabindex: this.isActive ? 0 : undefined,\n },\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","import VDialog from './VDialog'\n\nexport { VDialog }\nexport default VDialog\n","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this, 'default', { open: this.isActive })),\n ]),\n ]))\n },\n})\n","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions', { open: this.isActive }) ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","import VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanel from './VExpansionPanel'\nimport VExpansionPanelContent from './VExpansionPanelContent'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\n\nexport { VExpansionPanels, VExpansionPanel, VExpansionPanelHeader, VExpansionPanelContent }\n\nexport default {\n $_vuetify_subcomponents: {\n VExpansionPanels,\n VExpansionPanel,\n VExpansionPanelHeader,\n VExpansionPanelContent,\n },\n}\n","// Styles\nimport './VFileInput.sass'\n\n// Extensions\nimport VTextField from '../VTextField'\n\n// Components\nimport { VChip } from '../VChip'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\n\nexport default VTextField.extend({\n name: 'v-file-input',\n\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n chips: Boolean,\n clearable: {\n type: Boolean,\n default: true,\n },\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n placeholder: String,\n prependIcon: {\n type: String,\n default: '$file',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n showSize: {\n type: [Boolean, Number],\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n } as PropValidator,\n smallChips: Boolean,\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n type: {\n type: String,\n default: 'file',\n },\n value: {\n default: undefined,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n } as PropValidator,\n },\n\n computed: {\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-file-input': true,\n }\n },\n computedCounterValue (): string {\n const fileCount = (this.multiple && this.lazyValue)\n ? this.lazyValue.length\n : (this.lazyValue instanceof File) ? 1 : 0\n\n if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount)\n\n const bytes = this.internalArrayValue.reduce((bytes: number, { size = 0 }: File) => {\n return bytes + size\n }, 0)\n\n return this.$vuetify.lang.t(\n this.counterSizeString,\n fileCount,\n humanReadableFileSize(bytes, this.base === 1024)\n )\n },\n internalArrayValue (): File[] {\n return wrapInArray(this.internalValue)\n },\n internalValue: {\n get (): File[] {\n return this.lazyValue\n },\n set (val: File | File[]) {\n this.lazyValue = val\n this.$emit('change', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.internalArrayValue.length > 0\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n text (): string[] {\n if (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) return [this.placeholder]\n\n return this.internalArrayValue.map((file: File) => {\n const {\n name = '',\n size = 0,\n } = file\n\n const truncatedText = this.truncateText(name)\n\n return !this.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, this.base === 1024)})`\n })\n },\n base (): 1000 | 1024 | undefined {\n return typeof this.showSize !== 'boolean' ? this.showSize : undefined\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n },\n\n watch: {\n readonly: {\n handler (v) {\n if (v === true) consoleError('readonly is not supported on ', this)\n },\n immediate: true,\n },\n value (v) {\n const value = this.multiple ? v : v ? [v] : []\n if (!deepEqual(value, this.$refs.input.files)) {\n // When the input value is changed programatically, clear the\n // internal input's value so that the `onInput` handler\n // can be triggered again if the user re-selects the exact\n // same file(s). Ideally, `input.files` should be\n // manipulated directly but that property is readonly.\n this.$refs.input.value = ''\n }\n },\n },\n\n methods: {\n clearableCallback () {\n this.internalValue = this.multiple ? [] : null\n this.$refs.input.value = ''\n },\n genChips () {\n if (!this.isDirty) return []\n\n return this.text.map((text, index) => this.$createElement(VChip, {\n props: { small: this.smallChips },\n on: {\n 'click:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n },\n },\n }, [text]))\n },\n genControl () {\n const render = VTextField.options.methods.genControl.call(this)\n\n if (this.hideInput) {\n render.data!.style = mergeStyles(\n render.data!.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data!.attrs!.multiple = this.multiple\n\n // We should not be setting value\n // programmatically on the input\n // when it is using type=\"file\"\n delete input.data!.domProps!.value\n\n // This solves an issue in Safari where\n // nothing happens when adding a file\n // due to the input event not firing\n // https://github.com/vuetifyjs/vuetify/issues/7941\n delete input.data!.on!.input\n input.data!.on!.change = this.onInput\n\n return [this.genSelections(), input]\n },\n genPrependSlot () {\n if (!this.prependIcon) return null\n\n const icon = this.genIcon('prepend', () => {\n this.$refs.input.click()\n })\n\n return this.genSlot('prepend', 'outer', [icon])\n },\n genSelectionText (): string[] {\n const length = this.text.length\n\n if (length < 2) return this.text\n if (this.showSize && !this.counter) return [this.computedCounterValue]\n return [this.$vuetify.lang.t(this.counterString, length)]\n },\n genSelections () {\n const children = []\n\n if (this.isDirty && this.$scopedSlots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$scopedSlots.selection) return\n\n children.push(\n this.$scopedSlots.selection({\n text: this.text[index],\n file,\n index,\n })\n )\n })\n } else {\n children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-file-input__text',\n class: {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection,\n },\n }, children)\n },\n genTextFieldSlot () {\n const node = VTextField.options.methods.genTextFieldSlot.call(this)\n\n node.data!.on = {\n ...(node.data!.on || {}),\n click: (e: MouseEvent) => {\n // Clicking the label already delegates to input element, so we shouldn't click it twice\n if (e.target && (e.target as HTMLElement).nodeName === 'LABEL') return\n\n this.$refs.input.click()\n },\n }\n\n return node\n },\n onInput (e: Event) {\n const files = [...(e.target as HTMLInputElement).files || []]\n\n this.internalValue = this.multiple ? files : files[0]\n\n // Set initialValue here otherwise isFocused\n // watcher in VTextField will emit a change\n // event whenever the component is blurred\n this.initialValue = this.internalValue\n },\n onKeyDown (e: KeyboardEvent) {\n this.$emit('keydown', e)\n },\n truncateText (str: string) {\n if (str.length < Number(this.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n },\n },\n})\n","import VFileInput from './VFileInput'\n\nexport { VFileInput }\nexport default VFileInput\n","// Styles\nimport './VFooter.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types/vnode'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Applicationable('footer', [\n 'height',\n 'inset',\n ]),\n SSRBootable\n).extend({\n name: 'v-footer',\n\n props: {\n height: {\n default: 'auto',\n type: [Number, String],\n },\n inset: Boolean,\n padless: Boolean,\n tag: {\n type: String,\n default: 'footer',\n },\n },\n\n computed: {\n applicationProperty (): string {\n return this.inset ? 'insetFooter' : 'footer'\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-footer--absolute': this.absolute,\n 'v-footer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-footer--padless': this.padless,\n 'v-footer--inset': this.inset,\n }\n },\n computedBottom (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app\n ? this.$vuetify.application.bottom\n : 0\n },\n computedLeft (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app && this.inset\n ? this.$vuetify.application.left\n : 0\n },\n computedRight (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app && this.inset\n ? this.$vuetify.application.right\n : 0\n },\n isPositioned (): boolean {\n return Boolean(\n this.absolute ||\n this.fixed ||\n this.app\n )\n },\n styles (): object {\n const height = parseInt(this.height)\n\n return {\n ...VSheet.options.computed.styles.call(this),\n height: isNaN(height) ? height : convertToUnit(height),\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n bottom: convertToUnit(this.computedBottom),\n }\n },\n },\n\n methods: {\n updateApplication () {\n const height = parseInt(this.height)\n\n return isNaN(height)\n ? this.$el ? this.$el.clientHeight : 0\n : height\n },\n },\n\n render (h): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-footer',\n class: this.classes,\n style: this.styles,\n })\n\n return h(this.tag, data, getSlot(this))\n },\n})\n","import VFooter from './VFooter'\n\nexport { VFooter }\nexport default VFooter\n","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, getSlot(this))\n },\n})\n","import VForm from './VForm'\n\nexport { VForm }\nexport default VForm\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('flex')\n","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('layout')\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import VContainer from './VContainer'\nimport VCol from './VCol'\nimport VRow from './VRow'\nimport VSpacer from './VSpacer'\nimport VLayout from './VLayout'\nimport VFlex from './VFlex'\n\nexport {\n VContainer,\n VCol,\n VRow,\n VSpacer,\n VLayout,\n VFlex,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VContainer,\n VCol,\n VRow,\n VSpacer,\n VLayout,\n VFlex,\n },\n}\n","// Mixins\nimport Delayable from '../../mixins/delayable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode, ScopedSlotChildren } from 'vue/types/vnode'\n\nexport default mixins(\n Delayable,\n Toggleable\n /* @vue/component */\n).extend({\n name: 'v-hover',\n\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n value: {\n type: Boolean,\n default: undefined,\n },\n },\n\n methods: {\n onMouseEnter () {\n this.runDelay('open')\n },\n onMouseLeave () {\n this.runDelay('close')\n },\n },\n\n render (): VNode {\n if (!this.$scopedSlots.default && this.value === undefined) {\n consoleWarn('v-hover is missing a default scopedSlot or bound value', this)\n\n return null as any\n }\n\n let element: VNode | ScopedSlotChildren\n\n /* istanbul ignore else */\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({ hover: this.isActive })\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0]\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-hover should only contain a single element', this)\n\n return element as any\n }\n\n if (!this.disabled) {\n element.data = element.data || {}\n this._g(element.data, {\n mouseenter: this.onMouseEnter,\n mouseleave: this.onMouseLeave,\n })\n }\n\n return element\n },\n})\n","import VHover from './VHover'\n\nexport { VHover }\nexport default VHover\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import VImg from './VImg'\n\nexport { VImg }\nexport default VImg\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n getSlot(this),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendOuter: 'appendAction',\n clear: 'clear',\n }[type]\n const label = hasListener && localeKey\n ? this.$vuetify.lang.t(`$vuetify.input.${localeKey}`, this.label ?? '')\n : undefined\n\n const data = mergeData({\n attrs: {\n 'aria-label': label,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, getSlot(this, 'label') || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","// Styles\nimport './VItem.sass'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\nimport { VNode, ScopedSlotChildren } from 'vue/types/vnode'\n\n/* @vue/component */\nexport const BaseItem = Vue.extend({\n props: {\n activeClass: String,\n value: {\n required: false,\n },\n disabled: Boolean,\n },\n\n data: () => ({\n isActive: false,\n }),\n\n methods: {\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (): VNode {\n if (!this.$scopedSlots.default) {\n consoleWarn('v-item is missing a default scopedSlot', this)\n\n return null as any\n }\n\n let element: VNode | ScopedSlotChildren\n\n /* istanbul ignore else */\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0]\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-item should only contain a single element', this)\n\n return element as any\n }\n\n element.data = this._b(element.data || {}, element.tag!, {\n class: {\n [this.activeClass]: this.isActive,\n 'v-item--disabled': this.disabled,\n },\n })\n\n if (this.disabled) {\n element.data.attrs = { ...element.data.attrs, tabindex: -1 }\n }\n\n return element\n },\n})\n\nexport default mixins(\n BaseItem,\n GroupableFactory('itemGroup', 'v-item', 'v-item-group')\n).extend({\n name: 'v-item',\n})\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => this.valueComparator(val, value))\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = this.valueComparator(this.internalValue, value)\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), getSlot(this))\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","import VItem from './VItem'\nimport VItemGroup from './VItemGroup'\n\nexport {\n VItem,\n VItemGroup,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VItem,\n VItemGroup,\n },\n}\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props, data } = ctx\n const newData = mergeData({\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }, data)\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, newData), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Mixins\nimport Measurable from '../../mixins/measurable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport default mixins(\n Measurable,\n Toggleable\n).extend({\n name: 'VLazy',\n\n directives: { intersect },\n\n props: {\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n tag: {\n type: String,\n default: 'div',\n },\n transition: {\n type: String,\n default: 'fade-transition',\n },\n },\n\n computed: {\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n methods: {\n genContent () {\n const children = this.isActive && getSlot(this)\n\n return this.transition\n ? this.$createElement('transition', {\n props: { name: this.transition },\n }, children)\n : children\n },\n onObserve (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n ) {\n if (this.isActive) return\n\n this.isActive = isIntersecting\n },\n },\n\n render (h): VNode {\n return h(this.tag, {\n staticClass: 'v-lazy',\n attrs: this.$attrs,\n directives: [{\n name: 'intersect',\n value: {\n handler: this.onObserve,\n options: this.options,\n },\n }],\n on: this.$listeners,\n style: this.styles,\n }, [this.genContent()])\n },\n})\n","import VLazy from './VLazy'\n\nexport { VLazy }\nexport default VLazy\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().extend({\n name: 'v-list',\n\n provide (): object {\n return {\n isInList: true,\n list: this,\n }\n },\n\n inject: {\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), getSlot(this))\n },\n})\n","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Bootable,\n Colorable,\n RegistrableInject('list'),\n Toggleable\n)\n\ntype VListInstance = InstanceType\n\ninterface options extends ExtractVue {\n list: VListInstance\n $refs: {\n group: HTMLElement\n }\n $route: Route\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-list-group',\n\n directives: { ripple },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n appendIcon: {\n type: String,\n default: '$expand',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n group: [String, RegExp],\n noAction: Boolean,\n prependIcon: String,\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n subGroup: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-group--active': this.isActive,\n 'v-list-group--disabled': this.disabled,\n 'v-list-group--no-action': this.noAction,\n 'v-list-group--sub-group': this.subGroup,\n }\n },\n },\n\n watch: {\n isActive (val: boolean) {\n /* istanbul ignore else */\n if (!this.subGroup && val) {\n this.list && this.list.listClick(this._uid)\n }\n },\n $route: 'onRouteChange',\n },\n\n created () {\n this.list && this.list.register(this)\n\n if (this.group &&\n this.$route &&\n this.value == null\n ) {\n this.isActive = this.matchRoute(this.$route.path)\n }\n },\n\n beforeDestroy () {\n this.list && this.list.unregister(this)\n },\n\n methods: {\n click (e: Event) {\n if (this.disabled) return\n\n this.isBooted = true\n\n this.$emit('click', e)\n this.$nextTick(() => (this.isActive = !this.isActive))\n },\n genIcon (icon: string | false): VNode {\n return this.$createElement(VIcon, icon)\n },\n genAppendIcon (): VNode | null {\n const icon = !this.subGroup ? this.appendIcon : false\n const slot = getSlot(this, 'appendIcon')\n\n if (!icon && !slot) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__append-icon',\n }, [\n slot || this.genIcon(icon),\n ])\n },\n genHeader (): VNode {\n return this.$createElement(VListItem, {\n staticClass: 'v-list-group__header',\n attrs: {\n 'aria-expanded': String(this.isActive),\n role: 'button',\n },\n class: {\n [this.activeClass]: this.isActive,\n },\n props: {\n inputValue: this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.listeners$,\n click: this.click,\n },\n }, [\n this.genPrependIcon(),\n getSlot(this, 'activator'),\n this.genAppendIcon(),\n ])\n },\n genItems (): VNode[] {\n return this.showLazyContent(() => [\n this.$createElement('div', {\n staticClass: 'v-list-group__items',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }, getSlot(this)),\n ])\n },\n genPrependIcon (): VNode | null {\n const icon = this.subGroup && this.prependIcon == null\n ? '$subgroup'\n : this.prependIcon\n const slot = getSlot(this, 'prependIcon')\n\n if (!icon && !slot) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__prepend-icon',\n }, [\n slot || this.genIcon(icon),\n ])\n },\n onRouteChange (to: Route) {\n /* istanbul ignore if */\n if (!this.group) return\n\n const isActive = this.matchRoute(to.path)\n\n /* istanbul ignore else */\n if (isActive && this.isActive !== isActive) {\n this.list && this.list.listClick(this._uid)\n }\n\n this.isActive = isActive\n },\n toggle (uid: number) {\n const isActive = this._uid === uid\n\n if (isActive) this.isBooted = true\n this.$nextTick(() => (this.isActive = isActive))\n },\n matchRoute (to: string) {\n return to.match(this.group) !== null\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-list-group',\n class: this.classes,\n }), [\n this.genHeader(),\n h(VExpandTransition, this.genItems()),\n ])\n },\n})\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot, keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\n dense: Boolean,\n inactive: Boolean,\n link: Boolean,\n selectable: {\n type: Boolean,\n },\n tag: {\n type: String,\n default: 'div',\n },\n threeLine: Boolean,\n twoLine: Boolean,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-list-item--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-list-item': true,\n ...Routable.options.computed.classes.call(this),\n 'v-list-item--dense': this.dense,\n 'v-list-item--disabled': this.disabled,\n 'v-list-item--link': this.isClickable && !this.inactive,\n 'v-list-item--selectable': this.selectable,\n 'v-list-item--three-line': this.threeLine,\n 'v-list-item--two-line': this.twoLine,\n ...this.themeClasses,\n }\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.listItemGroup\n )\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('avatar')) {\n removed('avatar', this)\n }\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n genAttrs () {\n const attrs: Record = {\n 'aria-disabled': this.disabled ? true : undefined,\n tabindex: this.isClickable && !this.disabled ? 0 : -1,\n ...this.$attrs,\n }\n\n if (this.$attrs.hasOwnProperty('role')) {\n // do nothing, role already provided\n } else if (this.isInNav) {\n // do nothing, role is inherit\n } else if (this.isInGroup) {\n attrs.role = 'option'\n attrs['aria-selected'] = String(this.isActive)\n } else if (this.isInMenu) {\n attrs.role = this.isClickable ? 'menuitem' : undefined\n attrs.id = attrs.id || `list-item-${this._uid}`\n } else if (this.isInList) {\n attrs.role = 'listitem'\n }\n\n return attrs\n },\n toggle () {\n if (this.to && this.inputValue === undefined) {\n this.isActive = !this.isActive\n }\n this.$emit('change')\n },\n },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n if (!this.disabled) {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n }\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = getSlot(this, 'default', {\n active: this.isActive,\n toggle: this.toggle,\n })\n\n return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-action',\n\n functional: true,\n\n render (h, { data, children = [] }): VNode {\n data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n const filteredChild = children.filter(VNode => {\n return VNode.isComment === false && VNode.text !== ' '\n })\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n return h('div', data, children)\n },\n})\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n name: 'v-list-item-avatar',\n\n props: {\n horizontal: Boolean,\n size: {\n type: [Number, String],\n default: 40,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-item__avatar--horizontal': this.horizontal,\n ...VAvatar.options.computed.classes.call(this),\n 'v-avatar--tile': this.tile || this.horizontal,\n }\n },\n },\n\n render (h): VNode {\n const render = VAvatar.options.render.call(this, h)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-list-item__avatar'\n\n return render\n },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItemGroup,\n Colorable\n).extend({\n name: 'v-list-item-group',\n\n provide () {\n return {\n isInGroup: true,\n listItemGroup: this,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-list-item-group': true,\n }\n },\n },\n\n methods: {\n genData (): object {\n return this.setTextColor(this.color, {\n ...BaseItemGroup.options.methods.genData.call(this),\n attrs: {\n role: 'listbox',\n },\n })\n },\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-icon',\n\n functional: true,\n\n render (h, { data, children }): VNode {\n data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n return h('div', data, children)\n },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemAvatar,\n VListItemIcon,\n VListItemGroup,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemActionText,\n VListItemAvatar,\n VListItemContent,\n VListItemGroup,\n VListItemIcon,\n VListItemSubtitle,\n VListItemTitle,\n },\n}\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-main',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-main',\n style: this.styles,\n ref: 'main',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-main__wrap' },\n getSlot(this),\n ),\n ])\n },\n})\n","import VMain from './VMain'\n\nexport { VMain }\n\nexport default VMain\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData, PropType } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n contentProps: {\n type: Object as PropType>,\n default: () => ({}),\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n ...this.contentProps,\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.disableKeys) return\n\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n mouseenter: () => (this.isMouseover = true),\n mouseleave: () => (this.isMouseover = false),\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, getSlot(this))\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.miniVariant ? this.miniVariantWidth : this.width)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n","import VNavigationDrawer from './VNavigationDrawer'\n\nexport { VNavigationDrawer }\nexport default VNavigationDrawer\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VOtpInput.sass'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VInput,\n)\n\ninterface options extends InstanceType {\n $refs: {\n input: HTMLInputElement[]\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-otp-input',\n\n directives: {\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n length: {\n type: [Number, String],\n default: 6,\n },\n type: {\n type: String,\n default: 'text',\n },\n plain: Boolean,\n },\n\n data: () => ({\n initialValue: null,\n isBooted: false,\n otp: [] as string[],\n }),\n\n computed: {\n outlined (): Boolean {\n return !this.plain\n },\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n ...VTextField.options.computed.classes.call(this),\n 'v-otp-input--plain': this.plain,\n }\n },\n },\n\n watch: {\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n this.otp = val?.split('') || []\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n this.otp = this.internalValue?.split('') || []\n },\n\n mounted () {\n requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n /** @public */\n focus (e: Event, otpIdx: number) {\n this.onFocus(e, otpIdx || 0)\n },\n genInputSlot (otpIdx: number) {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: () => this.onClick(otpIdx),\n mousedown: (e: Event) => this.onMouseDown(e, otpIdx),\n mouseup: (e: Event) => this.onMouseUp(e, otpIdx),\n },\n }), [this.genDefaultSlot(otpIdx)])\n },\n genControl (otpIdx: number) {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n }, [\n this.genInputSlot(otpIdx),\n ])\n },\n genDefaultSlot (otpIdx: number) {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(otpIdx),\n ]\n },\n genContent () {\n return Array.from({ length: +this.length }, (_, i) => {\n return this.$createElement('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), [this.genControl(i)])\n })\n },\n genFieldset () {\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLegend () {\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n })\n\n return this.$createElement('legend', {\n style: {\n width: '0px',\n },\n }, [span])\n },\n genInput (otpIdx: number) {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: this.otp[otpIdx],\n min: this.type === 'number' ? 0 : null,\n },\n attrs: {\n ...this.attrs$,\n autocomplete: 'one-time-code',\n disabled: this.isDisabled,\n readonly: this.isReadonly,\n type: this.type,\n id: `${this.computedId}--${otpIdx}`,\n class: `otp-field-box--${otpIdx}`,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: (e: Event) => this.onInput(e, otpIdx),\n focus: (e: Event) => this.onFocus(e, otpIdx),\n keydown: this.onKeyDown,\n keyup: (e: KeyboardEvent) => this.onKeyUp(e, otpIdx),\n }),\n ref: 'input',\n refInFor: true,\n })\n },\n genTextFieldSlot (otpIdx: number): VNode {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genInput(otpIdx),\n ])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick (otpIdx: number) {\n if (this.isFocused || this.isDisabled || !this.$refs.input[otpIdx]) return\n\n this.onFocus(undefined, otpIdx)\n },\n onFocus (e?: Event, otpIdx?: number) {\n e?.preventDefault()\n e?.stopPropagation()\n const elements = this.$refs.input as HTMLInputElement[]\n const ref = this.$refs.input && elements[otpIdx || 0]\n if (!ref) return\n\n if (document.activeElement !== ref) {\n ref.focus()\n return ref.select()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n ref.select()\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event, index: number) {\n const maxCursor = +this.length - 1\n\n const target = e.target as HTMLInputElement\n const value = target.value\n const inputDataArray = value?.split('') || []\n\n const newOtp: string[] = [...this.otp]\n for (let i = 0; i < inputDataArray.length; i++) {\n const appIdx = index + i\n if (appIdx > maxCursor) break\n newOtp[appIdx] = inputDataArray[i].toString()\n }\n if (!inputDataArray.length) {\n newOtp.splice(index, 1)\n }\n\n this.otp = newOtp\n this.internalValue = this.otp.join('')\n\n if (index + inputDataArray.length >= +this.length) {\n this.onCompleted()\n this.clearFocus(index)\n } else if (inputDataArray.length) {\n this.changeFocus(index + inputDataArray.length)\n }\n },\n clearFocus (index: number) {\n const input = this.$refs.input[index] as HTMLInputElement\n input.blur()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.enter) {\n this.$emit('change', this.internalValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event, otpIdx: number) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input[otpIdx]) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event, otpIdx: number) {\n if (this.hasMouseDown) this.focus(e, otpIdx)\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n changeFocus (index: number) {\n this.onFocus(undefined, index || 0)\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onKeyUp (event: KeyboardEvent, index: number) {\n event.preventDefault()\n const eventKey = event.key\n if (['Tab', 'Shift', 'Meta', 'Control', 'Alt'].includes(eventKey)) {\n return\n }\n if (['Delete'].includes(eventKey)) {\n return\n }\n if (eventKey === 'ArrowLeft' || (eventKey === 'Backspace' && !this.otp[index])) {\n return index > 0 && this.changeFocus(index - 1)\n }\n if (eventKey === 'ArrowRight') {\n return index + 1 < +this.length && this.changeFocus(index + 1)\n }\n },\n onCompleted () {\n const rsp = this.otp.join('')\n if (rsp.length === +this.length) {\n this.$emit('finish', rsp)\n }\n },\n },\n render (h): VNode {\n return h('div', {\n staticClass: 'v-otp-input',\n class: this.themeClasses,\n }, this.genContent())\n },\n})\n","import VOtpInput from './VOtpInput'\n\nexport { VOtpInput }\nexport default VOtpInput\n","// Styles\nimport './VOverflowBtn.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete'\nimport VTextField from '../VTextField/VTextField'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-overflow-btn',\n\n props: {\n editable: Boolean,\n segmented: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...VAutocomplete.options.computed.classes.call(this),\n 'v-overflow-btn': true,\n 'v-overflow-btn--segmented': this.segmented,\n 'v-overflow-btn--editable': this.editable,\n }\n },\n isAnyValueAllowed (): boolean {\n return this.editable ||\n VAutocomplete.options.computed.isAnyValueAllowed.call(this)\n },\n isSingle (): true {\n return true\n },\n computedItems (): object[] {\n return this.segmented ? this.allItems : this.filteredItems\n },\n labelValue (): boolean {\n return (this.isFocused && !this.persistentPlaceholder) || this.isLabelActive\n },\n },\n\n methods: {\n genSelections () {\n return this.editable\n ? VAutocomplete.options.methods.genSelections.call(this)\n : VSelect.options.methods.genSelections.call(this) // Override v-autocomplete's override\n },\n genCommaSelection (item: any, index: number, last: boolean) {\n return this.segmented\n ? this.genSegmentedBtn(item)\n : VSelect.options.methods.genCommaSelection.call(this, item, index, last)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = input.data || {}\n input.data.domProps!.value = this.editable ? this.internalSearch : ''\n input.data.attrs!.readonly = !this.isAnyValueAllowed\n\n return input\n },\n genLabel () {\n if (this.editable && this.isFocused) return null\n\n const label = VTextField.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label.data = label.data || {}\n\n // Reset previously set styles from parent\n label.data.style = {}\n\n return label\n },\n genSegmentedBtn (item: any) {\n const itemValue = this.getValue(item)\n const itemObj = this.computedItems.find(i => this.getValue(i) === itemValue) || item\n\n if (!itemObj.text || !itemObj.callback) {\n consoleWarn('When using \"segmented\" prop without a selection slot, items must contain both a text and callback property', this)\n return null\n }\n\n return this.$createElement(VBtn, {\n props: { text: true },\n on: {\n click (e: Event) {\n e.stopPropagation()\n itemObj.callback(e)\n },\n },\n }, [itemObj.text])\n },\n updateValue (val: boolean) {\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n },\n})\n","import VOverflowBtn from './VOverflowBtn'\n\nexport { VOverflowBtn }\nexport default VOverflowBtn\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n value: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-overlay__scrim',\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return this.$createElement('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-overlay__content',\n }, getSlot(this))\n },\n },\n\n render (h): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n staticClass: 'v-overlay',\n on: this.$listeners,\n class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","import './VPagination.sass'\n\nimport VIcon from '../VIcon'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Intersectable from '../../mixins/intersectable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, CreateElement, VNodeChildrenArrayContents } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Intersectable({ onVisible: ['init'] }),\n Themeable\n).extend({\n name: 'v-pagination',\n\n directives: { Resize },\n\n props: {\n circle: Boolean,\n disabled: Boolean,\n navigationColor: String,\n navigationTextColor: String,\n length: {\n type: Number,\n default: 0,\n validator: (val: number) => val % 1 === 0,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n totalVisible: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n wrapperAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.wrapper',\n },\n },\n\n data () {\n return {\n maxButtons: 0,\n selected: null as number | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-pagination': true,\n 'v-pagination--circle': this.circle,\n 'v-pagination--disabled': this.disabled,\n ...this.themeClasses,\n }\n },\n\n items (): (string | number)[] {\n const totalVisible = parseInt(this.totalVisible, 10)\n\n if (totalVisible === 0 || isNaN(this.length) || this.length > Number.MAX_SAFE_INTEGER) {\n return []\n }\n\n const maxLength = Math.min(\n Math.max(0, totalVisible) || this.length,\n Math.max(0, this.maxButtons) || this.length,\n this.length\n )\n\n if (this.length <= maxLength) {\n return this.range(1, this.length)\n }\n\n const even = maxLength % 2 === 0 ? 1 : 0\n const left = Math.floor(maxLength / 2)\n const right = this.length - left + 1 + even\n\n if (this.value > left && this.value < right) {\n const firstItem = 1\n const lastItem = this.length\n const start = this.value - left + 2\n const end = this.value + left - 2 - even\n const secondItem = start - 1 === firstItem + 1 ? 2 : '...'\n const beforeLastItem = end + 1 === lastItem - 1 ? end + 1 : '...'\n\n return [1, secondItem, ...this.range(start, end), beforeLastItem, this.length]\n } else if (this.value === left) {\n const end = this.value + left - 1 - even\n return [...this.range(1, end), '...', this.length]\n } else if (this.value === right) {\n const start = this.value - left + 1\n return [1, '...', ...this.range(start, this.length)]\n } else {\n return [\n ...this.range(1, left),\n '...',\n ...this.range(right, this.length),\n ]\n }\n },\n },\n\n watch: {\n value () {\n this.init()\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n init () {\n this.selected = null\n\n this.onResize()\n this.$nextTick(this.onResize)\n // TODO: Change this (f75dee3a, cbdf7caa)\n setTimeout(() => (this.selected = this.value), 100)\n },\n onResize () {\n const width = this.$el && this.$el.parentElement\n ? this.$el.parentElement.clientWidth\n : window.innerWidth\n\n this.maxButtons = Math.floor((width - 96) / 42)\n },\n next (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value + 1)\n this.$emit('next')\n },\n previous (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value - 1)\n this.$emit('previous')\n },\n range (from: number, to: number) {\n const range = []\n\n from = from > 0 ? from : 1\n\n for (let i = from; i <= to; i++) {\n range.push(i)\n }\n\n return range\n },\n genIcon (h: CreateElement, icon: string, disabled: boolean, fn: EventListener, label: String): VNode {\n return h('li', [\n h('button',\n this.setBackgroundColor(this.navigationColor, {\n staticClass: 'v-pagination__navigation',\n class: {\n 'v-pagination__navigation--disabled': disabled,\n },\n attrs: {\n disabled,\n type: 'button',\n 'aria-label': label,\n },\n on: disabled ? {} : { click: fn },\n }),\n [h(VIcon, { props: { color: this.navigationTextColor } }, [icon])]\n ),\n ])\n },\n genItem (h: CreateElement, i: string | number): VNode {\n const color: string | false = (i === this.value) && (this.color || 'primary')\n const isCurrentPage = i === this.value\n const ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel\n\n return h('button', this.setBackgroundColor(color, {\n staticClass: 'v-pagination__item',\n class: {\n 'v-pagination__item--active': i === this.value,\n },\n attrs: {\n type: 'button',\n 'aria-current': isCurrentPage,\n 'aria-label': this.$vuetify.lang.t(ariaLabel, i),\n },\n on: {\n click: () => this.$emit('input', i),\n },\n }), [i.toString()])\n },\n genItems (h: CreateElement): VNode[] {\n return this.items.map((i, index) => {\n return h('li', { key: index }, [\n isNaN(Number(i)) ? h('span', { class: 'v-pagination__more' }, [i.toString()]) : this.genItem(h, i),\n ])\n })\n },\n genList (h: CreateElement, children: VNodeChildrenArrayContents): VNode {\n return h('ul', {\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n class: this.classes,\n }, children)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genIcon(h,\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon,\n this.value <= 1,\n this.previous,\n this.$vuetify.lang.t(this.previousAriaLabel)),\n this.genItems(h),\n this.genIcon(h,\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon,\n this.value >= this.length,\n this.next,\n this.$vuetify.lang.t(this.nextAriaLabel)),\n ]\n\n return h('nav', {\n attrs: {\n role: 'navigation',\n 'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel),\n },\n }, [this.genList(h, children)])\n },\n})\n","import VPagination from './VPagination'\n\nexport { VPagination }\nexport default VPagination\n","// Style\nimport './VParallax.sass'\n\n// Mixins\nimport Translatable from '../../mixins/translatable'\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue/types/vnode'\n\nconst baseMixins = mixins(\n Translatable\n)\ninterface options extends InstanceType {\n $refs: {\n img: HTMLImageElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-parallax',\n\n props: {\n alt: {\n type: String,\n default: '',\n },\n height: {\n type: [String, Number],\n default: 500,\n },\n src: String,\n srcset: String,\n },\n\n data: () => ({\n isBooted: false,\n }),\n\n computed: {\n styles (): object {\n return {\n display: 'block',\n opacity: this.isBooted ? 1 : 0,\n transform: `translate(-50%, ${this.parallax}px)`,\n }\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n const img = this.$refs.img\n\n if (!img) return\n\n if (img.complete) {\n this.translate()\n this.listeners()\n } else {\n img.addEventListener('load', () => {\n this.translate()\n this.listeners()\n }, false)\n }\n\n this.isBooted = true\n },\n objHeight () {\n return this.$refs.img.naturalHeight\n },\n },\n\n render (h): VNode {\n const imgData: VNodeData = {\n staticClass: 'v-parallax__image',\n style: this.styles,\n attrs: {\n src: this.src,\n srcset: this.srcset,\n alt: this.alt,\n },\n ref: 'img',\n }\n\n const container = h('div', {\n staticClass: 'v-parallax__image-container',\n }, [\n h('img', imgData),\n ])\n\n const content = h('div', {\n staticClass: 'v-parallax__content',\n }, getSlot(this))\n\n return h('div', {\n staticClass: 'v-parallax',\n style: {\n height: `${this.height}px`,\n },\n on: this.$listeners,\n }, [container, content])\n },\n})\n","import VParallax from './VParallax'\n\nexport { VParallax }\nexport default VParallax\n","import './VPicker.sass'\nimport '../VCard/VCard.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Elevatable,\n Themeable\n).extend({\n name: 'v-picker',\n\n props: {\n flat: Boolean,\n fullWidth: Boolean,\n landscape: Boolean,\n noTitle: Boolean,\n transition: {\n type: String,\n default: 'fade-transition',\n },\n width: {\n type: [Number, String],\n default: 290,\n },\n },\n\n computed: {\n computedTitleColor (): string | false {\n const defaultTitleColor = this.isDark ? false : (this.color || 'primary')\n return this.color || defaultTitleColor\n },\n },\n\n methods: {\n genTitle () {\n return this.$createElement('div', this.setBackgroundColor(this.computedTitleColor, {\n staticClass: 'v-picker__title',\n class: {\n 'v-picker__title--landscape': this.landscape,\n },\n }), getSlot(this, 'title'))\n },\n genBodyTransition () {\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, getSlot(this))\n },\n genBody () {\n return this.$createElement('div', {\n staticClass: 'v-picker__body',\n class: {\n 'v-picker__body--no-title': this.noTitle,\n ...this.themeClasses,\n },\n style: this.fullWidth ? undefined : {\n width: convertToUnit(this.width),\n },\n }, [\n this.genBodyTransition(),\n ])\n },\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-picker__actions v-card__actions',\n class: {\n 'v-picker__actions--no-title': this.noTitle,\n },\n }, getSlot(this, 'actions'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-picker v-card',\n class: {\n 'v-picker--flat': this.flat,\n 'v-picker--landscape': this.landscape,\n 'v-picker--full-width': this.fullWidth,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n }, [\n this.$slots.title ? this.genTitle() : null,\n this.genBody(),\n this.$slots.actions ? this.genActions() : null,\n ])\n },\n})\n","import VPicker from './VPicker'\n\nexport { VPicker }\nexport default VPicker\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, getSlot(this))\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","// Styles\nimport './VRadio.sass'\n\n// Components\nimport VRadioGroup from './VRadioGroup'\nimport VLabel from '../VLabel'\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Rippleable from '../../mixins/rippleable'\nimport Themeable from '../../mixins/themeable'\nimport Selectable, { prevent } from '../../mixins/selectable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { mergeListeners } from '../../util/mergeData'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Colorable,\n Rippleable,\n GroupableFactory('radioGroup'),\n Themeable\n)\n\ninterface options extends InstanceType {\n radioGroup: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-radio',\n\n inheritAttrs: false,\n\n props: {\n disabled: {\n type: Boolean,\n default: null,\n },\n id: String,\n label: String,\n name: String,\n offIcon: {\n type: String,\n default: '$radioOff',\n },\n onIcon: {\n type: String,\n default: '$radioOn',\n },\n readonly: {\n type: Boolean,\n default: null,\n },\n value: {\n default: null,\n },\n },\n\n data: () => ({\n isFocused: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-radio--is-disabled': this.isDisabled,\n 'v-radio--is-focused': this.isFocused,\n ...this.themeClasses,\n ...this.groupClasses,\n }\n },\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n return Selectable.options.computed.computedColor.call(this)\n },\n computedIcon (): string {\n return this.isActive\n ? this.onIcon\n : this.offIcon\n },\n computedId (): string {\n return VInput.options.computed.computedId.call(this)\n },\n hasLabel: VInput.options.computed.hasLabel,\n hasState (): boolean {\n return (this.radioGroup || {}).hasState\n },\n isDisabled (): boolean {\n return this.disabled ?? (\n !!this.radioGroup &&\n this.radioGroup.isDisabled\n )\n },\n isReadonly (): boolean {\n return this.readonly ?? (\n !!this.radioGroup &&\n this.radioGroup.isReadonly\n )\n },\n computedName (): string {\n if (this.name || !this.radioGroup) {\n return this.name\n }\n\n return this.radioGroup.name || `radio-${this.radioGroup._uid}`\n },\n rippleState (): string | undefined {\n return Selectable.options.computed.rippleState.call(this)\n },\n validationState (): string | undefined {\n return (this.radioGroup || {}).validationState || this.computedColor\n },\n },\n\n methods: {\n genInput (args: any) {\n // We can't actually use the mixin directly because\n // it's made for standalone components, but its\n // genInput method is exactly what we need\n return Selectable.options.methods.genInput.call(this, 'radio', args)\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n on: {\n // Label shouldn't cause the input to focus\n click: prevent,\n },\n attrs: {\n for: this.computedId,\n },\n props: {\n color: this.validationState,\n focused: this.hasState,\n },\n }, getSlot(this, 'label') || this.label)\n },\n genRadio () {\n const { title, ...radioAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.radioGroup && this.radioGroup.dense,\n },\n }), this.computedIcon),\n this.genInput({\n name: this.computedName,\n value: this.value,\n ...radioAttrs,\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n onFocus (e: Event) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: Event) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n onChange () {\n if (this.isDisabled || this.isReadonly || this.isActive) return\n\n this.toggle()\n },\n onKeydown: () => {}, // Override default with noop\n },\n\n render (h): VNode {\n const data: VNodeData = {\n staticClass: 'v-radio',\n class: this.classes,\n on: mergeListeners({\n click: this.onChange,\n }, this.listeners$),\n attrs: { title: this.attrs$.title },\n }\n\n return h('div', data, [\n this.genRadio(),\n this.genLabel(),\n ])\n },\n})\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VRadioGroup.sass'\n\n// Extensions\nimport VInput from '../VInput'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { PropType } from 'vue'\n\nconst baseMixins = mixins(\n BaseItemGroup,\n VInput\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-radio-group',\n\n provide () {\n return {\n radioGroup: this,\n }\n },\n\n props: {\n column: {\n type: Boolean,\n default: true,\n },\n height: {\n type: [Number, String],\n default: 'auto',\n },\n name: String,\n row: Boolean,\n // If no value set on VRadio\n // will match valueComparator\n // force default to null\n value: null as unknown as PropType,\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--radio-group': true,\n 'v-input--radio-group--column': this.column && !this.row,\n 'v-input--radio-group--row': this.row,\n }\n },\n },\n\n methods: {\n genDefaultSlot () {\n return this.$createElement('div', {\n staticClass: 'v-input--radio-group__input',\n attrs: {\n id: this.id,\n role: 'radiogroup',\n 'aria-labelledby': this.computedId,\n },\n }, VInput.options.methods.genDefaultSlot.call(this))\n },\n genInputSlot () {\n const render = VInput.options.methods.genInputSlot.call(this)\n\n delete render.data!.on!.click\n\n return render\n },\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return null\n\n label.data!.attrs!.id = this.computedId\n // WAI considers this an orphaned label\n delete label.data!.attrs!.for\n label.tag = 'legend'\n\n return label\n },\n onClick: BaseItemGroup.options.methods.onClick,\n },\n\n render (h) {\n const vnode = VInput.options.render.call(this, h)\n\n this._b(vnode.data!, 'div', this.attrs$)\n\n return vnode\n },\n})\n","import VRadioGroup from './VRadioGroup'\nimport VRadio from './VRadio'\n\nexport { VRadioGroup, VRadio }\n\nexport default {\n $_vuetify_subcomponents: {\n VRadioGroup,\n VRadio,\n },\n}\n","// Styles\nimport './VRangeSlider.sass'\n\n// Components\nimport VSlider from '../VSlider'\n\n// Helpers\nimport {\n addOnceEventListener,\n createRange,\n deepEqual,\n passiveSupported,\n} from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VSlider.extend({\n name: 'v-range-slider',\n\n props: {\n value: {\n type: Array,\n default: () => ([0, 0]),\n } as unknown as PropValidator<[number, number]>,\n },\n\n data () {\n return {\n activeThumb: null as null | number,\n lazyValue: this.value,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSlider.options.computed.classes.call(this),\n 'v-input--range-slider': true,\n }\n },\n internalValue: {\n get (): number[] {\n return this.lazyValue\n },\n set (val: number[]) {\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n let value = val.map((v = 0) => this.roundValue(Math.min(Math.max(v, this.minValue), this.maxValue)))\n\n // Switch values if range and wrong order\n if (value[0] > value[1] || value[1] < value[0]) {\n if (this.activeThumb !== null) {\n const toFocus = this.activeThumb === 1 ? 0 : 1\n const el = this.$refs[`thumb_${toFocus}`] as HTMLElement\n el.focus()\n }\n value = [value[1], value[0]]\n }\n\n this.lazyValue = value\n if (!deepEqual(value, this.value)) this.$emit('input', value)\n\n this.validate()\n },\n },\n inputWidth (): number[] {\n return this.internalValue.map((v: number) => (\n this.roundValue(v) - this.minValue) / (this.maxValue - this.minValue) * 100\n )\n },\n },\n\n methods: {\n getTrackStyle (startLength: number, endLength: number, startPadding = 0, endPadding = 0) {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'top' : 'bottom' : this.$vuetify.rtl ? 'right' : 'left'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = `calc(${startLength}% + ${startPadding}px)`\n const end = `calc(${endLength}% + ${endPadding}px)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n getIndexOfClosestValue (arr: number[], v: number) {\n if (Math.abs(arr[0] - v) < Math.abs(arr[1] - v)) return 0\n else return 1\n },\n genInput () {\n return createRange(2).map(i => {\n const input = VSlider.options.methods.genInput.call(this)\n\n input.data = input.data || {}\n input.data.attrs = input.data.attrs || {}\n input.data.attrs.value = this.internalValue[i]\n input.data.attrs.id = `input-${i ? 'max' : 'min'}-${this._uid}`\n\n return input\n })\n },\n genTrackContainer () {\n const children = []\n\n const padding = this.isDisabled ? 10 : 0\n const sections: { class: string, color: string | undefined, styles: [number, number, number, number] }[] = [\n {\n class: 'v-slider__track-background',\n color: this.computedTrackColor,\n styles: [0, this.inputWidth[0], 0, -padding],\n },\n {\n class: this.isDisabled ? 'v-slider__track-background' : 'v-slider__track-fill',\n color: this.isDisabled ? this.computedTrackColor : this.computedTrackFillColor,\n styles: [this.inputWidth[0], Math.abs(this.inputWidth[1] - this.inputWidth[0]), padding, padding * -2],\n },\n {\n class: 'v-slider__track-background',\n color: this.computedTrackColor,\n styles: [this.inputWidth[1], Math.abs(100 - this.inputWidth[1]), padding, -padding],\n },\n ]\n\n if (this.$vuetify.rtl) sections.reverse()\n\n children.push(...sections.map(section => this.$createElement('div', this.setBackgroundColor(section.color, {\n staticClass: section.class,\n style: this.getTrackStyle(...section.styles),\n }))))\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genChildren () {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n createRange(2).map(index => {\n const value = this.internalValue[index]\n const onFocus = (e: Event) => {\n this.isFocused = true\n this.activeThumb = index\n\n this.$emit('focus', e)\n }\n\n const onBlur = (e: Event) => {\n this.isFocused = false\n this.activeThumb = null\n\n this.$emit('blur', e)\n }\n\n const valueWidth = this.inputWidth[index]\n const isActive = this.isActive && this.activeThumb === index\n const isFocused = this.isFocused && this.activeThumb === index\n\n return this.genThumbContainer(value, valueWidth, isActive, isFocused, onFocus, onBlur, `thumb_${index}`)\n }),\n ]\n },\n reevaluateSelected (value: number) {\n this.activeThumb = this.getIndexOfClosestValue(this.internalValue, value)\n const refName = `thumb_${this.activeThumb}`\n const thumbRef = this.$refs[refName] as HTMLElement\n thumbRef.focus()\n },\n onSliderMouseDown (e: MouseEvent | TouchEvent) {\n const value = this.parseMouseMove(e)\n\n this.reevaluateSelected(value)\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderClick (e: MouseEvent) {\n if (!this.isActive) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n\n const value = this.parseMouseMove(e)\n\n this.reevaluateSelected(value)\n\n this.setInternalValue(value)\n\n this.$emit('change', this.internalValue)\n }\n },\n onMouseMove (e: MouseEvent | TouchEvent) {\n const value = this.parseMouseMove(e)\n\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n\n if (this.activeThumb === null) {\n this.activeThumb = this.getIndexOfClosestValue(this.internalValue, value)\n }\n\n this.setInternalValue(value)\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.activeThumb === null) return\n\n const value = this.parseKeyDown(e, this.internalValue[this.activeThumb])\n\n if (value == null) return\n\n this.setInternalValue(value)\n this.$emit('change', this.internalValue)\n },\n setInternalValue (value: number) {\n this.internalValue = this.internalValue.map((v: number, i: number) => {\n if (i === this.activeThumb) return value\n else return Number(v)\n })\n },\n },\n})\n","import VRangeSlider from './VRangeSlider'\n\nexport { VRangeSlider }\nexport default VRangeSlider\n","// Styles\nimport './VRating.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Sizeable from '../../mixins/sizeable'\nimport Rippleable from '../../mixins/rippleable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { createRange } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, VNodeChildren } from 'vue'\n\ntype ItemSlotProps = {\n index: number\n value: number\n isFilled: boolean\n isHalfFilled?: boolean | undefined\n isHovered: boolean\n isHalfHovered?: boolean | undefined\n click: Function\n}\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Delayable,\n Rippleable,\n Sizeable,\n Themeable\n).extend({\n name: 'v-rating',\n\n props: {\n backgroundColor: {\n type: String,\n default: 'accent',\n },\n color: {\n type: String,\n default: 'primary',\n },\n clearable: Boolean,\n dense: Boolean,\n emptyIcon: {\n type: String,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: String,\n default: '$ratingFull',\n },\n halfIcon: {\n type: String,\n default: '$ratingHalf',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n size: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n iconLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.icon',\n },\n },\n\n data () {\n return {\n hoverIndex: -1,\n internalValue: this.value,\n }\n },\n\n computed: {\n directives (): VNodeDirective[] {\n if (this.readonly || !this.ripple) return []\n\n return [{\n name: 'ripple',\n value: { circle: true },\n } as VNodeDirective]\n },\n iconProps (): object {\n const {\n dark,\n large,\n light,\n medium,\n small,\n size,\n xLarge,\n xSmall,\n } = this.$props\n\n return {\n dark,\n large,\n light,\n medium,\n size,\n small,\n xLarge,\n xSmall,\n }\n },\n isHovering (): boolean {\n return this.hover && this.hoverIndex >= 0\n },\n },\n\n watch: {\n internalValue (val) {\n val !== this.value && this.$emit('input', val)\n },\n value (val) {\n this.internalValue = val\n },\n },\n\n methods: {\n createClickFn (i: number): Function {\n return (e: MouseEvent) => {\n if (this.readonly) return\n\n const newValue = this.genHoverIndex(e, i)\n if (this.clearable && this.internalValue === newValue) {\n this.internalValue = 0\n } else {\n this.internalValue = newValue\n }\n }\n },\n createProps (i: number): ItemSlotProps {\n const props: ItemSlotProps = {\n index: i,\n value: this.internalValue,\n click: this.createClickFn(i),\n isFilled: Math.floor(this.internalValue) > i,\n isHovered: Math.floor(this.hoverIndex) > i,\n }\n\n if (this.halfIncrements) {\n props.isHalfHovered = !props.isHovered && (this.hoverIndex - i) % 1 > 0\n props.isHalfFilled = !props.isFilled && (this.internalValue - i) % 1 > 0\n }\n\n return props\n },\n genHoverIndex (e: MouseEvent, i: number) {\n let isHalf = this.isHalfEvent(e)\n\n if (\n this.halfIncrements &&\n this.$vuetify.rtl\n ) {\n isHalf = !isHalf\n }\n\n return i + (isHalf ? 0.5 : 1)\n },\n getIconName (props: ItemSlotProps): string {\n const isFull = this.isHovering ? props.isHovered : props.isFilled\n const isHalf = this.isHovering ? props.isHalfHovered : props.isHalfFilled\n\n return isFull ? this.fullIcon : isHalf ? this.halfIcon : this.emptyIcon\n },\n getColor (props: ItemSlotProps): string {\n if (this.isHovering) {\n if (props.isHovered || props.isHalfHovered) return this.color\n } else {\n if (props.isFilled || props.isHalfFilled) return this.color\n }\n\n return this.backgroundColor\n },\n isHalfEvent (e: MouseEvent): boolean {\n if (this.halfIncrements) {\n const rect = e.target && (e.target as HTMLElement).getBoundingClientRect()\n if (rect && (e.pageX - rect.left) < rect.width / 2) return true\n }\n\n return false\n },\n onMouseEnter (e: MouseEvent, i: number): void {\n this.runDelay('open', () => {\n this.hoverIndex = this.genHoverIndex(e, i)\n })\n },\n onMouseLeave (): void {\n this.runDelay('close', () => (this.hoverIndex = -1))\n },\n genItem (i: number): VNode | VNodeChildren | string {\n const props = this.createProps(i)\n\n if (this.$scopedSlots.item) return this.$scopedSlots.item(props)\n\n const listeners: Record = {\n click: props.click,\n }\n\n if (this.hover) {\n listeners.mouseenter = (e: MouseEvent) => this.onMouseEnter(e, i)\n listeners.mouseleave = this.onMouseLeave\n\n if (this.halfIncrements) {\n listeners.mousemove = (e: MouseEvent) => this.onMouseEnter(e, i)\n }\n }\n\n return this.$createElement(VIcon, this.setTextColor(this.getColor(props), {\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.iconLabel, i + 1, Number(this.length)),\n },\n directives: this.directives,\n props: this.iconProps,\n on: listeners,\n }), [this.getIconName(props)])\n },\n },\n\n render (h): VNode {\n const children = createRange(Number(this.length)).map(i => this.genItem(i))\n\n return h('div', {\n staticClass: 'v-rating',\n class: {\n 'v-rating--readonly': this.readonly,\n 'v-rating--dense': this.dense,\n },\n }, children)\n },\n})\n","import VRating from './VRating'\n\nexport { VRating }\nexport default VRating\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, getSlot(this))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n closeOnClick: false,\n closeOnContentClick: false,\n disableKeys: true,\n openOnClick: false,\n maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n VTextField,\n Comparable,\n Dependent,\n Filterable\n)\n\ninterface options extends InstanceType {\n $refs: {\n menu: InstanceType\n content: HTMLElement\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n 'append-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-select',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n appendIcon: {\n type: String,\n default: '$dropdown',\n },\n attach: {\n type: null as unknown as PropType,\n default: false,\n },\n cacheItems: Boolean,\n chips: Boolean,\n clearable: Boolean,\n deletableChips: Boolean,\n disableLookup: Boolean,\n eager: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemColor: {\n type: String,\n default: 'primary',\n },\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n menuProps: {\n type: [String, Array, Object],\n default: () => defaultMenuProps,\n },\n multiple: Boolean,\n openOnClear: Boolean,\n returnObject: Boolean,\n smallChips: Boolean,\n },\n\n data () {\n return {\n cachedItems: this.cacheItems ? this.items : [],\n menuIsBooted: false,\n isMenuActive: false,\n lastItem: 20,\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n lazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n selectedIndex: -1,\n selectedItems: [] as any[],\n keyboardLookupPrefix: '',\n keyboardLookupLastTime: 0,\n }\n },\n\n computed: {\n /* All items that the select has */\n allItems (): object[] {\n return this.filterDuplicates(this.cachedItems.concat(this.items))\n },\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-select': true,\n 'v-select--chips': this.hasChips,\n 'v-select--chips--small': this.smallChips,\n 'v-select--is-menu-active': this.isMenuActive,\n 'v-select--is-multi': this.multiple,\n }\n },\n /* Used by other components to overwrite */\n computedItems (): object[] {\n return this.allItems\n },\n computedOwns (): string {\n return `list-${this._uid}`\n },\n computedCounterValue (): number {\n const value = this.multiple\n ? this.selectedItems\n : (this.getText(this.selectedItems[0]) ?? '').toString()\n\n if (typeof this.counterValue === 'function') {\n return this.counterValue(value)\n }\n\n return value.length\n },\n directives (): VNodeDirective[] | undefined {\n return this.isFocused ? [{\n name: 'click-outside',\n value: {\n handler: this.blur,\n closeConditional: this.closeConditional,\n include: () => this.getOpenDependentElements(),\n },\n }] : undefined\n },\n dynamicHeight () {\n return 'auto'\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n hasSlot (): boolean {\n return Boolean(this.hasChips || this.$scopedSlots.selection)\n },\n isDirty (): boolean {\n return this.selectedItems.length > 0\n },\n listData (): object {\n const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n const attrs = scopeId ? {\n [scopeId]: true,\n } : {}\n\n return {\n attrs: {\n ...attrs,\n id: this.computedOwns,\n },\n props: {\n action: this.multiple,\n color: this.itemColor,\n dense: this.dense,\n hideSelected: this.hideSelected,\n items: this.virtualizedItems,\n itemDisabled: this.itemDisabled,\n itemText: this.itemText,\n itemValue: this.itemValue,\n noDataText: this.$vuetify.lang.t(this.noDataText),\n selectedItems: this.selectedItems,\n },\n on: {\n select: this.selectItem,\n },\n scopedSlots: {\n item: this.$scopedSlots.item,\n },\n }\n },\n staticList (): VNode {\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n consoleError('assert: staticList should not be called if slots are used')\n }\n\n return this.$createElement(VSelectList, this.listData)\n },\n virtualizedItems (): object[] {\n return (this.$_menuProps as any).auto\n ? this.computedItems\n : this.computedItems.slice(0, this.lastItem)\n },\n menuCanShow: () => true,\n $_menuProps (): object {\n let normalisedProps = typeof this.menuProps === 'string'\n ? this.menuProps.split(',')\n : this.menuProps\n\n if (Array.isArray(normalisedProps)) {\n normalisedProps = normalisedProps.reduce((acc, p) => {\n acc[p.trim()] = true\n return acc\n }, {})\n }\n\n return {\n ...defaultMenuProps,\n eager: this.eager,\n value: this.menuCanShow && this.isMenuActive,\n nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n ...normalisedProps,\n }\n },\n },\n\n watch: {\n internalValue (val) {\n this.initialValue = val\n this.setSelectedItems()\n\n if (this.multiple) {\n this.$nextTick(() => {\n this.$refs.menu?.updateDimensions()\n })\n }\n if (this.hideSelected) {\n this.$nextTick(() => {\n this.onScroll()\n })\n }\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n },\n items: {\n immediate: true,\n handler (val) {\n if (this.cacheItems) {\n // Breaks vue-test-utils if\n // this isn't calculated\n // on the next tick\n this.$nextTick(() => {\n this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n })\n }\n\n this.setSelectedItems()\n },\n },\n },\n\n methods: {\n /** @public */\n blur (e?: Event) {\n VTextField.options.methods.blur.call(this, e)\n this.isMenuActive = false\n this.isFocused = false\n this.selectedIndex = -1\n this.setMenuIndex(-1)\n },\n /** @public */\n activateMenu () {\n if (\n !this.isInteractive ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : null)\n this.setMenuIndex(-1)\n this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n if (this.openOnClear) this.isMenuActive = true\n },\n closeConditional (e: Event) {\n if (!this.isMenuActive) return true\n\n return (\n !this._isDestroyed &&\n\n // Click originates from outside the menu content\n // Multiple selects don't close when an item is clicked\n (!this.getContent() ||\n !this.getContent().contains(e.target as Node)) &&\n\n // Click originates from outside the element\n this.$el &&\n !this.$el.contains(e.target as Node) &&\n e.target !== this.$el\n )\n },\n filterDuplicates (arr: any[]) {\n const uniqueValues = new Map()\n for (let index = 0; index < arr.length; ++index) {\n const item = arr[index]\n\n // Do not return null values if existant (#14421)\n if (item == null) {\n continue\n }\n // Do not deduplicate headers or dividers (#12517)\n if (item.header || item.divider) {\n uniqueValues.set(item, item)\n continue\n }\n\n const val = this.getValue(item)\n\n // TODO: comparator\n !uniqueValues.has(val) && uniqueValues.set(val, item)\n }\n return Array.from(uniqueValues.values())\n },\n findExistingIndex (item: object) {\n const itemValue = this.getValue(item)\n\n return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n },\n getContent () {\n return this.$refs.menu && this.$refs.menu.$refs.content\n },\n genChipSelection (item: object, index: number) {\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n const isInteractive = !isDisabled && this.isInteractive\n\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: { tabindex: -1 },\n props: {\n close: this.deletableChips && isInteractive,\n disabled: isDisabled,\n inputValue: index === this.selectedIndex,\n small: this.smallChips,\n },\n on: {\n click: (e: MouseEvent) => {\n if (!isInteractive) return\n\n e.stopPropagation()\n\n this.selectedIndex = index\n },\n 'click:close': () => this.onChipInput(item),\n },\n key: JSON.stringify(this.getValue(item)),\n }, this.getText(item))\n },\n genCommaSelection (item: object, index: number, last: boolean) {\n const color = index === this.selectedIndex && this.computedColor\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-select__selection v-select__selection--comma',\n class: {\n 'v-select__selection--disabled': isDisabled,\n },\n key: JSON.stringify(this.getValue(item)),\n }), `${this.getText(item)}${last ? '' : ', '}`)\n },\n genDefaultSlot (): (VNode | VNode[] | null)[] {\n const selections = this.genSelections()\n const input = this.genInput()\n\n // If the return is an empty array\n // push the input\n if (Array.isArray(selections)) {\n selections.push(input)\n // Otherwise push it into children\n } else {\n selections.children = selections.children || []\n selections.children.push(input)\n }\n\n return [\n this.genFieldset(),\n this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives,\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n selections,\n this.suffix ? this.genAffix('suffix') : null,\n this.genClearIcon(),\n this.genIconSlot(),\n this.genHiddenInput(),\n ]),\n this.genMenu(),\n this.genProgress(),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData?: VNodeData\n ) {\n const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n if (type === 'append') {\n // Don't allow the dropdown icon to be focused\n icon.children![0].data = mergeData(icon.children![0].data!, {\n attrs: {\n tabindex: icon.children![0].componentOptions!.listeners && '-1',\n 'aria-hidden': 'true',\n 'aria-label': undefined,\n },\n })\n }\n\n return icon\n },\n genInput (): VNode {\n const input = VTextField.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n\n input.data = mergeData(input.data!, {\n domProps: { value: null },\n attrs: {\n readonly: true,\n type: 'text',\n 'aria-readonly': String(this.isReadonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n placeholder: (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) ? this.placeholder : undefined,\n },\n on: { keypress: this.onKeyPress },\n })\n\n return input\n },\n genHiddenInput (): VNode {\n return this.$createElement('input', {\n domProps: { value: this.lazyValue },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name,\n },\n })\n },\n genInputSlot (): VNode {\n const render = VTextField.options.methods.genInputSlot.call(this)\n\n render.data!.attrs = {\n ...render.data!.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns,\n }\n\n return render\n },\n genList (): VNode {\n // If there's no slots, we can use a cached VNode to improve performance\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n return this.genListWithSlot()\n } else {\n return this.staticList\n }\n },\n genListWithSlot (): VNode {\n const slots = ['prepend-item', 'no-data', 'append-item']\n .filter(slotName => this.$slots[slotName])\n .map(slotName => this.$createElement('template', {\n slot: slotName,\n }, this.$slots[slotName]))\n // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n return this.$createElement(VSelectList, {\n ...this.listData,\n }, slots)\n },\n genMenu (): VNode {\n const props = this.$_menuProps as any\n props.activator = this.$refs['input-slot']\n\n if ('attach' in props) void 0\n else if (\n // TODO: make this a computed property or helper or something\n this.attach === '' || // If used as a boolean prop ()\n this.attach === true || // If bound to a boolean ()\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) {\n // Attach to root el so that\n // menu covers prepend/append icons\n props.attach = this.$el\n } else {\n props.attach = this.attach\n }\n\n return this.$createElement(VMenu, {\n attrs: { role: undefined },\n props,\n on: {\n input: (val: boolean) => {\n this.isMenuActive = val\n this.isFocused = val\n },\n scroll: this.onScroll,\n },\n ref: 'menu',\n }, [this.genList()])\n },\n genSelections (): VNode {\n let length = this.selectedItems.length\n const children = new Array(length)\n\n let genSelection\n if (this.$scopedSlots.selection) {\n genSelection = this.genSlotSelection\n } else if (this.hasChips) {\n genSelection = this.genChipSelection\n } else {\n genSelection = this.genCommaSelection\n }\n\n while (length--) {\n children[length] = genSelection(\n this.selectedItems[length],\n length,\n length === children.length - 1\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections',\n }, children)\n },\n genSlotSelection (item: object, index: number): VNode[] | undefined {\n return this.$scopedSlots.selection!({\n attrs: {\n class: 'v-chip--select',\n },\n parent: this,\n item,\n index,\n select: (e: Event) => {\n e.stopPropagation()\n this.selectedIndex = index\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive,\n })\n },\n getMenuIndex () {\n return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n },\n getDisabled (item: object) {\n return getPropertyFromItem(item, this.itemDisabled, false)\n },\n getText (item: object) {\n return getPropertyFromItem(item, this.itemText, item)\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n onBlur (e?: Event) {\n e && this.$emit('blur', e)\n },\n onChipInput (item: object) {\n if (this.multiple) this.selectItem(item)\n else this.setValue(null)\n // If all items have been deleted,\n // open `v-menu`\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true\n } else {\n this.isMenuActive = false\n }\n this.selectedIndex = -1\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n if (!this.isAppendInner(e.target)) {\n this.isMenuActive = true\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n this.$emit('focus')\n }\n\n this.$emit('click', e)\n },\n onEscDown (e: Event) {\n e.preventDefault()\n if (this.isMenuActive) {\n e.stopPropagation()\n this.isMenuActive = false\n }\n },\n onKeyPress (e: KeyboardEvent) {\n if (\n this.multiple ||\n !this.isInteractive ||\n this.disableLookup ||\n e.key.length > 1 ||\n e.ctrlKey || e.metaKey || e.altKey\n ) return\n\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n const now = performance.now()\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = ''\n }\n this.keyboardLookupPrefix += e.key.toLowerCase()\n this.keyboardLookupLastTime = now\n\n const index = this.allItems.findIndex(item => {\n const text = (this.getText(item) ?? '').toString()\n\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n })\n const item = this.allItems[index]\n if (index !== -1) {\n this.lastItem = Math.max(this.lastItem, index + 5)\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n const keyCode = e.keyCode\n const menu = this.$refs.menu\n\n this.$emit('keydown', e)\n\n if (!menu) return\n\n // If menu is active, allow default\n // listIndex change from menu\n if (this.isMenuActive && [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end, keyCodes.enter].includes(keyCode)) {\n this.$nextTick(() => {\n menu.changeListIndex(e)\n this.$emit('update:list-index', menu.listIndex)\n })\n }\n\n // If enter, space, open menu\n if ([\n keyCodes.enter,\n keyCodes.space,\n ].includes(keyCode)) this.activateMenu()\n\n // If menu is not active, up/down/home/end can do\n // one of 2 things. If multiple, opens the\n // menu, if not, will cycle through all\n // available options\n if (\n !this.isMenuActive &&\n [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n ) return this.onUpDown(e)\n\n // If escape deactivate the menu\n if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n // If tab - select item or close menu\n if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n // If space preventDefault\n if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n },\n onMenuActiveChange (val: boolean) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (\n (this.multiple && !val) ||\n this.getMenuIndex() > -1\n ) return\n\n const menu = this.$refs.menu\n\n if (!menu || !this.isDirty) return\n\n // When menu opens, set index of first active item\n this.$refs.menu.getTiles()\n for (let i = 0; i < menu.tiles.length; i++) {\n if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n this.setMenuIndex(i)\n break\n }\n }\n },\n onMouseUp (e: MouseEvent) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (\n this.hasMouseDown &&\n e.which !== 3 &&\n this.isInteractive\n ) {\n // If append inner is present\n // and the target is itself\n // or inside, toggle menu\n if (this.isAppendInner(e.target)) {\n this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n }\n }\n\n VTextField.options.methods.onMouseUp.call(this, e)\n },\n onScroll () {\n if (!this.isMenuActive) {\n requestAnimationFrame(() => {\n const content = this.getContent()\n if (content) content.scrollTop = 0\n })\n } else {\n if (this.lastItem > this.computedItems.length) return\n\n const showMoreItems = (\n this.getContent().scrollHeight -\n (this.getContent().scrollTop +\n this.getContent().clientHeight)\n ) < 200\n\n if (showMoreItems) {\n this.lastItem += 20\n }\n }\n },\n onSpaceDown (e: KeyboardEvent) {\n e.preventDefault()\n },\n onTabDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n const activeTile = menu.activeTile\n\n // An item that is selected by\n // menu-index should toggled\n if (\n !this.multiple &&\n activeTile &&\n this.isMenuActive\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n activeTile.click()\n } else {\n // If we make it here,\n // the user has no selected indexes\n // and is probably tabbing out\n this.blur(e)\n }\n },\n onUpDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n e.preventDefault()\n\n // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n if (this.multiple) return this.activateMenu()\n\n const keyCode = e.keyCode\n\n // Cycle through available values to achieve\n // select native behavior\n menu.isBooted = true\n\n window.requestAnimationFrame(() => {\n menu.getTiles()\n\n if (!menu.hasClickableTiles) return this.activateMenu()\n\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile()\n break\n case keyCodes.down:\n menu.nextTile()\n break\n case keyCodes.home:\n menu.firstTile()\n break\n case keyCodes.end:\n menu.lastTile()\n break\n }\n this.selectItem(this.allItems[this.getMenuIndex()])\n })\n },\n selectItem (item: object) {\n if (!this.multiple) {\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.isMenuActive = false\n } else {\n const internalValue = (this.internalValue || []).slice()\n const i = this.findExistingIndex(item)\n\n i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n this.setValue(internalValue.map((i: object) => {\n return this.returnObject ? i : this.getValue(i)\n }))\n\n // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) {\n this.setMenuIndex(-1)\n } else {\n const index = this.computedItems.indexOf(item)\n if (~index) {\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n }\n }\n },\n setMenuIndex (index: number) {\n this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n },\n setSelectedItems () {\n const selectedItems = []\n const values = !this.multiple || !Array.isArray(this.internalValue)\n ? [this.internalValue]\n : this.internalValue\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(\n this.getValue(v),\n this.getValue(value)\n ))\n\n if (index > -1) {\n selectedItems.push(this.allItems[index])\n }\n }\n\n this.selectedItems = selectedItems\n },\n setValue (value: any) {\n if (!this.valueComparator(value, this.internalValue)) {\n this.internalValue = value\n this.$emit('change', value)\n }\n },\n isAppendInner (target: any) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner']\n\n return appendInner && (appendInner === target || appendInner.contains(target))\n },\n },\n})\n","// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n VList,\n VListItem,\n VListItemAction,\n VListItemContent,\n VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { getPropertyFromItem } from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null as unknown as PropType,\n selectedItems: {\n type: Array,\n default: () => [],\n } as PropValidator,\n },\n\n computed: {\n parsedItems (): any[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n tileActiveClass (): string {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n },\n staticNoDataTile (): VNode {\n const tile = {\n attrs: {\n role: undefined,\n },\n on: {\n mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n },\n }\n\n return this.$createElement(VListItem, tile, [\n this.genTileContent(this.noDataText),\n ])\n },\n },\n\n methods: {\n genAction (item: object, inputValue: any): VNode {\n return this.$createElement(VListItemAction, [\n this.$createElement(VSimpleCheckbox, {\n props: {\n color: this.color,\n value: inputValue,\n ripple: false,\n },\n on: {\n input: () => this.$emit('select', item),\n },\n }),\n ])\n },\n genDivider (props: { [key: string]: any }) {\n return this.$createElement(VDivider, { props })\n },\n genFilteredText (text: string) {\n text = text || ''\n\n if (!this.searchInput || this.noFilter) return text\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return [start, this.genHighlight(middle), end]\n },\n genHeader (props: { [key: string]: any }): VNode {\n return this.$createElement(VSubheader, { props }, props.header)\n },\n genHighlight (text: string) {\n return this.$createElement('span', { staticClass: 'v-list-item__mask' }, text)\n },\n getMaskedCharacters (text: string): {\n start: string\n middle: string\n end: string\n } {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n if (index < 0) return { start: text, middle: '', end: '' }\n\n const start = text.slice(0, index)\n const middle = text.slice(index, index + searchInput.length)\n const end = text.slice(index + searchInput.length)\n return { start, middle, end }\n },\n genTile ({\n item,\n index,\n disabled = null,\n value = false,\n }: ListTile): VNode | VNode[] | undefined {\n if (!value) value = this.hasItem(item)\n\n if (item === Object(item)) {\n disabled = disabled !== null\n ? disabled\n : this.getDisabled(item)\n }\n\n const tile = {\n attrs: {\n // Default behavior in list does not\n // contain aria-selected by default\n 'aria-selected': String(value),\n id: `list-item-${this._uid}-${index}`,\n role: 'option',\n },\n on: {\n mousedown: (e: Event) => {\n // Prevent onBlur from being called\n e.preventDefault()\n },\n click: () => disabled || this.$emit('select', item),\n },\n props: {\n activeClass: this.tileActiveClass,\n disabled,\n ripple: true,\n inputValue: value,\n },\n }\n\n if (!this.$scopedSlots.item) {\n return this.$createElement(VListItem, tile, [\n this.action && !this.hideSelected && this.items.length > 0\n ? this.genAction(item, value)\n : null,\n this.genTileContent(item, index),\n ])\n }\n\n const parent = this\n const scopedSlot = this.$scopedSlots.item({\n parent,\n item,\n attrs: {\n ...tile.attrs,\n ...tile.props,\n },\n on: tile.on,\n })\n\n return this.needsTile(scopedSlot)\n ? this.$createElement(VListItem, tile, scopedSlot)\n : scopedSlot\n },\n genTileContent (item: any, index = 0): VNode {\n return this.$createElement(VListItemContent, [\n this.$createElement(VListItemTitle, [\n this.genFilteredText(this.getText(item)),\n ]),\n ])\n },\n hasItem (item: object) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1\n },\n needsTile (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n slot![0].componentOptions == null ||\n slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n },\n getDisabled (item: object) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n },\n getText (item: object) {\n return String(getPropertyFromItem(item, this.itemText, item))\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = []\n const itemsLength = this.items.length\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index]\n\n if (this.hideSelected &&\n this.hasItem(item)\n ) continue\n\n if (item == null) children.push(this.genTile({ item, index }))\n else if (item.header) children.push(this.genHeader(item))\n else if (item.divider) children.push(this.genDivider(item))\n else children.push(this.genTile({ item, index }))\n }\n\n children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n return this.$createElement(VList, {\n staticClass: 'v-select-list',\n class: this.themeClasses,\n attrs: {\n role: 'listbox',\n tabindex: -1,\n },\n on: {\n mousedown: (e: Event) => {\n e.preventDefault()\n },\n },\n props: { dense: this.dense },\n }, children)\n },\n})\n","import VSelect from './VSelect'\n\nexport { VSelect }\nexport default VSelect\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","// Styles\nimport './VSkeletonLoader.sass'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\nimport { PropValidator } from 'vue/types/options'\n\nexport interface HTMLSkeletonLoaderElement extends HTMLElement {\n _initialStyle?: {\n display: string | null\n transition: string\n }\n}\n\n/* @vue/component */\nexport default mixins(\n Elevatable,\n Measurable,\n Themeable,\n).extend({\n name: 'VSkeletonLoader',\n\n props: {\n boilerplate: Boolean,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading',\n },\n tile: Boolean,\n transition: String,\n type: String,\n types: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n },\n\n computed: {\n attrs (): object {\n if (!this.isLoading) return this.$attrs\n\n return {\n 'aria-busy': !this.boilerplate ? true : undefined,\n 'aria-live': !this.boilerplate ? 'polite' : undefined,\n 'aria-label': !this.boilerplate ? this.$vuetify.lang.t(this.loadingText) : undefined,\n role: !this.boilerplate ? 'alert' : undefined,\n ...this.$attrs,\n }\n },\n classes (): object {\n return {\n 'v-skeleton-loader--boilerplate': this.boilerplate,\n 'v-skeleton-loader--is-loading': this.isLoading,\n 'v-skeleton-loader--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\n }\n },\n isLoading (): boolean {\n return !('default' in this.$scopedSlots) || this.loading\n },\n rootTypes (): Record {\n return {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, card-heading',\n 'card-avatar': 'image, list-item-avatar',\n 'card-heading': 'heading',\n chip: 'chip',\n 'date-picker': 'list-item, card-heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'heading, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'table-cell@6',\n 'table-cell': 'text',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n ...this.types,\n }\n },\n },\n\n methods: {\n genBone (text: string, children: VNode[]) {\n return this.$createElement('div', {\n staticClass: `v-skeleton-loader__${text} v-skeleton-loader__bone`,\n }, children)\n },\n genBones (bone: string): VNode[] {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [string, number]\n const generator = () => this.genStructure(type)\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(generator)\n },\n // Fix type when this is merged\n // https://github.com/microsoft/TypeScript/pull/33050\n genStructure (type?: string): any {\n let children = []\n type = type || this.type || ''\n const bone = this.rootTypes[type] || ''\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.indexOf(',') > -1) return this.mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.indexOf('@') > -1) return this.genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.indexOf(',') > -1) children = this.mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.indexOf('@') > -1) children = this.genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(this.genStructure(bone))\n\n return [this.genBone(type, children)]\n },\n genSkeleton () {\n const children = []\n\n if (!this.isLoading) children.push(getSlot(this))\n else children.push(this.genStructure())\n\n /* istanbul ignore else */\n if (!this.transition) return children\n\n /* istanbul ignore next */\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n // Only show transition when\n // content has been loaded\n on: {\n afterEnter: this.resetStyles,\n beforeEnter: this.onBeforeEnter,\n beforeLeave: this.onBeforeLeave,\n leaveCancelled: this.resetStyles,\n },\n }, children)\n },\n mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(this.genStructure)\n },\n onBeforeEnter (el: HTMLSkeletonLoaderElement) {\n this.resetStyles(el)\n\n if (!this.isLoading) return\n\n el._initialStyle = {\n display: el.style.display,\n transition: el.style.transition,\n }\n\n el.style.setProperty('transition', 'none', 'important')\n },\n onBeforeLeave (el: HTMLSkeletonLoaderElement) {\n el.style.setProperty('display', 'none', 'important')\n },\n resetStyles (el: HTMLSkeletonLoaderElement) {\n if (!el._initialStyle) return\n\n el.style.display = el._initialStyle.display || ''\n el.style.transition = el._initialStyle.transition\n\n delete el._initialStyle\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-skeleton-loader',\n attrs: this.attrs,\n on: this.$listeners,\n class: this.classes,\n style: this.isLoading ? this.measurableStyles : undefined,\n }, [this.genSkeleton()])\n },\n})\n","import VSkeletonLoader from './VSkeletonLoader'\n\nexport { VSkeletonLoader }\nexport default VSkeletonLoader\n","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath, getSlot } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'never',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // Always hide arrows\n case 'never': return false\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n obs.observe(this.$refs.content)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n } else {\n let itemsLength = 0\n this.$on('hook:beforeUpdate', () => {\n itemsLength = (this.$refs.content?.children || []).length\n })\n this.$on('hook:updated', () => {\n if (itemsLength === (this.$refs.content?.children || []).length) return\n this.setWidths()\n })\n }\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : getSlot(this, 'next') || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, getSlot(this))\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : getSlot(this, 'prev') || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n","// Extensions\nimport { BaseItem } from '../VItemGroup/VItem'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItem,\n GroupableFactory('slideGroup')\n /* @vue/component */\n).extend({\n name: 'v-slide-item',\n})\n","import VSlideGroup from './VSlideGroup'\nimport VSlideItem from './VSlideItem'\n\nexport {\n VSlideGroup,\n VSlideItem,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VSlideGroup,\n VSlideItem,\n },\n}\n","import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n ticks: {\n type: [Boolean, String] as PropType,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n thumbPressed: false,\n mouseTimeout: -1,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n startOffset: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.thumbPressed\n ? this.showTicks || this.stepNumeric\n ? '0.1s cubic-bezier(0.25, 0.8, 0.5, 1)'\n : 'none'\n : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n const inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return isNaN(inputWidth) ? 0 : inputWidth\n },\n trackFillStyles (): Partial {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n immediate: true,\n },\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n mousedown: this.onSliderMouseDown,\n touchstart: this.onSliderMouseDown,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.$attrs['aria-label'] || this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n window.clearTimeout(this.mouseTimeout)\n this.thumbPressed = false\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n this.internalValue = this.parseMouseMove(e)\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent | TouchEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect()\n const clickOffset = 'touches' in e ? e.touches[0][click] : e[click]\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - this.startOffset) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n return parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n","import VSlider from './VSlider'\n\nexport { VSlider }\nexport default VSlider\n","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { deprecate, removed } from '../../util/console'\n\n// Types\nimport { PropType, VNode } from 'vue'\n\nexport default mixins(\n VSheet,\n Colorable,\n Toggleable,\n PositionableFactory([\n 'absolute',\n 'bottom',\n 'left',\n 'right',\n 'top',\n ])\n/* @vue/component */\n).extend({\n name: 'v-snackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n text: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n transition: {\n type: [Boolean, String] as PropType,\n default: 'v-snack-transition',\n validator: v => typeof v === 'string' || v === false,\n },\n vertical: Boolean,\n },\n\n data: () => ({\n activeTimeout: -1,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-snack--absolute': this.absolute,\n 'v-snack--active': this.isActive,\n 'v-snack--bottom': this.bottom || !this.top,\n 'v-snack--centered': this.centered,\n 'v-snack--has-background': this.hasBackground,\n 'v-snack--left': this.left,\n 'v-snack--multi-line': this.multiLine && !this.vertical,\n 'v-snack--right': this.right,\n 'v-snack--text': this.text,\n 'v-snack--top': this.top,\n 'v-snack--vertical': this.vertical,\n }\n },\n // Text and outlined styles both\n // use transparent backgrounds\n hasBackground (): boolean {\n return (\n !this.text &&\n !this.outlined\n )\n },\n // Snackbar is dark by default\n // override themeable logic.\n isDark (): boolean {\n return this.hasBackground\n ? !this.light\n : Themeable.options.computed.isDark.call(this)\n },\n styles (): object {\n if (this.absolute || !this.app) return {}\n\n const {\n bar,\n bottom,\n footer,\n insetFooter,\n left,\n right,\n top,\n } = this.$vuetify.application\n\n return {\n paddingBottom: convertToUnit(bottom + footer + insetFooter),\n paddingLeft: convertToUnit(left),\n paddingRight: convertToUnit(right),\n paddingTop: convertToUnit(bar + top),\n }\n },\n },\n\n watch: {\n isActive: 'setTimeout',\n timeout: 'setTimeout',\n },\n\n mounted () {\n if (this.isActive) this.setTimeout()\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('auto-height')) {\n removed('auto-height', this)\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line eqeqeq\n if (this.timeout == 0) {\n deprecate('timeout=\"0\"', '-1', this)\n }\n },\n\n methods: {\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-snack__action ',\n }, [\n getSlot(this, 'action', {\n attrs: { class: 'v-snack__btn' },\n }),\n ])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-snack__content',\n class: {\n [this.contentClass]: true,\n },\n attrs: {\n role: 'status',\n 'aria-live': 'polite',\n },\n }, [getSlot(this)])\n },\n genWrapper () {\n const setColor = this.hasBackground\n ? this.setBackgroundColor\n : this.setTextColor\n\n const data = setColor(this.color, {\n staticClass: 'v-snack__wrapper',\n class: VSheet.options.computed.classes.call(this),\n style: VSheet.options.computed.styles.call(this),\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: {\n pointerenter: () => window.clearTimeout(this.activeTimeout),\n pointerleave: this.setTimeout,\n },\n })\n\n return this.$createElement('div', data, [\n this.genContent(),\n this.genActions(),\n ])\n },\n genTransition () {\n return this.$createElement('transition', {\n props: { name: this.transition },\n }, [this.genWrapper()])\n },\n setTimeout () {\n window.clearTimeout(this.activeTimeout)\n\n const timeout = Number(this.timeout)\n\n if (\n !this.isActive ||\n // TODO: remove 0 in v3\n [0, -1].includes(timeout)\n ) {\n return\n }\n\n this.activeTimeout = window.setTimeout(() => {\n this.isActive = false\n }, timeout)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-snack',\n class: this.classes,\n style: this.styles,\n }, [\n this.transition !== false\n ? this.genTransition()\n : this.genWrapper(),\n ])\n },\n})\n","import VSnackbar from './VSnackbar'\n\nexport { VSnackbar }\nexport default VSnackbar\n","// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { genPoints, genBars } from './helpers/core'\nimport { genPath } from './helpers/path'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { Prop, PropValidator } from 'vue/types/options'\n\nexport type SparklineItem = number | { value: number }\n\nexport type SparklineText = {\n x: number\n value: string\n}\n\nexport interface Boundary {\n minX: number\n minY: number\n maxX: number\n maxY: number\n}\n\nexport interface Point {\n x: number\n y: number\n value: number\n}\n\nexport interface Bar {\n x: number\n y: number\n height: number\n value: number\n}\n\ninterface options extends Vue {\n $refs: {\n path: SVGPathElement\n }\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n Colorable\n).extend({\n name: 'VSparkline',\n\n inheritAttrs: false,\n\n props: {\n autoDraw: Boolean,\n autoDrawDuration: {\n type: Number,\n default: 2000,\n },\n autoDrawEasing: {\n type: String,\n default: 'ease',\n },\n autoLineWidth: {\n type: Boolean,\n default: false,\n },\n color: {\n type: String,\n default: 'primary',\n },\n fill: {\n type: Boolean,\n default: false,\n },\n gradient: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n gradientDirection: {\n type: String as Prop<'top' | 'bottom' | 'left' | 'right'>,\n validator: (val: string) => ['top', 'bottom', 'left', 'right'].includes(val),\n default: 'top',\n },\n height: {\n type: [String, Number],\n default: 75,\n },\n labels: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n labelSize: {\n type: [Number, String],\n default: 7,\n },\n lineWidth: {\n type: [String, Number],\n default: 4,\n },\n padding: {\n type: [String, Number],\n default: 8,\n },\n showLabels: Boolean,\n smooth: {\n type: [Boolean, Number, String],\n default: false,\n },\n type: {\n type: String as Prop<'trend' | 'bar'>,\n default: 'trend',\n validator: (val: string) => ['trend', 'bar'].includes(val),\n },\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data: () => ({\n lastLength: 0,\n }),\n\n computed: {\n parsedPadding (): number {\n return Number(this.padding)\n },\n parsedWidth (): number {\n return Number(this.width)\n },\n parsedHeight (): number {\n return parseInt(this.height, 10)\n },\n parsedLabelSize (): number {\n return parseInt(this.labelSize, 10) || 7\n },\n totalHeight (): number {\n let height = this.parsedHeight\n\n if (this.hasLabels) height += parseInt(this.labelSize, 10) * 1.5\n\n return height\n },\n totalWidth (): number {\n let width = this.parsedWidth\n if (this.type === 'bar') width = Math.max(this.value.length * this._lineWidth, width)\n\n return width\n },\n totalValues (): number {\n return this.value.length\n },\n _lineWidth (): number {\n if (this.autoLineWidth && this.type !== 'trend') {\n const totalPadding = this.parsedPadding * (this.totalValues + 1)\n return (this.parsedWidth - totalPadding) / this.totalValues\n } else {\n return parseFloat(this.lineWidth) || 4\n }\n },\n boundary (): Boundary {\n if (this.type === 'bar') return { minX: 0, maxX: this.totalWidth, minY: 0, maxY: this.parsedHeight }\n\n const padding = this.parsedPadding\n\n return {\n minX: padding,\n maxX: this.totalWidth - padding,\n minY: padding,\n maxY: this.parsedHeight - padding,\n }\n },\n hasLabels (): boolean {\n return Boolean(\n this.showLabels ||\n this.labels.length > 0 ||\n this.$scopedSlots.label\n )\n },\n parsedLabels (): SparklineText[] {\n const labels = []\n const points = this._values\n const len = points.length\n\n for (let i = 0; labels.length < len; i++) {\n const item = points[i]\n let value = this.labels[i]\n\n if (!value) {\n value = typeof item === 'object'\n ? item.value\n : item\n }\n\n labels.push({\n x: item.x,\n value: String(value),\n })\n }\n\n return labels\n },\n normalizedValues (): number[] {\n return this.value.map(item => (typeof item === 'number' ? item : item.value))\n },\n _values (): Point[] | Bar[] {\n return this.type === 'trend' ? genPoints(this.normalizedValues, this.boundary) : genBars(this.normalizedValues, this.boundary)\n },\n textY (): number {\n let y = this.parsedHeight\n if (this.type === 'trend') y -= 4\n return y\n },\n _radius (): number {\n return this.smooth === true ? 8 : Number(this.smooth)\n },\n },\n\n watch: {\n value: {\n immediate: true,\n handler () {\n this.$nextTick(() => {\n if (\n !this.autoDraw ||\n this.type === 'bar' ||\n !this.$refs.path\n ) return\n\n const path = this.$refs.path\n const length = path.getTotalLength()\n\n if (!this.fill) {\n path.style.transition = 'none'\n path.style.strokeDasharray = length + ' ' + length\n path.style.strokeDashoffset = Math.abs(length - (this.lastLength || 0)).toString()\n path.getBoundingClientRect()\n path.style.transition = `stroke-dashoffset ${this.autoDrawDuration}ms ${this.autoDrawEasing}`\n path.style.strokeDashoffset = '0'\n } else {\n path.style.transformOrigin = 'bottom center'\n path.style.transition = 'none'\n path.style.transform = `scaleY(0)`\n path.getBoundingClientRect()\n path.style.transition = `transform ${this.autoDrawDuration}ms ${this.autoDrawEasing}`\n path.style.transform = `scaleY(1)`\n }\n this.lastLength = length\n })\n },\n },\n },\n\n methods: {\n genGradient () {\n const gradientDirection = this.gradientDirection\n const gradient = this.gradient.slice()\n\n // Pushes empty string to force\n // a fallback to currentColor\n if (!gradient.length) gradient.push('')\n\n const len = Math.max(gradient.length - 1, 1)\n const stops = gradient.reverse().map((color, index) =>\n this.$createElement('stop', {\n attrs: {\n offset: index / len,\n 'stop-color': color || 'currentColor',\n },\n })\n )\n\n return this.$createElement('defs', [\n this.$createElement('linearGradient', {\n attrs: {\n id: this._uid,\n gradientUnits: 'userSpaceOnUse',\n x1: gradientDirection === 'left' ? '100%' : '0',\n y1: gradientDirection === 'top' ? '100%' : '0',\n x2: gradientDirection === 'right' ? '100%' : '0',\n y2: gradientDirection === 'bottom' ? '100%' : '0',\n },\n }, stops),\n ])\n },\n genG (children: VNode[]) {\n return this.$createElement('g', {\n style: {\n fontSize: '8',\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor',\n } as object, // TODO: TS 3.5 is too eager with the array type here\n }, children)\n },\n genPath () {\n const points = genPoints(this.normalizedValues, this.boundary)\n\n return this.$createElement('path', {\n attrs: {\n d: genPath(points, this._radius, this.fill, this.parsedHeight),\n fill: this.fill ? `url(#${this._uid})` : 'none',\n stroke: this.fill ? 'none' : `url(#${this._uid})`,\n },\n ref: 'path',\n })\n },\n genLabels (offsetX: number) {\n const children = this.parsedLabels.map((item, i) => (\n this.$createElement('text', {\n attrs: {\n x: item.x + offsetX + this._lineWidth / 2,\n y: this.textY + (this.parsedLabelSize * 0.75),\n 'font-size': Number(this.labelSize) || 7,\n },\n }, [this.genLabel(item, i)])\n ))\n\n return this.genG(children)\n },\n genLabel (item: SparklineText, index: number) {\n return this.$scopedSlots.label\n ? this.$scopedSlots.label({ index, value: item.value })\n : item.value\n },\n genBars () {\n if (!this.value || this.totalValues < 2) return undefined as never\n\n const bars = genBars(this.normalizedValues, this.boundary)\n const offsetX = (Math.abs(bars[0].x - bars[1].x) - this._lineWidth) / 2\n\n return this.$createElement('svg', {\n attrs: {\n display: 'block',\n viewBox: `0 0 ${this.totalWidth} ${this.totalHeight}`,\n },\n }, [\n this.genGradient(),\n this.genClipPath(bars, offsetX, this._lineWidth, 'sparkline-bar-' + this._uid),\n this.hasLabels ? this.genLabels(offsetX) : undefined as never,\n this.$createElement('g', {\n attrs: {\n 'clip-path': `url(#sparkline-bar-${this._uid}-clip)`,\n fill: `url(#${this._uid})`,\n },\n }, [\n this.$createElement('rect', {\n attrs: {\n x: 0,\n y: 0,\n width: this.totalWidth,\n height: this.height,\n },\n }),\n ]),\n ])\n },\n genClipPath (bars: Bar[], offsetX: number, lineWidth: number, id: string) {\n const rounding = typeof this.smooth === 'number'\n ? this.smooth\n : this.smooth ? 2 : 0\n\n return this.$createElement('clipPath', {\n attrs: {\n id: `${id}-clip`,\n },\n }, bars.map(item => {\n return this.$createElement('rect', {\n attrs: {\n x: item.x + offsetX,\n y: item.y,\n width: lineWidth,\n height: item.height,\n rx: rounding,\n ry: rounding,\n },\n }, [\n this.autoDraw ? this.$createElement('animate', {\n attrs: {\n attributeName: 'height',\n from: 0,\n to: item.height,\n dur: `${this.autoDrawDuration}ms`,\n fill: 'freeze',\n },\n }) : undefined as never,\n ])\n }))\n },\n genTrend () {\n return this.$createElement('svg', this.setTextColor(this.color, {\n attrs: {\n ...this.$attrs,\n display: 'block',\n 'stroke-width': this._lineWidth || 1,\n viewBox: `0 0 ${this.width} ${this.totalHeight}`,\n },\n }), [\n this.genGradient(),\n this.hasLabels && this.genLabels(-(this._lineWidth / 2)),\n this.genPath(),\n ])\n },\n },\n\n render (h): VNode {\n if (this.totalValues < 2) return undefined as never\n\n return this.type === 'trend' ? this.genTrend() : this.genBars()\n },\n})\n","import { Point, Boundary, Bar } from '../VSparkline'\n\nexport function genPoints (\n values: number[],\n boundary: Boundary\n): Point[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n const maxValue = Math.max(...values)\n const minValue = Math.min(...values)\n\n const gridX = (maxX - minX) / (totalValues - 1)\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y: maxY - (value - minValue) * gridY,\n value,\n }\n })\n}\n\nexport function genBars (\n values: number[],\n boundary: Boundary\n): Bar[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n let maxValue = Math.max(...values)\n let minValue = Math.min(...values)\n\n if (minValue > 0) minValue = 0\n if (maxValue < 0) maxValue = 0\n\n const gridX = maxX / totalValues\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n const horizonY = maxY - Math.abs(minValue * gridY)\n\n return values.map((value, index) => {\n const height = Math.abs(gridY * value)\n\n return {\n x: minX + index * gridX,\n y: horizonY - height +\n +(value < 0) * height,\n height,\n value,\n }\n })\n}\n","import { Point } from '../VSparkline'\n\nfunction int (value: string | number): number {\n return parseInt(value, 10)\n}\n\n/**\n * https://en.wikipedia.org/wiki/Collinearity\n * x=(x1+x2)/2\n * y=(y1+y2)/2\n */\nexport function checkCollinear (p0: Point, p1: Point, p2: Point): boolean {\n return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y)\n}\n\nexport function getDistance (p1: Point, p2: Point): number {\n return Math.sqrt(\n Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)\n )\n}\n\nexport function moveTo (to: Point, from: Point, radius: number) {\n const vector = { x: to.x - from.x, y: to.y - from.y }\n const length = Math.sqrt((vector.x * vector.x) + (vector.y * vector.y))\n const unitVector = { x: vector.x / length, y: vector.y / length }\n\n return {\n x: from.x + unitVector.x * radius,\n y: from.y + unitVector.y * radius,\n }\n}\n","import { Point } from '../VSparkline'\nimport { checkCollinear, getDistance, moveTo } from './math'\n\n/**\n * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18\n */\nexport function genPath (points: Point[], radius: number, fill = false, height = 75) {\n const start = points.shift()!\n const end = points[points.length - 1]\n\n return (\n (fill ? `M${start.x} ${height - start.x + 2} L${start.x} ${start.y}` : `M${start.x} ${start.y}`) +\n points\n .map((point, index) => {\n const next = points[index + 1]\n const prev = points[index - 1] || start\n const isCollinear = next && checkCollinear(next, point, prev)\n\n if (!next || isCollinear) {\n return `L${point.x} ${point.y}`\n }\n\n const threshold = Math.min(\n getDistance(prev, point),\n getDistance(next, point)\n )\n const isTooCloseForRadius = threshold / 2 < radius\n const radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius\n\n const before = moveTo(prev, point, radiusForPoint)\n const after = moveTo(next, point, radiusForPoint)\n\n return `L${before.x} ${before.y}S${point.x} ${point.y} ${after.x} ${after.y}`\n })\n .join('') +\n (fill ? `L${end.x} ${height - start.x + 2} Z` : '')\n )\n}\n","import VSparkline from './VSparkline'\n\nexport { VSparkline }\n\nexport default VSparkline\n","// Styles\nimport './VSpeedDial.sass'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Positionable from '../../mixins/positionable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeData } from 'vue'\nimport { Prop } from 'vue/types/options'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Positionable, Toggleable, Transitionable).extend({\n name: 'v-speed-dial',\n\n directives: { ClickOutside },\n\n props: {\n direction: {\n type: String as Prop<'top' | 'right' | 'bottom' | 'left'>,\n default: 'top',\n validator: (val: string) => {\n return ['top', 'right', 'bottom', 'left'].includes(val)\n },\n },\n openOnHover: Boolean,\n transition: {\n type: String,\n default: 'scale-transition',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-speed-dial': true,\n 'v-speed-dial--top': this.top,\n 'v-speed-dial--right': this.right,\n 'v-speed-dial--bottom': this.bottom,\n 'v-speed-dial--left': this.left,\n 'v-speed-dial--absolute': this.absolute,\n 'v-speed-dial--fixed': this.fixed,\n [`v-speed-dial--direction-${this.direction}`]: true,\n 'v-speed-dial--is-active': this.isActive,\n }\n },\n },\n\n render (h): VNode {\n let children: VNode[] = []\n const data: VNodeData = {\n class: this.classes,\n directives: [{\n name: 'click-outside',\n value: () => (this.isActive = false),\n }],\n on: {\n click: () => (this.isActive = !this.isActive),\n },\n }\n\n if (this.openOnHover) {\n data.on!.mouseenter = () => (this.isActive = true)\n data.on!.mouseleave = () => (this.isActive = false)\n }\n\n if (this.isActive) {\n let btnCount = 0\n children = (getSlot(this) || []).map((b, i) => {\n if (b.tag && typeof b.componentOptions !== 'undefined' && (b.componentOptions.Ctor.options.name === 'v-btn' || b.componentOptions.Ctor.options.name === 'v-tooltip')) {\n btnCount++\n return h('div', {\n style: {\n transitionDelay: btnCount * 0.05 + 's',\n },\n key: i,\n }, [b])\n } else {\n b.key = i\n return b\n }\n })\n }\n\n const list = h('transition-group', {\n class: 'v-speed-dial__list',\n props: {\n name: this.transition,\n mode: this.mode,\n origin: this.origin,\n tag: 'div',\n },\n }, children)\n\n return h('div', data, [getSlot(this, 'activator'), list])\n },\n})\n","import VSpeedDial from './VSpeedDial'\n\nexport { VSpeedDial }\nexport default VSpeedDial\n","// Styles\nimport './VStepper.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VStepperStep from './VStepperStep'\nimport VStepperContent from './VStepperContent'\n\n// Mixins\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\nimport Proxyable from '../../mixins/proxyable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VSheet,\n RegistrableProvide('stepper'),\n Proxyable,\n)\n\ntype VStepperStepInstance = InstanceType\ntype VStepperContentInstance = InstanceType\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-stepper',\n\n provide (): object {\n return {\n stepClick: this.stepClick,\n isVertical: this.vertical,\n }\n },\n\n props: {\n altLabels: Boolean,\n nonLinear: Boolean,\n flat: Boolean,\n vertical: Boolean,\n },\n\n data () {\n const data: Dictionary = {\n isBooted: false,\n steps: [] as VStepperStepInstance[],\n content: [] as VStepperContentInstance[],\n isReverse: false,\n }\n\n data.internalLazyValue = this.value != null\n ? this.value\n : (data[0] || {}).step || 1\n\n return data\n },\n\n computed: {\n classes (): object {\n return {\n 'v-stepper--flat': this.flat,\n 'v-stepper--is-booted': this.isBooted,\n 'v-stepper--vertical': this.vertical,\n 'v-stepper--alt-labels': this.altLabels,\n 'v-stepper--non-linear': this.nonLinear,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n return {\n ...VSheet.options.computed.styles.call(this),\n }\n },\n },\n\n watch: {\n internalValue (val, oldVal) {\n this.isReverse = Number(val) < Number(oldVal)\n\n oldVal && (this.isBooted = true)\n\n this.updateView()\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$listeners.input) {\n breaking('@input', '@change', this)\n }\n },\n\n mounted () {\n this.updateView()\n },\n\n methods: {\n register (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps.push(item as VStepperStepInstance)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content.push(item as VStepperContentInstance)\n }\n },\n unregister (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps = this.steps.filter((i: VStepperStepInstance) => i !== item)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content = this.content.filter((i: VStepperContentInstance) => i !== item)\n }\n },\n stepClick (step: string | number) {\n this.$nextTick(() => (this.internalValue = step))\n },\n updateView () {\n for (let index = this.steps.length; --index >= 0;) {\n this.steps[index].toggle(this.internalValue as any)\n }\n for (let index = this.content.length; --index >= 0;) {\n this.content[index].toggle(this.internalValue as any, this.isReverse)\n }\n },\n },\n\n render (h): VNode {\n return h(this.tag, {\n staticClass: 'v-stepper',\n class: this.classes,\n style: this.styles,\n }, getSlot(this))\n },\n})\n","// Components\nimport {\n VTabTransition,\n VTabReverseTransition,\n} from '../transitions'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Helpers\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, FunctionalComponentOptions, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n RegistrableInject('stepper', 'v-stepper-content', 'v-stepper')\n)\n\ninterface options extends InstanceType {\n $refs: {\n wrapper: HTMLElement\n }\n isVerticalProvided: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-stepper-content',\n\n inject: {\n isVerticalProvided: {\n from: 'isVertical',\n },\n },\n\n props: {\n step: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n height: 0 as number | string,\n // Must be null to allow\n // previous comparison\n isActive: null as boolean | null,\n isReverse: false,\n isVertical: this.isVerticalProvided,\n }\n },\n\n computed: {\n computedTransition (): FunctionalComponentOptions {\n // Fix for #8978\n const reverse = this.$vuetify.rtl ? !this.isReverse : this.isReverse\n\n return reverse\n ? VTabReverseTransition\n : VTabTransition\n },\n styles (): object {\n if (!this.isVertical) return {}\n\n return {\n height: convertToUnit(this.height),\n }\n },\n },\n\n watch: {\n isActive (current, previous) {\n // If active and the previous state\n // was null, is just booting up\n if (current && previous == null) {\n this.height = 'auto'\n return\n }\n\n if (!this.isVertical) return\n\n if (this.isActive) this.enter()\n else this.leave()\n },\n },\n\n mounted () {\n this.$refs.wrapper.addEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.register(this)\n },\n\n beforeDestroy () {\n this.$refs.wrapper.removeEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.unregister(this)\n },\n\n methods: {\n onTransition (e: TransitionEvent) {\n if (!this.isActive ||\n e.propertyName !== 'height'\n ) return\n\n this.height = 'auto'\n },\n enter () {\n let scrollHeight = 0\n\n // Render bug with height\n requestAnimationFrame(() => {\n scrollHeight = this.$refs.wrapper.scrollHeight\n })\n\n this.height = 0\n\n // Give the collapsing element time to collapse\n setTimeout(() => this.isActive && (this.height = (scrollHeight || 'auto')), 450)\n },\n leave () {\n this.height = this.$refs.wrapper.clientHeight\n setTimeout(() => (this.height = 0), 10)\n },\n toggle (step: string | number, reverse: boolean) {\n this.isActive = step.toString() === this.step.toString()\n this.isReverse = reverse\n },\n },\n\n render (h): VNode {\n const contentData = {\n staticClass: 'v-stepper__content',\n } as VNodeData\n const wrapperData = {\n staticClass: 'v-stepper__wrapper',\n style: this.styles,\n ref: 'wrapper',\n }\n\n if (!this.isVertical) {\n contentData.directives = [{\n name: 'show',\n value: this.isActive,\n }]\n }\n\n const wrapper = h('div', wrapperData, getSlot(this))\n const content = h('div', contentData, [wrapper])\n\n return h(this.computedTransition, {\n on: this.$listeners,\n }, [content])\n },\n})\n","// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VuetifyStepperRuleValidator = () => string | boolean\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('stepper', 'v-stepper-step', 'v-stepper')\n)\n\ninterface options extends InstanceType {\n stepClick: (step: number | string) => void\n}\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-stepper-step',\n\n directives: { ripple },\n\n inject: ['stepClick'],\n\n props: {\n color: {\n type: String,\n default: 'primary',\n },\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n errorIcon: {\n type: String,\n default: '$error',\n },\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator,\n step: [Number, String],\n },\n\n data () {\n return {\n isActive: false,\n isInactive: true,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-stepper__step--active': this.isActive,\n 'v-stepper__step--editable': this.editable,\n 'v-stepper__step--inactive': this.isInactive,\n 'v-stepper__step--error error--text': this.hasError,\n 'v-stepper__step--complete': this.complete,\n }\n },\n hasError (): boolean {\n return this.rules.some(validate => validate() !== true)\n },\n },\n\n mounted () {\n this.stepper && this.stepper.register(this)\n },\n\n beforeDestroy () {\n this.stepper && this.stepper.unregister(this)\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n e.stopPropagation()\n\n this.$emit('click', e)\n\n if (this.editable) {\n this.stepClick(this.step)\n }\n },\n genIcon (icon: string) {\n return this.$createElement(VIcon, icon)\n },\n genLabel () {\n return this.$createElement('div', {\n staticClass: 'v-stepper__label',\n }, getSlot(this))\n },\n genStep () {\n const color = (!this.hasError && (this.complete || this.isActive)) ? this.color : false\n\n return this.$createElement('span', this.setBackgroundColor(color, {\n staticClass: 'v-stepper__step__step',\n }), this.genStepContent())\n },\n genStepContent () {\n const children = []\n\n if (this.hasError) {\n children.push(this.genIcon(this.errorIcon))\n } else if (this.complete) {\n if (this.editable) {\n children.push(this.genIcon(this.editIcon))\n } else {\n children.push(this.genIcon(this.completeIcon))\n }\n } else {\n children.push(String(this.step))\n }\n\n return children\n },\n keyboardClick (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.space) {\n this.click(e)\n }\n },\n toggle (step: number | string) {\n this.isActive = step.toString() === this.step.toString()\n this.isInactive = Number(step) < Number(this.step)\n },\n },\n\n render (h): VNode {\n return h('div', {\n attrs: {\n tabindex: this.editable ? 0 : -1,\n },\n staticClass: 'v-stepper__step',\n class: this.classes,\n directives: [{\n name: 'ripple',\n value: this.editable,\n }],\n on: {\n click: this.click,\n keydown: this.keyboardClick,\n },\n }, [\n this.genStep(),\n this.genLabel(),\n ])\n },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\nimport VStepper from './VStepper'\nimport VStepperStep from './VStepperStep'\nimport VStepperContent from './VStepperContent'\n\nconst VStepperHeader = createSimpleFunctional('v-stepper__header')\nconst VStepperItems = createSimpleFunctional('v-stepper__items')\n\nexport {\n VStepper,\n VStepperContent,\n VStepperStep,\n VStepperHeader,\n VStepperItems,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VStepper,\n VStepperContent,\n VStepperStep,\n VStepperHeader,\n VStepperItems,\n },\n}\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, getSlot(this))\n },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { getSlot, keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : getSlot(this, 'progress') || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","import VSwitch from './VSwitch'\n\nexport { VSwitch }\nexport default VSwitch\n","// Styles\nimport './VSystemBar.sass'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport default mixins(\n Applicationable('bar', [\n 'height',\n 'window',\n ]),\n Colorable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-system-bar',\n\n props: {\n height: [Number, String],\n lightsOut: Boolean,\n window: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-system-bar--lights-out': this.lightsOut,\n 'v-system-bar--absolute': this.absolute,\n 'v-system-bar--fixed': !this.absolute && (this.app || this.fixed),\n 'v-system-bar--window': this.window,\n ...this.themeClasses,\n }\n },\n computedHeight (): number | string {\n if (this.height) {\n return isNaN(parseInt(this.height)) ? this.height : parseInt(this.height)\n }\n\n return this.window ? 32 : 24\n },\n styles (): object {\n return {\n height: convertToUnit(this.computedHeight),\n }\n },\n },\n\n methods: {\n updateApplication () {\n return this.$el\n ? this.$el.clientHeight\n : this.computedHeight\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-system-bar',\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n }\n\n return h('div', this.setBackgroundColor(this.color, data), getSlot(this))\n },\n})\n","import VSystemBar from './VSystemBar'\n\nexport { VSystemBar }\nexport default VSystemBar\n","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Routable from '../../mixins/routable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { getSlot, keyCodes } from './../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { ExtractVue } from './../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n// Components\nimport VTabsBar from '../VTabs/VTabsBar'\n\nconst baseMixins = mixins(\n Routable,\n // Must be after routable\n // to overwrite activeClass\n GroupableFactory('tabsBar'),\n Themeable\n)\n\ntype VTabBarInstance = InstanceType\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n tabsBar: VTabBarInstance\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-tab',\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n tabValue: {\n required: false,\n },\n },\n\n data: () => ({\n proxyClass: 'v-tab--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-tab': true,\n ...Routable.options.computed.classes.call(this),\n 'v-tab--disabled': this.disabled,\n ...this.groupClasses,\n }\n },\n value (): any {\n if (this.tabValue != null) return this.tabValue\n\n let to = this.to || this.href\n\n if (to == null) return to\n\n if (this.$router &&\n this.to === Object(this.to)\n ) {\n const resolve = this.$router.resolve(\n this.to,\n this.$route,\n this.append\n )\n\n to = resolve.href\n }\n\n return to.replace('#', '')\n },\n },\n\n methods: {\n click (e: KeyboardEvent | MouseEvent): void {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n if (this.disabled) {\n e.preventDefault()\n return\n }\n\n // If user provides an\n // actual link, do not\n // prevent default\n if (this.href &&\n this.href.indexOf('#') > -1\n ) e.preventDefault()\n\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n toggle () {\n // VItemGroup treats a change event as a click\n if (!this.isActive || (!this.tabsBar.mandatory && !this.to)) {\n this.$emit('change')\n }\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n 'aria-selected': String(this.isActive),\n role: 'tab',\n tabindex: this.disabled ? -1 : 0,\n }\n data.on = {\n ...data.on,\n keydown: (e: KeyboardEvent) => {\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n return h(tag, data, getSlot(this))\n },\n})\n","// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n/* @vue/component */\nexport default VWindowItem.extend({\n name: 'v-tab-item',\n\n props: {\n id: String,\n },\n\n methods: {\n genWindowItem () {\n const item = VWindowItem.options.methods.genWindowItem.call(this)\n\n item.data!.domProps = item.data!.domProps || {}\n item.data!.domProps.id = this.id || this.value\n\n return item\n },\n },\n})\n","// Styles\nimport './VTabs.sass'\n\n// Components\nimport VTabsBar from './VTabsBar'\nimport VTabsItems from './VTabsItems'\nimport VTabsSlider from './VTabsSlider'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\nconst baseMixins = mixins(\n Colorable,\n Proxyable,\n Themeable\n)\n\ninterface options extends ExtractVue {\n $refs: {\n items: InstanceType\n }\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-tabs',\n\n directives: {\n Resize,\n },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n alignWithTitle: Boolean,\n backgroundColor: String,\n centerActive: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mobileBreakpoint: [String, Number],\n nextIcon: {\n type: String,\n default: '$next',\n },\n optional: Boolean,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n right: Boolean,\n showArrows: [Boolean, String],\n sliderColor: String,\n sliderSize: {\n type: [Number, String],\n default: 2,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n resizeTimeout: 0,\n slider: {\n height: null as null | number,\n left: null as null | number,\n right: null as null | number,\n top: null as null | number,\n width: null as null | number,\n },\n transitionTime: 300,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-tabs--align-with-title': this.alignWithTitle,\n 'v-tabs--centered': this.centered,\n 'v-tabs--fixed-tabs': this.fixedTabs,\n 'v-tabs--grow': this.grow,\n 'v-tabs--icons-and-text': this.iconsAndText,\n 'v-tabs--right': this.right,\n 'v-tabs--vertical': this.vertical,\n ...this.themeClasses,\n }\n },\n isReversed (): boolean {\n return this.$vuetify.rtl && this.vertical\n },\n sliderStyles (): object {\n return {\n height: convertToUnit(this.slider.height),\n left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n transition: this.slider.left != null ? null : 'none',\n width: convertToUnit(this.slider.width),\n }\n },\n computedColor (): string {\n if (this.color) return this.color\n else if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n },\n\n watch: {\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n centerActive: 'callSlider',\n fixedTabs: 'callSlider',\n grow: 'callSlider',\n iconsAndText: 'callSlider',\n right: 'callSlider',\n showArrows: 'callSlider',\n vertical: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n '$vuetify.rtl': 'onResize',\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n }\n\n this.$nextTick(() => {\n window.setTimeout(this.callSlider, 30)\n })\n },\n\n methods: {\n callSlider () {\n if (\n this.hideSlider ||\n !this.$refs.items ||\n !this.$refs.items.selectedItems.length\n ) {\n this.slider.width = 0\n return false\n }\n\n this.$nextTick(() => {\n // Give screen time to paint\n const activeTab = this.$refs.items.selectedItems[0]\n /* istanbul ignore if */\n if (!activeTab || !activeTab.$el) {\n this.slider.width = 0\n this.slider.left = 0\n return\n }\n const el = activeTab.$el as HTMLElement\n\n this.slider = {\n height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n left: this.vertical ? 0 : el.offsetLeft,\n right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n top: el.offsetTop,\n width: this.vertical ? Number(this.sliderSize) : el.scrollWidth,\n }\n })\n\n return true\n },\n genBar (items: VNode[], slider: VNode | null) {\n const data = {\n style: {\n height: convertToUnit(this.height),\n },\n props: {\n activeClass: this.activeClass,\n centerActive: this.centerActive,\n dark: this.dark,\n light: this.light,\n mandatory: !this.optional,\n mobileBreakpoint: this.mobileBreakpoint,\n nextIcon: this.nextIcon,\n prevIcon: this.prevIcon,\n showArrows: this.showArrows,\n value: this.internalValue,\n },\n on: {\n 'call:slider': this.callSlider,\n change: (val: any) => {\n this.internalValue = val\n },\n },\n ref: 'items',\n }\n\n this.setTextColor(this.computedColor, data)\n this.setBackgroundColor(this.backgroundColor, data)\n\n return this.$createElement(VTabsBar, data, [\n this.genSlider(slider),\n items,\n ])\n },\n genItems (items: VNode | null, item: VNode[]) {\n // If user provides items\n // opt to use theirs\n if (items) return items\n\n // If no tabs are provided\n // render nothing\n if (!item.length) return null\n\n return this.$createElement(VTabsItems, {\n props: {\n value: this.internalValue,\n },\n on: {\n change: (val: any) => {\n this.internalValue = val\n },\n },\n }, item)\n },\n genSlider (slider: VNode | null) {\n if (this.hideSlider) return null\n\n if (!slider) {\n slider = this.$createElement(VTabsSlider, {\n props: { color: this.sliderColor },\n })\n }\n\n return this.$createElement('div', {\n staticClass: 'v-tabs-slider-wrapper',\n style: this.sliderStyles,\n }, [slider])\n },\n onResize () {\n if (this._isDestroyed) return\n\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.callSlider, 0)\n },\n parseNodes () {\n let items = null\n let slider = null\n const item = []\n const tab = []\n const slot = getSlot(this) || []\n const length = slot.length\n\n for (let i = 0; i < length; i++) {\n const vnode = slot[i]\n\n if (vnode.componentOptions) {\n switch (vnode.componentOptions.Ctor.options.name) {\n case 'v-tabs-slider': slider = vnode\n break\n case 'v-tabs-items': items = vnode\n break\n case 'v-tab-item': item.push(vnode)\n break\n // case 'v-tab' - intentionally omitted\n default: tab.push(vnode)\n }\n } else {\n tab.push(vnode)\n }\n }\n\n /**\n * tab: array of `v-tab`\n * slider: single `v-tabs-slider`\n * items: single `v-tabs-items`\n * item: array of `v-tab-item`\n */\n return { tab, slider, items, item }\n },\n },\n\n render (h): VNode {\n const { tab, slider, items, item } = this.parseNodes()\n\n return h('div', {\n staticClass: 'v-tabs',\n class: this.classes,\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n }, [\n this.genBar(tab, slider),\n this.genItems(items, item),\n ])\n },\n})\n","// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Components\nimport VTab from './VTab'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { Route } from 'vue-router'\nimport { VNode } from 'vue'\n\ntype VTabInstance = InstanceType\n\nexport default mixins(\n BaseSlideGroup,\n SSRBootable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-tabs-bar',\n\n provide () {\n return {\n tabsBar: this,\n }\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-tabs-bar': true,\n 'v-tabs-bar--is-mobile': this.isMobile,\n // TODO: Remove this and move to v-slide-group\n 'v-tabs-bar--show-arrows': this.showArrows,\n ...this.themeClasses,\n }\n },\n },\n\n watch: {\n items: 'callSlider',\n internalValue: 'callSlider',\n $route: 'onRouteChange',\n },\n\n methods: {\n callSlider () {\n if (!this.isBooted) return\n\n this.$emit('call:slider')\n },\n genContent () {\n const render = BaseSlideGroup.options.methods.genContent.call(this)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-tabs-bar__content'\n\n return render\n },\n onRouteChange (val: Route, oldVal: Route) {\n /* istanbul ignore next */\n if (this.mandatory) return\n\n const items = this.items as unknown as VTabInstance[]\n const newPath = val.path\n const oldPath = oldVal.path\n\n let hasNew = false\n let hasOld = false\n\n for (const item of items) {\n if (item.to === oldPath) hasOld = true\n else if (item.to === newPath) hasNew = true\n\n if (hasNew && hasOld) break\n }\n\n // If we have an old item and not a new one\n // it's assumed that the user navigated to\n // a path that is not present in the items\n if (!hasNew && hasOld) this.internalValue = undefined\n },\n },\n\n render (h): VNode {\n const render = BaseSlideGroup.options.render.call(this, h)\n\n render.data!.attrs = {\n role: 'tablist',\n }\n\n return render\n },\n})\n","// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Types & Components\nimport { BaseItemGroup, GroupableInstance } from './../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default VWindow.extend({\n name: 'v-tabs-items',\n\n props: {\n mandatory: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.options.computed.classes.call(this),\n 'v-tabs-items': true,\n }\n },\n isDark (): boolean {\n return this.rootIsDark\n },\n },\n\n methods: {\n getValue (item: GroupableInstance, i: number) {\n return item.id || BaseItemGroup.options.methods.getValue.call(this, item, i)\n },\n },\n})\n","// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(Colorable).extend({\n name: 'v-tabs-slider',\n\n render (h): VNode {\n return h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-tabs-slider',\n }))\n },\n})\n","import VTabs from './VTabs'\nimport VTab from './VTab'\nimport VTabsItems from './VTabsItems'\nimport VTabItem from './VTabItem'\nimport VTabsSlider from './VTabsSlider'\n\nexport { VTabs, VTab, VTabItem, VTabsItems, VTabsSlider }\n\nexport default {\n $_vuetify_subcomponents: {\n VTabs,\n VTab,\n VTabsItems,\n VTabItem,\n VTabsSlider,\n },\n}\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, getSlot, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-text-field',\n\n directives: {\n resize,\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.options.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('input', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('box')) {\n breaking('box', 'filled', this)\n }\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner'] as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.options.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n this.$createElement('div'),\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n }\n\n return this.$scopedSlots.counter?.({ props }) ?? this.$createElement(VCounter, { props })\n },\n genControl () {\n return VInput.options.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n props: {\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue,\n },\n }\n\n return this.$createElement(VLabel, data, getSlot(this, 'label') || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n staticClass: 'notranslate',\n })\n\n return this.$createElement('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, ...inputAttrs } = this.attrs$\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n },\n attrs: {\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: this.onInput,\n focus: this.onFocus,\n keydown: this.onKeyDown,\n }),\n ref: 'input',\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n })\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.options.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return this.$createElement('div', {\n staticClass: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return this.$createElement('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick () {\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('change', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs.label\n ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n","import VTextField from './VTextField'\n\nexport { VTextField }\nexport default VTextField\n","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n $refs: {\n input: HTMLTextAreaElement\n }\n}\n\nconst baseMixins = mixins\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n autoGrow (val: boolean) {\n this.$nextTick(() => {\n val\n ? this.calculateInputHeight()\n : this.$refs.input?.style.removeProperty('height')\n })\n },\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","import VTextarea from './VTextarea'\n\nexport { VTextarea }\nexport default VTextarea\n","// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default Themeable.extend({\n name: 'v-theme-provider',\n\n props: { root: Boolean },\n\n computed: {\n isDark (): boolean {\n return this.root\n ? this.rootIsDark\n : Themeable.options.computed.isDark.call(this)\n },\n },\n\n render (): VNode {\n /* istanbul ignore next */\n return (\n this.$slots.default! &&\n this.$slots.default!.find(node => !node.isComment && node.text !== ' ')!\n )\n },\n})\n","import VThemeProvider from './VThemeProvider'\n\nexport { VThemeProvider }\nexport default VThemeProvider\n","enum SelectingTimes {\n Hour = 1,\n Minute = 2,\n Second = 3\n}\n\nexport { SelectingTimes }\n","// Components\nimport VTimePickerTitle from './VTimePickerTitle'\nimport VTimePickerClock from './VTimePickerClock'\n\n// Mixins\nimport Picker from '../../mixins/picker'\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport { createRange } from '../../util/helpers'\nimport pad from '../VDatePicker/util/pad'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { SelectingTimes } from './SelectingTimes'\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\nconst selectingNames = { 1: 'hour', 2: 'minute', 3: 'second' }\nexport { SelectingTimes }\n\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\ntype ActivePicker = 'HOUR' | 'MINUTE' | 'SECOND'\n\nexport default mixins(\n Picker,\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-time-picker',\n\n props: {\n activePicker: String as PropType,\n allowedHours: [Function, Array] as PropType,\n allowedMinutes: [Function, Array] as PropType,\n allowedSeconds: [Function, Array] as PropType,\n disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n validator (val: any) {\n return ['ampm', '24hr'].includes(val)\n },\n },\n min: String,\n max: String,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n value: null as any as PropType,\n ampmInTitle: Boolean,\n },\n\n data () {\n return {\n inputHour: null as number | null,\n inputMinute: null as number | null,\n inputSecond: null as number | null,\n lazyInputHour: null as number | null,\n lazyInputMinute: null as number | null,\n lazyInputSecond: null as number | null,\n period: 'am' as Period,\n selecting: SelectingTimes.Hour,\n }\n },\n\n computed: {\n selectingHour: {\n get (): boolean {\n return this.selecting === SelectingTimes.Hour\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Hour\n },\n },\n selectingMinute: {\n get (): boolean {\n return this.selecting === SelectingTimes.Minute\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Minute\n },\n },\n selectingSecond: {\n get (): boolean {\n return this.selecting === SelectingTimes.Second\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Second\n },\n },\n isAllowedHourCb (): AllowFunction {\n let cb: AllowFunction\n\n if (this.allowedHours instanceof Array) {\n cb = (val: number) => (this.allowedHours as number[]).includes(val)\n } else {\n cb = this.allowedHours\n }\n\n if (!this.min && !this.max) return cb\n\n const minHour = this.min ? Number(this.min.split(':')[0]) : 0\n const maxHour = this.max ? Number(this.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= minHour * 1 &&\n val <= maxHour * 1 &&\n (!cb || cb(val))\n }\n },\n isAllowedMinuteCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n if (this.allowedMinutes instanceof Array) {\n cb = (val: number) => (this.allowedMinutes as number[]).includes(val)\n } else {\n cb = this.allowedMinutes\n }\n\n if (!this.min && !this.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = this.min ? this.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = this.max ? this.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + minMinute * 1\n const maxTime = maxHour * 60 + maxMinute * 1\n\n return (val: number) => {\n const time = 60 * this.inputHour! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n },\n isAllowedSecondCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n const isMinuteAllowed = isHourAllowed &&\n (!this.isAllowedMinuteCb ||\n this.inputMinute === null ||\n this.isAllowedMinuteCb(this.inputMinute)\n )\n\n if (this.allowedSeconds instanceof Array) {\n cb = (val: number) => (this.allowedSeconds as number[]).includes(val)\n } else {\n cb = this.allowedSeconds\n }\n\n if (!this.min && !this.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = this.min ? this.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = this.max ? this.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1\n const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1\n\n return (val: number) => {\n const time = 3600 * this.inputHour! + 60 * this.inputMinute! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n },\n isAmPm (): boolean {\n return this.format === 'ampm'\n },\n },\n\n watch: {\n activePicker: 'setPicker',\n selecting: 'emitPicker',\n value: 'setInputData',\n },\n\n mounted () {\n this.setInputData(this.value)\n this.$on('update:period', this.setPeriod)\n },\n\n methods: {\n genValue () {\n if (this.inputHour != null && this.inputMinute != null && (!this.useSeconds || this.inputSecond != null)) {\n return `${pad(this.inputHour)}:${pad(this.inputMinute)}` + (this.useSeconds ? `:${pad(this.inputSecond!)}` : '')\n }\n\n return null\n },\n emitValue () {\n const value = this.genValue()\n if (value !== null) this.$emit('input', value)\n },\n emitPicker (value: SelectingTimes) {\n let activePicker = 'HOUR'\n if (value === SelectingTimes.Minute) {\n activePicker = 'MINUTE'\n } else if (value === SelectingTimes.Second) {\n activePicker = 'SECOND'\n }\n this.$emit('update:active-picker', activePicker)\n },\n setPicker (picker: ActivePicker) {\n if (picker === 'HOUR') this.selecting = SelectingTimes.Hour\n else if (picker === 'MINUTE') this.selecting = SelectingTimes.Minute\n else if (picker === 'SECOND' && this.useSeconds) this.selecting = SelectingTimes.Second\n },\n setPeriod (period: Period) {\n this.period = period\n if (this.inputHour != null) {\n const newHour = this.inputHour! + (period === 'am' ? -12 : 12)\n this.inputHour = this.firstAllowed('hour', newHour)\n this.emitValue()\n }\n },\n setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n this.inputHour = null\n this.inputMinute = null\n this.inputSecond = null\n } else if (value instanceof Date) {\n this.inputHour = value.getHours()\n this.inputMinute = value.getMinutes()\n this.inputSecond = value.getSeconds()\n } else {\n const [, hour, minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n this.inputHour = period ? this.convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n this.inputMinute = parseInt(minute, 10)\n this.inputSecond = parseInt(second || 0, 10)\n }\n\n this.period = (this.inputHour == null || this.inputHour < 12) ? 'am' : 'pm'\n },\n convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n },\n convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n },\n onInput (value: number) {\n if (this.selecting === SelectingTimes.Hour) {\n this.inputHour = this.isAmPm ? this.convert12to24(value, this.period) : value\n } else if (this.selecting === SelectingTimes.Minute) {\n this.inputMinute = value\n } else {\n this.inputSecond = value\n }\n this.emitValue()\n },\n onChange (value: number) {\n this.$emit(`click:${selectingNames[this.selecting]}`, value)\n\n const emitChange = this.selecting === (this.useSeconds ? SelectingTimes.Second : SelectingTimes.Minute)\n\n if (this.selecting === SelectingTimes.Hour) {\n this.selecting = SelectingTimes.Minute\n } else if (this.useSeconds && this.selecting === SelectingTimes.Minute) {\n this.selecting = SelectingTimes.Second\n }\n\n if (this.inputHour === this.lazyInputHour &&\n this.inputMinute === this.lazyInputMinute &&\n (!this.useSeconds || this.inputSecond === this.lazyInputSecond)\n ) return\n\n const time = this.genValue()\n if (time === null) return\n\n this.lazyInputHour = this.inputHour\n this.lazyInputMinute = this.inputMinute\n this.useSeconds && (this.lazyInputSecond = this.inputSecond)\n\n emitChange && this.$emit('change', time)\n },\n firstAllowed (type: 'hour' | 'minute' | 'second', value: number) {\n const allowedFn = type === 'hour' ? this.isAllowedHourCb : (type === 'minute' ? this.isAllowedMinuteCb : this.isAllowedSecondCb)\n if (!allowedFn) return value\n\n // TODO: clean up\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (this.isAmPm\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n },\n genClock () {\n return this.$createElement(VTimePickerClock, {\n props: {\n allowedValues:\n this.selecting === SelectingTimes.Hour\n ? this.isAllowedHourCb\n : (this.selecting === SelectingTimes.Minute\n ? this.isAllowedMinuteCb\n : this.isAllowedSecondCb),\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n double: this.selecting === SelectingTimes.Hour && !this.isAmPm,\n format: this.selecting === SelectingTimes.Hour\n ? (this.isAmPm ? this.convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2),\n light: this.light,\n max: this.selecting === SelectingTimes.Hour ? (this.isAmPm && this.period === 'am' ? 11 : 23) : 59,\n min: this.selecting === SelectingTimes.Hour && this.isAmPm && this.period === 'pm' ? 12 : 0,\n readonly: this.readonly,\n scrollable: this.scrollable,\n size: Number(this.width) - ((!this.fullWidth && this.landscape) ? 80 : 20),\n step: this.selecting === SelectingTimes.Hour ? 1 : 5,\n value: this.selecting === SelectingTimes.Hour\n ? this.inputHour\n : (this.selecting === SelectingTimes.Minute\n ? this.inputMinute\n : this.inputSecond),\n },\n on: {\n input: this.onInput,\n change: this.onChange,\n },\n ref: 'clock',\n })\n },\n genClockAmPm () {\n return this.$createElement('div', this.setTextColor(this.color || 'primary', {\n staticClass: 'v-time-picker-clock__ampm',\n }), [\n this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly),\n this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly),\n ])\n },\n genPickerBody () {\n return this.$createElement('div', {\n staticClass: 'v-time-picker-clock__container',\n key: this.selecting,\n }, [\n !this.ampmInTitle && this.isAmPm && this.genClockAmPm(),\n this.genClock(),\n ])\n },\n genPickerTitle () {\n return this.$createElement(VTimePickerTitle, {\n props: {\n ampm: this.isAmPm,\n ampmReadonly: this.isAmPm && !this.ampmInTitle,\n disabled: this.disabled,\n hour: this.inputHour,\n minute: this.inputMinute,\n second: this.inputSecond,\n period: this.period,\n readonly: this.readonly,\n useSeconds: this.useSeconds,\n selecting: this.selecting,\n },\n on: {\n 'update:selecting': (value: 1 | 2 | 3) => (this.selecting = value),\n 'update:period': (period: string) => this.$emit('update:period', period),\n },\n ref: 'title',\n slot: 'title',\n })\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--time')\n },\n})\n","import './VTimePickerClock.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Vue, { VNode, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ninterface Point {\n x: number\n y: number\n}\n\ninterface options extends Vue {\n $refs: {\n clock: HTMLElement\n innerClock: HTMLElement\n }\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n Colorable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-time-picker-clock',\n\n props: {\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n disabled: Boolean,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n } as PropValidator<(val: string | number) => string | number>,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n value: Number,\n },\n\n data () {\n return {\n inputValue: this.value,\n isDragging: false,\n valueOnMouseDown: null as number | null,\n valueOnMouseUp: null as number | null,\n }\n },\n\n computed: {\n count (): number {\n return this.max - this.min + 1\n },\n degreesPerUnit (): number {\n return 360 / this.roundCount\n },\n degrees (): number {\n return this.degreesPerUnit * Math.PI / 180\n },\n displayedValue (): number {\n return this.value == null ? this.min : this.value\n },\n innerRadiusScale (): number {\n return 0.62\n },\n roundCount (): number {\n return this.double ? (this.count / 2) : this.count\n },\n },\n\n watch: {\n value (value) {\n this.inputValue = value\n },\n },\n\n methods: {\n wheel (e: WheelEvent) {\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = this.displayedValue\n do {\n value = value + delta\n value = (value - this.min + this.count) % this.count + this.min\n } while (!this.isAllowed(value) && value !== this.displayedValue)\n\n if (value !== this.displayedValue) {\n this.update(value)\n }\n },\n isInner (value: number) {\n return this.double && (value - this.min >= this.roundCount)\n },\n handScale (value: number) {\n return this.isInner(value) ? this.innerRadiusScale : 1\n },\n isAllowed (value: number) {\n return !this.allowedValues || this.allowedValues(value)\n },\n genValues () {\n const children: VNode[] = []\n\n for (let value = this.min; value <= this.max; value = value + this.step) {\n const color = value === this.value && (this.color || 'accent')\n children.push(this.$createElement('span', this.setBackgroundColor(color, {\n staticClass: 'v-time-picker-clock__item',\n class: {\n 'v-time-picker-clock__item--active': value === this.displayedValue,\n 'v-time-picker-clock__item--disabled': this.disabled || !this.isAllowed(value),\n },\n style: this.getTransform(value),\n domProps: { innerHTML: `${this.format(value)}` },\n })))\n }\n\n return children\n },\n genHand () {\n const scale = `scaleY(${this.handScale(this.displayedValue)})`\n const angle = this.rotate + this.degreesPerUnit * (this.displayedValue - this.min)\n const color = (this.value != null) && (this.color || 'accent')\n return this.$createElement('div', this.setBackgroundColor(color, {\n staticClass: 'v-time-picker-clock__hand',\n class: {\n 'v-time-picker-clock__hand--inner': this.isInner(this.value),\n },\n style: {\n transform: `rotate(${angle}deg) ${scale}`,\n },\n }))\n },\n getTransform (i: number) {\n const { x, y } = this.getPosition(i)\n return {\n left: `${50 + x * 50}%`,\n top: `${50 + y * 50}%`,\n }\n },\n getPosition (value: number) {\n const rotateRadians = this.rotate * Math.PI / 180\n return {\n x: Math.sin((value - this.min) * this.degrees + rotateRadians) * this.handScale(value),\n y: -Math.cos((value - this.min) * this.degrees + rotateRadians) * this.handScale(value),\n }\n },\n onMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.valueOnMouseDown = null\n this.valueOnMouseUp = null\n this.isDragging = true\n this.onDragMove(e)\n },\n onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n\n this.isDragging = false\n if (this.valueOnMouseUp !== null && this.isAllowed(this.valueOnMouseUp)) {\n this.$emit('change', this.valueOnMouseUp)\n }\n },\n onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!this.isDragging && e.type !== 'click') || !this.$refs.clock) return\n\n const { width, top, left } = this.$refs.clock.getBoundingClientRect()\n const { width: innerWidth } = this.$refs.innerClock.getBoundingClientRect()\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(this.angle(center, coords) - this.rotate + 360) % 360\n const insideClick = this.double && this.euclidean(center, coords) < (innerWidth + innerWidth * this.innerRadiusScale) / 4\n const checksCount = Math.ceil(15 / this.degreesPerUnit)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = this.angleToValue(handAngle + i * this.degreesPerUnit, insideClick)\n if (this.isAllowed(value)) return this.setMouseDownValue(value)\n\n value = this.angleToValue(handAngle - i * this.degreesPerUnit, insideClick)\n if (this.isAllowed(value)) return this.setMouseDownValue(value)\n }\n },\n angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / this.degreesPerUnit) +\n (insideClick ? this.roundCount : 0)\n ) % this.count + this.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - this.degreesPerUnit / 2)) return value\n\n return insideClick ? this.max - this.roundCount + 1 : this.min\n },\n setMouseDownValue (value: number) {\n if (this.valueOnMouseDown === null) {\n this.valueOnMouseDown = value\n }\n\n this.valueOnMouseUp = value\n this.update(value)\n },\n update (value: number) {\n if (this.inputValue !== value) {\n this.inputValue = value\n this.$emit('input', value)\n }\n },\n euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n },\n angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - this.euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n },\n },\n\n render (h): VNode {\n const data: VNodeData = {\n staticClass: 'v-time-picker-clock',\n class: {\n 'v-time-picker-clock--indeterminate': this.value == null,\n ...this.themeClasses,\n },\n on: (this.readonly || this.disabled) ? undefined : {\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n mouseleave: (e: MouseEvent) => (this.isDragging && this.onMouseUp(e)),\n touchstart: this.onMouseDown,\n touchend: this.onMouseUp,\n mousemove: this.onDragMove,\n touchmove: this.onDragMove,\n },\n ref: 'clock',\n }\n\n if (this.scrollable && data.on) {\n data.on.wheel = this.wheel\n }\n\n return h('div', data, [\n h('div', {\n staticClass: 'v-time-picker-clock__inner',\n ref: 'innerClock',\n }, [\n this.genHand(),\n this.genValues(),\n ]),\n ])\n },\n})\n","import './VTimePickerTitle.sass'\n\n// Mixins\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport { pad } from '../VDatePicker/util'\nimport mixins from '../../util/mixins'\n\nimport { SelectingTimes } from './SelectingTimes'\nimport { VNode, PropType } from 'vue'\n\nexport default mixins(\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-time-picker-title',\n\n props: {\n ampm: Boolean,\n ampmReadonly: Boolean,\n disabled: Boolean,\n hour: Number,\n minute: Number,\n second: Number,\n period: {\n type: String as PropType<'am' | 'pm'>,\n validator: period => period === 'am' || period === 'pm',\n },\n readonly: Boolean,\n useSeconds: Boolean,\n selecting: Number,\n },\n\n methods: {\n genTime () {\n let hour = this.hour\n if (this.ampm) {\n hour = hour ? ((hour - 1) % 12 + 1) : 12\n }\n\n const displayedHour = this.hour == null ? '--' : this.ampm ? String(hour) : pad(hour)\n const displayedMinute = this.minute == null ? '--' : pad(this.minute)\n const titleContent = [\n this.genPickerButton('selecting', SelectingTimes.Hour, displayedHour, this.disabled),\n this.$createElement('span', ':'),\n this.genPickerButton('selecting', SelectingTimes.Minute, displayedMinute, this.disabled),\n ]\n\n if (this.useSeconds) {\n const displayedSecond = this.second == null ? '--' : pad(this.second)\n titleContent.push(this.$createElement('span', ':'))\n titleContent.push(this.genPickerButton('selecting', SelectingTimes.Second, displayedSecond, this.disabled))\n }\n return this.$createElement('div', {\n class: 'v-time-picker-title__time',\n }, titleContent)\n },\n genAmPm () {\n return this.$createElement('div', {\n staticClass: 'v-time-picker-title__ampm',\n class: {\n 'v-time-picker-title__ampm--readonly': this.ampmReadonly,\n },\n }, [\n (!this.ampmReadonly || this.period === 'am') ? this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly) : null,\n (!this.ampmReadonly || this.period === 'pm') ? this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly) : null,\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genTime()]\n\n this.ampm && children.push(this.genAmPm())\n\n return h('div', {\n staticClass: 'v-time-picker-title',\n }, children)\n },\n})\n","import VTimePicker from './VTimePicker'\nimport VTimePickerClock from './VTimePickerClock'\nimport VTimePickerTitle from './VTimePickerTitle'\n\nexport { VTimePicker, VTimePickerClock, VTimePickerTitle }\n\nexport default {\n $_vuetify_subcomponents: {\n VTimePicker,\n VTimePickerClock,\n VTimePickerTitle,\n },\n}\n","// Styles\nimport './VTimeline.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport { getSlot } from '../../util/helpers'\n\nexport default mixins(\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-timeline',\n\n provide (): object {\n return { timeline: this }\n },\n\n props: {\n alignTop: Boolean,\n dense: Boolean,\n reverse: Boolean,\n },\n\n computed: {\n classes (): {} {\n return {\n 'v-timeline--align-top': this.alignTop,\n 'v-timeline--dense': this.dense,\n 'v-timeline--reverse': this.reverse,\n ...this.themeClasses,\n }\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-timeline',\n class: this.classes,\n }, getSlot(this))\n },\n})\n","// Types\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { VNode, VNodeData } from 'vue'\n\n// Components\nimport VTimeline from './VTimeline'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport Colorable from '../../mixins/colorable'\nimport { getSlot } from '../../util/helpers'\n\nconst baseMixins = mixins(\n Colorable,\n Themeable\n/* @vue/component */\n)\n\ntype VTimelineInstance = InstanceType\n\ninterface options extends ExtractVue {\n timeline: VTimelineInstance\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-timeline-item',\n\n inject: ['timeline'],\n\n props: {\n color: {\n type: String,\n default: 'primary',\n },\n fillDot: Boolean,\n hideDot: Boolean,\n icon: String,\n iconColor: String,\n large: Boolean,\n left: Boolean,\n right: Boolean,\n small: Boolean,\n },\n\n computed: {\n hasIcon (): boolean {\n return !!this.icon || !!this.$slots.icon\n },\n },\n\n methods: {\n genBody () {\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__body',\n }, getSlot(this))\n },\n genIcon (): VNode | VNode[] {\n return getSlot(this, 'icon') || this.$createElement(VIcon, {\n props: {\n color: this.iconColor,\n dark: !this.theme.isDark,\n small: this.small,\n },\n }, this.icon)\n },\n genInnerDot () {\n const data: VNodeData = this.setBackgroundColor(this.color)\n\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__inner-dot',\n ...data,\n }, [this.hasIcon && this.genIcon()])\n },\n genDot () {\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__dot',\n class: {\n 'v-timeline-item__dot--small': this.small,\n 'v-timeline-item__dot--large': this.large,\n },\n }, [this.genInnerDot()])\n },\n genDivider () {\n const children = []\n\n if (!this.hideDot) children.push(this.genDot())\n\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__divider',\n }, children)\n },\n genOpposite () {\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__opposite',\n }, getSlot(this, 'opposite'))\n },\n },\n\n render (h): VNode {\n const children = [\n this.genBody(),\n this.genDivider(),\n ]\n\n if (this.$slots.opposite) children.push(this.genOpposite())\n\n return h('div', {\n staticClass: 'v-timeline-item',\n class: {\n 'v-timeline-item--fill-dot': this.fillDot,\n 'v-timeline-item--before': this.timeline.reverse ? this.right : this.left,\n 'v-timeline-item--after': this.timeline.reverse ? this.left : this.right,\n ...this.themeClasses,\n },\n }, children)\n },\n})\n","import VTimeline from './VTimeline'\nimport VTimelineItem from './VTimelineItem'\n\nexport { VTimeline, VTimelineItem }\n\nexport default {\n $_vuetify_subcomponents: {\n VTimeline,\n VTimelineItem,\n },\n}\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n name: 'v-toolbar',\n\n props: {\n absolute: Boolean,\n bottom: Boolean,\n collapse: Boolean,\n dense: Boolean,\n extended: Boolean,\n extensionHeight: {\n default: 48,\n type: [Number, String],\n },\n flat: Boolean,\n floating: Boolean,\n prominent: Boolean,\n short: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n tag: {\n type: String,\n default: 'header',\n },\n },\n\n data: () => ({\n isExtended: false,\n }),\n\n computed: {\n computedHeight (): number {\n const height = this.computedContentHeight\n\n if (!this.isExtended) return height\n\n const extensionHeight = parseInt(this.extensionHeight)\n\n return this.isCollapsed\n ? height\n : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n },\n computedContentHeight (): number {\n if (this.height) return parseInt(this.height)\n if (this.isProminent && this.dense) return 96\n if (this.isProminent && this.short) return 112\n if (this.isProminent) return 128\n if (this.dense) return 48\n if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n return 64\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-toolbar': true,\n 'v-toolbar--absolute': this.absolute,\n 'v-toolbar--bottom': this.bottom,\n 'v-toolbar--collapse': this.collapse,\n 'v-toolbar--collapsed': this.isCollapsed,\n 'v-toolbar--dense': this.dense,\n 'v-toolbar--extended': this.isExtended,\n 'v-toolbar--flat': this.flat,\n 'v-toolbar--floating': this.floating,\n 'v-toolbar--prominent': this.isProminent,\n }\n },\n isCollapsed (): boolean {\n return this.collapse\n },\n isProminent (): boolean {\n return this.prominent\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n height: convertToUnit(this.computedHeight),\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['app', ''],\n ['manual-scroll', ''],\n ['clipped-left', ''],\n ['clipped-right', ''],\n ['inverted-scroll', ''],\n ['scroll-off-screen', ''],\n ['scroll-target', ''],\n ['scroll-threshold', ''],\n ['card', ''],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genBackground () {\n const props = {\n height: convertToUnit(this.computedHeight),\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img({ props })\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-toolbar__image',\n }, [image])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__content',\n style: {\n height: convertToUnit(this.computedContentHeight),\n },\n }, getSlot(this))\n },\n genExtension () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__extension',\n style: {\n height: convertToUnit(this.extensionHeight),\n },\n }, getSlot(this, 'extension'))\n },\n },\n\n render (h): VNode {\n this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n const children = [this.genContent()]\n const data = this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n })\n\n if (this.isExtended) children.push(this.genExtension())\n if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n return h(this.tag, data, children)\n },\n})\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","import './VTooltip.sass'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\n\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Colorable, Delayable, Dependent, Menuable).extend({\n name: 'v-tooltip',\n\n props: {\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n disabled: Boolean,\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n openOnHover: {\n type: Boolean,\n default: true,\n },\n openOnFocus: {\n type: Boolean,\n default: true,\n },\n tag: {\n type: String,\n default: 'span',\n },\n transition: String,\n },\n\n data: () => ({\n calculatedMinWidth: 0,\n closeDependents: false,\n }),\n\n computed: {\n calculatedLeft (): string {\n const { activator, content } = this.dimensions\n const unknown = !this.bottom && !this.left && !this.top && !this.right\n const activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left\n let left = 0\n\n if (this.top || this.bottom || unknown) {\n left = (\n activatorLeft +\n (activator.width / 2) -\n (content.width / 2)\n )\n } else if (this.left || this.right) {\n left = (\n activatorLeft +\n (this.right ? activator.width : -content.width) +\n (this.right ? 10 : -10)\n )\n }\n\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return `${this.calcXOverflow(left, this.dimensions.content.width)}px`\n },\n calculatedTop (): string {\n const { activator, content } = this.dimensions\n const activatorTop = this.attach !== false ? activator.offsetTop : activator.top\n let top = 0\n\n if (this.top || this.bottom) {\n top = (\n activatorTop +\n (this.bottom ? activator.height : -content.height) +\n (this.bottom ? 10 : -10)\n )\n } else if (this.left || this.right) {\n top = (\n activatorTop +\n (activator.height / 2) -\n (content.height / 2)\n )\n }\n\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n if (this.attach === false) top += this.pageYOffset\n\n return `${this.calcYOverflow(top)}px`\n },\n classes (): object {\n return {\n 'v-tooltip--top': this.top,\n 'v-tooltip--right': this.right,\n 'v-tooltip--bottom': this.bottom,\n 'v-tooltip--left': this.left,\n 'v-tooltip--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }\n },\n computedTransition (): string {\n if (this.transition) return this.transition\n\n return this.isActive ? 'scale-transition' : 'fade-transition'\n },\n offsetY (): boolean {\n return this.top || this.bottom\n },\n offsetX (): boolean {\n return this.left || this.right\n },\n styles (): object {\n return {\n left: this.calculatedLeft,\n maxWidth: convertToUnit(this.maxWidth),\n minWidth: convertToUnit(this.minWidth),\n top: this.calculatedTop,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.value && this.callActivate()\n })\n },\n\n mounted () {\n if (getSlotType(this, 'activator', true) === 'v-slot') {\n consoleError(`v-tooltip's activator slot must be bound, try '