{"version":3,"sources":["webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/createClass.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/extends.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/inherits.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/typeof.js","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://ecoverso.org/./node_modules/@babel/runtime/regenerator/index.js","webpack://ecoverso.org/./node_modules/@mikaelkristiansson/domready/ready.js","webpack://ecoverso.org/./node_modules/@ctrl/tinycolor/dist/module/util.js","webpack://ecoverso.org/./node_modules/@ctrl/tinycolor/dist/module/conversion.js","webpack://ecoverso.org/./node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","webpack://ecoverso.org/./node_modules/@ctrl/tinycolor/dist/module/format-input.js","webpack://ecoverso.org/./node_modules/@ant-design/colors/dist/index.esm.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/utils.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/components/IconBase.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/components/AntdIcon.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/components/Context.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/CheckOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/CloseOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/DownOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/SearchOutlined.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/core/cache.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/core/types/Cache.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/core/types/common.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/inmemory/helpers.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/inmemory/entityStore.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/inmemory/readFromStore.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/inmemory/writeToStore.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/inmemory/policies.js","webpack://ecoverso.org/./node_modules/@apollo/client/cache/inmemory/reactiveVars.js","webpack://ecoverso.org/./node_modules/@apollo/client/core/LocalState.js","webpack://ecoverso.org/./node_modules/@apollo/client/core/QueryInfo.js","webpack://ecoverso.org/./node_modules/@apollo/client/core/QueryManager.js","webpack://ecoverso.org/./node_modules/@apollo/client/core/ApolloClient.js","webpack://ecoverso.org/./node_modules/@apollo/client/version.js","webpack://ecoverso.org/./node_modules/@apollo/client/core/Reobserver.js","webpack://ecoverso.org/./node_modules/@apollo/client/core/ObservableQuery.js","webpack://ecoverso.org/./node_modules/@apollo/client/core/index.js","webpack://ecoverso.org/./node_modules/@apollo/client/core/networkStatus.js","webpack://ecoverso.org/./node_modules/@apollo/client/errors/index.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/context/index.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/core/ApolloLink.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/utils/createOperation.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/utils/transformOperation.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/utils/validateOperation.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/core/concat.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/core/empty.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/core/execute.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/core/from.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/core/split.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/http/HttpLink.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/http/checkFetcher.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/http/createHttpLink.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/http/createSignalIfSupported.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/http/rewriteURIForGET.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/http/selectURI.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/http/serializeFetchParameter.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/utils/fromError.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/utils/fromPromise.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/utils/throwServerError.js","webpack://ecoverso.org/./node_modules/@apollo/client/link/utils/toPromise.js","webpack://ecoverso.org/./node_modules/@apollo/client/node_modules/ts-invariant/node_modules/tslib/tslib.es6.js","webpack://ecoverso.org/./node_modules/@apollo/client/node_modules/ts-invariant/lib/invariant.esm.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/context/ApolloContext.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/context/ApolloProvider.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/parser/index.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/data/OperationData.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/data/MutationData.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/hooks/useMutation.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/data/QueryData.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/hooks/utils/useBaseQuery.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/hooks/utils/useDeepMemo.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/hooks/useQuery.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/data/SubscriptionData.js","webpack://ecoverso.org/./node_modules/@apollo/client/react/hooks/useSubscription.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/common/arrays.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/common/canUse.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/common/cloneDeep.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/common/compact.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/common/errorHandling.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/common/mergeDeep.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/graphql/directives.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/graphql/fragments.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/graphql/getFromAST.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/graphql/storeUtils.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/common/filterInPlace.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/graphql/transform.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/policies/pagination.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/observables/Concast.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/observables/asyncMap.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/observables/iteration.js","webpack://ecoverso.org/./node_modules/@apollo/client/utilities/observables/subclassing.js","webpack://ecoverso.org/./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js","webpack://ecoverso.org/./node_modules/universal-cookie/es6/utils.js","webpack://ecoverso.org/./node_modules/universal-cookie/es6/Cookies.js","webpack://ecoverso.org/./node_modules/universal-cookie/es6/index.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js","webpack://ecoverso.org/./node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js","webpack://ecoverso.org/./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js","webpack://ecoverso.org/./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Util/StringUtils.js","webpack://ecoverso.org/./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js","webpack://ecoverso.org/./node_modules/@aws-amplify/auth/lib-esm/Errors.js","webpack://ecoverso.org/./node_modules/@aws-amplify/auth/lib-esm/Auth.js","webpack://ecoverso.org/./node_modules/@aws-amplify/auth/lib-esm/urlListener.js","webpack://ecoverso.org/./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js","webpack://ecoverso.org/./node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js","webpack://ecoverso.org/./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js","webpack://ecoverso.org/./node_modules/@aws-amplify/cache/lib-esm/index.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Amplify.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-cognito-identity/dist/es/models/models_0.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/property-provider/dist/es/ProviderError.js","webpack://ecoverso.org/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/resolveLogins.js","webpack://ecoverso.org/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentity.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/IndexedDbStorage.js","webpack://ecoverso.org/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/localStorage.js","webpack://ecoverso.org/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/InMemoryStorage.js","webpack://ecoverso.org/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentityPool.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-cognito-identity/dist/es/endpoints.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.shared.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.browser.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Credentials.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Hub.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/JS.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Util/Constants.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Parser.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Platform/version.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Platform/index.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Signer.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/Util/Retry.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/node_modules/@aws-crypto/sha256-js/build/index.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/models/models_0.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-arn-parser/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostnameUtils.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostname.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketEndpointMiddleware.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-sdk-s3/dist/es/validate-bucket-name.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-sdk-s3/dist/es/use-regional-endpoint.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-sdk-s3/dist/es/throw-200-exceptions.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-ssec/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/CopyObjectCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/GetObjectCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/DeleteObjectCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/ListObjectsCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/Int64.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/HeaderMarshaller.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/EventStreamMarshaller.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/splitMessage.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-serde-universal/dist/es/EventStreamMarshaller.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getChunkedStream.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getUnmarshalledStream.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-serde-browser/dist/es/EventStreamMarshaller.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-serde-browser/dist/es/utils.js","webpack://ecoverso.org/./node_modules/@aws-sdk/chunked-blob-reader/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/hash-blob-browser/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/md5-js/dist/es/constants.js","webpack://ecoverso.org/./node_modules/@aws-sdk/md5-js/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/endpoints.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.shared.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.browser.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-serde-browser/dist/es/provider.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-expect-continue/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/S3Client.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/configurations.js","webpack://ecoverso.org/./node_modules/@aws-sdk/eventstream-serde-config-resolver/dist/es/EventStreamSerdeConfig.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-format-url/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-create-request/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/s3-request-presigner/dist/es/presigner.js","webpack://ecoverso.org/./node_modules/@aws-sdk/s3-request-presigner/dist/es/constants.js","webpack://ecoverso.org/./node_modules/@aws-amplify/storage/lib-esm/providers/axios-http-handler.js","webpack://ecoverso.org/./node_modules/@aws-amplify/storage/lib-esm/common/StorageErrorStrings.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/PutObjectCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/models/models_1.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/CreateMultipartUploadCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/UploadPartCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/CompleteMultipartUploadCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/AbortMultipartUploadCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/dist/es/commands/ListPartsCommand.js","webpack://ecoverso.org/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3ProviderManagedUpload.js","webpack://ecoverso.org/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3Provider.js","webpack://ecoverso.org/./node_modules/@aws-amplify/storage/lib-esm/Storage.js","webpack://ecoverso.org/./node_modules/@aws-amplify/storage/lib-esm/index.js","webpack://ecoverso.org/./node_modules/@aws-amplify/ui/dist/aws-amplify-ui.js","webpack://ecoverso.org/./node_modules/@aws-crypto/crc32/build/aws_crc32.js","webpack://ecoverso.org/./node_modules/@aws-crypto/crc32/build/index.js","webpack://ecoverso.org/./node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","webpack://ecoverso.org/./node_modules/@aws-crypto/ie11-detection/build/Key.js","webpack://ecoverso.org/./node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","webpack://ecoverso.org/./node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","webpack://ecoverso.org/./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","webpack://ecoverso.org/./node_modules/@aws-crypto/ie11-detection/build/index.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-browser/build/constants.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-browser/build/index.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-js/build/index.js","webpack://ecoverso.org/./node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://ecoverso.org/./node_modules/@aws-crypto/supports-web-crypto/build/index.js","webpack://ecoverso.org/./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","webpack://ecoverso.org/./node_modules/@aws-crypto/util/build/convertToBuffer.js","webpack://ecoverso.org/./node_modules/@aws-crypto/util/build/index.js","webpack://ecoverso.org/./node_modules/@aws-crypto/util/build/isEmptyData.js","webpack://ecoverso.org/./node_modules/@aws-crypto/util/build/numToUint8.js","webpack://ecoverso.org/./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-cognito-identity/node_modules/tslib/tslib.es6.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-pinpoint/node_modules/tslib/tslib.es6.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-s3/node_modules/tslib/tslib.es6.js","webpack://ecoverso.org/./node_modules/@aws-sdk/config-resolver/dist/es/EndpointsConfig.js","webpack://ecoverso.org/./node_modules/@aws-sdk/config-resolver/dist/es/RegionConfig.js","webpack://ecoverso.org/./node_modules/@aws-sdk/fetch-http-handler/dist/es/fetch-http-handler.js","webpack://ecoverso.org/./node_modules/@aws-sdk/fetch-http-handler/dist/es/request-timeout.js","webpack://ecoverso.org/./node_modules/@aws-sdk/fetch-http-handler/dist/es/stream-collector.js","webpack://ecoverso.org/./node_modules/@aws-sdk/invalid-dependency/dist/es/invalidProvider.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-content-length/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-host-header/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-logger/dist/es/loggerMiddleware.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-retry/dist/es/retryMiddleware.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-retry/node_modules/@aws-sdk/service-error-classification/dist/es/constants.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-retry/node_modules/@aws-sdk/service-error-classification/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-retry/dist/es/delayDecider.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-retry/dist/es/constants.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-retry/dist/es/retryDecider.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultStrategy.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultRetryQuota.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-retry/dist/es/configurations.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-serde/dist/es/serdePlugin.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-serde/dist/es/deserializerMiddleware.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-serde/dist/es/serializerMiddleware.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-signing/dist/es/configurations.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-signing/dist/es/middleware.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-user-agent/dist/es/configurations.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-user-agent/dist/es/constants.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-user-agent/dist/es/user-agent-middleware.js","webpack://ecoverso.org/./node_modules/@aws-sdk/protocol-http/dist/es/httpResponse.js","webpack://ecoverso.org/./node_modules/@aws-sdk/protocol-http/dist/es/httpRequest.js","webpack://ecoverso.org/./node_modules/@aws-sdk/querystring-builder/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/constants.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js","webpack://ecoverso.org/./node_modules/@aws-sdk/is-array-buffer/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js","webpack://ecoverso.org/./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js","webpack://ecoverso.org/./node_modules/@aws-sdk/middleware-stack/dist/es/MiddlewareStack.js","webpack://ecoverso.org/./node_modules/@aws-sdk/smithy-client/dist/es/client.js","webpack://ecoverso.org/./node_modules/@aws-sdk/smithy-client/dist/es/command.js","webpack://ecoverso.org/./node_modules/@aws-sdk/smithy-client/dist/es/extended-encode-uri-component.js","webpack://ecoverso.org/./node_modules/@aws-sdk/smithy-client/dist/es/get-array-if-single-item.js","webpack://ecoverso.org/./node_modules/@aws-sdk/smithy-client/dist/es/get-value-from-text-node.js","webpack://ecoverso.org/./node_modules/@aws-sdk/smithy-client/dist/es/lazy-json.js","webpack://ecoverso.org/./node_modules/@aws-sdk/smithy-client/dist/es/date-utils.js","webpack://ecoverso.org/./node_modules/@aws-sdk/smithy-client/dist/es/constants.js","webpack://ecoverso.org/./node_modules/@aws-sdk/url-parser/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/querystring-parser/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-base64-browser/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-body-length-browser/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-hex-encoding/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-locate-window/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-user-agent-browser/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","webpack://ecoverso.org/./node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","webpack://ecoverso.org/./node_modules/@aws-sdk/xml-builder/dist/es/XmlNode.js","webpack://ecoverso.org/./node_modules/@aws-sdk/xml-builder/dist/es/escape-attribute.js","webpack://ecoverso.org/./node_modules/@aws-sdk/xml-builder/dist/es/XmlText.js","webpack://ecoverso.org/./node_modules/@aws-sdk/xml-builder/dist/es/escape-element.js","webpack://ecoverso.org/./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack://ecoverso.org/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://ecoverso.org/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://ecoverso.org/./node_modules/@hypnosphi/create-react-context/lib/implementation.js","webpack://ecoverso.org/./node_modules/@hypnosphi/create-react-context/lib/index.js","webpack://ecoverso.org/./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack://ecoverso.org/./node_modules/@wry/context/lib/context.esm.js","webpack://ecoverso.org/./node_modules/@wry/equality/lib/equality.esm.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/BigInteger.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/DateHelper.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/StorageHelper.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/CognitoUser.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/Platform/index.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/UserAgent.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/Client.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/es/CookieStorage.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/node_modules/buffer/index.js","webpack://ecoverso.org/./node_modules/amazon-cognito-identity-js/node_modules/isarray/index.js","webpack://ecoverso.org/./node_modules/antd/es/_util/colors.js","webpack://ecoverso.org/./node_modules/antd/es/_util/devWarning.js","webpack://ecoverso.org/./node_modules/antd/es/_util/hooks/useForceUpdate.js","webpack://ecoverso.org/./node_modules/antd/es/_util/motion.js","webpack://ecoverso.org/./node_modules/antd/es/_util/reactNode.js","webpack://ecoverso.org/./node_modules/antd/es/_util/responsiveObserve.js","webpack://ecoverso.org/./node_modules/antd/es/_util/type.js","webpack://ecoverso.org/./node_modules/antd/es/_util/raf.js","webpack://ecoverso.org/./node_modules/antd/es/_util/wave.js","webpack://ecoverso.org/./node_modules/antd/es/_util/unreachableException.js","webpack://ecoverso.org/./node_modules/antd/es/button/button-group.js","webpack://ecoverso.org/./node_modules/antd/es/button/LoadingIcon.js","webpack://ecoverso.org/./node_modules/antd/es/button/button.js","webpack://ecoverso.org/./node_modules/antd/es/button/index.js","webpack://ecoverso.org/./node_modules/antd/es/checkbox/Group.js","webpack://ecoverso.org/./node_modules/antd/es/checkbox/Checkbox.js","webpack://ecoverso.org/./node_modules/antd/es/checkbox/index.js","webpack://ecoverso.org/./node_modules/antd/es/col/index.js","webpack://ecoverso.org/./node_modules/antd/es/config-provider/SizeContext.js","webpack://ecoverso.org/./node_modules/antd/es/config-provider/renderEmpty.js","webpack://ecoverso.org/./node_modules/antd/es/config-provider/context.js","webpack://ecoverso.org/./node_modules/antd/es/modal/locale.js","webpack://ecoverso.org/./node_modules/antd/es/locale-provider/index.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","webpack://ecoverso.org/./node_modules/antd/es/message/index.js","webpack://ecoverso.org/./node_modules/antd/es/message/hooks/useMessage.js","webpack://ecoverso.org/./node_modules/antd/es/config-provider/index.js","webpack://ecoverso.org/./node_modules/antd/es/empty/empty.js","webpack://ecoverso.org/./node_modules/antd/es/empty/simple.js","webpack://ecoverso.org/./node_modules/antd/es/empty/index.js","webpack://ecoverso.org/./node_modules/antd/es/grid/RowContext.js","webpack://ecoverso.org/./node_modules/antd/es/grid/col.js","webpack://ecoverso.org/./node_modules/antd/es/_util/styleChecker.js","webpack://ecoverso.org/./node_modules/antd/es/grid/hooks/useFlexGapSupport.js","webpack://ecoverso.org/./node_modules/antd/es/grid/row.js","webpack://ecoverso.org/./node_modules/antd/es/locale-provider/default.js","webpack://ecoverso.org/./node_modules/antd/es/locale-provider/LocaleReceiver.js","webpack://ecoverso.org/./node_modules/antd/es/locale-provider/context.js","webpack://ecoverso.org/./node_modules/rc-picker/es/locale/en_US.js","webpack://ecoverso.org/./node_modules/antd/es/time-picker/locale/en_US.js","webpack://ecoverso.org/./node_modules/antd/es/date-picker/locale/en_US.js","webpack://ecoverso.org/./node_modules/antd/es/calendar/locale/en_US.js","webpack://ecoverso.org/./node_modules/antd/es/locale/default.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/ExclamationCircleOutlined.js","webpack://ecoverso.org/./node_modules/antd/es/notification/index.js","webpack://ecoverso.org/./node_modules/antd/es/notification/hooks/useNotification.js","webpack://ecoverso.org/./node_modules/antd/es/progress/utils.js","webpack://ecoverso.org/./node_modules/antd/es/progress/Line.js","webpack://ecoverso.org/./node_modules/rc-progress/es/common.js","webpack://ecoverso.org/./node_modules/rc-progress/es/Line.js","webpack://ecoverso.org/./node_modules/rc-progress/es/Circle.js","webpack://ecoverso.org/./node_modules/antd/es/progress/Circle.js","webpack://ecoverso.org/./node_modules/antd/es/progress/Steps.js","webpack://ecoverso.org/./node_modules/antd/es/progress/progress.js","webpack://ecoverso.org/./node_modules/antd/es/progress/index.js","webpack://ecoverso.org/./node_modules/antd/es/radio/context.js","webpack://ecoverso.org/./node_modules/antd/es/radio/radio.js","webpack://ecoverso.org/./node_modules/antd/es/radio/group.js","webpack://ecoverso.org/./node_modules/antd/es/radio/radioButton.js","webpack://ecoverso.org/./node_modules/antd/es/radio/index.js","webpack://ecoverso.org/./node_modules/antd/es/row/index.js","webpack://ecoverso.org/./node_modules/rc-util/es/pickAttrs.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/Filler.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/ScrollBar.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/Item.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/utils/CacheMap.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/hooks/useHeights.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/hooks/useScrollTo.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/hooks/useDiffItem.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/utils/algorithmUtil.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/utils/isFirefox.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/List.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/hooks/useChildren.js","webpack://ecoverso.org/./node_modules/rc-virtual-list/es/index.js","webpack://ecoverso.org/./node_modules/rc-select/es/TransBtn.js","webpack://ecoverso.org/./node_modules/rc-select/es/OptionList.js","webpack://ecoverso.org/./node_modules/rc-select/es/Option.js","webpack://ecoverso.org/./node_modules/rc-select/es/OptGroup.js","webpack://ecoverso.org/./node_modules/rc-select/es/utils/legacyUtil.js","webpack://ecoverso.org/./node_modules/rc-select/es/utils/commonUtil.js","webpack://ecoverso.org/./node_modules/rc-select/es/utils/valueUtil.js","webpack://ecoverso.org/./node_modules/rc-overflow/es/Item.js","webpack://ecoverso.org/./node_modules/rc-overflow/es/Overflow.js","webpack://ecoverso.org/./node_modules/rc-overflow/es/hooks/useBatchFrameState.js","webpack://ecoverso.org/./node_modules/rc-overflow/es/index.js","webpack://ecoverso.org/./node_modules/rc-select/es/Selector/Input.js","webpack://ecoverso.org/./node_modules/rc-select/es/hooks/useLayoutEffect.js","webpack://ecoverso.org/./node_modules/rc-select/es/Selector/MultipleSelector.js","webpack://ecoverso.org/./node_modules/rc-select/es/Selector/SingleSelector.js","webpack://ecoverso.org/./node_modules/rc-select/es/hooks/useLock.js","webpack://ecoverso.org/./node_modules/rc-select/es/Selector/index.js","webpack://ecoverso.org/./node_modules/rc-select/es/SelectTrigger.js","webpack://ecoverso.org/./node_modules/rc-select/es/generate.js","webpack://ecoverso.org/./node_modules/rc-select/es/utils/warningPropsUtil.js","webpack://ecoverso.org/./node_modules/rc-select/es/Select.js","webpack://ecoverso.org/./node_modules/rc-select/es/interface/generator.js","webpack://ecoverso.org/./node_modules/rc-select/es/hooks/useDelayReset.js","webpack://ecoverso.org/./node_modules/rc-select/es/hooks/useCacheOptions.js","webpack://ecoverso.org/./node_modules/rc-select/es/hooks/useCacheDisplayValue.js","webpack://ecoverso.org/./node_modules/rc-select/es/hooks/useSelectTriggerControl.js","webpack://ecoverso.org/./node_modules/rc-select/es/index.js","webpack://ecoverso.org/./node_modules/antd/es/select/index.js","webpack://ecoverso.org/./node_modules/antd/es/select/utils/iconUtil.js","webpack://ecoverso.org/./node_modules/antd/es/tooltip/placements.js","webpack://ecoverso.org/./node_modules/antd/es/tooltip/index.js","webpack://ecoverso.org/./node_modules/array-filter/index.js","webpack://ecoverso.org/./node_modules/attr-accept/dist/es/index.js","webpack://ecoverso.org/./node_modules/available-typed-arrays/index.js","webpack://ecoverso.org/./node_modules/aws-appsync-auth-link/lib/auth-link.js","webpack://ecoverso.org/./node_modules/aws-appsync-auth-link/lib/index.js","webpack://ecoverso.org/./node_modules/aws-appsync-auth-link/lib/platform.js","webpack://ecoverso.org/./node_modules/aws-appsync-auth-link/lib/signer/index.js","webpack://ecoverso.org/./node_modules/aws-appsync-auth-link/lib/signer/signer.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/lib/index.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/lib/non-terminating-link.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/lib/realtime-subscription-handshake-link.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/lib/subscription-handshake-link.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/lib/types/index.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/lib/utils/index.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/lib/utils/logger.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/lib/utils/retry.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/lib/vendor/paho-mqtt.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/node_modules/debug/src/browser.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/node_modules/debug/src/debug.js","webpack://ecoverso.org/./node_modules/aws-appsync-subscription-link/node_modules/ms/index.js","webpack://ecoverso.org/./node_modules/aws-sdk/browser.js","webpack://ecoverso.org/./node_modules/aws-sdk/clients/cognitoidentity.js","webpack://ecoverso.org/./node_modules/aws-sdk/clients/sts.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/api_loader.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/browserCryptoLib.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/browserHashUtils.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/browserHmac.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/browserMd5.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/browserSha1.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/browserSha256.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/browser_loader.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/config.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/config_regional_endpoint.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/core.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/credentials.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/credentials/saml_credentials.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/credentials/temporary_credentials.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/discover_endpoint.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/event-stream/int64.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/event-stream/parse-event.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/event-stream/parse-message.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/event-stream/split-message.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/event_listeners.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/http.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/http/xhr.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/json/builder.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/json/parser.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/model/api.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/model/collection.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/model/operation.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/model/paginator.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/model/resource_waiter.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/model/shape.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/param_validator.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/protocol/helpers.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/protocol/json.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/protocol/query.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/protocol/rest.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/protocol/rest_json.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/protocol/rest_xml.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/query/query_param_serializer.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/realclock/browserClock.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/region_config.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/request.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/resource_waiter.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/response.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/sequential_executor.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/service.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/services/sts.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/signers/presign.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/signers/request_signer.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/signers/s3.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/signers/v2.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/signers/v3.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/signers/v3https.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/signers/v4.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/signers/v4_credentials.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/state_machine.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/util.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/xml/browser_parser.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/xml/builder.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/xml/escape-attribute.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/xml/escape-element.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/xml/xml-node.js","webpack://ecoverso.org/./node_modules/aws-sdk/lib/xml/xml-text.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/buffer/index.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/events/events.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/ieee754/index.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/isarray/index.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/url/url.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/uuid/index.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/uuid/v1.js","webpack://ecoverso.org/./node_modules/aws-sdk/node_modules/uuid/v4.js","webpack://ecoverso.org/./node_modules/aws-sdk/vendor/endpoint-cache/index.js","webpack://ecoverso.org/./node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","webpack://ecoverso.org/./node_modules/axios/index.js","webpack://ecoverso.org/./node_modules/axios/lib/adapters/xhr.js","webpack://ecoverso.org/./node_modules/axios/lib/axios.js","webpack://ecoverso.org/./node_modules/axios/lib/cancel/Cancel.js","webpack://ecoverso.org/./node_modules/axios/lib/cancel/CancelToken.js","webpack://ecoverso.org/./node_modules/axios/lib/cancel/isCancel.js","webpack://ecoverso.org/./node_modules/axios/lib/core/Axios.js","webpack://ecoverso.org/./node_modules/axios/lib/core/InterceptorManager.js","webpack://ecoverso.org/./node_modules/axios/lib/core/buildFullPath.js","webpack://ecoverso.org/./node_modules/axios/lib/core/createError.js","webpack://ecoverso.org/./node_modules/axios/lib/core/dispatchRequest.js","webpack://ecoverso.org/./node_modules/axios/lib/core/enhanceError.js","webpack://ecoverso.org/./node_modules/axios/lib/core/mergeConfig.js","webpack://ecoverso.org/./node_modules/axios/lib/core/settle.js","webpack://ecoverso.org/./node_modules/axios/lib/core/transformData.js","webpack://ecoverso.org/./node_modules/axios/lib/defaults.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/bind.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/buildURL.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/combineURLs.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/cookies.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/spread.js","webpack://ecoverso.org/./node_modules/axios/lib/helpers/validator.js","webpack://ecoverso.org/./node_modules/axios/lib/utils.js","webpack://ecoverso.org/./node_modules/base64-js/index.js","webpack://ecoverso.org/./node_modules/bowser/es5.js","webpack://ecoverso.org/./node_modules/browser-lang/dist/index.js","webpack://ecoverso.org/./node_modules/buffer/index.js","webpack://ecoverso.org/./node_modules/call-bind/callBound.js","webpack://ecoverso.org/./node_modules/call-bind/index.js","webpack://ecoverso.org/./node_modules/classnames/index.js","webpack://ecoverso.org/./node_modules/cookie/index.js","webpack://ecoverso.org/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://ecoverso.org/./node_modules/crypto-js/core.js","webpack://ecoverso.org/./node_modules/crypto-js/enc-base64.js","webpack://ecoverso.org/./node_modules/crypto-js/hmac-sha256.js","webpack://ecoverso.org/./node_modules/crypto-js/hmac.js","webpack://ecoverso.org/./node_modules/crypto-js/lib-typedarrays.js","webpack://ecoverso.org/./node_modules/crypto-js/sha256.js","webpack://ecoverso.org/./node_modules/dashify/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/addDays/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/addHours/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/addMinutes/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/addMonths/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/addWeeks/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/addYears/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/differenceInCalendarYears/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/endOfDay/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/endOfMonth/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/endOfWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/format/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getDate/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getDay/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getHours/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/startOfISOWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getISOWeekYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/startOfISOWeekYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getISOWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getMinutes/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getMonth/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getQuarter/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getSeconds/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getTime/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isAfter/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isBefore/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isDate/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isEqual/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isSameDay/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isSameMonth/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isSameQuarter/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isSameYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isValid/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/isWithinInterval/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/it/_lib/formatDistance/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/it/_lib/formatLong/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/it/_lib/formatRelative/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/it/_lib/localize/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/it/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/locale/it/_lib/match/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/max/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/min/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/assign/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/parse/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/parseISO/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/setHours/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/setMinutes/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/getDaysInMonth/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/setMonth/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/setQuarter/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/setSeconds/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/setYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/startOfDay/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/startOfMonth/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/startOfQuarter/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/startOfWeek/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/startOfYear/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/subDays/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/subHours/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/subMinutes/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/subMonths/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/subWeeks/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/subYears/index.js","webpack://ecoverso.org/./node_modules/date-fns/esm/toDate/index.js","webpack://ecoverso.org/./node_modules/deep-equal/index.js","webpack://ecoverso.org/./node_modules/define-properties/index.js","webpack://ecoverso.org/./node_modules/desandro-matches-selector/matches-selector.js","webpack://ecoverso.org/./node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","webpack://ecoverso.org/./node_modules/ev-emitter/ev-emitter.js","webpack://ecoverso.org/./node_modules/events/events.js","webpack://ecoverso.org/./node_modules/fast-json-stable-stringify/index.js","webpack://ecoverso.org/./node_modules/fast-xml-parser/src/json2xml.js","webpack://ecoverso.org/./node_modules/fast-xml-parser/src/nimndata.js","webpack://ecoverso.org/./node_modules/fast-xml-parser/src/node2json.js","webpack://ecoverso.org/./node_modules/fast-xml-parser/src/node2json_str.js","webpack://ecoverso.org/./node_modules/fast-xml-parser/src/parser.js","webpack://ecoverso.org/./node_modules/fast-xml-parser/src/util.js","webpack://ecoverso.org/./node_modules/fast-xml-parser/src/validator.js","webpack://ecoverso.org/./node_modules/fast-xml-parser/src/xmlNode.js","webpack://ecoverso.org/./node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","webpack://ecoverso.org/./node_modules/fizzy-ui-utils/utils.js","webpack://ecoverso.org/./node_modules/flickity/js/add-remove-cell.js","webpack://ecoverso.org/./node_modules/flickity/js/animate.js","webpack://ecoverso.org/./node_modules/flickity/js/cell.js","webpack://ecoverso.org/./node_modules/flickity/js/drag.js","webpack://ecoverso.org/./node_modules/flickity/js/flickity.js","webpack://ecoverso.org/./node_modules/flickity/js/index.js","webpack://ecoverso.org/./node_modules/flickity/js/lazyload.js","webpack://ecoverso.org/./node_modules/flickity/js/page-dots.js","webpack://ecoverso.org/./node_modules/flickity/js/player.js","webpack://ecoverso.org/./node_modules/flickity/js/prev-next-button.js","webpack://ecoverso.org/./node_modules/flickity/js/slide.js","webpack://ecoverso.org/./node_modules/foreach/index.js","webpack://ecoverso.org/./node_modules/function-bind/implementation.js","webpack://ecoverso.org/./node_modules/function-bind/index.js","webpack://ecoverso.org/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/fetch.js","webpack://ecoverso.org/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://ecoverso.org/./node_modules/get-intrinsic/index.js","webpack://ecoverso.org/./node_modules/get-size/get-size.js","webpack://ecoverso.org/./node_modules/graphql-tag/node_modules/tslib/tslib.es6.js","webpack://ecoverso.org/./node_modules/graphql-tag/lib/index.js","webpack://ecoverso.org/./node_modules/graphql/error/GraphQLError.mjs","webpack://ecoverso.org/./node_modules/graphql/error/syntaxError.mjs","webpack://ecoverso.org/./node_modules/graphql/version.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/isPromise.mjs","webpack://ecoverso.org/./node_modules/graphql/polyfills/find.mjs","webpack://ecoverso.org/./node_modules/graphql/polyfills/objectValues.mjs","webpack://ecoverso.org/./node_modules/graphql/error/locatedError.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/assertValidName.mjs","webpack://ecoverso.org/./node_modules/graphql/polyfills/objectEntries.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/keyMap.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/mapValue.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/toObjMap.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/keyValMap.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/didYouMean.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/identityFunc.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/naturalCompare.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/suggestionList.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/valueFromASTUntyped.mjs","webpack://ecoverso.org/./node_modules/graphql/type/definition.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/typeComparators.mjs","webpack://ecoverso.org/./node_modules/graphql/polyfills/arrayFrom.mjs","webpack://ecoverso.org/./node_modules/graphql/polyfills/isFinite.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/safeArrayFrom.mjs","webpack://ecoverso.org/./node_modules/graphql/polyfills/isInteger.mjs","webpack://ecoverso.org/./node_modules/graphql/type/scalars.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/astFromValue.mjs","webpack://ecoverso.org/./node_modules/graphql/type/introspection.mjs","webpack://ecoverso.org/./node_modules/graphql/type/directives.mjs","webpack://ecoverso.org/./node_modules/graphql/type/schema.mjs","webpack://ecoverso.org/./node_modules/graphql/type/validate.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/typeFromAST.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/TypeInfo.mjs","webpack://ecoverso.org/./node_modules/graphql/language/predicates.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/ExecutableDefinitionsRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueOperationNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/KnownTypeNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/VariablesAreInputTypesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/ScalarLeafsRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueFragmentNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/KnownFragmentNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/NoUnusedFragmentsRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/NoFragmentCyclesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueVariableNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/NoUndefinedVariablesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/NoUnusedVariablesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/KnownDirectivesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/KnownArgumentNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueArgumentNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueOperationTypesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueTypeNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/specifiedRules.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/ValidationContext.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/validate.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/Path.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/getOperationRootType.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/printPathArray.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/valueFromAST.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/coerceInputValue.mjs","webpack://ecoverso.org/./node_modules/graphql/execution/values.mjs","webpack://ecoverso.org/./node_modules/graphql/execution/execute.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/promiseReduce.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/promiseForObject.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/memoize3.mjs","webpack://ecoverso.org/./node_modules/graphql/graphql.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/isAsyncIterable.mjs","webpack://ecoverso.org/./node_modules/graphql/subscription/mapAsyncIterator.mjs","webpack://ecoverso.org/./node_modules/graphql/subscription/subscribe.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.mjs","webpack://ecoverso.org/./node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs","webpack://ecoverso.org/./node_modules/graphql/error/formatError.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/getIntrospectionQuery.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/getOperationAST.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/introspectionFromSchema.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/buildClientSchema.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/extendSchema.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/buildASTSchema.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/lexicographicSortSchema.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/printSchema.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/concatAST.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/separateOperations.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/stripIgnoredCharacters.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/findBreakingChanges.mjs","webpack://ecoverso.org/./node_modules/graphql/utilities/findDeprecatedUsages.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/defineInspect.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/devAssert.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/inspect.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/instanceOf.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/invariant.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/isObjectLike.mjs","webpack://ecoverso.org/./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","webpack://ecoverso.org/./node_modules/graphql/language/ast.mjs","webpack://ecoverso.org/./node_modules/graphql/language/blockString.mjs","webpack://ecoverso.org/./node_modules/graphql/language/directiveLocation.mjs","webpack://ecoverso.org/./node_modules/graphql/language/kinds.mjs","webpack://ecoverso.org/./node_modules/graphql/language/lexer.mjs","webpack://ecoverso.org/./node_modules/graphql/language/location.mjs","webpack://ecoverso.org/./node_modules/graphql/language/parser.mjs","webpack://ecoverso.org/./node_modules/graphql/language/printLocation.mjs","webpack://ecoverso.org/./node_modules/graphql/language/printer.mjs","webpack://ecoverso.org/./node_modules/graphql/language/source.mjs","webpack://ecoverso.org/./node_modules/graphql/language/tokenKind.mjs","webpack://ecoverso.org/./node_modules/graphql/language/visitor.mjs","webpack://ecoverso.org/./node_modules/graphql/polyfills/symbols.mjs","webpack://ecoverso.org/./node_modules/gud/index.js","webpack://ecoverso.org/./node_modules/has-symbols/index.js","webpack://ecoverso.org/./node_modules/has-symbols/shams.js","webpack://ecoverso.org/./node_modules/has/src/index.js","webpack://ecoverso.org/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://ecoverso.org/./node_modules/i18next-intervalplural-postprocessor/dist/commonjs/index.js","webpack://ecoverso.org/./node_modules/i18next-intervalplural-postprocessor/index.js","webpack://ecoverso.org/./node_modules/ieee754/index.js","webpack://ecoverso.org/./node_modules/image-exists/index.js","webpack://ecoverso.org/./node_modules/imagesloaded/imagesloaded.js","webpack://ecoverso.org/./node_modules/inherits/inherits_browser.js","webpack://ecoverso.org/./node_modules/is-arguments/index.js","webpack://ecoverso.org/./node_modules/is-date-object/index.js","webpack://ecoverso.org/./node_modules/is-generator-function/index.js","webpack://ecoverso.org/./node_modules/is-regex/index.js","webpack://ecoverso.org/./node_modules/is-typed-array/index.js","webpack://ecoverso.org/./node_modules/jmespath/jmespath.js","webpack://ecoverso.org/./node_modules/js-cookie/src/js.cookie.js","webpack://ecoverso.org/./node_modules/lodash-es/_cloneBuffer.js","webpack://ecoverso.org/./node_modules/lodash-es/_freeGlobal.js","webpack://ecoverso.org/./node_modules/lodash-es/_nodeUtil.js","webpack://ecoverso.org/./node_modules/lodash-es/_root.js","webpack://ecoverso.org/./node_modules/lodash-es/stubFalse.js","webpack://ecoverso.org/./node_modules/lodash-es/isBuffer.js","webpack://ecoverso.org/./node_modules/object-fit-images/dist/ofi.common-js.js","webpack://ecoverso.org/./node_modules/object-is/implementation.js","webpack://ecoverso.org/./node_modules/object-is/index.js","webpack://ecoverso.org/./node_modules/object-is/polyfill.js","webpack://ecoverso.org/./node_modules/object-is/shim.js","webpack://ecoverso.org/./node_modules/object-keys/implementation.js","webpack://ecoverso.org/./node_modules/object-keys/index.js","webpack://ecoverso.org/./node_modules/object-keys/isArguments.js","webpack://ecoverso.org/./node_modules/@wry/trie/lib/trie.esm.js","webpack://ecoverso.org/./node_modules/optimism/lib/bundle.esm.js","webpack://ecoverso.org/./node_modules/performance-now/lib/performance-now.js","webpack://ecoverso.org/./node_modules/property-expr/index.js","webpack://ecoverso.org/./node_modules/punycode/punycode.js","webpack://ecoverso.org/./node_modules/querystring/decode.js","webpack://ecoverso.org/./node_modules/querystring/encode.js","webpack://ecoverso.org/./node_modules/querystring/index.js","webpack://ecoverso.org/./node_modules/raf/index.js","webpack://ecoverso.org/./node_modules/rc-checkbox/es/index.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/FieldContext.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/utils/typeUtil.js","webpack://ecoverso.org/./node_modules/async-validator/dist-web/index.js","webpack://ecoverso.org/./node_modules/rc-util/es/utils/get.js","webpack://ecoverso.org/./node_modules/rc-util/es/utils/set.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/utils/valueUtil.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/utils/messages.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/utils/validateUtil.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/Field.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/List.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/utils/NameMap.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/useForm.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/utils/asyncUtil.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/FormContext.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/Form.js","webpack://ecoverso.org/./node_modules/rc-field-form/es/index.js","webpack://ecoverso.org/./node_modules/rc-motion/es/util/motion.js","webpack://ecoverso.org/./node_modules/rc-motion/es/interface.js","webpack://ecoverso.org/./node_modules/rc-motion/es/hooks/useState.js","webpack://ecoverso.org/./node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","webpack://ecoverso.org/./node_modules/rc-motion/es/hooks/useStepQueue.js","webpack://ecoverso.org/./node_modules/rc-motion/es/hooks/useNextFrame.js","webpack://ecoverso.org/./node_modules/rc-motion/es/hooks/useStatus.js","webpack://ecoverso.org/./node_modules/rc-motion/es/hooks/useDomMotionEvents.js","webpack://ecoverso.org/./node_modules/rc-motion/es/DomWrapper.js","webpack://ecoverso.org/./node_modules/rc-motion/es/CSSMotion.js","webpack://ecoverso.org/./node_modules/rc-motion/es/util/diff.js","webpack://ecoverso.org/./node_modules/rc-motion/es/CSSMotionList.js","webpack://ecoverso.org/./node_modules/rc-motion/es/index.js","webpack://ecoverso.org/./node_modules/rc-notification/es/Notice.js","webpack://ecoverso.org/./node_modules/rc-notification/es/Notification.js","webpack://ecoverso.org/./node_modules/rc-notification/es/index.js","webpack://ecoverso.org/./node_modules/rc-notification/es/useNotification.js","webpack://ecoverso.org/./node_modules/rc-pagination/es/locale/en_US.js","webpack://ecoverso.org/./node_modules/rc-resize-observer/es/index.js","webpack://ecoverso.org/./node_modules/rc-tooltip/es/Content.js","webpack://ecoverso.org/./node_modules/rc-tooltip/es/Tooltip.js","webpack://ecoverso.org/./node_modules/rc-tooltip/es/index.js","webpack://ecoverso.org/./node_modules/rc-tooltip/es/placements.js","webpack://ecoverso.org/./node_modules/rc-util/es/Dom/contains.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/utils/alignUtil.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/utils/legacyUtil.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/Popup/Mask.js","webpack://ecoverso.org/./node_modules/dom-align/dist-web/index.js","webpack://ecoverso.org/./node_modules/rc-align/es/util.js","webpack://ecoverso.org/./node_modules/rc-align/es/Align.js","webpack://ecoverso.org/./node_modules/rc-align/es/hooks/useBuffer.js","webpack://ecoverso.org/./node_modules/rc-align/es/index.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/Popup/PopupInner.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/Popup/MobilePopupInner.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/Popup/index.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/context.js","webpack://ecoverso.org/./node_modules/rc-trigger/es/index.js","webpack://ecoverso.org/./node_modules/rc-util/es/Children/toArray.js","webpack://ecoverso.org/./node_modules/rc-util/es/Dom/addEventListener.js","webpack://ecoverso.org/./node_modules/rc-util/es/Dom/canUseDom.js","webpack://ecoverso.org/./node_modules/rc-util/es/Dom/dynamicCSS.js","webpack://ecoverso.org/./node_modules/rc-util/es/Dom/findDOMNode.js","webpack://ecoverso.org/./node_modules/rc-util/es/Dom/isVisible.js","webpack://ecoverso.org/./node_modules/rc-util/es/KeyCode.js","webpack://ecoverso.org/./node_modules/rc-util/es/Portal.js","webpack://ecoverso.org/./node_modules/rc-util/es/hooks/useMemo.js","webpack://ecoverso.org/./node_modules/rc-util/es/hooks/useMergedState.js","webpack://ecoverso.org/./node_modules/rc-util/es/isMobile.js","webpack://ecoverso.org/./node_modules/rc-util/es/omit.js","webpack://ecoverso.org/./node_modules/rc-util/es/raf.js","webpack://ecoverso.org/./node_modules/rc-util/es/ref.js","webpack://ecoverso.org/./node_modules/rc-util/es/warning.js","webpack://ecoverso.org/./node_modules/react-animated-numbers/dist/index.js","webpack://ecoverso.org/./node_modules/react-datepicker/dist/react-datepicker.min.js","webpack://ecoverso.org/./node_modules/file-selector/node_modules/tslib/tslib.es6.js","webpack://ecoverso.org/./node_modules/file-selector/dist/es5/file.js","webpack://ecoverso.org/./node_modules/file-selector/dist/es5/file-selector.js","webpack://ecoverso.org/./node_modules/react-dropzone/dist/es/utils/index.js","webpack://ecoverso.org/./node_modules/react-dropzone/dist/es/index.js","webpack://ecoverso.org/./node_modules/react-fast-compare/index.js","webpack://ecoverso.org/./node_modules/react-flickity-component/lib/index.js","webpack://ecoverso.org/./node_modules/react-helmet/node_modules/react-fast-compare/index.js","webpack://ecoverso.org/./node_modules/react-i18next/dist/es/context.js","webpack://ecoverso.org/./node_modules/react-is/cjs/react-is.production.min.js","webpack://ecoverso.org/./node_modules/react-is/index.js","webpack://ecoverso.org/./node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","webpack://ecoverso.org/./node_modules/popper.js/dist/esm/popper.js","webpack://ecoverso.org/./node_modules/react-popper/lib/esm/Manager.js","webpack://ecoverso.org/./node_modules/react-popper/lib/esm/utils.js","webpack://ecoverso.org/./node_modules/react-popper/lib/esm/Popper.js","webpack://ecoverso.org/./node_modules/react-popper/lib/esm/Reference.js","webpack://ecoverso.org/./node_modules/react-redux/es/components/Context.js","webpack://ecoverso.org/./node_modules/react-redux/es/utils/batch.js","webpack://ecoverso.org/./node_modules/react-redux/es/utils/Subscription.js","webpack://ecoverso.org/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://ecoverso.org/./node_modules/react-redux/es/components/Provider.js","webpack://ecoverso.org/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://ecoverso.org/./node_modules/react-redux/es/hooks/useStore.js","webpack://ecoverso.org/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://ecoverso.org/./node_modules/react-redux/es/hooks/useSelector.js","webpack://ecoverso.org/./node_modules/react-redux/es/index.js","webpack://ecoverso.org/./node_modules/react-schemaorg/dist/src/index.js","webpack://ecoverso.org/./node_modules/react-schemaorg/dist/src/json-ld.js","webpack://ecoverso.org/./node_modules/react-side-effect/lib/index.js","webpack://ecoverso.org/./node_modules/redux-devtools-extension/logOnly.js","webpack://ecoverso.org/./node_modules/redux-devtools-extension/logOnlyInProduction.js","webpack://ecoverso.org/./node_modules/redux-devtools-extension/utils/assign.js","webpack://ecoverso.org/./node_modules/redux/es/redux.js","webpack://ecoverso.org/./node_modules/regexp.prototype.flags/implementation.js","webpack://ecoverso.org/./node_modules/regexp.prototype.flags/index.js","webpack://ecoverso.org/./node_modules/regexp.prototype.flags/polyfill.js","webpack://ecoverso.org/./node_modules/regexp.prototype.flags/shim.js","webpack://ecoverso.org/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://ecoverso.org/./node_modules/schema-to-yup/dist/index.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/Condition.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/Lazy.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/Reference.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/ValidationError.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/array.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/boolean.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/date.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/index.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/locale.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/mixed.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/number.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/object.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/setLocale.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/string.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/createValidation.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/inherits.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/isAbsent.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/isSchema.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/isodate.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/makePath.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/prependDeep.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/printValue.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/reach.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/runValidations.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/sortByKeyOrder.js","webpack://ecoverso.org/./node_modules/schema-to-yup/node_modules/yup/lib/util/sortFields.js","webpack://ecoverso.org/./node_modules/scroll-to-element/ease.js","webpack://ecoverso.org/./node_modules/scroll-to-element/emitter.js","webpack://ecoverso.org/./node_modules/scroll-to-element/index.js","webpack://ecoverso.org/./node_modules/scroll-to-element/scroll-to.js","webpack://ecoverso.org/./node_modules/scroll-to-element/tween.js","webpack://ecoverso.org/./node_modules/strnum/strnum.js","webpack://ecoverso.org/./node_modules/synchronous-promise/index.js","webpack://ecoverso.org/./node_modules/toposort/index.js","webpack://ecoverso.org/./node_modules/tslib/tslib.es6.js","webpack://ecoverso.org/./node_modules/unidragger/unidragger.js","webpack://ecoverso.org/./node_modules/unipointer/unipointer.js","webpack://ecoverso.org/./node_modules/uniq/uniq.js","webpack://ecoverso.org/./node_modules/uppercamelcase/index.js","webpack://ecoverso.org/./node_modules/uppercamelcase/node_modules/camelcase/index.js","webpack://ecoverso.org/./node_modules/url/url.js","webpack://ecoverso.org/./node_modules/url/util.js","webpack://ecoverso.org/./node_modules/util/support/isBufferBrowser.js","webpack://ecoverso.org/./node_modules/util/support/types.js","webpack://ecoverso.org/./node_modules/util/util.js","webpack://ecoverso.org/./node_modules/uuid/index.js","webpack://ecoverso.org/./node_modules/uuid/lib/bytesToUuid.js","webpack://ecoverso.org/./node_modules/uuid/lib/rng-browser.js","webpack://ecoverso.org/./node_modules/uuid/v1.js","webpack://ecoverso.org/./node_modules/uuid/v4.js","webpack://ecoverso.org/./node_modules/which-typed-array/index.js","webpack://ecoverso.org/./node_modules/zen-observable/index.js","webpack://ecoverso.org/./node_modules/zen-observable/lib/Observable.js","webpack://ecoverso.org/./node_modules/core-js/internals/a-function.js","webpack://ecoverso.org/./node_modules/core-js/internals/an-object.js","webpack://ecoverso.org/./node_modules/core-js/internals/array-includes.js","webpack://ecoverso.org/./node_modules/core-js/internals/classof-raw.js","webpack://ecoverso.org/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://ecoverso.org/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://ecoverso.org/./node_modules/core-js/internals/create-property-descriptor.js","webpack://ecoverso.org/./node_modules/core-js/internals/descriptors.js","webpack://ecoverso.org/./node_modules/core-js/internals/document-create-element.js","webpack://ecoverso.org/./node_modules/core-js/internals/engine-user-agent.js","webpack://ecoverso.org/./node_modules/core-js/internals/engine-v8-version.js","webpack://ecoverso.org/./node_modules/core-js/internals/enum-bug-keys.js","webpack://ecoverso.org/./node_modules/core-js/internals/export.js","webpack://ecoverso.org/./node_modules/core-js/internals/fails.js","webpack://ecoverso.org/./node_modules/core-js/internals/get-built-in.js","webpack://ecoverso.org/./node_modules/core-js/internals/global.js","webpack://ecoverso.org/./node_modules/core-js/internals/has.js","webpack://ecoverso.org/./node_modules/core-js/internals/hidden-keys.js","webpack://ecoverso.org/./node_modules/core-js/internals/ie8-dom-define.js","webpack://ecoverso.org/./node_modules/core-js/internals/indexed-object.js","webpack://ecoverso.org/./node_modules/core-js/internals/inspect-source.js","webpack://ecoverso.org/./node_modules/core-js/internals/internal-state.js","webpack://ecoverso.org/./node_modules/core-js/internals/is-forced.js","webpack://ecoverso.org/./node_modules/core-js/internals/is-object.js","webpack://ecoverso.org/./node_modules/core-js/internals/is-pure.js","webpack://ecoverso.org/./node_modules/core-js/internals/native-promise-constructor.js","webpack://ecoverso.org/./node_modules/core-js/internals/native-symbol.js","webpack://ecoverso.org/./node_modules/core-js/internals/native-weak-map.js","webpack://ecoverso.org/./node_modules/core-js/internals/new-promise-capability.js","webpack://ecoverso.org/./node_modules/core-js/internals/object-define-property.js","webpack://ecoverso.org/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://ecoverso.org/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://ecoverso.org/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://ecoverso.org/./node_modules/core-js/internals/object-keys-internal.js","webpack://ecoverso.org/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://ecoverso.org/./node_modules/core-js/internals/own-keys.js","webpack://ecoverso.org/./node_modules/core-js/internals/path.js","webpack://ecoverso.org/./node_modules/core-js/internals/promise-resolve.js","webpack://ecoverso.org/./node_modules/core-js/internals/redefine.js","webpack://ecoverso.org/./node_modules/core-js/internals/require-object-coercible.js","webpack://ecoverso.org/./node_modules/core-js/internals/set-global.js","webpack://ecoverso.org/./node_modules/core-js/internals/shared-key.js","webpack://ecoverso.org/./node_modules/core-js/internals/shared-store.js","webpack://ecoverso.org/./node_modules/core-js/internals/shared.js","webpack://ecoverso.org/./node_modules/core-js/internals/species-constructor.js","webpack://ecoverso.org/./node_modules/core-js/internals/string-trim-forced.js","webpack://ecoverso.org/./node_modules/core-js/internals/string-trim.js","webpack://ecoverso.org/./node_modules/core-js/internals/to-absolute-index.js","webpack://ecoverso.org/./node_modules/core-js/internals/to-indexed-object.js","webpack://ecoverso.org/./node_modules/core-js/internals/to-integer.js","webpack://ecoverso.org/./node_modules/core-js/internals/to-length.js","webpack://ecoverso.org/./node_modules/core-js/internals/to-object.js","webpack://ecoverso.org/./node_modules/core-js/internals/to-primitive.js","webpack://ecoverso.org/./node_modules/core-js/internals/uid.js","webpack://ecoverso.org/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://ecoverso.org/./node_modules/core-js/internals/well-known-symbol.js","webpack://ecoverso.org/./node_modules/core-js/internals/whitespaces.js","webpack://ecoverso.org/./node_modules/core-js/modules/es.promise.finally.js","webpack://ecoverso.org/./node_modules/core-js/modules/es.string.trim-start.js","webpack://ecoverso.org/./node_modules/gatsby-link/index.js","webpack://ecoverso.org/./node_modules/gatsby-link/parse-path.js","webpack://ecoverso.org/./node_modules/gatsby-react-router-scroll/index.js","webpack://ecoverso.org/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://ecoverso.org/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://ecoverso.org/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://ecoverso.org/./src/ApolloWrapper.tsx","webpack://ecoverso.org/./node_modules/react-intersection-observer/react-intersection-observer.m.js","webpack://ecoverso.org/./src/Layout/Components/AnimatedNumber.tsx","webpack://ecoverso.org/./src/Layout/Components/Avatar.tsx","webpack://ecoverso.org/./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack://ecoverso.org/./src/Layout/Components/Icon.tsx","webpack://ecoverso.org/./src/Layout/Components/Loading.tsx","webpack://ecoverso.org/./src/Layout/Components/Steps.tsx","webpack://ecoverso.org/./src/Layout/Components/Tabs.tsx","webpack://ecoverso.org/./src/Layout/Components/Breadcrumbs.tsx","webpack://ecoverso.org/./src/Layout/Components/Button.tsx","webpack://ecoverso.org/./src/Layout/Components/Carousel.tsx","webpack://ecoverso.org/./src/Layout/Components/Form.tsx","webpack://ecoverso.org/./src/Layout/Components/Image.tsx","webpack://ecoverso.org/./src/Layout/Components/Video.tsx","webpack://ecoverso.org/./src/Layout/Components/Overlay.tsx","webpack://ecoverso.org/./src/Layout/Components/Title.tsx","webpack://ecoverso.org/./node_modules/formik/node_modules/deepmerge/dist/es.js","webpack://ecoverso.org/./node_modules/lodash-es/_Symbol.js","webpack://ecoverso.org/./node_modules/lodash-es/_getRawTag.js","webpack://ecoverso.org/./node_modules/lodash-es/_objectToString.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseGetTag.js","webpack://ecoverso.org/./node_modules/lodash-es/_overArg.js","webpack://ecoverso.org/./node_modules/lodash-es/_getPrototype.js","webpack://ecoverso.org/./node_modules/lodash-es/isObjectLike.js","webpack://ecoverso.org/./node_modules/lodash-es/isPlainObject.js","webpack://ecoverso.org/./node_modules/lodash-es/_listCacheClear.js","webpack://ecoverso.org/./node_modules/lodash-es/eq.js","webpack://ecoverso.org/./node_modules/lodash-es/_assocIndexOf.js","webpack://ecoverso.org/./node_modules/lodash-es/_listCacheDelete.js","webpack://ecoverso.org/./node_modules/lodash-es/_listCacheGet.js","webpack://ecoverso.org/./node_modules/lodash-es/_listCacheHas.js","webpack://ecoverso.org/./node_modules/lodash-es/_listCacheSet.js","webpack://ecoverso.org/./node_modules/lodash-es/_ListCache.js","webpack://ecoverso.org/./node_modules/lodash-es/_stackClear.js","webpack://ecoverso.org/./node_modules/lodash-es/_stackDelete.js","webpack://ecoverso.org/./node_modules/lodash-es/_stackGet.js","webpack://ecoverso.org/./node_modules/lodash-es/_stackHas.js","webpack://ecoverso.org/./node_modules/lodash-es/isObject.js","webpack://ecoverso.org/./node_modules/lodash-es/isFunction.js","webpack://ecoverso.org/./node_modules/lodash-es/_isMasked.js","webpack://ecoverso.org/./node_modules/lodash-es/_coreJsData.js","webpack://ecoverso.org/./node_modules/lodash-es/_toSource.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseIsNative.js","webpack://ecoverso.org/./node_modules/lodash-es/_getValue.js","webpack://ecoverso.org/./node_modules/lodash-es/_getNative.js","webpack://ecoverso.org/./node_modules/lodash-es/_Map.js","webpack://ecoverso.org/./node_modules/lodash-es/_nativeCreate.js","webpack://ecoverso.org/./node_modules/lodash-es/_hashClear.js","webpack://ecoverso.org/./node_modules/lodash-es/_hashDelete.js","webpack://ecoverso.org/./node_modules/lodash-es/_hashGet.js","webpack://ecoverso.org/./node_modules/lodash-es/_hashHas.js","webpack://ecoverso.org/./node_modules/lodash-es/_hashSet.js","webpack://ecoverso.org/./node_modules/lodash-es/_Hash.js","webpack://ecoverso.org/./node_modules/lodash-es/_mapCacheClear.js","webpack://ecoverso.org/./node_modules/lodash-es/_isKeyable.js","webpack://ecoverso.org/./node_modules/lodash-es/_getMapData.js","webpack://ecoverso.org/./node_modules/lodash-es/_mapCacheDelete.js","webpack://ecoverso.org/./node_modules/lodash-es/_mapCacheGet.js","webpack://ecoverso.org/./node_modules/lodash-es/_mapCacheHas.js","webpack://ecoverso.org/./node_modules/lodash-es/_mapCacheSet.js","webpack://ecoverso.org/./node_modules/lodash-es/_MapCache.js","webpack://ecoverso.org/./node_modules/lodash-es/_stackSet.js","webpack://ecoverso.org/./node_modules/lodash-es/_Stack.js","webpack://ecoverso.org/./node_modules/lodash-es/_arrayEach.js","webpack://ecoverso.org/./node_modules/lodash-es/_defineProperty.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseAssignValue.js","webpack://ecoverso.org/./node_modules/lodash-es/_assignValue.js","webpack://ecoverso.org/./node_modules/lodash-es/_copyObject.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseTimes.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseIsArguments.js","webpack://ecoverso.org/./node_modules/lodash-es/isArguments.js","webpack://ecoverso.org/./node_modules/lodash-es/isArray.js","webpack://ecoverso.org/./node_modules/lodash-es/_isIndex.js","webpack://ecoverso.org/./node_modules/lodash-es/isLength.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseUnary.js","webpack://ecoverso.org/./node_modules/lodash-es/isTypedArray.js","webpack://ecoverso.org/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://ecoverso.org/./node_modules/lodash-es/_isPrototype.js","webpack://ecoverso.org/./node_modules/lodash-es/_nativeKeys.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseKeys.js","webpack://ecoverso.org/./node_modules/lodash-es/isArrayLike.js","webpack://ecoverso.org/./node_modules/lodash-es/keys.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseAssign.js","webpack://ecoverso.org/./node_modules/lodash-es/_nativeKeysIn.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseKeysIn.js","webpack://ecoverso.org/./node_modules/lodash-es/keysIn.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseAssignIn.js","webpack://ecoverso.org/./node_modules/lodash-es/_copyArray.js","webpack://ecoverso.org/./node_modules/lodash-es/_arrayFilter.js","webpack://ecoverso.org/./node_modules/lodash-es/stubArray.js","webpack://ecoverso.org/./node_modules/lodash-es/_getSymbols.js","webpack://ecoverso.org/./node_modules/lodash-es/_copySymbols.js","webpack://ecoverso.org/./node_modules/lodash-es/_arrayPush.js","webpack://ecoverso.org/./node_modules/lodash-es/_getSymbolsIn.js","webpack://ecoverso.org/./node_modules/lodash-es/_copySymbolsIn.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://ecoverso.org/./node_modules/lodash-es/_getAllKeys.js","webpack://ecoverso.org/./node_modules/lodash-es/_getAllKeysIn.js","webpack://ecoverso.org/./node_modules/lodash-es/_DataView.js","webpack://ecoverso.org/./node_modules/lodash-es/_Promise.js","webpack://ecoverso.org/./node_modules/lodash-es/_Set.js","webpack://ecoverso.org/./node_modules/lodash-es/_WeakMap.js","webpack://ecoverso.org/./node_modules/lodash-es/_getTag.js","webpack://ecoverso.org/./node_modules/lodash-es/_initCloneArray.js","webpack://ecoverso.org/./node_modules/lodash-es/_Uint8Array.js","webpack://ecoverso.org/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://ecoverso.org/./node_modules/lodash-es/_cloneDataView.js","webpack://ecoverso.org/./node_modules/lodash-es/_cloneRegExp.js","webpack://ecoverso.org/./node_modules/lodash-es/_cloneSymbol.js","webpack://ecoverso.org/./node_modules/lodash-es/_cloneTypedArray.js","webpack://ecoverso.org/./node_modules/lodash-es/_initCloneByTag.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseCreate.js","webpack://ecoverso.org/./node_modules/lodash-es/_initCloneObject.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseIsMap.js","webpack://ecoverso.org/./node_modules/lodash-es/isMap.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseIsSet.js","webpack://ecoverso.org/./node_modules/lodash-es/isSet.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseClone.js","webpack://ecoverso.org/./node_modules/lodash-es/clone.js","webpack://ecoverso.org/./node_modules/lodash-es/_arrayMap.js","webpack://ecoverso.org/./node_modules/lodash-es/isSymbol.js","webpack://ecoverso.org/./node_modules/lodash-es/memoize.js","webpack://ecoverso.org/./node_modules/lodash-es/_memoizeCapped.js","webpack://ecoverso.org/./node_modules/lodash-es/_stringToPath.js","webpack://ecoverso.org/./node_modules/lodash-es/_toKey.js","webpack://ecoverso.org/./node_modules/lodash-es/_baseToString.js","webpack://ecoverso.org/./node_modules/lodash-es/toString.js","webpack://ecoverso.org/./node_modules/lodash-es/toPath.js","webpack://ecoverso.org/./node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack://ecoverso.org/./node_modules/lodash-es/cloneDeep.js","webpack://ecoverso.org/./node_modules/formik/dist/formik.esm.js","webpack://ecoverso.org/./node_modules/antd/es/form/context.js","webpack://ecoverso.org/./node_modules/compute-scroll-into-view/dist/index.module.js","webpack://ecoverso.org/./node_modules/scroll-into-view-if-needed/es/index.js","webpack://ecoverso.org/./node_modules/antd/es/form/util.js","webpack://ecoverso.org/./node_modules/antd/es/form/hooks/useForm.js","webpack://ecoverso.org/./node_modules/antd/es/form/Form.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","webpack://ecoverso.org/./node_modules/antd/es/form/FormItemLabel.js","webpack://ecoverso.org/./node_modules/antd/es/form/ErrorList.js","webpack://ecoverso.org/./node_modules/antd/es/form/hooks/useCacheErrors.js","webpack://ecoverso.org/./node_modules/antd/es/form/FormItemInput.js","webpack://ecoverso.org/./node_modules/antd/es/form/FormItem.js","webpack://ecoverso.org/./node_modules/antd/es/form/hooks/useFrameState.js","webpack://ecoverso.org/./node_modules/antd/es/form/hooks/useItemRef.js","webpack://ecoverso.org/./node_modules/antd/es/form/FormList.js","webpack://ecoverso.org/./node_modules/antd/es/form/index.js","webpack://ecoverso.org/./node_modules/antd/es/input/ClearableLabeledInput.js","webpack://ecoverso.org/./node_modules/antd/es/input/Input.js","webpack://ecoverso.org/./node_modules/antd/es/input/Group.js","webpack://ecoverso.org/./node_modules/antd/es/input/Search.js","webpack://ecoverso.org/./node_modules/rc-textarea/es/calculateNodeHeight.js","webpack://ecoverso.org/./node_modules/rc-textarea/es/ResizableTextArea.js","webpack://ecoverso.org/./node_modules/rc-textarea/es/index.js","webpack://ecoverso.org/./node_modules/antd/es/input/TextArea.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/EyeOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","webpack://ecoverso.org/./node_modules/antd/es/input/Password.js","webpack://ecoverso.org/./node_modules/antd/es/input/index.js","webpack://ecoverso.org/./node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","webpack://ecoverso.org/./node_modules/@ant-design/icons/es/icons/UserOutlined.js","webpack://ecoverso.org/./src/Layout/Forms/fields/Select.tsx","webpack://ecoverso.org/./node_modules/date-fns/esm/formatISO/index.js","webpack://ecoverso.org/./src/Layout/Forms/FormGenerator.tsx","webpack://ecoverso.org/./src/Layout/Forms/utils.ts","webpack://ecoverso.org/./src/Layout/utils/customHooks.ts","webpack://ecoverso.org/./src/Layout/utils/utils.ts","webpack://ecoverso.org/./src/forms/fields/user.tsx","webpack://ecoverso.org/./src/graphql/mutations.ts","webpack://ecoverso.org/./src/i18n/i18nextContext.ts","webpack://ecoverso.org/./node_modules/react-i18next/dist/es/utils.js","webpack://ecoverso.org/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://ecoverso.org/./node_modules/react-helmet/es/Helmet.js","webpack://ecoverso.org/./src/i18n/useI18next.ts","webpack://ecoverso.org/./src/i18n/Link.tsx","webpack://ecoverso.org/./src/i18n/Helmet.tsx","webpack://ecoverso.org/./src/i18n/FormatDate.tsx","webpack://ecoverso.org/./src/i18n/FormatPrice.tsx","webpack://ecoverso.org/./src/i18n/Router.tsx","webpack://ecoverso.org/./src/seo/Seo.tsx","webpack://ecoverso.org/./src/seo/seoContextProvider.tsx","webpack://ecoverso.org/./src/seo/StructuredData.tsx","webpack://ecoverso.org/./src/seo/knownThings.ts","webpack://ecoverso.org/./src/store/actions/actionTypes.tsx","webpack://ecoverso.org/./src/store/actions/auth.tsx","webpack://ecoverso.org/./src/store/actions/layout.tsx","webpack://ecoverso.org/./src/store/actions/cars.tsx","webpack://ecoverso.org/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://ecoverso.org/./.cache/api-runner-browser-plugins.js","webpack://ecoverso.org/./.cache/api-runner-browser.js","webpack://ecoverso.org/./node_modules/mitt/dist/mitt.es.js","webpack://ecoverso.org/./.cache/emitter.js","webpack://ecoverso.org/./.cache/normalize-page-path.js","webpack://ecoverso.org/./.cache/find-path.js","webpack://ecoverso.org/./.cache/gatsby-browser-entry.js","webpack://ecoverso.org/./.cache/prefetch.js","webpack://ecoverso.org/./.cache/loader.js","webpack://ecoverso.org/./.cache/page-renderer.js","webpack://ecoverso.org/./.cache/route-announcer-props.js","webpack://ecoverso.org/./.cache/navigation.js","webpack://ecoverso.org/./node_modules/shallow-compare/es/index.js","webpack://ecoverso.org/./.cache/ensure-resources.js","webpack://ecoverso.org/./.cache/production-app.js","webpack://ecoverso.org/./.cache/public-page-renderer-prod.js","webpack://ecoverso.org/./.cache/public-page-renderer.js","webpack://ecoverso.org/./.cache/react-lifecycles-compat.js","webpack://ecoverso.org/./.cache/redirect-utils.js","webpack://ecoverso.org/./.cache/register-service-worker.js","webpack://ecoverso.org/./.cache/strip-prefix.js","webpack://ecoverso.org/./currentEnv.js","webpack://ecoverso.org/./src/store/reducers/auth.tsx","webpack://ecoverso.org/./src/store/reducers/layout.tsx","webpack://ecoverso.org/./src/store/reducers/cars.tsx","webpack://ecoverso.org/./node_modules/redux-thunk/es/index.js","webpack://ecoverso.org/./src/store/index.tsx","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js","webpack://ecoverso.org/./node_modules/aws-amplify/lib-esm/index.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/ClientDevice/browser.js","webpack://ecoverso.org/./node_modules/@aws-amplify/core/lib-esm/ClientDevice/index.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-pinpoint/dist/es/models/models_1.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-pinpoint/dist/es/commands/PutEventsCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-pinpoint/dist/es/commands/UpdateEndpointCommand.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-pinpoint/dist/es/endpoints.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-pinpoint/dist/es/runtimeConfig.shared.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-pinpoint/dist/es/runtimeConfig.browser.js","webpack://ecoverso.org/./node_modules/@aws-sdk/client-pinpoint/dist/es/PinpointClient.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/Providers/EventBuffer.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSPinpointProvider.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/utils/MethodEmbed.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/trackers/PageViewTracker.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/matches.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/delegate.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/closest.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/parents.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/trackers/EventTracker.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/trackers/SessionTracker.js","webpack://ecoverso.org/./node_modules/@aws-amplify/analytics/lib-esm/Analytics.js","webpack://ecoverso.org/./src/amplify/analytics.ts","webpack://ecoverso.org/./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://ecoverso.org/./node_modules/i18next/dist/esm/i18next.js","webpack://ecoverso.org/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://ecoverso.org/./src/i18n/plugin/wrapPageElement.tsx","webpack://ecoverso.org/./src/Layout/fontAwesomeLibrary.js","webpack://ecoverso.org/./gatsby-browser.js","webpack://ecoverso.org/./src/amplify/index.ts","webpack://ecoverso.org/./node_modules/gatsby-image/index.js","webpack://ecoverso.org/./node_modules/gatsby-image/withIEPolyfill/index.js","webpack://ecoverso.org/./node_modules/gatsby-plugin-anchor-links/errors.js","webpack://ecoverso.org/./node_modules/gatsby-plugin-anchor-links/gatsby-browser.js","webpack://ecoverso.org/./node_modules/gatsby-plugin-anchor-links/utils.js","webpack://ecoverso.org/./node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js","webpack://ecoverso.org/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://ecoverso.org/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://ecoverso.org/./siteUrl.js","webpack://ecoverso.org/./src/Layout/Forms/data/countries.js","webpack://ecoverso.org/./src/aws-exports.js","webpack://ecoverso.org/./src/i18n/options.js","webpack://ecoverso.org/./src/i18n/types.js","webpack://ecoverso.org/./src/sitemap.js","webpack://ecoverso.org/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://ecoverso.org/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://ecoverso.org/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://ecoverso.org/./node_modules/invariant/browser.js","webpack://ecoverso.org/./node_modules/lodash/_DataView.js","webpack://ecoverso.org/./node_modules/lodash/_Hash.js","webpack://ecoverso.org/./node_modules/lodash/_ListCache.js","webpack://ecoverso.org/./node_modules/lodash/_Map.js","webpack://ecoverso.org/./node_modules/lodash/_MapCache.js","webpack://ecoverso.org/./node_modules/lodash/_Promise.js","webpack://ecoverso.org/./node_modules/lodash/_Set.js","webpack://ecoverso.org/./node_modules/lodash/_SetCache.js","webpack://ecoverso.org/./node_modules/lodash/_Stack.js","webpack://ecoverso.org/./node_modules/lodash/_Symbol.js","webpack://ecoverso.org/./node_modules/lodash/_Uint8Array.js","webpack://ecoverso.org/./node_modules/lodash/_WeakMap.js","webpack://ecoverso.org/./node_modules/lodash/_arrayEach.js","webpack://ecoverso.org/./node_modules/lodash/_arrayFilter.js","webpack://ecoverso.org/./node_modules/lodash/_arrayLikeKeys.js","webpack://ecoverso.org/./node_modules/lodash/_arrayMap.js","webpack://ecoverso.org/./node_modules/lodash/_arrayPush.js","webpack://ecoverso.org/./node_modules/lodash/_arrayReduce.js","webpack://ecoverso.org/./node_modules/lodash/_arraySome.js","webpack://ecoverso.org/./node_modules/lodash/_asciiToArray.js","webpack://ecoverso.org/./node_modules/lodash/_asciiWords.js","webpack://ecoverso.org/./node_modules/lodash/_assignValue.js","webpack://ecoverso.org/./node_modules/lodash/_assocIndexOf.js","webpack://ecoverso.org/./node_modules/lodash/_baseAssign.js","webpack://ecoverso.org/./node_modules/lodash/_baseAssignIn.js","webpack://ecoverso.org/./node_modules/lodash/_baseAssignValue.js","webpack://ecoverso.org/./node_modules/lodash/_baseClone.js","webpack://ecoverso.org/./node_modules/lodash/_baseCreate.js","webpack://ecoverso.org/./node_modules/lodash/_baseFor.js","webpack://ecoverso.org/./node_modules/lodash/_baseForOwn.js","webpack://ecoverso.org/./node_modules/lodash/_baseGet.js","webpack://ecoverso.org/./node_modules/lodash/_baseGetAllKeys.js","webpack://ecoverso.org/./node_modules/lodash/_baseGetTag.js","webpack://ecoverso.org/./node_modules/lodash/_baseHas.js","webpack://ecoverso.org/./node_modules/lodash/_baseHasIn.js","webpack://ecoverso.org/./node_modules/lodash/_baseIsArguments.js","webpack://ecoverso.org/./node_modules/lodash/_baseIsEqual.js","webpack://ecoverso.org/./node_modules/lodash/_baseIsEqualDeep.js","webpack://ecoverso.org/./node_modules/lodash/_baseIsMap.js","webpack://ecoverso.org/./node_modules/lodash/_baseIsMatch.js","webpack://ecoverso.org/./node_modules/lodash/_baseIsNative.js","webpack://ecoverso.org/./node_modules/lodash/_baseIsSet.js","webpack://ecoverso.org/./node_modules/lodash/_baseIsTypedArray.js","webpack://ecoverso.org/./node_modules/lodash/_baseIteratee.js","webpack://ecoverso.org/./node_modules/lodash/_baseKeys.js","webpack://ecoverso.org/./node_modules/lodash/_baseKeysIn.js","webpack://ecoverso.org/./node_modules/lodash/_baseMatches.js","webpack://ecoverso.org/./node_modules/lodash/_baseMatchesProperty.js","webpack://ecoverso.org/./node_modules/lodash/_baseProperty.js","webpack://ecoverso.org/./node_modules/lodash/_basePropertyDeep.js","webpack://ecoverso.org/./node_modules/lodash/_basePropertyOf.js","webpack://ecoverso.org/./node_modules/lodash/_baseSlice.js","webpack://ecoverso.org/./node_modules/lodash/_baseTimes.js","webpack://ecoverso.org/./node_modules/lodash/_baseToString.js","webpack://ecoverso.org/./node_modules/lodash/_baseUnary.js","webpack://ecoverso.org/./node_modules/lodash/_baseValues.js","webpack://ecoverso.org/./node_modules/lodash/_cacheHas.js","webpack://ecoverso.org/./node_modules/lodash/_castPath.js","webpack://ecoverso.org/./node_modules/lodash/_castSlice.js","webpack://ecoverso.org/./node_modules/lodash/_cloneArrayBuffer.js","webpack://ecoverso.org/./node_modules/lodash/_cloneBuffer.js","webpack://ecoverso.org/./node_modules/lodash/_cloneDataView.js","webpack://ecoverso.org/./node_modules/lodash/_cloneRegExp.js","webpack://ecoverso.org/./node_modules/lodash/_cloneSymbol.js","webpack://ecoverso.org/./node_modules/lodash/_cloneTypedArray.js","webpack://ecoverso.org/./node_modules/lodash/_copyArray.js","webpack://ecoverso.org/./node_modules/lodash/_copyObject.js","webpack://ecoverso.org/./node_modules/lodash/_copySymbols.js","webpack://ecoverso.org/./node_modules/lodash/_copySymbolsIn.js","webpack://ecoverso.org/./node_modules/lodash/_coreJsData.js","webpack://ecoverso.org/./node_modules/lodash/_createBaseFor.js","webpack://ecoverso.org/./node_modules/lodash/_createCaseFirst.js","webpack://ecoverso.org/./node_modules/lodash/_createCompounder.js","webpack://ecoverso.org/./node_modules/lodash/_deburrLetter.js","webpack://ecoverso.org/./node_modules/lodash/_defineProperty.js","webpack://ecoverso.org/./node_modules/lodash/_equalArrays.js","webpack://ecoverso.org/./node_modules/lodash/_equalByTag.js","webpack://ecoverso.org/./node_modules/lodash/_equalObjects.js","webpack://ecoverso.org/./node_modules/lodash/_freeGlobal.js","webpack://ecoverso.org/./node_modules/lodash/_getAllKeys.js","webpack://ecoverso.org/./node_modules/lodash/_getAllKeysIn.js","webpack://ecoverso.org/./node_modules/lodash/_getMapData.js","webpack://ecoverso.org/./node_modules/lodash/_getMatchData.js","webpack://ecoverso.org/./node_modules/lodash/_getNative.js","webpack://ecoverso.org/./node_modules/lodash/_getPrototype.js","webpack://ecoverso.org/./node_modules/lodash/_getRawTag.js","webpack://ecoverso.org/./node_modules/lodash/_getSymbols.js","webpack://ecoverso.org/./node_modules/lodash/_getSymbolsIn.js","webpack://ecoverso.org/./node_modules/lodash/_getTag.js","webpack://ecoverso.org/./node_modules/lodash/_getValue.js","webpack://ecoverso.org/./node_modules/lodash/_hasPath.js","webpack://ecoverso.org/./node_modules/lodash/_hasUnicode.js","webpack://ecoverso.org/./node_modules/lodash/_hasUnicodeWord.js","webpack://ecoverso.org/./node_modules/lodash/_hashClear.js","webpack://ecoverso.org/./node_modules/lodash/_hashDelete.js","webpack://ecoverso.org/./node_modules/lodash/_hashGet.js","webpack://ecoverso.org/./node_modules/lodash/_hashHas.js","webpack://ecoverso.org/./node_modules/lodash/_hashSet.js","webpack://ecoverso.org/./node_modules/lodash/_initCloneArray.js","webpack://ecoverso.org/./node_modules/lodash/_initCloneByTag.js","webpack://ecoverso.org/./node_modules/lodash/_initCloneObject.js","webpack://ecoverso.org/./node_modules/lodash/_isIndex.js","webpack://ecoverso.org/./node_modules/lodash/_isKey.js","webpack://ecoverso.org/./node_modules/lodash/_isKeyable.js","webpack://ecoverso.org/./node_modules/lodash/_isMasked.js","webpack://ecoverso.org/./node_modules/lodash/_isPrototype.js","webpack://ecoverso.org/./node_modules/lodash/_isStrictComparable.js","webpack://ecoverso.org/./node_modules/lodash/_iteratorToArray.js","webpack://ecoverso.org/./node_modules/lodash/_listCacheClear.js","webpack://ecoverso.org/./node_modules/lodash/_listCacheDelete.js","webpack://ecoverso.org/./node_modules/lodash/_listCacheGet.js","webpack://ecoverso.org/./node_modules/lodash/_listCacheHas.js","webpack://ecoverso.org/./node_modules/lodash/_listCacheSet.js","webpack://ecoverso.org/./node_modules/lodash/_mapCacheClear.js","webpack://ecoverso.org/./node_modules/lodash/_mapCacheDelete.js","webpack://ecoverso.org/./node_modules/lodash/_mapCacheGet.js","webpack://ecoverso.org/./node_modules/lodash/_mapCacheHas.js","webpack://ecoverso.org/./node_modules/lodash/_mapCacheSet.js","webpack://ecoverso.org/./node_modules/lodash/_mapToArray.js","webpack://ecoverso.org/./node_modules/lodash/_matchesStrictComparable.js","webpack://ecoverso.org/./node_modules/lodash/_memoizeCapped.js","webpack://ecoverso.org/./node_modules/lodash/_nativeCreate.js","webpack://ecoverso.org/./node_modules/lodash/_nativeKeys.js","webpack://ecoverso.org/./node_modules/lodash/_nativeKeysIn.js","webpack://ecoverso.org/./node_modules/lodash/_nodeUtil.js","webpack://ecoverso.org/./node_modules/lodash/_objectToString.js","webpack://ecoverso.org/./node_modules/lodash/_overArg.js","webpack://ecoverso.org/./node_modules/lodash/_root.js","webpack://ecoverso.org/./node_modules/lodash/_setCacheAdd.js","webpack://ecoverso.org/./node_modules/lodash/_setCacheHas.js","webpack://ecoverso.org/./node_modules/lodash/_setToArray.js","webpack://ecoverso.org/./node_modules/lodash/_stackClear.js","webpack://ecoverso.org/./node_modules/lodash/_stackDelete.js","webpack://ecoverso.org/./node_modules/lodash/_stackGet.js","webpack://ecoverso.org/./node_modules/lodash/_stackHas.js","webpack://ecoverso.org/./node_modules/lodash/_stackSet.js","webpack://ecoverso.org/./node_modules/lodash/_stringToArray.js","webpack://ecoverso.org/./node_modules/lodash/_stringToPath.js","webpack://ecoverso.org/./node_modules/lodash/_toKey.js","webpack://ecoverso.org/./node_modules/lodash/_toSource.js","webpack://ecoverso.org/./node_modules/lodash/_unicodeToArray.js","webpack://ecoverso.org/./node_modules/lodash/_unicodeWords.js","webpack://ecoverso.org/./node_modules/lodash/camelCase.js","webpack://ecoverso.org/./node_modules/lodash/capitalize.js","webpack://ecoverso.org/./node_modules/lodash/cloneDeepWith.js","webpack://ecoverso.org/./node_modules/lodash/deburr.js","webpack://ecoverso.org/./node_modules/lodash/eq.js","webpack://ecoverso.org/./node_modules/lodash/get.js","webpack://ecoverso.org/./node_modules/lodash/has.js","webpack://ecoverso.org/./node_modules/lodash/hasIn.js","webpack://ecoverso.org/./node_modules/lodash/identity.js","webpack://ecoverso.org/./node_modules/lodash/isArguments.js","webpack://ecoverso.org/./node_modules/lodash/isArray.js","webpack://ecoverso.org/./node_modules/lodash/isArrayLike.js","webpack://ecoverso.org/./node_modules/lodash/isBuffer.js","webpack://ecoverso.org/./node_modules/lodash/isEqual.js","webpack://ecoverso.org/./node_modules/lodash/isFunction.js","webpack://ecoverso.org/./node_modules/lodash/isLength.js","webpack://ecoverso.org/./node_modules/lodash/isMap.js","webpack://ecoverso.org/./node_modules/lodash/isObject.js","webpack://ecoverso.org/./node_modules/lodash/isObjectLike.js","webpack://ecoverso.org/./node_modules/lodash/isSet.js","webpack://ecoverso.org/./node_modules/lodash/isString.js","webpack://ecoverso.org/./node_modules/lodash/isSymbol.js","webpack://ecoverso.org/./node_modules/lodash/isTypedArray.js","webpack://ecoverso.org/./node_modules/lodash/keys.js","webpack://ecoverso.org/./node_modules/lodash/keysIn.js","webpack://ecoverso.org/./node_modules/lodash/mapKeys.js","webpack://ecoverso.org/./node_modules/lodash/mapValues.js","webpack://ecoverso.org/./node_modules/lodash/memoize.js","webpack://ecoverso.org/./node_modules/lodash/property.js","webpack://ecoverso.org/./node_modules/lodash/snakeCase.js","webpack://ecoverso.org/./node_modules/lodash/stubArray.js","webpack://ecoverso.org/./node_modules/lodash/stubFalse.js","webpack://ecoverso.org/./node_modules/lodash/toArray.js","webpack://ecoverso.org/./node_modules/lodash/toString.js","webpack://ecoverso.org/./node_modules/lodash/upperFirst.js","webpack://ecoverso.org/./node_modules/lodash/values.js","webpack://ecoverso.org/./node_modules/lodash/words.js","webpack://ecoverso.org/./node_modules/regenerator-runtime/runtime.js","webpack://ecoverso.org/./node_modules/warning/warning.js"],"names":["module","exports","arr","len","length","i","arr2","Array","__esModule","isArray","arrayLikeToArray","self","ReferenceError","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","obj","value","_arrayLikeToArray","_arrayWithHoles","_assertThisInitialized","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","this","args","arguments","apply","err","undefined","_classCallCheck","_createClass","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","result","Super","getPrototypeOf","NewTarget","constructor","possibleConstructorReturn","_defineProperty","_extends","assign","source","hasOwnProperty","_getPrototypeOf","o","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","_inheritsLoose","_iterableToArray","iter","Symbol","iterator","from","_nonIterableRest","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceSymbolKeys","indexOf","propertyIsEnumerable","_objectWithoutPropertiesLoose","sourceKeys","_possibleConstructorReturn","_setPrototypeOf","p","_slicedToArray","arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","unsupportedIterableToArray","nonIterableRest","_toArray","_toConsumableArray","iterableToArray","_typeof","_unsupportedIterableToArray","minLen","n","toString","slice","name","test","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","desc","set","assertThisInitialized","iterableToArrayLimit","strings","raw","arrayWithoutHoles","nonIterableSpread","ie10","navigator","appVersion","listener","fns","doc","document","hack","documentElement","doScroll","domContentLoaded","loaded","readyState","addEventListener","removeEventListener","shift","setTimeout","definition","max","parseFloat","isOnePointZero","isPercent","isPercentage","Math","min","parseInt","String","abs","convertToPercentage","Number","c","hue2rgb","q","t","convertHexToDecimal","h","parseIntFromHex","val","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gold","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","inputToRGB","color","r","g","b","rgb","a","s","v","l","ok","format","trim","toLowerCase","named","match","matchers","exec","rgba","hsl","hsla","hsv","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","substr","floor","f","mod","hsvToRgb","hslToRgb","isNaN","boundAlpha","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","darkColorMap","index","opacity","toHsv","_ref","d","rgbToHsv","toHex","_ref2","concat","allow3Char","hex","round","startsWith","charAt","join","rgbToHex","mix","rgb1","rgb2","amount","getHue","light","hue","getSaturation","saturation","toFixed","getValue","generate","opts","patterns","pColor","colorString","_hsv","_colorString","theme","map","_ref3","backgroundColor","presetPrimaryColors","volcano","geekblue","presetPalettes","presetDarkPalettes","primary","isIconDefinition","icon","normalizeAttrs","attrs","reduce","acc","className","class","node","rootProps","tag","children","child","getSecondaryColor","primaryColor","normalizeTwoToneColors","twoToneColor","iconStyles","twoToneColorPalette","secondaryColor","calculated","IconBase","valid","message","onClick","style","restProps","colors","styleStr","csp","useContext","useEffect","prepend","useInsertStyles","width","height","fill","displayName","getTwoToneColors","setTwoToneColors","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","Icon","ref","_classNames","spin","rotate","tabIndex","_React$useContext$pre","Context","prefixCls","classString","iconTabIndex","svgStyle","msTransform","transform","role","getTwoToneColor","IconContext","createContext","AntdIcon","ApolloCache","getFragmentDoc","recordOptimisticTransaction","transaction","optimisticId","performTransaction","transformDocument","identify","gc","modify","options","transformForLink","readQuery","optimistic","read","rootId","id","query","variables","returnPartialData","readFragment","fragment","fragmentName","writeQuery","write","dataId","data","broadcast","writeFragment","Cache","MissingFieldError","path","clientOnly","hasOwn","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","selectionSetMatchesResult","selectionSet","every","item","selections","field","storeValueIsStoreObject","makeProcessedFieldsMerger","DELETE","delModifier","INVALIDATE","EntityStore","policies","group","_this","rootIds","refs","getFieldValue","objectOrReference","maybeDeepFreeze","__ref","canRead","objOrRef","toReference","objOrIdOrRef","mergeIntoStore","merge","toObject","__assign","lookup","fieldName","depend","storeObject","rootTypenamesById","Layer","parent","dependOnExistence","incoming","existing","merged","storeObjectReconciler","caching","fieldsToDirty_1","__exists","hasKeyArgs","__typename","dirty","fields","changedFields_1","needToMerge_1","allDeleted_1","sharedDetails_1","isReference","readField","fieldNameOrOptions","store","fieldValue","newValue","storage","getStorage","delete","_a","typename","getStoreFieldName","evict","evicted","clear","replace","extract","extraRootIds","getRootIdSet","__META","sort","newData","rest_1","__rest","retain","release","count","ids","Set","add","snapshot","findChildRefIds","idsToRemove","root_1","found_1","workSet_1","canTraverse_1","values","makeCacheKey","keyMaker","lookupArray","CacheGroup","canUse","makeDepKey","Root","_super","_b","resultCaching","seed","storageTrie","sharedLayerGroup","__extends","addLayer","layerId","replay","removeLayer","fromParent","existingObject","incomingObject","property","existingValue","incomingValue","supportsResultCaching","missingFromInvariant","context","StoreReader","config","executeSelectionSet","execSelectionSetImpl","keyArgs","varString","knownResults","executeSubSelectedArray","execSubSelectedArrayImpl","array","addTypename","diffQueryAgainstStore","_c","execResult","JSON","stringify","fragmentMap","hasMissingFields","missing","complete","isFresh","latest","peek","objectsToMerge","finalResult","getMissing","handleMissing","rootIdsByTypename","workSet","selection","resultName","wasClientOnly","directives","some","pop","fragmentMatches","mergeDeep","childResult","StoreWriter","reader","writeToStore","operationDefinition","merger","processSelectionSet","mergeTree","Map","written","keyObject","sets","incomingFields","resultFieldKey","childTree","getChildMergeTree","processFieldValue","childTypename","getMergeFunction","maybeRecycleChildMergeTree","usingPossibleTypes","entityRef_1","size","applyMerges","getStorageArgs","e_1","i_1","getValue_1","eVal","iVal","aVal","runMergeFunction","emptyMergeTreePool","defaultConfig","dataIdFromObject","typePolicies","InMemoryCache","watches","typenameDocumentCache","makeVar","txCount","maybeBroadcastWatch","fromOptimisticTransaction","broadcastWatch","optimisticData","callback","watchDep","possibleTypes","storeWriter","storeReader","restore","broadcastWatches","diff","watch","immediate","forget","reset","removeOptimistic","idToRemove","newOptimisticData","perform","layer","argsFromFieldSpecifier","spec","defaultDataIdFromObject","_id","nullKeyFieldsFn","simpleKeyArgsFn","_args","mergeTrueFn","mergeObjects","mergeFalseFn","_","Policies","toBeAdded","supertypeMap","fuzzySubtypes","setRootTypename","addPossibleTypes","addTypePolicies","ROOT_QUERY","policy","getTypePolicy","keyFn","specifierOrId","keyFieldsFnFromSpecifier","queryType","mutationType","subscriptionType","updateTypePolicy","keyFields","setMerge","getFieldPolicy","keyArgsFnFromSpecifier","which","toUpperCase","old","supertype","getSupertypeSet","subtype","policy_1","supertypes","rest","inbox","splice","createIfMissing","fieldPolicies","supertypeSet","typeCondition","typenameSupertypeSet","workQueue_1","maybeEnqueue_1","needToCheckFuzzySubtypes","regExp","fuzzyString","fieldSpec","specifierOrString","readOptions","makeFieldFunctionOptions","parentTypename","makeMergeObjectsFunction","eType","iType","specifier","computeKeyObject","trie","aliasMap","makeAliasMap","workQueue","alias","responseKey","storeKey","aliases","subsets","response","strict","prevKey","keyObj","subset","responseName","cacheSlot","cacheInfoMap","getCacheInfo","vars","dep","forgetCache","rv","recallCache","attachCache","caches","listeners","oldListeners","attach","onNextChange","LocalState","client","resolvers","fragmentMatcher","addResolvers","setFragmentMatcher","resolverGroup","setResolvers","getResolvers","runResolvers","remoteResult","onlyRunForcedResolvers","__awaiter","__generator","resolveDocument","localResult","getFragmentMatcher","clientQuery","serverQuery","prepareContext","getCacheKey","addExportedVariables","buildRootValueFromCache","exportedVariables","shouldForceResolvers","forceResolvers","Directive","enter","kind","rootValue","mainDefinition","fragments","definitionOperation","defaultOperationType","execContext","operation","resolveSelectionSet","resultsToMerge","execute","resolveField","fieldResult","fragmentResult","all","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","directive","resolveSubSelectedArray","destructiveMethodCounts","wrapDestructiveCacheMethod","methodName","original","cancelNotifyTimeout","clearTimeout","QueryInfo","lastRequestId","subscriptions","stopped","observableQuery","init","networkStatus","networkError","graphQLErrors","setObservableQuery","getDiff","updateWatch","setDiff","oldDiff","notifyTimeout","notify","oq","oqListener","reobserve","shouldNotify","fetchPolicy","stop","cancel","sub","unsubscribe","stopPolling","lastWatch","shouldWrite","lastWrite","dmCount","markResult","allowCacheWrite","errors","shouldWriteResult","errorPolicy","markReady","markError","ignoreErrors","writeWithErrors","QueryManager","link","queryDeduplication","onBroadcast","ssrMode","clientAwareness","localState","assumeImmutableResults","queries","fetchCancelFns","transformCache","queryIdCounter","requestIdCounter","mutationIdCounter","inFlightLinkObservables","mutationStore","_info","queryId","stopQueryNoBroadcast","cancelPendingFetches","mutate","mutation","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","update","mutationId","mutationStoreValue","_f","label","generateMutationId","getVariables","hasClientExports","sent","loading","markMutationOptimistic","broadcastQueries","storeResult","getObservableFromLink","subscribe","markMutationResult","refetchQueryPromises","refetchQuery","hasObservers","queryName","refetch","queryOptions","cacheWrites_1","updateQueries_1","updater","currentQueryResult","nextQueryResult","mutationResult","queryVariables","fetchQuery","fetchQueryObservable","promise","getQueryStore","resetErrors","queryInfo","transformed","forLink","cacheEntry_1","hasForcedResolvers","defaultVars","watchQuery","notifyOnNetworkStatusChange","observable","ObservableQuery","queryManager","pollInterval","generateQueryId","finally","stopQuery","generateRequestId","stopQueryInStore","stopQueryInStoreNoBroadcast","clearStore","resetStore","reFetchObservableQueries","includeStandby","observableQueryPromises","resetLastResults","getQuery","startGraphQLSubscription","makeObservable","observablePromise_1","observer","removeQuery","getLocalState","deduplication","inFlightLinkObservables_1","operationName","forceFetch","byVariables_1","varJson_1","concast","Concast","cleanup","asyncMap","getResultsFromLink","requestId","hasErrors","aqr","oldNetworkStatus","normalized","fromVariables","fetchQueryByPolicy","reason","nextFetchPolicy","readCache","resultsFromCache","fromData","partial","resolved","resultsFromLink","newContext","mergeOptions","defaults","compact","ApolloClient","defaultOptions","resetStoreCallbacks","clearStoreCallbacks","uri","credentials","headers","ssrForceFetchDelay","connectToDevTools","window","__APOLLO_CLIENT__","typeDefs","clientAwarenessName","clientAwarenessVersion","version","HttpLink","ApolloLink","disableNetworkFetches","bind","devToolsHookCb","action","state","mutations","dataWithOptimisticResults","__actionHookForDevTools","cb","__requestRaw","payload","onResetStore","onClearStore","serializedState","setLocalStateFragmentMatcher","setLink","newLink","Reobserver","fetch","shouldFetch","newOptions","newNetworkStatus","updateOptions","updatePolling","removeObserver","addObserver","pollingInfo","timeout","interval","maybeFetch","poll","onSubscribe","observers","lastError","isDifferentFromLastResult","updateLastResult","_error","lastResult","isTornDown","opDef","subscription","getCurrentResult","saveAsLastResult","newResult","lastResultSnapshot","getLastResult","getLastError","resetQueryStoreErrors","reobserveOptions","newReobserver","fetchMore","fetchMoreOptions","combinedOptions","qid","observe","fetchMoreResult","updateQuery","previous","subscribeToMore","subscriptionData","onError","setOptions","setVariables","mapFn","previousResult","startPolling","getReobserver","reobserver","cloneDeep","subObserver","_subscription","_observer","defaultSubscriptionObserverErrorCallback","first","catch","tearDownQuery","shareOptions","currentOptions","NetworkStatus","isNetworkRequestInFlight","isApolloError","ApolloError","errorMessage","extraInfo","graphQLError","Error","setContext","setter","forward","request","handle","closed","req","getContext","passthrough","op","toLink","handler","isTerminating","LinkError","empty","links","x","y","split","left","right","leftLink","rightLink","starting","createOperation","transformedOperation","extensions","transformOperation","OPERATION_FIELDS","validateOperation","second","firstLink","nextLink","setOnError","checkFetcher","fetcher","createHttpLink","linkOptions","includeExtensions","useGETForQueries","includeUnusedVariables","requestOptions","linkConfig","http","fetchOptions","chosenURI","clientAwarenessHeaders","name_1","controller","contextHeaders","contextConfig","body","unusedNames_1","Variable","_key","signal","_controller","definitions","method","newURI","parseError","abort","createSignalIfSupported","AbortController","parseAndCheckHttpResponse","operations","text","bodyText","parse","statusCode","status","rewriteURIForGET","queryParams","addQueryParam","encodeURIComponent","serializedVariables","serializedExtensions","preFragment","fragmentStart","queryParamsPrefix","fallbackHttpConfig","includeQuery","accept","selectHttpOptionsAndBody","fallbackConfig","configs","headersToLowerCase","print","normalized_1","selectURI","fallbackURI","contextURI","serializeFetchParameter","serialized","fromError","errorValue","fromPromise","throwServerError","toPromise","completed","_extendStatics","genericMessage","proto","InvariantError","framesToPop","__","invariant","condition","verbosityLevels","verbosityLevel","wrapConsoleMethod","console","setVerbosity","level","log","warn","getApolloContext","ApolloProvider","ApolloContext","Consumer","Provider","DocumentType","type","Query","Mutation","Subscription","OperationData","isMounted","previousOptions","getOptions","storePrevious","unmount","refreshClient","isNew","verifyDocumentType","cached","variableDefinitions","parser","MutationData","setResult","runMutation","mutationFunctionOptions","onMutationStart","generateNewMutationId","onMutationCompleted","onMutationError","mostRecentMutationId","afterExecute","ignoreResults","updateResult","called","onCompleted","isMostRecentMutation","useMutation","useState","updatedOptions","mutationDataRef","useRef","mutationData","current","QueryData","onNewData","runLazy","runLazyQuery","lazyOptions","getQueryResult","observableQueryFields","skip","currentObservable","currentResult","partialRefetch","previousData","obsRefetch","obsFetchMore","obsUpdateQuery","obsStartPolling","obsStopPolling","obsSubscribeToMore","removeQuerySubscription","removeObservable","updateObservableQuery","startQuerySubscription","getExecuteSsrResult","getExecuteResult","executeLazy","fetchData","ssr","lazy","handleErrorOrCompleted","ssrInitiated","renderPromises","ssrDisabled","fetchDisabled","ssrLoading","stale","addQueryPromise","prepareObservableQueryOptions","initializeObservableQuery","getSSRObservable","observableQueryOptions","registerSSRObservable","newObservableQueryOptions","currentSubscription","resubscribeToQuery","andDelete","useBaseQuery","useReducer","tick","forceUpdate","queryDataRef","queryData","memoFn","memo","queryResult","useQuery","SubscriptionData","initialize","getLoadingResult","shouldResubscribe","startSubscription","endSubscription","updateCurrentData","updateError","completeSubscription","onSubscriptionData","onSubscriptionComplete","useSubscription","subscriptionDataRef","isNonEmptyArray","canUseWeakMap","product","cloneDeepHelper","seen","copy_1","copy_2","objects","graphQLResultHasError","sources","mergeDeepArray","DeepMerger","isObject","defaultReconciler","reconciler","pastCopies","sourceKey","targetValue","__spreadArrays","shallowCopyForMerge","shouldInclude","getInclusionDirectives","ifArgument","evaledValue","getDirectiveNames","root","hasDirectives","directiveArguments","ifValue","getFragmentQueryDocument","actualFragmentName","createFragmentMap","symTable","getFragmentFromSelection","checkDocument","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getFragmentDefinition","fragmentDef","getMainDefinition","queryDoc","fragmentDefinition","getDefaultValues","defaultValues","defs","def","defaultValue","variable","makeReference","valueToObjectRepresentation","argObj","isIntValue","isFloatValue","isBooleanValue","isStringValue","isObjectValue","nestedArgObj_1","isVariable","variableValue","isListValue","listValue","nestedArgArrayObj","isEnumValue","isNullValue","storeKeyNameFromField","directivesObj","getStoreKeyName","KNOWN_DIRECTIVES","filterKeys","filteredArgs_1","completeFieldName","stringifiedArgs","argumentsObjectFromField","argObj_1","resultKeyNameFromField","getTypenameFromResult","isField","isInlineFragment","filterInPlace","elem","TYPENAME_FIELD","isEmpty","nullIfDocIsEmpty","getDirectiveMatcher","dir","removeDirectivesFromDocument","variablesInUse","variablesToRemove","fragmentSpreadsInUse","fragmentSpreadsToRemove","modifiedDoc","Field","remove","getAllFragmentSpreadsFromSelectionSet","frag","FragmentSpread","removeArgumentsFromDocument","fs","removeFragmentSpreadFromDocument","addTypenameToDocument","SelectionSet","lastIndexOf","added","connectionRemoveConfig","willRemove","removeConnectionDirectiveFromDocument","argMatcher","argument","aConfig","getArgumentMatcher","OperationDefinition","varDef","argConfig","argMatchCount_1","Argument","FragmentDefinition","allFragments","buildQueryFromSelectionSet","removeClientSetsFromDocument","concatPagination","offsetLimitPagination","offset","relayStylePagination","edges","firstEdgeCursor","lastEdgeCursor","edge","cursor","pageInfo","startCursor","endCursor","getExtras","hasPreviousPage","hasNextPage","incomingEdges","pageInfo_1","firstEdge","lastEdge","firstCursor","lastCursor","prefix","suffix","after","findIndex","before","extras","notExtras","isPromiseLike","addCount","handlers","obs","iterable","start","deliverLastMessage","nextOrError","quietly","once","catchFn","_complete","activeCallbackCount","promiseQueue","makeCallback","examiner","delegate","both","caught","iterateObserversSafely","observersWithMethod","fixObservableSubclass","subclass","species","CognitoHostedUIIdentityProvider","AuthErrorTypes","isFederatedSignInOptions","find","k","isCognitoHostedOpts","oauth","redirectSignIn","readCookie","cleanValue","cleanupCookieValue","doNotParse","isParsingCookie","Cookies","cookies","changeListeners","HAS_DOCUMENT_COOKIE","cookie","parseCookies","_updateBrowserValues","parseOptions","_emitChange","params","getAll","finalOptions","expires","Date","maxAge","addChangeListener","removeChangeListener","idx","isBrowser","UniversalStorage","localStorage","entries","removeItem","getItem","getLocalItem","getUniversalItem","removeLocalItem","removeUniversalItem","setItem","setLocalItem","setUniversalItem","sameSite","secure","location","hostname","AuthErrorStrings","launchUri","url","windowProxy","open","thisArg","_arguments","P","generator","fulfilled","step","rejected","trys","ops","verb","__read","m","ar","AMPLIFY_SYMBOL","for","dispatchAuthEvent","event","Hub","logger","OAuth","cognitoClientId","scopes","_urlOpener","urlOpener","_config","_cognitoClientId","isValidScopes","_scopes","scope","oauthSignIn","responseType","domain","clientId","provider","customState","Cognito","generatedState","_generateState","char","charCodeAt","padStart","sessionStorage","private_key","pkce_key","_generateRandom","code_challenge","_generateChallenge","scopesString","URL","redirect_uri","response_type","client_id","identity_provider","code_challenge_method","debug","_handleCodeFlow","currentUrl","code","currentUrlPathname","redirectSignInPathname","oAuthTokenEndpoint","code_verifier","oAuthTokenBody","access_token","refresh_token","id_token","pairings","accum","pathname","clientID","redirectUri","ouath_pkce_key","grant_type","json","accessToken","refreshToken","idToken","_handleImplicitFlow","hash","handleAuthResponse","urlParams","error_description","entry","_validateState","oauth_state","savedState","returnedState","signOut","oAuthLogoutEndpoint","signout_uri","redirectSignOut","returnTo","logout_uri","oAuth","chars","random","_base64URL","string","buffer","Uint8Array","crypto","getRandomValues","_bufferToString","CHARSET","byteLength","AuthError","authErrorMessages","NoUserPoolError","noConfig","DEFAULT_MSG","missingAuthConfig","emptyUsername","EMPTY_USERNAME","invalidUsername","INVALID_USERNAME","emptyPassword","EMPTY_PASSWORD","emptyCode","EMPTY_CODE","signUpError","SIGN_UP_ERROR","noMFA","NO_MFA","invalidMFA","INVALID_MFA","emptyChallengeResponse","EMPTY_CHALLENGE","noUserSession","NO_USER_SESSION","deviceConfig","DEVICE_CONFIG","NETWORK_ERROR","default","USER_ADMIN_SCOPE","Auth","AuthClass","userPool","user","oAuthFlowInProgress","Credentials","wrapRefreshSessionCallback","configure","currentCredentials","currentUserCredentials","_storage","getModuleName","conf","Parser","userPoolId","userPoolWebClientId","cookieStorage","region","identityPoolId","mandatorySignIn","refreshHandlers","identityPoolRegion","clientMetadata","endpoint","_isValidAuthStorage","StorageHelper","_storageSync","userPoolData","UserPoolId","ClientId","Storage","cognitoHostedUIConfig","awsCognito","cognitoAuthParams","_oAuthHandler","usedResponseUrls_1","JS","href","isNode","urlListener","_handleAuthResponse","signUp","restOfAttrs","rejectNoUserPool","username","password","attributes","validationData","email","phone_number","Name","Value","rejectAuthError","SignUpError","attrs_1","validationDataObject_1","EmptyPassword","EmptyUsername","confirmSignUp","EmptyCode","createCognitoUser","forceAliasCreation","confirmRegistration","resendSignUp","resendConfirmationCode","signIn","usernameOrSignInOpts","pw","InvalidUsername","authDetails","Username","Password","ValidationData","ClientMetadata","signInWithPassword","signInWithoutPassword","authCallbacks","that","onSuccess","session","cred","currentUser","e_2","currentUserPoolUser","getUsername","onFailure","customChallenge","challengeParam","mfaRequired","challengeName","mfaSetup","newPasswordRequired","userAttributes","requiredAttributes","totpRequired","selectMFAType","pendingSignIn","authenticateUser","setAuthenticationFlowType","initiateAuth","getMFAOptions","res","rej","mfaOptions","getPreferredMFA","bypassCache","getUserData","mfaType","_getMfaTypeFromUserData","ret","preferredMFA","PreferredMfaSetting","mfaList","UserMFASettingList","MFAOptions","_getUserData","setPreferredMFA","mfaMethod","userData","smsMfaSettings","totpMfaSettings","currentMFAType","PreferredMfa","Enabled","InvalidMFA","NoMFA","setUserMfaPreference","disableSMS","disableMFA","enableSMS","enableMFA","setupTOTP","associateSoftwareToken","associateSecretCode","secretCode","verifyTotpToken","challengeAnswer","verifySoftwareToken","confirmSignIn","sendMFACode","e_3","completeNewPassword","completeNewPasswordChallenge","e_4","sendCustomChallengeAnswer","challengeResponses","EmptyChallengeResponse","deleteUserAttributes","attributeNames","userSession","deleteAttributes","updateUserAttributes","attributeList","attr","updateAttributes","getUserAttributes","verifiedContact","attributesToObject","unverified","verified","isOAuthInProgress","timeoutId","hostedUISignCallback","getCurrentUser","getSession","getAccessToken","decodePayload","includes","UserAttributes","attribute","userAttribute","currentAuthenticatedUser","federatedUser","e_5","federatedInfo","e_6","token","currentSession","NoUserSession","e_7","refreshFederatedToken","verifyUserAttribute","getAttributeVerificationCode","success","verifyUserAttributeSubmit","verifyAttribute","verifyCurrentUserAttribute","verifyCurrentUserAttributeSubmit","cognitoIdentitySignOut","e_8","isSignedInHostedUI","global","globalSignOut","oAuthSignOutRedirect","oAuthSignOutRedirectOrReject","oAuthSignOutAndResolve","cleanCachedItems","changePassword","oldPassword","newPassword","forgotPassword","inputVerificationCode","forgotPasswordSubmit","confirmPassword","currentUserInfo","userAttrs","e_10","err_1","getCredSource","identityId","federatedSignIn","providerOrOptions","loggedInUser","identity_id","expires_at","hasCustomState","customProvider","hasCodeOrError","hasTokenOrError","isCustomStateIncluded","err_2","IdToken","RefreshToken","AccessToken","getIdToken","setSignInUserSession","history","replaceState","fromCharCode","essentialCredentials","accessKeyId","sessionToken","secretAccessKey","authenticated","isTruthyString","Pool","authenticationFlowType","noUserPoolErrorHandler","NoConfig","MissingAuthConfig","rememberDevice","currUser","error_1","getCachedDeviceKeyAndPassword","setDeviceStatusRemembered","DeviceConfig","NetworkError","forgetDevice","error_2","fetchDevices","error_3","deviceList","Devices","device","deviceName","DeviceAttributes","DeviceKey","listDevices","Amplify","keyPrefix","capacityInBytes","itemMaxSize","defaultTTL","defaultPriority","warningThreshold","getByteLength","str","charCode","getCurrTime","getTime","isInteger","isFinite","_isInteger","CacheObject","StorageCache","cacheCurSizeKey","checkConfig","fillCacheItem","timestamp","visitedTime","priority","byteSize","BrowserStorageCache","BrowserStorageCacheClass","cacheConfig","_decreaseCurSizeInBytes","curSize","getCacheCurSize","_increaseCurSizeInBytes","_refreshItem","prefixedKey","_isExpired","_removeItem","itemSize","_setItem","setItemErr","_sizeToPop","spaceItemNeed","cacheThresholdSpace","_isCacheFull","_findValidKeys","keyInCache","_popOutItems","sizeToPop","items","remainedSize","cacheItemOptions","validKeys","keysToRemove","getAllKeys","substring","createInstance","AmplifyClass","_components","_modules","Analytics","API","I18n","PubSub","Interactions","Pushnotification","UI","XR","Predictions","DataStore","Geo","Logger","ServiceWorker","register","comp","addPluggable","pluggable","AmbiguousRoleResolutionType","CognitoIdentityProvider","CreateIdentityPoolInput","IdentityPool","InternalErrorException","InvalidParameterException","LimitExceededException","NotAuthorizedException","ResourceConflictException","TooManyRequestsException","DeleteIdentitiesInput","ErrorCode","UnprocessedIdentityId","DeleteIdentitiesResponse","DeleteIdentityPoolInput","ResourceNotFoundException","DescribeIdentityInput","IdentityDescription","DescribeIdentityPoolInput","ExternalServiceException","GetCredentialsForIdentityInput","GetCredentialsForIdentityResponse","InvalidIdentityPoolConfigurationException","GetIdInput","GetIdResponse","GetIdentityPoolRolesInput","MappingRuleMatchType","MappingRule","RulesConfigurationType","RoleMappingType","RoleMapping","GetIdentityPoolRolesResponse","GetOpenIdTokenInput","GetOpenIdTokenResponse","DeveloperUserAlreadyRegisteredException","GetOpenIdTokenForDeveloperIdentityInput","GetOpenIdTokenForDeveloperIdentityResponse","ListIdentitiesInput","ListIdentitiesResponse","ListIdentityPoolsInput","IdentityPoolShortDescription","ListIdentityPoolsResponse","ListTagsForResourceInput","ListTagsForResourceResponse","LookupDeveloperIdentityInput","LookupDeveloperIdentityResponse","MergeDeveloperIdentitiesInput","MergeDeveloperIdentitiesResponse","ConcurrentModificationException","SetIdentityPoolRolesInput","TagResourceInput","TagResourceResponse","UnlinkDeveloperIdentityInput","UnlinkIdentityInput","UntagResourceInput","UntagResourceResponse","waitForInit","auth2","GoogleOAuth","initialized","refreshGoogleToken","_refreshGoogleTokenImpl","ga","getAuthInstance","googleAuth","googleUser","isSignedIn","reloadAuthResponse","authResponse","FacebookOAuth","refreshFacebookToken","_refreshFacebookTokenImpl","fb","getLoginStatus","fbResponse","expiresIn","filterSensitiveLog","GetCredentialsForIdentityCommand","input","resolveMiddleware","clientStack","configuration","middlewareStack","use","serialize","deserialize","stack","handlerExecutionContext","clientName","commandName","inputFilterSensitiveLog","outputFilterSensitiveLog","requestHandler","output","ProviderError","tryNextLink","resolveLogins","logins","tokenOrProvider","resolvedPairs","fromCognitoIdentity","parameters","AccessKeyId","Expiration","SecretKey","SessionToken","_g","_h","_j","_k","send","CustomRoleArn","customRoleArn","IdentityId","Logins","throwOnMissingCredentials","throwOnMissingAccessKeyId","throwOnMissingSecretKey","expiration","GetIdCommand","STORE_NAME","IndexedDbStorage","dbName","withObjectStore","onerror","onsuccess","put","getDb","openDbRequest","indexedDB","onblocked","onupgradeneeded","db","createObjectStore","keyPath","mode","tx","oncomplete","close","objectStore","inMemoryStorage","InMemoryStorage","fromCognitoIdentityPool","accountId","userIdentifier","cacheKey","_provider","AccountId","IdentityPoolId","throwOnMissingId","AWS_TEMPLATE","AWS_REGIONS","AWS_CN_REGIONS","AWS_ISO_REGIONS","AWS_ISO_B_REGIONS","AWS_US_GOV_REGIONS","ClientSharedValues","apiVersion","disableHostPrefix","regionInfoProvider","regionInfo","partition","signingRegion","signingService","serviceId","urlParser","ClientDefaultValues","runtime","base64Decoder","base64Encoder","bodyLengthChecker","credentialDefaultProvider","defaultUserAgentProvider","clientVersion","maxAttempts","invalidProvider","sha256","Sha256","streamCollector","utf8Decoder","fromUtf8","utf8Encoder","toUtf8","CognitoIdentityClient","_config_0","_config_1","_config_2","_config_3","_config_4","_config_5","_config_6","destroy","CredentialsClass","_gettingCredPromise","_refreshHandlers","_credentials_source","_pickupCredentials","_getCognitoIdentityIdStorageKey","isPending","_keepAlive","user_1","refreshToken_1","_credentials","_isPastTTL","refreshSession","getFullYear","_setCredentialsFromFederation","_providerRefreshWithRetry","refreshHandler","ts","now","_nextCredentialsRefresh","_setCredentialsForGuest","cognitoClient","_getGuestIdentityId","_identityId","customUserAgent","credentialsFromCognitoIdentity","credentialsProvider","_loadCredentials","_removeGuestIdentityId","google","facebook","amazon","developer","_setCredentialsFromSession","getJwtToken","guestIdentityId","generatedOrRetrievedIdentityId","primaryIdentityId","_setGuestIdentityId","shear","__spread","HubClass","protectedChannels","channel","pattern_1","pattern","holder","dispatch","ampSymbol","capsule","patternInfo","_toListeners","listen","listenerName","onHubCapsule","isLegacyCallback","payloadStr_1","groups","dispatchingCapsule","MIME_MAP","ext","sortByField","list","dirX","a_val","b_val","objectLessAttributes","less","filenameToContentType","filename","defVal","filtered","mime","endsWith","isTextFile","contentType","generateRandomString","makeQuerablePromise","isResolved","isRejected","isFullfilled","isWebWorker","selfContext","WorkerGlobalScope","browserOrNode","process","versions","transferKeyToLowerCase","whiteListForItself","whiteListForChildren","isStrictObject","transferKeyToUpperCase","Function","LOG_TYPE","__values","LOG_LEVELS","VERBOSE","DEBUG","INFO","WARN","ERROR","ConsoleLogger","_pluggables","_padding","_ts","dt","getMinutes","getSeconds","getMilliseconds","_log","msg","logger_level_name","LOG_LEVEL","logger_level","type_level","plugin","logEvent","pushLogs","e_1_1","return","verbose","getCategoryName","listPluggables","parseMobileHubConfig","storageConfig","amplifyConfig","AWSPinpoint","appId","AWSS3","bucket","dangerouslyConnectToHttpEndpointForTesting","Logging","geo","AmazonLocationService","parseMobilehubConfig","BASE_USER_AGENT","Platform","userAgent","isReactNative","getAmplifyUserAgent","DEFAULT_ALGORITHM","encrypt","src","digestSync","signed_headers","canonical_request","url_info","key_val","reencoded_val","key_a","key_b","parse_service_info","parsed","host","reverse","service","credential_scope","d_str","string_to_sign","algorithm","dt_str","get_signing_key","secret_key","service_info","k_date","k_region","k_service","get_signature","signing_key","str_to_sign","Signer","sign","access_info","toISOString","session_token","request_str","serviceInfo","signature","authorization_header","access_key","get_authorization_header","signUrl","urlOrRequest","accessInfo","urlToSign","today","parsedUrl","search","signedHeaders","credentialScope","sessionTokenRequired","canonicalRequest","stringToSign","additionalQueryParams","protocol","slashes","port","dataMemory","MemoryStorage","storageWindow","exception","DateUtils","clockOffset","getDateWithClockOffset","getClockOffset","getHeaderStringFromDate","date","getDateFromHeaderString","header","year","month","day","hour","minute","UTC","isClockSkewed","serverDate","isClockSkewError","setClockOffset","NonRetryableError","nonRetryable","retry","functionToRetry","delayFn","attempt","retryIn_1","jitteredExponentialRetry","maxDelayMs","delay","pow","jitteredBackoff","constants_1","RawSha256","Int32Array","INIT","temp","bufferLength","bytesHashed","finished","position","MAX_HASHABLE_LENGTH","BLOCK_SIZE","hashBuffer","digest","bitsHashed","bufferView","DataView","byteOffset","undecoratedLength","setUint8","setUint32","out","DIGEST_LENGTH","state0","state1","state2","state3","state4","state5","state6","state7","u","t1_1","t2_1","t1","KEY","t2","Uint32Array","__exportStar","tslib_1","RawSha256_1","util_utf8_browser_1","secret","outer","inner","convertToBuffer","bufferHash","bufferFromSecret","toHash","isEmptyData","ArrayBuffer","isView","BYTES_PER_ELEMENT","TextEncoder","encode","bytes","surrogatePair","TextDecoder","decode","decoded","byte","nextByte","encoded","byteValue","decodeURIComponent","AbortIncompleteMultipartUpload","AbortMultipartUploadOutput","AbortMultipartUploadRequest","NoSuchUpload","AccelerateConfiguration","Grantee","Grant","Owner","AccessControlPolicy","AccessControlTranslation","CompleteMultipartUploadOutput","CompletedPart","CompletedMultipartUpload","CompleteMultipartUploadRequest","CopyObjectResult","CopyObjectOutput","CopyObjectRequest","ObjectNotInActiveTierError","BucketAlreadyExists","BucketAlreadyOwnedByYou","CreateBucketOutput","CreateBucketConfiguration","CreateBucketRequest","CreateMultipartUploadOutput","CreateMultipartUploadRequest","DeleteBucketRequest","DeleteBucketAnalyticsConfigurationRequest","DeleteBucketCorsRequest","DeleteBucketEncryptionRequest","DeleteBucketIntelligentTieringConfigurationRequest","DeleteBucketInventoryConfigurationRequest","DeleteBucketLifecycleRequest","DeleteBucketMetricsConfigurationRequest","DeleteBucketOwnershipControlsRequest","DeleteBucketPolicyRequest","DeleteBucketReplicationRequest","DeleteBucketTaggingRequest","DeleteBucketWebsiteRequest","DeleteObjectOutput","DeleteObjectRequest","DeletedObject","_Error","DeleteObjectsOutput","ObjectIdentifier","Delete","DeleteObjectsRequest","DeleteObjectTaggingOutput","DeleteObjectTaggingRequest","DeletePublicAccessBlockRequest","GetBucketAccelerateConfigurationOutput","GetBucketAccelerateConfigurationRequest","GetBucketAclOutput","GetBucketAclRequest","Tag","AnalyticsAndOperator","AnalyticsFilter","AnalyticsS3BucketDestination","AnalyticsExportDestination","StorageClassAnalysisDataExport","StorageClassAnalysis","AnalyticsConfiguration","GetBucketAnalyticsConfigurationOutput","GetBucketAnalyticsConfigurationRequest","CORSRule","GetBucketCorsOutput","GetBucketCorsRequest","ServerSideEncryptionByDefault","ServerSideEncryptionRule","ServerSideEncryptionConfiguration","GetBucketEncryptionOutput","GetBucketEncryptionRequest","IntelligentTieringAndOperator","IntelligentTieringFilter","Tiering","IntelligentTieringConfiguration","GetBucketIntelligentTieringConfigurationOutput","GetBucketIntelligentTieringConfigurationRequest","SSEKMS","SSES3","InventoryEncryption","InventoryS3BucketDestination","InventoryDestination","InventoryFilter","InventorySchedule","InventoryConfiguration","GetBucketInventoryConfigurationOutput","GetBucketInventoryConfigurationRequest","LifecycleExpiration","LifecycleRuleAndOperator","LifecycleRuleFilter","NoncurrentVersionExpiration","NoncurrentVersionTransition","Transition","LifecycleRule","GetBucketLifecycleConfigurationOutput","GetBucketLifecycleConfigurationRequest","GetBucketLocationOutput","GetBucketLocationRequest","TargetGrant","LoggingEnabled","GetBucketLoggingOutput","GetBucketLoggingRequest","MetricsAndOperator","MetricsFilter","MetricsConfiguration","GetBucketMetricsConfigurationOutput","GetBucketMetricsConfigurationRequest","GetBucketNotificationConfigurationRequest","FilterRule","S3KeyFilter","NotificationConfigurationFilter","LambdaFunctionConfiguration","QueueConfiguration","TopicConfiguration","NotificationConfiguration","OwnershipControlsRule","OwnershipControls","GetBucketOwnershipControlsOutput","GetBucketOwnershipControlsRequest","GetBucketPolicyOutput","GetBucketPolicyRequest","PolicyStatus","GetBucketPolicyStatusOutput","GetBucketPolicyStatusRequest","DeleteMarkerReplication","EncryptionConfiguration","ReplicationTimeValue","Metrics","ReplicationTime","Destination","ExistingObjectReplication","ReplicationRuleAndOperator","ReplicationRuleFilter","ReplicaModifications","SseKmsEncryptedObjects","SourceSelectionCriteria","ReplicationRule","ReplicationConfiguration","GetBucketReplicationOutput","GetBucketReplicationRequest","GetBucketRequestPaymentOutput","GetBucketRequestPaymentRequest","GetBucketTaggingOutput","GetBucketTaggingRequest","GetBucketVersioningOutput","GetBucketVersioningRequest","ErrorDocument","IndexDocument","RedirectAllRequestsTo","Condition","Redirect","RoutingRule","GetBucketWebsiteOutput","GetBucketWebsiteRequest","GetObjectOutput","GetObjectRequest","InvalidObjectState","NoSuchKey","GetObjectAclOutput","GetObjectAclRequest","ObjectLockLegalHold","GetObjectLegalHoldOutput","GetObjectLegalHoldRequest","DefaultRetention","ObjectLockRule","ObjectLockConfiguration","GetObjectLockConfigurationOutput","GetObjectLockConfigurationRequest","ObjectLockRetention","GetObjectRetentionOutput","GetObjectRetentionRequest","GetObjectTaggingOutput","GetObjectTaggingRequest","GetObjectTorrentOutput","GetObjectTorrentRequest","PublicAccessBlockConfiguration","GetPublicAccessBlockOutput","GetPublicAccessBlockRequest","HeadBucketRequest","NoSuchBucket","HeadObjectOutput","HeadObjectRequest","ListBucketAnalyticsConfigurationsOutput","ListBucketAnalyticsConfigurationsRequest","ListBucketIntelligentTieringConfigurationsOutput","ListBucketIntelligentTieringConfigurationsRequest","ListBucketInventoryConfigurationsOutput","ListBucketInventoryConfigurationsRequest","ListBucketMetricsConfigurationsOutput","ListBucketMetricsConfigurationsRequest","Bucket","ListBucketsOutput","CommonPrefix","Initiator","MultipartUpload","ListMultipartUploadsOutput","ListMultipartUploadsRequest","_Object","ListObjectsOutput","ListObjectsRequest","ListObjectsV2Output","ListObjectsV2Request","DeleteMarkerEntry","ObjectVersion","ListObjectVersionsOutput","ListObjectVersionsRequest","Part","ListPartsOutput","ListPartsRequest","PutBucketAccelerateConfigurationRequest","PutBucketAclRequest","PutBucketAnalyticsConfigurationRequest","CORSConfiguration","PutBucketCorsRequest","PutBucketEncryptionRequest","PutBucketIntelligentTieringConfigurationRequest","PutBucketInventoryConfigurationRequest","BucketLifecycleConfiguration","PutBucketLifecycleConfigurationRequest","BucketLoggingStatus","PutBucketLoggingRequest","PutBucketMetricsConfigurationRequest","PutBucketNotificationConfigurationRequest","PutBucketOwnershipControlsRequest","PutBucketPolicyRequest","PutBucketReplicationRequest","RequestPaymentConfiguration","PutBucketRequestPaymentRequest","Tagging","PutBucketTaggingRequest","VersioningConfiguration","PutBucketVersioningRequest","WebsiteConfiguration","PutBucketWebsiteRequest","PutObjectOutput","PutObjectRequest","PutObjectAclOutput","PutObjectAclRequest","PutObjectLegalHoldOutput","PutObjectLegalHoldRequest","PutObjectLockConfigurationOutput","PutObjectLockConfigurationRequest","PutObjectRetentionOutput","PutObjectRetentionRequest","PutObjectTaggingOutput","PutObjectTaggingRequest","PutPublicAccessBlockRequest","ObjectAlreadyInActiveTierError","RestoreObjectOutput","GlacierJobParameters","Encryption","SSEKMSKeyId","SSEKMSEncryptionContext","SSECustomerKey","CopySourceSSECustomerKey","visit","visitor","Prefix","And","$unknown","Filter","KMSMasterKeyID","ApplyServerSideEncryptionByDefault","Rules","KeyId","S3BucketDestination","AnalyticsConfigurationList","InventoryConfigurationList","MetricsConfigurationList","LifecycleConfiguration","KMSKeyId","validate","DOMAIN_PATTERN","IP_ADDRESS_PATTERN","DOTS_PATTERN","DOT_PATTERN","S3_HOSTNAME_PATTERN","S3_US_EAST_1_ALTNAME_PATTERN","AWS_PARTITION_SUFFIX","getPseudoRegion","isFipsRegion","getRegionalSuffix","parts","isEqualRegions","regionA","regionB","validateDNSHostLabel","tlsCompatible","bucketHostname","isCustomEndpoint","dualstackEndpoint","baseHostname","accelerateEndpoint","bucketName","isBucketNameOptions","getEndpointFromBucketName","getEndpointFromArn","clientRegion","hostnameSuffix","pathStyleEndpoint","useArnRegion","clientPartition","clientSigningRegion","validateArnEndpointOptions","resource","validateService","validatePartition","validateAccountId","validateRegion","delimiter","resourceType","accesspointName","outpostId","getArnResources","endpointRegion","validateOutpostService","validateNoDualstack","validateNoFIPS","bucketEndpoint","validateS3Service","isDnsCompatibleBucketName","bucketEndpointMiddleware","replaceBucketInPath","bucketArn","modifiedSigningRegion","arn","segments","useAccelerateEndpoint","useDualstackEndpoint","forcePathStyle","bucketEndpointMiddlewareOptions","tags","relation","toMiddleware","override","getBucketEndpointPlugin","applyToStack","addRelativeTo","validateBucketNameMiddlewareOptions","getValidateBucketNamePlugin","unused","validateBucketNameMiddleware","useRegionalEndpointMiddlewareOptions","getUseRegionalEndpointPlugin","useRegionalEndpointMiddleware","collectBody","streamBody","collectBodyString","throw200ExceptionsMiddlewareOptions","getThrow200ExceptionsPlugin","bodyBytes","bodyString","throw200ExceptionsMiddleware","ssecMiddlewareOptions","getSsecPlugin","properties","properties_1","properties_1_1","prop","valueView","md5","ssecMiddleware","CopyObjectCommand","GetObjectCommand","DeleteObjectCommand","ListObjectsCommand","Int64","fromNumber","number","remaining","negate","negative","HEADER_VALUE_TYPE","HeaderMarshaller","chunks","headerName","formatHeaderValue","carry","chunks_1","chunks_1_1","chunk","e_2_1","shortView","setInt16","intView","setInt32","longBytes","binView","setUint16","binBytes","utf8Bytes","strView","strBytes","tsBytes","UUID_PATTERN","uuidBytes","nameLength","getUint8","BOOLEAN_TAG","BYTE_TAG","getInt8","SHORT_TAG","getInt16","INT_TAG","getInt32","LONG_TAG","binaryLength","getUint16","BINARY_TAG","stringLength","STRING_TAG","TIMESTAMP_TAG","UUID_TAG","subarray","EventStreamMarshaller","headerMarshaller","marshall","rawHeaders","view","checksum","Crc32","unmarshall","PRELUDE_LENGTH","messageLength","getUint32","headerLength","expectedPreludeChecksum","PRELUDE_MEMBER_LENGTH","expectedMessageChecksum","checksummer","splitMessage","formatHeaders","eventMarshaller","utfEncoder","deserializer","currentMessageTotalLength","currentMessagePendingLength","currentMessage","messageLengthBuffer","allocateMessage","asyncIterator","__asyncGenerator","source_1","source_1_1","messageType","unmodeledError","deserializedException","deserialized","__asyncValues","__await","getUnmarshalledStream","sourceIterator","chunkLength","currentOffset","bytesRemaining","numBytesForTotal","numBytesToWrite","serializer","input_1","input_1_1","payloadBuf","universalMarshaller","readableStream","bodyIterable","isReadableStream","getReader","releaseLock","serialziedIterable","ReadableStream","pull","enqueue","blobReader","blob","onChunk","chunkSize","fileReader","FileReader","totalBytesRead","readAsArrayBuffer","Md5","sourceData","ff","gg","hh","ii","cmn","signingEscapePath","eventStreamSerdeProvider","streamHasher","hashCtor","addExpectContinueMiddlewareOptions","getAddExpectContinuePlugin","Expect","addExpectContinueMiddleware","S3Client","_config_8","eventStreamMarshaller","resolveEventStreamSerdeConfig","queryString","createRequest","command","interceptMiddleware","clone","S3RequestPresigner","resolvedOptions","signingName","uriEscapePath","signer","presign","requestToSign","unsignableHeaders","unhoistableHeaders","SEND_UPLOAD_PROGRESS_EVENT","SEND_DOWNLOAD_PROGRESS_EVENT","StorageErrorStrings","AWSS3ProviderMultipartCopierErrors","normalizeHeaders","normalizedName","reactNativeRequestTransformer","Blob","AxiosHttpHandler","httpOptions","emitter","cancelTokenSource","requestTimeoutInMs","requestTimeout","axiosRequest","onUploadProgress","emit","onDownloadProgress","cancelToken","transformRequest","raceOfPromises","race","timeoutInMs","timeoutError","MetadataEntry","S3Location","OutputLocation","FileHeaderInfo","CSVInput","JSONType","JSONInput","ParquetInput","InputSerialization","QuoteFields","CSVOutput","JSONOutput","OutputSerialization","SelectParameters","RestoreRequestType","RestoreRequest","RestoreObjectRequest","ContinuationEvent","EndEvent","Progress","ProgressEvent","RecordsEvent","Stats","StatsEvent","SelectObjectContentEventStream","SelectObjectContentOutput","RequestProgress","ScanRange","SelectObjectContentRequest","UploadPartOutput","UploadPartRequest","CopyPartResult","UploadPartCopyOutput","UploadPartCopyRequest","PutObjectCommand","CreateMultipartUploadCommand","S3","Records","Cont","End","Payload","UploadPartCommand","CompleteMultipartUploadCommand","AbortMultipartUploadCommand","ListPartsCommand","AWSS3ProviderManagedUpload","minPartSize","queueSize","completedParts","bytesUploaded","totalBytesToUpload","upload","putObjectCommand","uploadId","numberOfPartsToUpload","validateAndSanitizeBody","Body","_createNewS3Client","createMultiPartUpload","ceil","createParts","checkIfUploadCancelled","uploadParts","part","finishMultiPartUpload","bodyStart","bodyEnd","bodyPart","partNumber","events","EventEmitter","_lastUploadedBytes","createMultiPartUploadCommand","s3","ContentType","UploadId","allResults","Key","SSECustomerAlgorithm","SSECustomerKeyMD5","setupEventListener","PartNumber","ETag","cancelUpload","completeUploadCommand","Parts","removeAllListeners","on","progress","progressChanged","incrementalUpdate","total","isGenericObject","localTestingConfig","_getCredentials","tls","DEFAULT_STORAGE_LEVEL","dispatchStorageEvent","track","metrics","AWSS3Provider","getCategory","CATEGORY","getProviderName","PROVIDER_NAME","copy","dest","opt","acl","cacheControl","serverSideEncryption","srcLevel","srcIdentityId","srcKey","destLevel","destKey","srcPrefix","destPrefix","finalSrcKey","finalDestKey","_ensureCredentials","_isWithCredentials","NO_CREDENTIALS","NO_SRC_KEY","NO_DEST_KEY","_prefix","CopySource","MetadataDirective","CacheControl","Expires","ServerSideEncryption","ACL","download","contentDisposition","contentEncoding","contentLanguage","progressCallback","final_key","getObjectCommand","ResponseCacheControl","ResponseContentDisposition","ResponseContentEncoding","ResponseContentLanguage","ResponseContentType","fileSize","metadata","tagging","uploader","error_4","ContentDisposition","ContentEncoding","Metadata","deleteObjectCommand","error_5","maxKeys","final_path","listObjectsCommand","error_6","MaxKeys","Contents","eTag","lastModified","LastModified","Size","error_7","customPrefix","privatePath","private","protectedPath","protected","publicPath","public","DEFAULT_PROVIDER","_cancelTokenSourceMap","getPluggable","providerName","removePluggable","storageKeysFromConfig","storageArrayKeys","isInStorageArrayKeys","getCancellableTokenSource","updateRequestToBeCancellable","prov","responsePromise","isCancelError","_instance","vault","old_configure","vaultConfig","getInstance","toStringTag","button","signInButton","googleSignInButton","signInButtonIcon","auth0SignInButton","facebookSignInButton","amazonSignInButton","oAuthSignInButton","signInButtonContent","formContainer","formSection","formField","formRow","hint","inputLabel","radio","navBar","navRight","nav","navItem","photoPickerButton","photoPlaceholder","photoPlaceholderIcon","container","actionRow","sectionHeader","sectionHeaderHint","sectionBody","sectionHeaderContent","sectionFooter","sectionFooterPrimaryContent","sectionFooterSecondaryContent","selectInput","strike","strikeContent","toast","toastClose","totpQrcode","sumerianSceneContainer","sumerianScene","loadingOverlay","loadingContainer","loadingLogo","loadingSceneName","loadingBar","loadingBarFill","sceneErrorText","sceneBar","sceneName","sceneActions","actionButton","tooltip","actionIcon","autoShowTooltip","AwsCrc32","util_1","index_1","crc32","numToUint8","data_1","data_1_1","lookupTable","uint32ArrayFrom","aws_crc32_1","isMsWindow","msSubtleCryptoMethods","quacksLikeAnMsWindow","msCrypto","subtle","subtle_1","EMPTY_DATA_SHA_256","SHA_256_HMAC_ALGO","SHA_256_HASH","ie11Sha256_1","webCryptoSha256_1","sha256_js_1","supports_web_crypto_1","ie11_detection_1","util_locate_window_1","supportsWebCrypto","locateWindow","encoding","isEmptyData_1","keyOperation","importKey","toArrayBufferView","getKeyPromise","keyData","finish","WebCryptoSha256","Ie11Sha256","typedArray","supportsZeroByteGCM","supportsSubtleCrypto","supportsSecureRandom","subtleCryptoMethods","generateKey","iv","additionalData","tagLength","Buffer","convertToBuffer_1","numToUint8_1","uint32ArrayFrom_1","num","a_lookUpTable","return_array","_assign","resolveEndpointsConfig","normalizeEndpoint","getEndPointFromRegion","promisified_1","promisified_2","resolveRegionConfig","normalizeRegion","FetchHttpHandler","abortSignal","aborted","abortError","Headers","fetchRequest","Request","fetchHeaders","transformedHeaders","pair","onabort","stream","base64","arrayBuffer","readToBase64","collectBlob","isDone","prior","collectStream","onloadend","commaIndex","dataOffset","readAsDataURL","CONTENT_LENGTH_HEADER","contentLengthMiddlewareOptions","getContentLengthPlugin","contentLengthMiddleware","resolveHostHeaderConfig","hostHeaderMiddlewareOptions","getHostHeaderPlugin","handlerProtocol","hostHeaderMiddleware","loggerMiddlewareOptions","getLoggerPlugin","$metadata","outputWithoutMetadata","retryMiddlewareOptions","getRetryPlugin","retryStrategy","retryMiddleware","CLOCK_SKEW_ERROR_CODES","THROTTLING_ERROR_CODES","TRANSIENT_ERROR_CODES","TRANSIENT_ERROR_STATUS_CODES","isThrottlingError","httpStatusCode","$retryable","throttling","defaultDelayDecider","delayBase","attempts","defaultRetryDecider","isRetryableByTrait","isTransientError","DEFAULT_MAX_ATTEMPTS","DEFAULT_RETRY_MODE","StandardRetryStrategy","maxAttemptsProvider","initialRetryTokens","MAX_CAPACITY","availableCapacity","getCapacityAmount","hasRetryTokens","retryDecider","delayDecider","retryQuota","freeze","retrieveRetryTokens","capacityAmount","releaseRetryTokens","capacityReleaseAmount","shouldRetry","getMaxAttempts","retryTokenAmount","totalDelay","_loop_1","this_1","state_1","v4","delay_1","totalRetryDelay","resolveRetryConfig","normalizeMaxAttempts","deserializerMiddlewareOption","serializerMiddlewareOption","getSerdePlugin","commandStack","deserializerMiddleware","serializerMiddleware","resolveAwsAuthConfig","normalizedCreds","normalizeProvider","systemClockOffset","getSkewCorrectedDate","awsAuthMiddleware","dateHeader","serverTime","signingDate","newServerTime","awsAuthMiddlewareOptions","getAwsAuthPlugin","resolveUserAgentConfig","USER_AGENT","UA_ESCAPE_REGEX","escapeUserAgent","prefixSeparatorIndex","uaName","getUserAgentMiddlewareOptions","getUserAgentPlugin","defaultUserAgent","normalUAValue","section","HttpResponse","isInstance","resp","HttpRequest","cloned","paramName","param","buildQueryString","iLen","qsEntry","AMZ_DATE_QUERY_PARAM","SIGNATURE_QUERY_PARAM","TOKEN_QUERY_PARAM","AUTH_HEADER","AMZ_DATE_HEADER","GENERATED_HEADERS","SIGNATURE_HEADER","SHA256_HEADER","TOKEN_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","pragma","referer","te","trailer","upgrade","PROXY_HEADER_PATTERN","SEC_HEADER_PATTERN","ALGORITHM_IDENTIFIER","EVENT_ALGORITHM_IDENTIFIER","KEY_TYPE_IDENTIFIER","signingKeyCache","cacheQueue","createScope","shortDate","hmac","ctor","getCanonicalHeaders","signableHeaders","canonical","canonicalHeaderName","getPayloadHash","hashConstructor","cloneRequest","cloneQuery","prepareRequest","iso8601","time","toDate","SignatureV4","applyChecksum","regionProvider","normalizeRegionProvider","credentialProvider","normalizeCredentialsProvider","originalRequest","longDate","canonicalHeaders","_l","formatDate","lname","moveHeadersToQuery","getCanonicalHeaderList","getSignature","getSigningKey","createCanonicalRequest","toSign","signString","signEvent","signRequest","priorSignature","hashedPayload","hashedHeaders","payloadHash","soughtHeader","hasHeader","sortedHeaders","getCanonicalPath","getCanonicalQuery","createStringToSign","hashedRequest","keyPromise","sha256Constructor","credsHash","signable","constructStack","absoluteEntries","relativeEntries","entriesNameSet","cloneTo","toStack","middleware","expandRelativeMiddlewareList","expandedMiddlewareList","getMiddlewareList","normalizedAbsoluteEntries","normalizedRelativeEntries","normalizedEntriesNameMap","normalizedEntry","stepWeights","priorityWeights","wholeList","expendedMiddlewareList","toOverrideIndex","toOverride","toRemove","isRemoved","filterCb","removeByName","removeByReference","removeByTag","build","finalizeRequest","high","normal","low","Client","optionsOrCb","Command","extendedEncodeURIComponent","getArrayIfSingleItem","mayBeArray","getValueFromTextNode","textNodeName","StringWrapper","Class","LazyJsonString","deserializeJSON","toJSON","fromObject","days","months","dateToUtcString","getUTCFullYear","getUTCMonth","dayOfWeek","getUTCDay","dayOfMonthInt","getUTCDate","hoursInt","getUTCHours","minutesInt","getUTCMinutes","secondsInt","getUTCSeconds","SENSITIVE_STRING","parseUrl","querystring","parseQueryString","alphabetByEncoding","alphabetByValue","limit","fromBase64","totalByteLength","dataView","bits","bitLength","j","chunkOffset","toBase64","bitClusterCount","calculateBodyLength","SHORT_TO_HEX","HEX_TO_SHORT","encodedByte","fromHex","fallbackWindow","escapeUri","hexEncode","parsedUA","sections","os","browser","XmlNode","withName","addAttribute","addChildNode","removeAttribute","hasChildren","xmlText","attributeName","XmlText","_objectSpread","_iterableToArrayLimit","noop","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","measure","MutationObserver","performance","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","head","createElement","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","FontAwesomeConfig","querySelector","coerce","element","getAttribute","getAttrConfig","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","w","styles","hooks","shims","namespace","functions","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","invokeCallback","subscriber","owner","settled","_state","_data","handleThenable","fulfill","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","promises","results","meaninglessTransform","flipX","flipY","insertCss","css","setAttribute","innerHTML","headChildren","childNodes","beforeChild","tagName","insertBefore","nextUniqueId","htmlEscape","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","innerTranslate","innerScale","innerRotate","ALL_SPACE","fillBlack","abstract","force","makeInlineSvgAbstract","_params$icons","icons","main","mask","iconName","symbol","title","maskId","titleId","extra","_params$watchable","watchable","found","isUploadedIcon","widthClass","attrClass","classes","content","uploadedIconWidthStyle","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","noop$1","subject","initialValue","thisContext","func","bindInternal4","defineIcons","_params$skipHooks","skipHooks","addPack","reducer","ligatures","ligature","hasRegular","shim","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","joinAttributes","parseTransformString","transformString","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","cx","cy","asFoundIcon","vectorData","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","ensureCss","_cssInserted","apiObject","abstractCreator","html","findIconDefinition","iconLookup","_iconLookup$prefix","library","Library","_len","additions","_pullDefinitions","0","_normalized$key","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","getLocation","_source$location","origin","canUseDOM","encodeURI","decodeURI","createHistory","transitioning","resolveTransition","_onTransitionComplete","popstateListener","navigate","to","_ref$replace","go","pushState","transition","createMemorySource","initialPath","searchIndex","initialLocation","states","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","globalHistory","shallowCompare","validateRedirect","insertParams","pick","_invariant","_invariant2","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","missed","route","routeSegments","routeSegment","uriSegment","isSplat","dynamicMatch","paramRe","reservedNames","isDynamic","segment","rankRoute","score","isRootSegment","SEGMENT_POINTS","addQuery","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","allSegments","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","obj1","obj2","obj1Keys","_react","_propTypes2","_interopRequireDefault","_gud2","MAX_SIGNED_31_BIT_INT","createEventEmitter","off","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","_Component","_temp","getChildContext","componentWillReceiveProps","nextProps","oldValue","render","Component","childContextTypes","isRequired","_Component2","_temp2","_this2","_len2","_key2","onUpdate","observedBits","setState","componentDidMount","componentWillUnmount","contextTypes","_react2","_implementation2","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","stripePromise","loadScript","Stripe","script","scripts","querySelectorAll","findScript","advancedFraudSignals","headOrBody","appendChild","injectScript","initStripe","maybeStripe","startTime","stripe","_registerWrapper","registerWrapper","stripePromise$1","loadCalled","loadStripe","currentContext","MISSING_VALUE","idCounter","globalKey","Slot","hasValue","context_1","slots","withValue","saved","noContext","fnToStr","previousComparisons","equal","check","full","fromIndex","aTag","previouslyCompared","aKeys","definedKeys","bKeys","keyCount","aIterator","isMap","aKey","aValue","aCode","nativeCodeSuffix","isDefinedKey","bSet","AuthenticationDetails","AuthParameters","authParameters","_proto","getPassword","getValidationData","getAuthParameters","getClientMetadata","cryptoSecureRandomInt","randomBytes","readInt32LE","dbits","WordArray","words","sigBytes","nBytes","wordArray","hexChars","bite","hexStringify","fromString","nbi","inBrowser","appName","am","xl","xh","DB","DM","DV","FV","F1","F2","rr","vv","BI_RC","int2char","intAt","nbv","fromInt","nbits","Montgomery","mp","invDigit","mpl","mph","um","mt2","convert","dlShiftTo","divRemTo","compareTo","ZERO","subTo","revert","copyTo","u0","clamp","drShiftTo","mulTo","multiplyTo","sqrTo","squareTo","mi","sh","lShiftTo","bs","cbs","bm","ds","rShiftTo","pm","pt","ms","nsh","ys","y0","yt","d1","d2","ONE","qd","addTo","km","equals","subtract","multiply","divide","modPow","z","k1","g2","is1","r2","HEX_MSB_REGEX","AuthenticationHelper","PoolName","N","BigInteger","hexHash","padHex","smallAValue","generateRandomSmallA","getLargeAValue","infoBits","poolName","getSmallAValue","largeAValue","calculateA","hexRandom","getRandomPassword","randomPassword","getSaltDevices","SaltToHashDevices","getVerifierDevices","verifierDevices","generateHashDevice","deviceGroupKey","combinedString","hashedString","verifierDevicesNotPadded","_this3","A","calculateU","B","UHexHash","buf","hashHex","hexStr","computehkdf","ikm","salt","infoBitsWordArray","ikmWordArray","saltWordArray","prk","getPasswordAuthenticationKey","serverBValue","_this4","UValue","usernamePassword","usernamePasswordHash","xValue","calculateS","sValue","hkdf","_this5","gModPowXN","err2","getNewPasswordRequiredChallengeUserAttributePrefix","bigInt","isNegative","invertedNibbles","invertedNibble","CognitoJwtToken","jwtToken","getExpiration","exp","getIssuedAt","iat","CognitoAccessToken","_CognitoJwtToken","CognitoIdToken","CognitoRefreshToken","getToken","CognitoUserSession","ClockDrift","clockDrift","calculateClockDrift","getRefreshToken","getClockDrift","isValid","adjusted","monthNames","weekNames","DateHelper","getNowString","weekDay","hours","minutes","seconds","CognitoUserAttribute","setValue","getName","setName","CognitoUser","pool","Session","signInUserSession","getClientId","userDataKey","uploadProgressKey","clearCachedUserData","cacheTokens","getSignInUserSession","getAuthenticationFlowType","USERNAME","clientMetaData","jsonReq","AuthFlow","getUserContextData","UserContextData","ChallengeName","challengeParameters","ChallengeParameters","getCognitoUserSession","AuthenticationResult","authenticateUserPlainUsernamePassword","authenticateUserDefaultAuth","authenticationHelper","getUserPoolId","dateHelper","deviceKey","DEVICE_KEY","errOnAValue","SRP_A","CHALLENGE_NAME","USER_ID_FOR_SRP","SRP_B","SALT","errOnHkdf","dateNow","SECRET_BLOCK","signatureString","PASSWORD_CLAIM_SECRET_BLOCK","TIMESTAMP","PASSWORD_CLAIM_SIGNATURE","jsonReqResp","ChallengeResponses","respondToAuthChallenge","challenge","challengeCallback","errChallenge","dataChallenge","clearCachedDeviceKeyAndPassword","errAuthenticate","dataAuthenticate","authenticateUserInternal","PASSWORD","authResult","rawRequiredAttributes","userAttributesPrefix","getDeviceResponse","newDeviceMetadata","NewDeviceMetadata","DeviceGroupKey","errGenHash","deviceSecretVerifierConfig","Salt","PasswordVerifier","DeviceSecretVerifierConfig","DeviceName","errConfirm","dataConfirm","cacheDeviceKeyAndPassword","UserConfirmationNecessary","requiredAttributeData","finalUserAttributes","NEW_PASSWORD","_this6","errAValue","errHkdf","confirmationCode","ConfirmationCode","ForceAliasCreation","answerChallenge","_this7","ANSWER","_this8","SMS_MFA_CODE","mfaTypeSelection","SOFTWARE_TOKEN_MFA_CODE","oldUserPassword","newUserPassword","PreviousPassword","ProposedPassword","DeliveryMedium","AttributeName","softwareTokenMfaSettings","SMSMfaSettings","SoftwareTokenMfaSettings","deleteUser","_this9","clearCachedUser","_this10","createGetUserRequest","promisifyRequest","refreshSessionIfPossible","_this11","refresh","_this12","getUserDataFromCache","isFetchUserDataAndTokenRequired","fetchUserData","_ref$bypassCache","_this13","cacheUserData","_this14","UserAttributeNames","idTokenKey","accessTokenKey","refreshTokenKey","clockDriftKey","cachedSession","_this15","wrappedCallback","REFRESH_TOKEN","lastUserKey","deviceKeyKey","authenticationResult","clearCachedTokens","randomPasswordKey","deviceGroupKeyKey","Code","getDevice","forgetSpecificDevice","_this16","DeviceRememberedStatus","setDeviceStatusNotRemembered","paginationToken","requestParams","Limit","PaginationToken","_this17","revokeTokenCallback","_this18","_session","revokeTokens","cleanClientData","isSessionRevocable","revokeToken","origin_jti","requestWithRetry","Token","sendMFASelectionAnswer","_this19","_this20","SecretCode","totpCode","friendlyDeviceName","_this21","UserCode","FriendlyDeviceName","errRespond","dataRespond","UserAgent","_wrapNativeSuper","_cache","Wrapper","_construct","Parent","_isNativeReflectConstruct","CognitoError","MAX_DELAY_MS","BASE_TIME_MS","JITTER_FACTOR","__type","Message","ex","retryIn","CognitoUserPool","AdvancedSecurityDataCollectionFlag","advancedSecurityDataCollectionFlag","cognitoUser","returnData","userConfirmed","UserConfirmed","userSub","UserSub","codeDeliveryDetails","CodeDeliveryDetails","lastAuthUser","AmazonCognitoAdvancedSecurityData","amazonCognitoAdvancedSecurityDataConst","advancedSecurityData","getData","EncodedData","CookieStorage","numKeys","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","isEncoding","actual","isBuffer","checked","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","foo","typedArraySupport","poolSize","_augment","alloc","allocUnsafeSlow","_isBuffer","compare","pos","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","stringtrim","base64clean","dst","PresetStatusColorTypes","PresetColorTypes","component","useForceUpdate","_React$useReducer","getCollapsedHeight","getRealHeight","scrollHeight","skipOpacityTransition","propertyName","collapseMotion","motionName","onAppearStart","onEnterStart","onAppearActive","onEnterActive","onLeaveStart","offsetHeight","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","motionDeadline","getTransitionName","rootPrefixCls","motion","transitionName","isValidElement","cloneElement","replacement","replaceElement","responsiveArray","responsiveMap","xs","sm","md","lg","xxl","subscribers","subUid","screens","responsiveObserve","matchHandlers","pointMap","unregister","screen","matchMediaQuery","mql","removeListener","matches","matchMedia","addListener","tuple","wrapperRaf","delayFrames","myId","restFrames","internalCallback","raf","pid","styleForPseudo","isHidden","offsetParent","hidden","isNotGrey","Wave","_React$Component","containerRef","animationStart","destroyed","waveColor","insertExtraNode","extraNode","getPrefixCls","getAttributeName","borderColor","nodeRoot","getRootNode","ownerDocument","nodeBody","Document","firstChild","attachTo","onTransitionStart","onTransitionEnd","resetEffect","animationName","bindAnimationEvent","getComputedStyle","getPropertyValue","clickWaveTimeoutId","animationStartId","renderWave","nodeType","Element","contains","removeChild","C","contextType","UnreachableException","direction","customizePrefixCls","others","sizeCls","getCollapsedWidth","getRealWidth","scrollWidth","visible","existIcon","LoadingOutlined","removeOnLeave","rxTwoCNChar","isTwoCNChar","isUnborderedButtonType","spaceChildren","needInserted","isPrevChildPure","childList","isCurrentChildPure","lastIndex","lastChild","SPACE","insertSpace","convertLegacyProps","danger","InternalButton","loadingOrDelay","_props$loading","shape","customizeSize","_props$ghost","ghost","_props$block","block","_props$htmlType","htmlType","SizeContext","_React$useState","_React$useState2","innerLoading","setLoading","_React$useState3","_React$useState4","hasTwoCNChar","setHasTwoCNChar","_React$useContext","autoInsertSpaceInButton","buttonRef","delayTimeoutRef","isNeedInserted","buttonText","textContent","handleClick","disabled","preventDefault","devWarning","autoInsertSpace","iconType","iconNode","kids","linkButtonRestProps","omit","buttonNode","Button","Group","__ANT_BUTTON","GroupContext","InternalCheckboxGroup","_a$options","onChange","registeredValues","setRegisteredValues","option","groupPrefixCls","domProps","toggleOption","optionIndex","registerValue","prevValues","cancelValue","CheckboxGroup","InternalCheckbox","_a$indeterminate","indeterminate","onMouseEnter","onMouseLeave","_a$skipGroup","skipGroup","checkboxGroup","prevValue","checkboxProps","checkboxClass","Checkbox","__ANT_CHECKBOX","SizeContextProvider","originSize","componentName","ConfigConsumer","image","ConfigContext","suffixCls","renderEmpty","runtimeLocale","changeConfirmLocale","newLocale","ANT_MARK","LocaleProvider","locale","Modal","_ANT_MARK__","prevProps","_this$props","exist","defaultProps","messageInstance","defaultTop","getContainer","maxCount","defaultDuration","localPrefixCls","hasTransitionName","rtl","getRCNotificationInstance","_globalConfig","globalConfig","getRootPrefixCls","instanceConfig","top","typeToIcon","CheckCircleFilled","CloseCircleFilled","warning","ExclamationCircleFilled","getRCNoticeProps","duration","IconComponent","messageClass","onClose","api","closePromise","notice","removeNotice","filled","messageKey","attachTypeApi","originalApi","isArgsProps","useMessage","getRcNotificationInstance","innerInstance","proxy","noticeProps","holderCallback","_useRCNotification","_useRCNotification2","hookNotify","hookApiRef","mergedPrefixCls","createUseMessage","globalPrefixCls","PASSED_PROPS","getGlobalPrefixCls","ProviderChildren","form","componentSize","space","virtual","dropdownMatchSelectWidth","legacyLocale","parentContext","iconPrefixCls","propName","propValue","memoedConfig","useMemo","prevConfig","currentConfig","prevKeys","currentKeys","memoIconContextValue","childNode","validateMessages","Form","defaultValidateMessages","ConfigProvider","notification","LocaleReceiver","viewBox","xmlns","fillRule","rx","ry","defaultEmptyImg","simpleEmptyImg","_a$image","description","imageStyle","des","alt","imageNode","PRESENTED_IMAGE_DEFAULT","PRESENTED_IMAGE_SIMPLE","RowContext","sizes","Col","_React$useContext2","gutter","wrap","supportFlexGap","span","order","flex","sizeClassObj","_extends2","sizeProps","propSize","mergedStyle","horizontalGutter","paddingLeft","paddingRight","verticalGutter","paddingTop","paddingBottom","parseFlex","minWidth","flexGapSupported","canUseDocElement","canUseDom","flexible","setFlexible","display","flexDirection","rowGap","detectFlexGapSupported","Row","justify","align","_props$gutter","setScreens","useFlexGapSupport","gutterRef","currentGutter","gutters","breakpoint","rowStyle","marginLeft","marginRight","_gutters","marginTop","marginBottom","rowContext","defaultLocale","antLocale","localeFromContext","localeCode","getLocale","getLocaleCode","useLocaleReceiver","LocaleContext","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","placeholder","rangePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","timePickerLocale","typeTemplate","Pagination","DatePicker","TimePicker","Calendar","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","emptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","Text","edit","copied","PageHeader","back","optional","required","whitespace","invalid","types","integer","regexp","range","mismatch","Image","preview","defaultGetContainer","defaultCloseIcon","notificationInstance","defaultBottom","defaultPrefixCls","defaultPlacement","getPlacementStyle","placement","bottom","getNotificationInstance","_args$placement","_args$getContainer","_args$closeIcon","closeIcon","cacheInstance","closeIconToRender","CloseOutlined","notificationClass","InfoCircleOutlined","durationArg","btn","autoMarginTag","closable","useNotification","createUseNotification","validProgress","getSuccessPercent","percent","successPercent","handleGradient","strokeColor","directionConfig","gradients","tempArr","_strokeColor$from","_strokeColor$to","_strokeColor$directio","sortedGradients","formattedKey","backgroundImage","strokeWidth","strokeLinecap","trailColor","backgroundProps","background","trailStyle","percentStyle","borderRadius","successPercentStyle","successSegment","trailWidth","useTransitionDuration","percentList","paths","prevTimeStamp","updated","pathStyle","transitionDuration","gapPosition","strokeColorList","_useTransitionDuratio","center","pathString","viewBoxString","stackPtg","preserveAspectRatio","stroke","fillOpacity","ptg","dashPercent","strokeDasharray","strokeDashoffset","gradientSeed","stripPercentToNumber","toArray","symArray","getPathStyles","gapDegree","radius","beginPositionX","beginPositionY","endPositionX","endPositionY","PI","Circle","gradientId","_getPathStyles","gradient","x1","y1","x2","y2","stopColor","pathStyles","getPercentage","realSuccessPercent","circleSize","circleStyle","fontSize","circleWidth","gapPos","isGradient","wrapperClassName","steps","_props$percent","_props$strokeWidth","stepWidth","styledSteps","ProgressStatuses","renderProgress","showInfo","progressStatus","getProgressStatus","progressInfo","renderProcessInfo","_this$props$percent","getPercentNumber","isLineType","percentNumber","CheckOutlined","RadioGroupContext","RadioGroupContextProvider","InternalRadio","innerRef","mergedRef","radioProps","wrapperClassString","Radio","RadioGroup","_useMergedState","useMergedState","_useMergedState2","ev","lastValue","_props$className","optionType","_props$buttonStyle","buttonStyle","childrenToRender","optionsPrefixCls","mergedSize","renderGroup","RadioButton","radioGroupContext","propList","ariaPrefix","dataPrefix","pickAttrs","mergedConfig","ariaOnly","aria","Filler","onInnerResize","outerStyle","innerStyle","overflow","onResize","getPageY","touches","pageY","ScrollBar","moveRaf","scrollbarRef","thumbRef","visibleTimeout","dragging","startTop","delayHidden","onScrollbarTouchStart","onContainerMouseDown","stopPropagation","patchEvents","onMouseMove","onMouseUp","removeEvents","onMouseDown","onStartMove","getTop","_this$state","onScroll","newTop","enableScrollRange","getEnableScrollRange","enableHeightRange","getEnableHeightRange","newScrollTop","onStopMove","getSpinHeight","baseHeight","_this$props2","scrollTop","getVisible","_this$props3","spinHeight","userSelect","Item","setRef","refFunc","CacheMap","maps","useDiffItem","getKey","onDiff","prevData","setPrevData","diffItem","setDiffItem","originList","targetList","shortList","longList","originLen","targetLen","notExistKey","__EMPTY_ITEM__","getItemKey","diffIndex","multiple","shortKey","findListDiffIndex","isScrollAtTop","isScrollAtBottom","lockRef","lockTimeoutRef","lockScroll","scrollPingRef","deltaY","smoothOffset","originScroll","EMPTY_DATA","ScrollStyle","overflowY","overflowAnchor","RawList","_props$prefixCls","itemHeight","_props$fullHeight","fullHeight","itemKey","_props$component","useVirtual","inVirtual","_useState2","setScrollTop","_useState4","scrollMoving","setScrollMoving","mergedClassName","mergedData","componentRef","fillerInnerRef","scrollBarRef","sharedConfig","syncScrollTop","alignedTop","maxScrollHeightRef","keepInRange","rangeRef","diffItemRef","_useHeights2","onItemAdd","onItemRemove","updatedMark","setUpdatedMark","instanceRef","heightsRef","heightUpdateIdRef","collectHeight","currentId","htmlElement","findDOMNode","useHeights","setInstanceRef","heights","heightUpdatedMark","_React$useMemo","_fillerInnerRef$curre","startIndex","startOffset","endIndex","itemTop","dataLen","cacheHeight","currentItemBottom","maxScrollHeight","useOriginScroll","_useFrameWheel2","onWheelDelta","offsetRef","nextFrameRef","wheelValueRef","isMouseScrollRef","patchMultiple","detail","useFrameWheel","offsetY","onRawWheel","onFireFoxScroll","listRef","cleanUpEvents","touchedRef","touchYRef","elementRef","intervalRef","onTouchMove","currentY","clearInterval","setInterval","onTouchEnd","onTouchStart","useMobileTouchMove","onMozMousePixelScroll","scrollTo","triggerFlash","scrollRef","_arg$offset","syncScroll","times","targetAlign","clientHeight","needCollectHeight","newTargetAlign","mergedAlign","stackTop","itemBottom","maxLen","targetTop","useScrollTo","_scrollBarRef$current","listChildren","setNodeRef","renderFunc","ele","useChildren","componentStyle","pointerEvents","currentTarget","List","customizeIcon","customizeIconProps","_onMouseDown","WebkitUserSelect","unselectable","cls","OptionList","flattenOptions","childrenAsData","searchValue","defaultActiveFirstOption","notFoundContent","menuItemSelectedIcon","onSelect","onToggleOpen","onActiveValue","itemPrefixCls","memoFlattenOptions","prev","onListMouseDown","scrollIntoView","getEnabledActiveIndex","_memoFlattenOptions$c","activeIndex","setActiveIndex","setActive","fromKeyboard","flattenItem","_listRef$current","onSelectValue","selected","onKeyDown","KeyCode","nextActiveIndex","onKeyUp","renderItem","itemData","mergedLabel","itemIndex","groupOption","otherProps","optionPrefixCls","optionClassName","iconVisible","optionTitle","isSelected","RefOptionList","Option","isSelectOption","OptGroup","isSelectOptGroup","convertNodeToOption","_node$props","convertChildrenToData","nodes","optionOnly","_node$props2","removeLastEnabledValue","measureValues","removeIndex","newValues","removedValue","isBrowserClient","uuid","injectPropsWithOption","newOption","findValueOption","_ref$prevValueOptions","prevValueOptions","optionMap","_INTERNAL_OPTION_VALUE_","toRawString","responsive","registerSize","mergedHidden","internalRegisterSize","itemNode","offsetWidth","defaultRenderRest","omittedItems","Overflow","_props$data","_props$itemWidth","itemWidth","_props$renderRest","renderRest","renderItemProps","_props$itemComponent","itemComponent","createUseState","_useState","statesRef","destroyRef","walkingIndex","beforeFrameId","myIndex","useBatchFrameState","_createUseState","_createUseState2","setContainerWidth","_createUseState3","_createUseState4","itemWidths","setItemWidths","_createUseState5","_createUseState6","prevRestWidth","setPrevRestWidth","_createUseState7","_createUseState8","restWidth","setRestWidth","_createUseState9","_createUseState10","suffixWidth","setSuffixWidth","suffixFixedStart","setSuffixFixedStart","_useState3","displayCount","setDisplayCount","_useState5","_useState6","restReady","setRestReady","mergedRestWidth","isResponsive","showRest","useCallback","mergedRenderItem","updateDisplayCount","notReady","getItemWidth","totalWidth","currentItemWidth","displayRest","suffixStyle","itemSharedProps","overflowNode","MAX_SAFE_INTEGER","clientWidth","ForwardOverflow","Input","_inputNode2","_inputNode2$props","inputElement","autoFocus","autoComplete","editable","accessibilityIndex","maxLength","_onKeyDown","_onChange","onPaste","_onCompositionStart","onCompositionStart","_onCompositionEnd","onCompositionEnd","inputNode","_inputNode","originRef","_inputNode$props","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","readOnly","RefInput","useLayoutEffect","effect","deps","onPreventMouseDown","inputRef","showSearch","removeIcon","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","tagRender","onInputChange","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","measureRef","inputWidth","setInputWidth","focused","setFocused","selectionPrefixCls","inputValue","inputEditable","defaultRenderSelector","itemDisabled","onFocus","onBlur","selectionNode","displayLabel","strLabel","customizeRenderSelector","activeValue","inputChanged","setInputChanged","combobox","hasTextInput","useLock","timeoutRef","doLock","locked","Selector","compositionStatusRef","tokenWithEnter","onSearch","onSearchSubmit","domRef","focus","blur","_useLock","_useLock2","getInputMouseDown","setInputMouseDown","pastedTextRef","triggerOnSearch","sharedProps","replacedText","clipboardData","selectNode","MultipleSelector","msTouchAction","inputMouseDown","ForwardSelector","SelectTrigger","popupElement","animation","dropdownStyle","dropdownClassName","_props$direction","_props$dropdownMatchS","dropdownRender","dropdownAlign","getPopupContainer","getTriggerDOMNode","dropdownPrefixCls","popupNode","builtInPlacements","adjustX","bottomLeft","points","adjustY","bottomRight","topLeft","topRight","getBuiltInPlacements","mergedTransitionName","popupRef","getPopupElement","popupStyle","showAction","hideAction","popupPlacement","builtinPlacements","popupTransitionName","popup","popupAlign","popupVisible","popupClassName","RefSelectTrigger","DEFAULT_OMIT_PROPS","backfill","allowClear","getInputElement","defaultOpen","labelInValue","optionLabelProp","mergedShowSearch","mergedOptions","hasNumberValue","invalidateChildType","subNode","RefSelect","components","optionList","getLabeledValue","filterOptions","isValueDisabled","fillOptionsWithMissingValue","warningProps","omitDOMProps","Select","_classNames2","filterOption","filterSort","_props$optionFilterPr","optionFilterProp","_props$autoClearSearc","autoClearSearchValue","clearIcon","showArrow","inputIcon","_props$notFoundConten","_props$listHeight","listHeight","_props$listItemHeight","listItemHeight","_props$showAction","tokenSeparators","onPopupScroll","onDropdownVisibleChange","onDeselect","onClear","_props$internalProps","internalProps","useInternalProps","triggerRef","selectorRef","tokenSeparator","_useDelayReset","bool","setBool","delayRef","cancelLatest","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","innerId","setInnerId","retId","mergedId","mergedOptionLabelProp","mergedLabelInValue","isMultiple","mobile","setMobile","isMobile","selectorDomRef","_selectorRef$current","_selectorRef$current2","mergedValue","setMergedValue","_useMemo","valueMap","rawValues","itemValue","finalVal","toInnerValue","_useMemo2","mergedRawValue","mergedValueMap","setActiveValue","_useState7","_useState8","innerSearchValue","setInnerSearchValue","mergedSearchValue","mergedFlattenOptions","getValueOption","prevOptionMapRef","vals","useCacheOptions","displayOptions","filteredOptions","unshift","displayFlattenOptions","prevValuesRef","displayValues","tmpValues","valueOptions","displayValue","prevValueMap","valueLabels","resultValues","cacheLabel","isCacheable","triggerSelect","isSelect","newValueOption","outOption","skipTriggerSelect","selectValue","onRawSelect","onRawDeselect","_useState9","_useState10","setPrevValueOptions","triggerChange","newRawValues","skipTriggerChange","newRawValuesOptions","outValues","valueList","toOuterValues","outValue","outOptions","onInternalSelect","newRawValue","customizeInputElement","_useMergedState3","_useMergedState4","innerOpen","setInnerOpen","mergedOpen","emptyListContent","triggerOpen","newOpen","nextOpen","elements","propsRef","onGlobalMouseDown","shadowRoot","composed","composedPath","useSelectTriggerControl","triggerSearch","searchText","fromTyping","isCompositing","newSearchText","patchLabels","tokens","separate","_ref4","_ref5","restTokens","prevList","unitStr","unit","getSeparatedContent","patchRawValues","getClearLock","setClearLock","focusRef","activeTimeoutIds","_useState11","_useState12","setAccessibilityIndex","mergedDefaultActiveFirstOption","_useState13","_useState14","_useState15","newWidth","clearNode","active","_ref3$source","arrowNode","mergedShowArrow","_selectorRef$current3","activeElement","_len3","restArgs","_key3","_listRef$current2","clearLock","removeInfo","_listRef$current3","generateSelector","flattenList","dig","isGroupOption","prevValItem","filterFunc","lowerSearchText","getFilterFunction","subOptions","subItem","cloneOptions","optionValues","subOpt","_ref6","selectRef","SECRET_COMBOBOX_MODE_DO_NOT_USE","InternalSelect","mergedNotFound","_a$bordered","bordered","_a$listHeight","_a$listItemHeight","getContextPopupContainer","_getIcons","suffixIcon","mergedClearIcon","mergedSuffixIcon","iconCls","SearchOutlined","DownOutlined","itemIcon","getIcons","selectProps","rcSelectRtlDropDownClassName","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","targetOffset","getOverflowOptions","autoAdjustOverflow","PresetColorRegex","getDisabledCompatibleChildren","elementType","__ANT_SWITCH","_splitObject","picked","omitted","splitObject","spanStyle","Tooltip","defaultVisible","setVisible","isNoTitle","overlay","getTooltipPlacements","arrowPointAtCenter","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","placementMap","leftTop","rightTop","rightBottom","leftBottom","placements","ignoreShake","getPlacements","openClassName","getTooltipContainer","overlayClassName","overlayInnerStyle","tempVisible","arrowContentStyle","childProps","childCls","customOverlayClassName","formattedOverlayInnerStyle","onVisibleChange","vis","onPopupAlign","domNode","rect","getBoundingClientRect","transformOrigin","arrowContent","mouseEnterDelay","mouseLeaveDelay","file","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","AUTH_TYPE","core_1","printer_1","signer_1","Url","platform_1","packageInfo","USER_AGENT_HEADER","AuthLink","authLink","headerBasedAuth","origContext","auth","Observable","NONE","AWS_IAM","creds","formatted","getPromise","formatAsRequest","iamBasedAuth","API_KEY","apiKey","AMAZON_COGNITO_USER_POOLS","OPENID_CONNECT","AWS_LAMBDA","removeTemporaryVariables","auth_link_1","createAuthLink","__export","lib","createHmac","createHash","subscription_handshake_link_1","CONTROL_EVENTS_KEY","http_1","utilities_1","non_terminating_link_1","realtime_subscription_handshake_link_1","createSubscriptionHandshakeLink","infoOrUrl","theResultsFetcherLink","resultsFetcherLink","subscriptionLinks","NonTerminatingLink","_forward","controlEvents","SubscriptionHandshakeLink","AppSyncRealTimeSubscriptionHandshakeLink","graphqlOperation","contextKey","_request","prevContext","utils_1","aws_appsync_auth_link_1","graphql_1","uuid_1","types_1","retry_1","rootLogger","extend","NON_RETRYABLE_CODES","APPSYNC_REALTIME_HEADERS","DEFAULT_KEEP_ALIVE_TIMEOUT","theUrl","theRegion","theAuth","socketStatus","SOCKET_STATUS","CLOSED","keepAliveTimeout","subscriptionObserverMap","promiseArray","controlMessages","subscriptionId_1","appSyncGraphqlEndpoint","authenticationType","graphql_headers","_startSubscriptionWithAWSAppSyncRealTime","subscriptionId","_verifySubscriptionAlreadyStarted","subscriptionState","SUBSCRIPTION_STATUS","CONNECTED","_sendUnsubscriptionMessage","_removeSubscriptionObserver","GraphQLError","controlMsgType","subscriptionReadyCallback","subscriptionFailedCallback","awsRealTimeSocket","WebSocket","OPEN","READY","unsubscribeMessage","MESSAGE_TYPES","GQL_STOP","stringToAWSRealTime","_closeSocketWhenFlushed","keepAliveTimeoutId","bufferedAmount","dataString","headerObj","subscriptionMessage","subscriptionFailedCallback_1","startAckTimeoutId","_awsRealTimeHeaderBasedAuth","canonicalUri","GQL_START","_initializeWebSocketConnection","_timeoutStartSubscriptionAck","discoverableEndpoint","payloadString","headerString","headerQs","payloadQs","awsRealTimeUrl","CONNECTING","_discoverAppSyncRealTimeEndpoint","_initializeRetryableHandshake","headerHandler","_awsRealTimeApiKeyHeader","_awsRealTimeIAMHeader","_awsRealTimeAuthorizationHeader","Authorization","dtStr","endpointInfo","formattedCredentials","_initializeHandshake","err_3","errorType","errorCode","newSocket","createWebSocket","onclose","onopen","ackOk","onmessage","connectionTimeoutMs","GQL_CONNECTION_ACK","_handleIncomingSubscriptionMessage","_errorDisconnect","CONTROL_MSG","CONNECTION_CLOSED","GQL_CONNECTION_ERROR","gqlInit","GQL_CONNECTION_INIT","GQL_DATA","GQL_START_ACK","GQL_CONNECTION_KEEP_ALIVE","TIMEOUT_DISCONNECT","GQL_ERROR","FAILED","Paho","mqttLogger","subsInfoContextKey","topicObservers","clientObservers","onMessage","topic","selectionNames","parsedMessage","subsInfo","newSubscriptions","mqttConnections","newSubscriptionTopics","subKey","existingTopicsWithObserver","newTopics","anObserver","newTopicsConnectionInfo","topics","connectNewClients","isConnected","disconnect","connectionInfo","connectNewClient","controlMsgInfo","trace","onConnectionLost","permanent","onMessageArrived","destinationName","connect","useSSL","mqttVersion","subscribeToTopics","subscribeToTopic","logger_1","il","jl","debug_1","debugLogger","category","newCategory","factory","PahoMQTT","MESSAGE_TYPE","errorStr","validKey","INVALID_TYPE","_scope","OK","CONNECT_TIMEOUT","SUBSCRIBE_TIMEOUT","UNSUBSCRIBE_TIMEOUT","PING_TIMEOUT","INTERNAL_ERROR","CONNACK_RETURNCODE","SOCKET_ERROR","SOCKET_CLOSE","MALFORMED_UTF","UNSUPPORTED","INVALID_STATE","INVALID_ARGUMENT","UNSUPPORTED_OPERATION","INVALID_STORED_DATA","INVALID_MQTT_MESSAGE_TYPE","MALFORMED_UNICODE","BUFFER_FULL","CONNACK_RC","1","2","3","4","5","substitutions","part1","part2","MqttProtoIdentifierv3","MqttProtoIdentifierv4","WireMessage","decodeMessage","digit","startingPos","messageInfo","remLength","multiplier","endPos","wireMessage","sessionPresent","returnCode","qos","readUint16","topicName","parseUTF8","messageIdentifier","retained","duplicate","payloadMessage","writeUint16","writeString","utf8Length","stringToUTF8","UTF8Length","lowCharCode","utf16","byte1","byte2","byte3","byte4","willMessagePayloadBytes","topicStrLength","destinationNameLength","willMessage","payloadBytes","userName","requestedQos","mbi","numBytes","encodeMBI","byteStream","connectFlags","cleanSession","keepAliveInterval","Pinger","_client","_keepAliveInterval","isReset","pingReq","doTimeout","pinger","doPing","_trace","socket","_disconnected","Timeout","timeoutSeconds","ClientImpl","_wsuri","_localKey","_msg_queue","_buffered_msg_queue","_sentMessages","_receivedMessages","_notify_msg_sent","_message_identifier","_sequence","connected","maxMessageIdentifier","connectOptions","hostIndex","onConnected","onMessageDelivered","traceFunction","_connectTimeout","sendPinger","receivePinger","_reconnectInterval","_reconnecting","_reconnectTimeout","disconnectedPublishing","disconnectedBufferSize","receiveBuffer","_traceBuffer","_MAX_TRACE_ENTRIES","connectOptionsMasked","_traceMask","uris","_doConnect","subscribeOptions","grantedQos","invocationContext","timeOut","_requires_ack","_schedule_message","unsubscribeOptions","sequence","getTraceLog","startTrace","stopTrace","wsurl","uriParts","binaryType","_on_socket_open","_on_socket_message","_on_socket_error","_on_socket_close","_process_queue","storedMessage","pubRecReceived","messageBytes","payloadHex","_socket_send","messageCount","messages","_deframeMessages","_handleMessage","errorStack","sentMessage","receivedMessage","sequencedMessages","msgId","pubRelMessage","reconnected","_connected","_receivePublish","_receiveMessage","pubCompMessage","wireMessageMasked","pubAckMessage","pubRecMessage","reconnect","_reconnect","errorText","mqttVersionExplicit","record","severity","traceObject","masked","traceObjectMasked","newPayload","newDestinationName","newQos","newRetained","newTopic","newDuplicate","ipv6AddSBracket","clientIdLength","newOnConnected","newDisconnectedPublishing","newDisconnectedBufferSize","newOnConnectionLost","newOnMessageDelivered","newOnMessageArrived","hosts","ports","stringPayload","usingURIs","ipv6","load","formatArgs","useColors","humanize","lastC","save","namespaces","WebkitAppearance","firebug","table","$1","chrome","local","localstorage","formatters","enable","prevTime","createDebug","enabled","curr","formatter","logFn","selectColor","disable","skips","plural","long","fmtShort","AWS","Service","apiLoader","services","CognitoIdentity","defineService","model","paginators","STS","svc","Hmac","Sha1","alg","createSign","viewStrings","hashUtils","buff","h0","h1","h2","h3","h4","totalLength","processBlock","outView","util","realClock","environment","createEventStream","XML","PromisesDependency","Config","inherit","extractCredentials","each","getCredentials","credError","allowUnknownKeys","hasService","loadFromPath","readFileSync","fileSystemCreds","FileSystemCredentials","chain","CredentialProviderChain","providers","apiVersions","maxRetries","maxRedirects","paramValidation","sslEnabled","s3ForcePathStyle","s3BucketEndpoint","s3DisableBodySigning","s3UsEast1RegionalEndpoint","s3UseArnRegion","computeChecksums","convertResponseTypes","correctClockSkew","dynamoDbCrc32","signatureVersion","signatureCache","retryDelayOptions","clientSideMonitoring","endpointDiscoveryEnabled","endpointCacheSize","hostPrefixEnabled","stsRegionalEndpoints","setPromisesDependency","constructors","ManagedUpload","addPromises","getPromisesDependency","validateRegionalEndpointsFlagValue","configValue","errorOptions","originalConfig","clientConfig","env","profile","getProfilesFromSharedConfig","iniLoader","AWS_PROFILE","defaultProfile","VERSION","Signers","Protocol","Json","Rest","RestJson","RestXml","Builder","Model","Api","Operation","Shape","Paginator","ResourceWaiter","EndpointCache","SequentialExecutor","memoizedProperty","hideProperties","expired","expireTime","refreshCallbacks","expiryWindow","needsRefresh","currentTime","getDate","adjustedTime","coalesceRefresh","sync","arrayEach","defer","addPromisesToClass","PromiseDependency","promisifyMethod","refreshPromise","deletePromisesFromClass","ChainableTemporaryCredentials","tokenCodeFn","RoleArn","RoleSessionName","SerialNumber","masterCredentials","stsConfig","getTokenCode","tokenCode","TokenCode","credentialsFrom","CognitoIdentityCredentials","localStorageKey","_clientConfig","loadCachedId","createClients","getId","clearIdOnNotAuthorized","getCredentialsFromSTS","getCredentialsForIdentity","clearCachedId","poolId","loginId","LoginId","cognito","loadCredentials","cacheId","getOpenIdToken","WebIdentityToken","webIdentityCredentials","webErr","sts","actualProviders","WebIdentityCredentials","cognitoConfig","setStorage","defaultProviders","resolveCallbacks","resolveNext","getErr","resolvePromise","SAMLCredentials","assumeRoleWithSAML","TemporaryCredentials","loadMasterCredentials","assumeRole","getSessionToken","assumeRoleWithWebIdentity","endpointDiscoveryEnabledEnvs","identifiers","marshallCustomIdentifiersHelper","memberShape","members","endpointDiscoveryId","locationName","isLocationName","marshallCustomIdentifiers","optionalDiscoverEndpoint","operationModel","endpoints","endpointCache","Address","httpRequest","updateEndpoint","endpointRequest","makeRequest","endpointOperation","Identifiers","addApiVersionHeader","EventListeners","Core","VALIDATE_PARAMETERS","RETRY_CHECK","CachePeriodInMinutes","Endpoints","requestQueue","requiredDiscoverEndpoint","inputShape","cacheKeyStr","getKeyString","retryable","pendingRequests","requestContext","invalidateCachedEndpoints","httpResponse","isFalsy","discoverEndpoint","_originalConfig","svcConfig","serviceIdentifier","hasCustomEndpoint","isPresigned","isEndpointDiscoveryRequired","endpointDiscoveryRequired","isEnabled","configFile","loadFrom","isConfig","sharedConfigFileEnv","sharedFileConfig","endpoint_discovery_enabled","resolveEndpointDiscoveryConfig","hasRequiredEndpointDiscovery","appendToUserAgent","addNamedListener","invalidateCachedEndpoint","eventMessageChunker","parseEvent","eventMessages","toBuffer","parseMessage","eventType","eventModel","eventPayloadMemberName","payloadShape","eventHeaderNames","eventHeaderMemberNames","toType","parseHeaders","uuidChars","headersEnd","DISCOVER_ENDPOINT","addNamedListeners","addAsync","isGlobalEndpoint","dnsHostRegex","idempotentMembers","rules","validation","ParamValidator","isNonStreamingPayload","httpChecksumRequired","haltHandlersOnError","authtype","getSignerClass","V4","computeSha256","sha","getOperationAuthtype","payloadMember","getRequestPayloadShape","isStreaming","requiresLength","retryCount","getSigningName","setServiceClientId","_clientId","addAuthorization","signedAt","successfulResponse","httpResp","statusMessage","streaming","HttpClient","streamsApiVersion","hasEventOutput","didCallback","errCode","executeSend","handleRequest","_abortCallback","buffers","applyClockOffset","retryableError","clockSkewError","Endpoint","redirect","redirectCount","retryDelay","retryDelays","willRetry","CorePost","extractRequestId","errno","getSystemErrorName","isDNSError","originalError","line","delta","ansi","isTTY","censoredParams","lowerFirst","buildMessage","isSensitive","struct","subShapeName","subShape","member","buildRequest","extractData","extractError","urlParse","_userAgent","setUserAgent","getUserAgentHeaderName","agentPartial","getUserAgent","queryStringParse","queryParamsToString","endpointStr","newEndpoint","createUnbufferedStream","singleton","XHRClient","errCallback","xhr","XMLHttpRequest","headersEmitted","HEADERS_RECEIVED","getAllResponseHeaders","statusText","DONE","finishRequest","evt","xhrAsync","setRequestHeader","xhrWithCredentials","withCredentials","ab","responseText","JsonBuilder","translate","structure","isDocument","translateStructure","translateMap","translateList","toWireFormat","translateScalar","JsonParser","shapeMembers","Collection","endpointPrefix","globalEndpoint","jsonVersion","targetPrefix","timestampFormat","xmlNamespace","serviceAbbreviation","serviceFullName","xmlNoDefaultLists","endpointoperation","endpointdiscovery","shapes","paginator","waiters","waiter","documentation","documentationUrl","memoize","nameTr","requestUri","isIdempotent","topLevelShape","isEventStream","hasEventStream","input_token","limit_key","more_results","output_token","result_key","memberName","enum","xmlName","isComposite","idempotencyToken","jsonvalue","sensitive","eventstream","eventpayload","eventheader","isTimestampFormatSet","endpointdiscoveryid","hostLabel","xmlAttribute","CompositeShape","flattened","StructureShape","requiredMap","firstInit","isShape","xmlOrder","memberNames","isEventPayload","isEventHeader","resultWrapper","ListShape","MapShape","StringShape","nullLessProtocols","isJsonValue","BinaryShape","secureBuf","Base64Shape","BooleanShape","normalizedTypes","character","double","short","biginteger","bigdecimal","toUTCString","parseTimestamp","refShape","filteredKeys","InlineShape","origType","validateMember","fail","validateStructure","validateType","paramValue","memberContext","validateList","validateMap","validateScalar","validateRange","mapCount","validateString","validatePayload","validateNumber","validTypes","validateEnum","validatePattern","validateUri","acceptedTypes","foundInvalidType","isType","typeName","acceptedType","vowel","castedValue","Stream","populateHostPrefix","labels","hostPattern","isEndpointOperation","hasEndpointDiscover","hostPrefix","hostPrefixNotation","regex","expandHostPrefix","prependEndpointPrefix","builder","QueryParamSerializer","Version","Action","Errors","origRules","tmp","_XAMZRequestId","requestIdShape","generateURI","endpointPath","operationPath","queryStringSet","plus","uriEscape","httpMethod","populateMethod","httpPath","populateURI","memberValue","populateHeaders","applyContentTypeHeader","isBinary","populateBody","rootElement","toXML","upperFirst","ucfirst","isQueryName","serializeStructure","serializeMember","memberRules","serializeList","keyName","valueName","serializeMap","regionConfig","applyConfig","configureEndpoint","regionPrefix","generateRegionPrefix","derivedKeys","useDualstack","isDualstackAvailable","getEndpointSuffix","regionRegexes","regexes","regionPattern","dnsSuffix","AcceptorStateMachine","jmespath","hardErrorStates","fsm","setupStates","_haltHandlersOnError","_asm","currentState","machine","Domain","domainEmitter","domainThrown","addState","Response","emitEvent","runTo","eachPage","makeAsync","nextPage","eachItem","resultKey","paginationConfig","continueIteration","isPageable","createReadStream","streams","PassThrough","nextTick","readable","HTTP_DATA","HTTP_ERROR","expectedLen","shouldCheckContentLength","receivedLen","checkContentLengthAndEmit","httpStream","lengthAccumulator","_write","unpipe","pipe","eventName","eventParameters","Presign","toGet","toUnauthenticated","_unAuthenticated","VALIDATE_CREDENTIALS","SIGN","buildAsGet","mixin","CHECK_ACCEPTORS","_waiter","acceptors","acceptorMatched","acceptor","matcher","expected","setSuccess","setError","loadWaiterConfig","strictDeepEqual","pathAll","numResults","ind","pathAny","wait","$waiter","addListeners","numRetries","nextPageTokens","inputTokens","inputToken","cacheNextPageTokens","moreResults","exprs","outputToken","expr","_events","toHead","onAsync","_isAsync","eventArgs","doneCallback","callListeners","prevError","callNextListener","callbacks","addNamedAsyncListener","clientCount","loadServiceClass","ServiceClass","endpointFromTemplate","setEndpoint","addDefaultMonitoringListeners","_clientSideMonitoring","publisher","eventHandler","serviceConfig","apiConfig","defineServiceApi","getLatestServiceClass","getLatestServiceVersion","selectedVersion","defaultRetryCount","customizeRequests","customRequestHandler","addAllRequestListeners","attachMonitoringEmitter","makeUnauthenticatedRequest","waitFor","serviceInterface","setupRequestListeners","apiCallEvent","monitoringEvent","Type","Region","MaxRetriesExceeded","FinalHttpStatusCode","FinalAwsException","FinalAwsExceptionMessage","FinalSdkException","FinalSdkExceptionMessage","apiAttemptEvent","Fqdn","HttpStatusCode","AccessKey","XAmznRequestId","XAmzRequestId","XAmzId2","attemptFailEvent","AwsException","AwsExceptionMessage","SdkException","SdkExceptionMessage","attemptTimestamp","attemptStartRealTime","attemptLatency","callStartRealTime","callTimestamp","attemptCount","Timestamp","AttemptLatency","AttemptCount","latency","Latency","RequestSigner","getVersion","calculateRetryDelay","networkingError","expiredCredentialsError","throttledError","throwException","defineMethods","features","_serviceMap","addVersions","identifier","Publisher","publisherConfig","configProvider","superclass","setApi","isApi","attachOn","baseClass","resolveRegionalEndpointsFlag","SecretAccessKey","optInRegionalEndpoint","insertPoint","regionalEndpoint","expiresHeader","signedUrlBuilder","signerClass","unixTimestamp","signedUrlSigner","SET_CONTENT_LENGTH","COMPUTE_SHA256","urlFormat","serviceClientId","getServiceClientId","V2","V3","V3Https","subResources","responseHeaders","rfc822","canonicalizedAmzHeaders","canonicalizedResource","amzHeaders","virtualHostedBucket","resources","subresource","SignatureVersion","SignatureMethod","AWSAccessKeyId","SecurityToken","Signature","datetime","headersToSign","v4Credentials","serviceName","updateForPresigned","addHeaders","credString","credentialString","qs","isSignableHeader","lowerKey","sep","signingKey","hexEncodedHash","canonicalString","hexEncodedBodyHash","canonicalHeaderValues","cachedSecret","v4Identifier","shouldCache","kDate","kRegion","kService","emptyCache","finalState","bindObject","inputError","acceptState","failState","engine","platform","AWS_EXECUTION_ENV","agent","escape","ch","sortedKeys","ename","toStream","Readable","_read","ini","currentSection","expectedArgs","crc32Table","tbl","crc","sliceFn","arraySliceFn","onload","_continueReading","iterFunction","dupe","webkitSlice","mozSlice","klass","newObject","__super__","isValue","cachedValue","hoistPayloadMember","responsePayload","settings","ResponseMetadata","RequestId","deletePromises","dualstackAvailable","customBackoff","handleRequestWithRetries","sendRequest","retryAfter","convertPayloadToString","profiles","profilesFromConfig","configOptInEnv","profilesFromCreds","sharedCredentialsFileEnv","profileNames","objectAssign","ARN","matched","arnObject","imdsDisabledEnv","DomXmlParser","getElementByTagName","xml","getElementsByTagName","parentNode","parseXml","parseStructure","xmlKey","xmlValue","firstElementChild","nodeName","nextElementSibling","parseMap","parseList","parseUnknown","parseScalar","isXmlAttribute","xmlChild","DOMParser","parseFromString","syntaxError","isError","errorElement","ActiveXObject","async","loadXML","XmlBuilder","applyNamespaces","entryKey","entryValue","serializeScalar","isRoot","xmlNamespaceUri","xmlNamespacePrefix","noEmpty","escapeAttribute","escapeElement","_maxListeners","isFunction","isUndefined","defaultMaxListeners","setMaxListeners","er","newListener","warned","fired","listenerCount","evlistener","isLE","mLen","eLen","eMax","eBias","nBits","NaN","rt","LN2","punycode","relative","resolveObject","isString","protocolPattern","portPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","slashesDenoteHost","isNull","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","domainArray","newOut","ae","esc","qm","rel","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","last","hasTrailingSlash","up","isAbsolute","v1","byteToHex","bth","rnds8","rnds","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","msecs","nsecs","tl","tmh","LRU_1","maxSize","LRUCache","keyString","endpointRecord","populateValue","records","Expire","identifierNames","identifierName","LinkedListNode","nodeMap","sizeLimit","prependToList","headerNode","tailNode","removeFromTail","prevNode","detachFromList","key_1","newNode","utils","settle","buildURL","buildFullPath","isURLSameOrigin","createError","requestData","requestHeaders","isFormData","unescape","btoa","fullPath","baseURL","paramsSerializer","onreadystatechange","responseURL","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","xsrfCookieName","xsrfHeaderName","Axios","mergeConfig","axios","Cancel","CancelToken","isCancel","spread","isAxiosError","__CANCEL__","executor","throwIfRequested","InterceptorManager","dispatchRequest","validator","validators","interceptors","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","responseInterceptorChain","newConfig","onFulfilled","onRejected","getUri","eject","isAbsoluteURL","combineURLs","requestedURL","enhanceError","transformData","throwIfCancellationRequested","common","adapter","transformResponse","lineNumber","columnNumber","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","mergeDeepProperties","axiosKeys","otherKeys","validateStatus","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isArrayBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","rawValue","encoder","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","serializedParams","isDate","hashmarkIndex","relativeURL","isNumber","toGMTString","originURL","msie","urlParsingNode","resolveURL","requestURL","ignoreDuplicateOf","pkg","thing","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","schema","allowUnknown","FormData","URLSearchParams","assignValue","stripBOM","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","17","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","18","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chromium","electron","epiphany","firefox","generic","googlebot","google_search","ie","k_meleon","maxthon","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","tablet","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","90","getParser","getResult","91","_ua","parsedResult","getUA","parseBrowser","describe","getBrowser","getBrowserName","getBrowserVersion","getOS","parseOS","getOSName","getOSVersion","getPlatform","parsePlatform","getPlatformType","getEngine","parseEngine","getEngineName","satisfies","isOS","isPlatform","compareVersion","isEngine","is","92","93","versionName","94","vendor","95","getBrowserLang","languages","language","browserLanguage","userLanguage","systemLanguage","normalizeCode","_default","fallback","customInspectSymbol","K_MAX_LENGTH","arrayView","fromArrayView","SharedArrayBuffer","numberIsNaN","toPrimitive","mustMatch","toLocaleString","hexSliceLookupTable","readUintLE","readUintBE","readUint8","readUint16LE","readUint16BE","readUint32LE","readUint32BE","writeUintLE","writeUintBE","writeUint8","writeUint16LE","writeUint16BE","writeUint32LE","writeUint32BE","copyWithin","alphabet","i16","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","applyBind","classNames","argType","pairs","pairSplitRegExp","dec","eq_idx","tryDecode","enc","fieldContentRegExp","httpOnly","__self__","F","DOMException","support","viewClasses","normalizeName","normalizeValue","iteratorFor","append","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","bufferClone","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","_bodyArrayBuffer","readAsText","readArrayBufferAsText","formData","methods","upcased","referrer","bodyInit","redirectStatuses","abortXhr","polyfill","ponyfill","ctx","CryptoJS","globalThis","C_lib","Base","overrides","mixIn","$super","Hex","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","C_enc","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","BufferedBlockAlgorithm","_nDataBytes","_append","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","_minBufferSize","nBytesReady","_doProcessBlock","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","hasher","_createHmacHelper","HMAC","algo","parseLoop","base64Str","base64StrLength","reverseMap","bitsCombined","Base64","_map","base64Chars","triplet","paddingChar","_reverseMap","paddingIndex","HmacSHA256","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","superInit","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Float32Array","Float64Array","typedArrayByteLength","H","K","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","W","SHA256","_hash","M","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","nBitsTotal","nBitsLeft","condense","addLeadingZeros","targetLength","dateLongFormatter","formatLong","timeLongFormatter","longFormatters","matchResult","datePattern","timePattern","dateTime","getTimezoneOffsetInMilliseconds","utcDate","getMonth","getHours","setUTCFullYear","startOfUTCISOWeekYear","dirtyDate","requiredArgs","getUTCISOWeekYear","fourthOfJanuary","setUTCHours","startOfUTCISOWeek","MILLISECONDS_IN_WEEK","getUTCISOWeek","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCWeekYear","dirtyOptions","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","toInteger","getUTCWeekYear","firstWeek","startOfUTCWeek","getUTCWeek","firstWeekOfNextYear","firstWeekOfThisYear","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","weekStartsOn","setUTCDate","localeWeekStartsOn","defaultWeekStartsOn","dirtyNumber","addDays","dirtyAmount","setDate","MILLISECONDS_IN_HOUR","addHours","addMilliseconds","addMinutes","addMonths","dayOfMonth","endOfDesiredMonth","setMonth","daysInMonth","setFullYear","addWeeks","addYears","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","yearDiff","monthDiff","differenceInCalendarWeeks","startOfWeekLeft","startOfWeekRight","differenceInCalendarYears","endOfDay","setHours","endOfMonth","endOfWeek","getDay","signedYear","dayPeriodEnumValue","S","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","formatTimezoneWithOptionalMinutes","formatTimezone","G","localize","era","ordinalNumber","lightFormatters","Y","signedWeekYear","weekYear","twoDigitYear","R","isoWeekYear","Q","quarter","L","week","I","isoWeek","D","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","E","localDayOfWeek","isoDayOfWeek","dayPeriod","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","O","originalDate","T","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","subMilliseconds","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","startOfISOWeek","startOfWeek","getISOWeekYear","startOfISOWeekYear","getISOWeek","getQuarter","getYear","isAfter","dirtyDateToCompare","dateToCompare","isBefore","isEqual","dirtyLeftDate","dirtyRightDate","isSameDay","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","isSameYear","isWithinInterval","endTime","buildFormatLongFn","defaultWidth","formats","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","dirtyString","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","predicate","findKey","valueCallback","buildMatchPatternFn","parseResult","parsePattern","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","medium","formatRelativeLocale","lastWeek","yesterday","tomorrow","nextWeek","_dirtyOptions","rem100","narrow","abbreviated","wide","midnight","noon","morning","afternoon","evening","night","formatDistance","addSuffix","comparison","formatRelative","_date","_baseDate","_options","any","isSameUTCWeek","dateLeftStartOfWeek","dateRightStartOfWeek","weekdays","thisWeek","baseDate","_lastWeek","_nextWeek","dirtyDatesArray","datesArray","currentDate","dirtyObject","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","numericPatterns","timezonePatterns","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","flags","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","dirtyWeek","setUTCWeek","dirtyISOWeek","setUTCISOWeek","subPriority","isLeapYear","wholeWeekDays","setUTCISODay","isPM","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","dateString","formatString","subFnOptions","setters","dateToSystemTimezone","usedTokens","incompatibleToken","usedToken","fullToken","uniquePrioritySetters","setterArray","convertedDate","dateTimeDelimiter","timeZoneDelimiter","timezone","dateRegex","timeRegex","timezoneRegex","parseISO","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","parseTime","parseTimezone","timeString","captures","century","isWeekDate","parseDateUnit","_year","validateWeekDate","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","validateDate","validateDayOfYearDate","parseTimeUnit","validateTime","timezoneString","_hours","validateTimezone","dirtyHours","setMinutes","dirtyMinutes","getDaysInMonth","monthIndex","lastDayOfMonth","dirtyMonth","dateWithDesiredMonth","setQuarter","dirtyQuarter","oldQuarter","setSeconds","dirtySeconds","setYear","dirtyYear","startOfDay","startOfMonth","startOfQuarter","currentMonth","startOfYear","cleanDate","subDays","subHours","subMinutes","subMonths","subWeeks","subYears","argStr","objectKeys","isArguments","isRegex","deepEqual","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","ka","kb","objEquiv","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicates","matchesMethod","ElemProto","matchesSelector","prefixes","selector","EvEmitter","onceEvents","_onceEvents","onceListeners","allOff","ReflectOwnKeys","ReflectApply","receiver","NumberIsNaN","errorListener","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_eventsCount","checkListener","_getMaxListeners","_addListener","onceWrapper","wrapFn","_onceWrap","wrapped","_listeners","unwrap","unwrapListeners","arrayClone","wrapListener","getMaxListeners","doError","prependListener","prependOnceListener","originalListener","spliceOne","rawListeners","eventNames","cmp","cycles","aobj","bobj","seenIndex","buildOptions","attributeNamePrefix","attrNodeName","ignoreAttributes","cdataTagName","cdataPositionChar","indentBy","supressEmptyNode","tagValueProcessor","attrValueProcessor","isAttribute","attrPrefixLen","isCDATA","replaceCDATAstr","replaceCDATAarr","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","cdata","attrStr","repeat","jObj","j2x","arrLen","Ks","_result","nilChar","missingChar","nilPremitive","missingPremitive","emptyChar","emptyValue","boundryChar","objStart","arrStart","arrayEnd","charsArr","e_schema","hasValidData","attrsMap","itemSchema","arr_len","arr_i","processValue","_arr_i","_r","_r2","isAppChar","x2j","convert2nimn","convertToJson","parentTagName","isEmptyObject","isExist","asArray","isTagNameInArrayMode","tagname","arrayMode","_asArray","_cToJsonStr","convertToJsonString","nodeToJson","xmlToNodeobj","x2xmlnode","xmlData","givenOptions","validationOption","parseTrueNumberOnly","parseNodeValue","numParseOptions","leadingZeros","traversableObj","getTraversalObj","convertTonimn","j2xParser","parseToNimn","nameStartChar","nameRegexp","regexName","isName","getAllMatches","allmatches","allowBooleanAttributes","readPI","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","tagFound","reachedRoot","closingTag","readAttributeStr","validateAttributeString","tagClosed","otg","_isValid","afterAmp","validateAmpersand","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re","validateNumberAmpersand","addChild","xmlNode","toNumber","ignoreNameSpace","parseAttributeValue","trimValues","stopNodes","processTagValue","parseValue","resolveNameSpace","shouldParse","newval","attrsRegx","buildAttributesMap","attrCollection","closingIndexForOpeningTag","attrBoundary","tagExp","findClosingIndex","errMsg","closingIndex","xmlObj","currentNode","textData","closeIndex","colonIndex","_closeIndex","_closeIndex2","_tagExp","_tagExp2","_closeIndex3","separatorIndex","_tagName","shouldBuildAttributesMap","_colonIndex","_childNode","_childNode2","div","arraySlice","makeArray","removeFrom","ary","getParent","getQueryElement","handleEvent","filterFindElements","elems","ffElems","HTMLElement","childElems","debounceMethod","_class","threshold","timeoutName","docReady","toDashed","$2","htmlInit","WidgetClass","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","jQuery","Flickity","getCellsFragment","cells","createDocumentFragment","cell","insert","_makeCells","isAppend","slider","insertCellElement","endCells","_sizeCells","cellChange","getCells","minCellIndex","cellSizeChange","getCell","getSize","changedCellIndex","isPositioningSlider","prevSelectedElem","selectedElement","_positionCells","_getWrapShiftCells","setGallerySize","selectedIndex","getCellSlideIndex","slides","select","positionSliderAtSelected","isAnimating","restingFrames","animate","applyDragForce","applySelectedAttraction","previousX","integratePhysics","positionSlider","requestAnimationFrame","wrapAround","modulo","slideableWidth","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","getPositionValue","firstSlide","positionX","slidesWidth","dispatchEvent","selectedSlide","velocity","percentPosition","innerWidth","isPointerDown","isFreeScrolling","beforeGap","_shiftCells","beforeShiftCells","afterGap","afterShiftCells","gap","cellShift","wrapShift","outerWidth","getFrictionFactor","isDraggable","dragForce","dragX","applyForce","selectedAttraction","Cell","unselect","side","originSide","setPosition","updateTarget","renderPosition","setDefaultTarget","marginProperty","cellAlign","classList","Unidragger","draggable","dragThreshold","createMethods","_touchActionValue","isTouch","isTouchmoveScrollCanceled","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","handles","viewport","bindHandles","unbindHandles","bindDrag","unbindDrag","pointerDown","pointer","okayPointerDown","_pointerDownPreventDefault","pointerDownFocus","pointerDownBlur","pointerDownScroll","getScrollPosition","_pointerDownDefault","pointerDownPointer","pageX","_bindPostStartEvents","focusNodes","INPUT","TEXTAREA","SELECT","pageXOffset","pageYOffset","isTouchStart","isTouchPointer","pointerType","isFocusNode","hasDragStarted","moveVector","pointerUp","isTouchScrolling","_dragPointerUp","pointerDone","dragStart","dragStartPosition","startAnimation","pointerMove","_dragPointerMove","_dragMove","dragMove","previousDragX","originBound","endBound","getLastSlide","dragMoveTime","dragEnd","freeScroll","dragEndRestingSelect","restingX","getRestingPosition","dragEndBoostSelect","isDragSelect","distance","getSlideDistance","positiveResting","_getClosestResting","negativeResting","increment","minDistance","contain","dist","minDist","isWrapAround","slideIndex","slide","staticClick","clickedCell","getParentCell","cellElem","cellIndex","onscroll","scroll","scrollMoveX","scrollMoveY","_pointerDone","Slide","animatePrototype","moveElements","toElem","GUID","instances","queryElement","flickityGUID","$element","_create","accessibility","freeScrollFriction","friction","namespaceJQueryEvents","resize","guid","_createSlider","watchCSS","activate","isActive","_filterFindCellElements","reloadCells","selectInitialIndex","isInitActivated","cellSelector","positionCells","getLastCell","maxCellHeight","cellX","startCell","outerHeight","updateSlides","_containSlides","nextMargin","canCellFit","_getCanCellFit","slideWidth","firstMargin","addCell","updateSelectedSlide","groupCells","percentMatch","_init","reposition","setCellAlign","cellAlignShorthands","shorthand","adaptiveHeight","_unshiftCells","gapX","_getGapCells","isRightToLeft","beginMargin","endMargin","contentWidth","isContentSmaller","beginBound","emitArgs","$event","jQEvent","Event","trigger","isWrap","isInstant","_wrapSelect","prevIndex","wrapIndex","backWrapDelta","forewardWrapDelta","unselectSelectedSlide","selectedCells","selectedElements","getCellElements","selectedCell","initialIndex","queryCell","selectCell","getAdjacentCellElements","adjCount","cellElems","uiChange","childUIPointerDown","onresize","deactivate","onkeydown","isNotFocused","keyboardHandlers","keyCode","37","leftMethod","39","rightMethod","prevScrollY","preventScroll","removeData","bridget","setJQuery","jq","getCellLazyImages","lazyloadAttr","srcAttr","srcsetAttr","lazySelector","imgs","LazyLoader","img","flickity","_createLazyload","lazyLoad","lazyImages","lazyCellImages","srcset","Unipointer","PageDots","dots","setDots","bindStartEvent","unbindStartEvent","addDots","removeDots","newDots","dot","updateSelected","selectedDot","onTap","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","Player","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","play","autoPlay","pause","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","svgURI","PrevNextButton","getArrowMovements","x0","x3","isPrevious","leftDirection","isLeft","svg","createSVG","createElementNS","pathMovements","arrowShape","onclick","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","isOriginLeft","lastCell","lastMargin","ERROR_MESSAGE","funcType","bound","binder","boundLength","boundArgs","implementation","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt","eval","EvalError","FinalizationRegistry","URIError","WeakRef","WeakSet","doEval","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","getStyleSize","logError","measurements","measurementsLength","getZeroSize","innerHeight","getStyle","isBoxSizeOuter","isSetup","setup","padding","borderStyle","borderWidth","boxSizing","isBorderBox","measurement","paddingWidth","paddingHeight","marginWidth","marginHeight","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","docCache","fragmentSourceMap","printFragmentWarnings","experimentalFragmentVariables","normalize","processFragments","ast","seenKeys","loc","sourceKeySet","parseDocument","startToken","endToken","stripLoc","gql","literals","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","gql_1","positions","_locations2","_source2","_positions2","_extensions2","_nodes$0$loc","_nodes","_source","_locations","_positions","_extensions","originalExtensions","locations","captureStackTrace","printError","_i2","_error$nodes2","_i4","_error$locations2","versionInfo","major","minor","patch","preReleaseTag","isPromise","locatedError","rawOriginalError","NAME_RX","assertValidName","isValidNameError","devAssert","keyMap","mapValue","_objectEntries2","_value","toObjMap","keyValMap","valFn","didYouMean","firstArg","secondArg","subMessage","suggestions","lastItem","identityFunc","naturalCompare","aStr","bStr","aIdx","bIdx","aChar","bChar","isDigit","aNum","DIGIT_0","bNum","suggestionList","optionsByDistance","lexicalDistance","LexicalDistance","distanceDiff","_input","_inputLowerCase","_inputArray","stringToArray","_rows","optionLowerCase","aLength","bLength","rows","upRow","currentRow","smallestCell","cost","currentCell","doubleDiagonalCell","strLength","valueFromASTUntyped","valueNode","isScalarType","isObjectType","isInterfaceType","isUnionType","isEnumType","isInputObjectType","isListType","isNonNullType","assertType","instanceOf","GraphQLScalarType","assertScalarType","GraphQLObjectType","assertObjectType","GraphQLInterfaceType","assertInterfaceType","GraphQLUnionType","assertUnionType","GraphQLEnumType","assertEnumType","GraphQLInputObjectType","assertInputObjectType","GraphQLList","assertListType","GraphQLNonNull","assertNonNullType","isInputType","isWrappingType","ofType","assertInputType","isOutputType","assertOutputType","isLeafType","assertLeafType","isCompositeType","assertCompositeType","isAbstractType","assertAbstractType","assertNullableType","assertWrappingType","isNullableType","getNullableType","isNamedType","assertNamedType","getNamedType","unwrappedType","resolveThunk","thunk","undefineIfEmpty","defineInspect","_config$parseValue","_config$serialize","_config$parseLiteral","specifiedByUrl","parseLiteral","astNode","extensionASTNodes","toConfig","_this$extensionASTNod","isTypeOf","_fields","defineFieldMap","_interfaces","defineInterfaces","_proto2","getFields","getInterfaces","interfaces","fieldsToFieldsConfig","_resolveThunk","fieldMap","isPlainObj","fieldConfig","_fieldConfig$args","argsConfig","argName","deprecationReason","isObjectLike","argsToArgsConfig","isRequiredArgument","resolveType","_proto3","_this$extensionASTNod2","_types","defineTypes","_proto4","getTypes","_this$extensionASTNod3","_values","valueConfig","_valueLookup","_nameLookup","_proto5","getValues","outputValue","valueStr","didYouMeanEnumValue","_variables","_valueStr","_this$extensionASTNod4","enumType","unknownValueStr","defineInputFieldMap","_proto6","_this$extensionASTNod5","isRequiredInputField","isEqualType","typeA","typeB","isTypeSubTypeOf","maybeSubType","superType","isSubType","doTypesOverlap","getPossibleTypes","iteratorMethod","safeArrayFrom","collection","MAX_INT","MIN_INT","GraphQLInt","coercedValue","serializeObject","GraphQLFloat","valueOfResult","GraphQLString","GraphQLBoolean","GraphQLID","specifiedScalarTypes","isSpecifiedScalarType","astFromValue","astValue","itemType","valuesNodes","fieldNodes","_objectValues2","stringNum","integerStringRegExp","__Schema","__Type","getTypeMap","getQueryType","getMutationType","getSubscriptionType","__Directive","getDirectives","isRepeatable","__DirectiveLocation","__InputValue","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION","SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","__TypeKind","TypeKind","LIST","NON_NULL","__Field","includeDeprecated","_context","enumValues","__EnumValue","inputFields","valueAST","SchemaMetaFieldDef","TypeMetaFieldDef","_ref7","_ref8","getType","TypeNameMetaFieldDef","_ref9","parentType","introspectionTypes","isIntrospectionType","_ref10","isDirective","GraphQLDirective","assertDirective","_config$isRepeatable","_config$args","GraphQLIncludeDirective","if","GraphQLSkipDirective","DEFAULT_DEPRECATION_REASON","GraphQLDeprecatedDirective","GraphQLSpecifiedByDirective","specifiedDirectives","isSpecifiedDirective","isSchema","GraphQLSchema","assertSchema","_config$directives","__validationErrors","assumeValid","_queryType","_mutationType","_subscriptionType","_directives","allReferencedTypes","_config$types2","collectReferencedTypes","_this$_directives2","_i6","_directive$args2","_typeMap","_subTypeMap","_implementationsMap","_i8","_arrayFrom2","namedType","_i10","_namedType$getInterfa2","iface","implementations","_i12","_namedType$getInterfa4","_iface","_implementations","abstractType","getImplementations","interfaceType","isPossibleType","possibleType","_i14","_abstractType$getType2","_i16","_implementations$obje2","_i18","_implementations$inte2","getDirective","typeSet","_i20","_namedType$getTypes2","_i22","_namedType$getInterfa6","_i24","_i26","_field$args2","_i28","_objectValues4","validateSchema","SchemaValidationContext","_getOperationTypeNode","reportError","getOperationTypeNode","_getOperationTypeNode2","_getOperationTypeNode3","validateRootTypes","_context$schema$getDi2","validateName","_arg$astNode","getDeprecatedDirectiveNode","validateDirectives","validateInputObjectCircularRefs","visitedTypes","fieldPath","fieldPathIndexByTypeName","detectCycleRecursive","inputObj","_i30","fieldType","cycleIndex","cyclePath","pathStr","fieldObj","createInputObjectCircularRefsValidator","typeMap","validateFields","validateInterfaces","validateUnionMembers","validateEnumValues","validateInputFields","validateTypes","getErrors","assertValidSchema","_errors","addError","operationNodes","getAllSubNodes","operationTypes","getAllNodes","_field$astNode","_arg$astNode2","_arg$astNode3","ifaceTypeNames","_type$getInterfaces2","getAllImplementsInterfaceNodes","validateTypeImplementsAncestors","validateTypeImplementsInterface","typeFieldMap","ifaceField","typeField","_ifaceField$astNode","_typeField$astNode","_loop","_ifaceField$args2","_ifaceArg$astNode","_typeArg$astNode","ifaceArg","typeArg","_loop2","_typeField$args2","ifaceInterfaces","_iface$getInterfaces2","transitive","union","memberTypes","includedTypeNames","memberType","getUnionMemberTypeNodes","_field$astNode2","_field$astNode3","getter","subNodes","_i32","_getAllNodes2","_getter","typeNode","ifaceNode","unionNode","definitionNode","_definitionNode$direc","typeFromAST","innerType","TypeInfo","getFieldDefFn","initialType","_schema","_typeStack","_parentTypeStack","_inputTypeStack","_fieldDefStack","_defaultValueStack","_directive","_argument","_enumValue","_getFieldDef","getFieldDef","getParentType","getInputType","getParentInputType","getDefaultValue","getArgument","getEnumValue","fieldDef","typeConditionAST","outputType","inputType","_this$getDirective","argDef","fieldOrDirective","listType","inputFieldType","inputField","objectType","leave","fieldNode","visitWithTypeInfo","typeInfo","isDefinitionNode","isExecutableDefinitionNode","isTypeSystemDefinitionNode","isTypeSystemExtensionNode","isSelectionNode","isValueNode","isTypeNode","isTypeDefinitionNode","isTypeExtensionNode","ExecutableDefinitionsRule","_node$definitions2","defName","UniqueOperationNamesRule","knownOperationNames","LoneAnonymousOperationRule","operationCount","SingleFieldSubscriptionsRule","KnownTypeNamesRule","getSchema","existingTypesMap","definedTypes","_context$getDocument$2","getDocument","typeNames","NamedType","_1","_2","ancestors","_ancestors$","isSDL","standardTypeNames","isStandardTypeName","suggestedTypes","FragmentsOnCompositeTypesRule","InlineFragment","typeStr","VariablesAreInputTypesRule","VariableDefinition","variableName","ScalarLeafsRule","_fieldName","_typeStr","FieldsOnCorrectTypeRule","suggestion","usageCount","_schema$getPossibleTy2","_possibleType$getInte2","_usageCount$possibleI","possibleInterface","usageCountDiff","getSuggestedTypeNames","getSuggestedFieldNames","UniqueFragmentNamesRule","knownFragmentNames","KnownFragmentNamesRule","getFragment","NoUnusedFragmentsRule","operationDefs","fragmentDefs","fragmentNameUsed","_context$getRecursive2","getRecursivelyReferencedFragments","fragName","PossibleFragmentSpreadsRule","fragType","parentTypeStr","fragTypeStr","getFragmentType","NoFragmentCyclesRule","visitedFrags","spreadPath","spreadPathIndexByName","spreadNodes","getFragmentSpreads","spreadNode","spreadName","spreadFragment","viaPath","UniqueVariableNamesRule","knownVariableNames","NoUndefinedVariablesRule","variableNameDefined","usages","getRecursiveVariableUsages","varName","NoUnusedVariablesRule","variableDefs","variableNameUsed","_variableDefs2","variableDef","KnownDirectivesRule","locationsMap","definedDirectives","astDefinitions","_parent","_path","candidateLocation","appliedTo","getDirectiveLocationForOperation","getDirectiveLocationForASTPath","UniqueDirectivesPerLocationRule","uniqueDirectiveMap","repeatable","schemaDirectives","typeDirectivesMap","seenDirectives","_node$directives2","directiveName","KnownArgumentNamesRule","KnownArgumentNamesOnDirectivesRule","argNode","directiveArgs","_def$arguments","argsNodes","directiveNode","knownArgs","_directiveNode$argume2","UniqueArgumentNamesRule","knownArgNames","ValuesOfCorrectTypeRule","ListValue","isValidValueNode","ObjectValue","fieldNodeMap","ObjectField","NullValue","EnumValue","IntValue","FloatValue","StringValue","BooleanValue","locationType","_typeStr2","ProvidedRequiredArgumentsRule","ProvidedRequiredArgumentsOnDirectivesRule","_fieldNode$arguments","argNodeMap","_fieldDef$args2","argTypeStr","requiredArgsMap","argNodes","isRequiredArgumentNode","_directiveNode$argume","_Object$keys2","VariablesInAllowedPositionRule","varDefMap","varType","allowedVariableUsage","varTypeStr","varDefaultValue","locationDefaultValue","reasonMessage","subReason","OverlappingFieldsCanBeMergedRule","comparedFragmentPairs","PairSet","cachedFieldsAndFragmentNames","conflicts","_getFieldsAndFragment","getFieldsAndFragmentNames","fragmentNames","_i5","conflict","findConflict","collectConflictsWithin","collectConflictsBetweenFieldsAndFragment","collectConflictsBetweenFragments","findConflictsWithinSelectionSet","_ref2$","fields1","fields2","reasonMsg","areMutuallyExclusive","_getReferencedFieldsA","getReferencedFieldsAndFragmentNames","fieldMap2","fragmentNames2","collectConflictsBetween","fragmentName1","fragmentName2","fragment1","fragment2","_getReferencedFieldsA2","fieldMap1","fragmentNames1","_getReferencedFieldsA3","parentFieldsAreMutuallyExclusive","_i7","field1","field2","parentType1","node1","def1","parentType2","node2","def2","_node1$arguments","_node2$arguments","name1","name2","arguments1","arguments2","argument1","value1","value2","argument2","sameArguments","type1","type2","doTypesConflict","selectionSet1","selectionSet2","allFields","subfieldConflicts","_getFieldsAndFragment2","_getFieldsAndFragment3","_i3","findConflictsBetweenSubSelectionSets","nodeAndDefs","_collectFieldsAndFragmentNames","fragmentType","_i9","_selectionSet$selecti2","inlineFragmentType","_defKindToExtKind","_pairSetAdd","UniqueInputFieldNamesRule","knownNameStack","knownNames","LoneSchemaDefinitionRule","_oldSchema$astNode","oldSchema","alreadyDefined","schemaDefinitionsCount","SchemaDefinition","UniqueOperationTypesRule","definedOperationTypes","existingOperationTypes","checkOperationTypes","SchemaExtension","_node$operationTypes","operationTypesNodes","operationType","alreadyDefinedOperationType","UniqueTypeNamesRule","knownTypeNames","ScalarTypeDefinition","checkTypeName","ObjectTypeDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","InputObjectTypeDefinition","UniqueEnumValueNamesRule","existingTypeMap","knownValueNames","checkValueUniqueness","EnumTypeExtension","_node$values","valueNodes","valueNames","valueDef","existingType","UniqueFieldDefinitionNamesRule","knownFieldNames","checkFieldUniqueness","InputObjectTypeExtension","InterfaceTypeExtension","ObjectTypeExtension","_node$fields","fieldNames","hasField","UniqueDirectiveNamesRule","knownDirectiveNames","DirectiveDefinition","PossibleTypeExtensionsRule","ScalarTypeExtension","checkExtension","UnionTypeExtension","expectedKind","defNode","defKindToExtKind","typeToExtKind","kindStr","extensionKindToTypeName","allTypeNames","specifiedRules","specifiedSDLRules","ASTValidationContext","_ast","_fragments","_fragmentSpreads","_recursivelyReferencedFragments","_onError","frags","statement","spreads","setsToVisit","_set$selections2","collectedNames","nodesToVisit","_this$getFragmentSpre2","SDLValidationContext","_ASTValidationContext","ValidationContext","_ASTValidationContext2","_typeInfo","_variableUsages","_recursiveVariableUsages","getVariableUsages","newUsages","_this$getRecursivelyR2","documentAST","maxErrors","abortObj","rule","validateSDL","schemaToExtend","visitors","addPath","pathToArray","getOperationRootType","printPathArray","valueFromAST","coercedValues","_valueNode$values2","isMissingVariable","coercedObj","coerceInputValue","defaultOnError","coerceInputValueImpl","invalidValue","errorPrefix","coercedList","itemPath","fieldDefs","getVariableValues","varDefNodes","inputs","coerced","varDefNode","_varTypeStr","_varTypeStr2","coerceVariableValues","getArgumentValues","variableValues","_node$arguments","_def$args2","argumentNode","getDirectiveValues","directiveDef","argsOrSchema","contextValue","fieldResolver","typeResolver","executeImpl","executeSync","assertValidExecutionArguments","exeContext","buildExecutionContext","collectFields","sourceValue","resolvedResult","executeFieldsSerially","executeFields","executeOperation","buildResponse","rawVariableValues","_definition$name","_operation$variableDe","_document$definitions2","coercedVariableValues","defaultFieldResolver","defaultTypeResolver","valuesAndPromises","containsPromise","resolvedObject","runtimeType","visitedFragmentNames","shouldIncludeNode","doesFragmentConditionMatch","include","typeConditionNode","conditionalType","_fieldDef$resolve","returnType","resolveFn","buildResolveInfo","completeValue","rawError","handleFieldError","completedResults","completedItem","completeListValue","serializedResult","completeLeafValue","_returnType$resolveTy","resolveTypeFn","resolvedRuntimeType","completeObjectValue","ensureValidRuntimeType","completeAbstractValue","runtimeTypeOrName","runtimeTypeName","resolvedIsTypeOf","invalidReturnTypeError","collectAndExecuteSubfields","collectSubfields","cache0","subFieldNodes","a1","a2","a3","cache2","cache1","promisedIsTypeOfResults","isTypeOfResult","isTypeOfResults","graphql","graphqlImpl","graphqlSync","schemaValidationErrors","validationErrors","isAsyncIterable","maybeAsyncIterable","mapAsyncIterator","rejectCallback","$return","abruptClose","mapReject","mapResult","asyncMapValue","iteratorResult","rethrow","throw","subscribeFieldResolver","subscribeImpl","reportGraphQLError","sourcePromise","createSourceEventStream","mapSourceToResponse","resultOrStream","resolveResult","_fieldDef$subscribe","eventStream","executeSubscription","NoDeprecatedCustomRule","inputObjectDef","inputFieldDef","enumValueDef","enumTypeDef","NoSchemaIntrospectionCustomRule","formatError","_error$message","getIntrospectionQuery","optionsWithDefault","descriptions","directiveIsRepeatable","schemaDescription","inputValueDeprecation","inputDeprecation","getOperationAST","_documentAST$definiti2","introspectionFromSchema","optionsWithDefaults","buildClientSchema","introspection","__schema","schemaIntrospection","typeIntrospection","scalarIntrospection","objectIntrospection","buildImplementationsList","buildFieldDefMap","interfaceIntrospection","unionIntrospection","unionIntrospectionStr","getObjectType","buildUnionDef","enumIntrospection","enumIntrospectionStr","valueIntrospection","buildEnumDef","inputObjectIntrospection","inputObjectIntrospectionStr","buildInputValueDefMap","buildInputObjectDef","buildType","stdType","directiveIntrospection","directiveIntrospectionStr","_directiveIntrospectionStr","typeRef","itemRef","nullableRef","getInterfaceType","implementingIntrospection","implementingIntrospectionStr","fieldIntrospection","buildField","fieldIntrospectionStr","inputValueIntrospections","buildInputValue","inputValueIntrospection","extendSchema","assumeValidSDL","assertValidSDLExtension","schemaConfig","extendedConfig","extendSchemaImpl","_schemaDef","_schemaDef$descriptio","_schemaDef2","_options$assumeValid","schemaDef","typeExtensionsMap","directiveDefs","schemaExtensions","extendedTypeName","existingTypeExtensions","_schemaConfig$types2","extendNamedType","_stdTypeMap$name","stdTypeMap","replaceNamedType","getOperationTypes","extendArg","getDescription","buildArgumentMap","replaceType","_typeExtensionsMap$co2","_getSpecifiedByUrl","getSpecifiedByUrl","extendScalarType","_typeExtensionsMap$co3","buildInterfaces","extendField","buildFieldMap","extendObjectType","_typeExtensionsMap$co4","extendInterfaceType","_typeExtensionsMap$co5","buildUnionTypes","extendUnionType","_typeExtensionsMap$ty","buildEnumValueMap","extendEnumType","_typeExtensionsMap$co","buildInputFieldMap","extendInputObjectType","opTypes","_stdTypeMap$name2","getWrappedType","fieldConfigMap","nodeFields","getDeprecationReason","argConfigMap","inputFieldMap","_node$fields2","fieldsNodes","enumValueMap","_node$interfaces","interfacesNodes","_node$types","typeNodes","_i34","_typeExtensionsMap$na","extensionNodes","allNodes","_extensionASTNodes","_allNodes","_extensionASTNodes2","_allNodes2","_extensionASTNodes3","_allNodes3","_extensionASTNodes4","_extensionASTNodes5","_allNodes4","deprecated","specifiedBy","commentDescriptions","comments","getLeadingCommentBlock","buildASTSchema","assertValidSDL","stdDirective","buildSchema","noLocation","allowLegacySDLEmptyFields","allowLegacySDLImplementsInterfaces","lexicographicSortSchema","sortByName","sortTypes","sortFields","_config2","_config3","sortObjMap","_config4","sortBy","sortArgs","replaceMaybeType","maybeType","fieldsMap","sortValueFn","sortedMap","mapToKey","printSchema","printFilteredSchema","isDefinedType","printIntrospectionSchema","directiveFilter","typeFilter","printSchemaDefinition","printDescription","printArgs","printDirective","printType","isSchemaOfCommonNames","scalar","urlAST","printSpecifiedByUrl","printScalar","printImplementedInterfaces","printFields","printObject","printInterface","printUnion","printDeprecated","printBlock","printEnum","printInputValue","printInputObject","indentation","defaultAST","argDecl","reasonAST","firstInBlock","printDescriptionWithComments","preferMultipleLines","blockString","concatAST","documents","separateOperations","depGraph","collectDependencies","separatedDocumentASTs","dependencies","_collectDependencies2","collectTransitiveDependencies","collected","fromName","immediateDeps","stripIgnoredCharacters","sourceObj","lexer","strippedBody","wasLastAddedTokenNonPunctuator","advance","currentToken","tokenKind","isNonPunctuator","tokenBody","dedentBlockString","blockStr","rawStr","lastChar","BreakingChangeType","TYPE_REMOVED","TYPE_CHANGED_KIND","TYPE_REMOVED_FROM_UNION","VALUE_REMOVED_FROM_ENUM","REQUIRED_INPUT_FIELD_ADDED","IMPLEMENTED_INTERFACE_REMOVED","FIELD_REMOVED","FIELD_CHANGED_KIND","REQUIRED_ARG_ADDED","ARG_REMOVED","ARG_CHANGED_KIND","DIRECTIVE_REMOVED","DIRECTIVE_ARG_REMOVED","REQUIRED_DIRECTIVE_ARG_ADDED","DIRECTIVE_REPEATABLE_REMOVED","DIRECTIVE_LOCATION_REMOVED","DangerousChangeType","VALUE_ADDED_TO_ENUM","TYPE_ADDED_TO_UNION","OPTIONAL_INPUT_FIELD_ADDED","OPTIONAL_ARG_ADDED","IMPLEMENTED_INTERFACE_ADDED","ARG_DEFAULT_VALUE_CHANGE","findBreakingChanges","newSchema","findSchemaChanges","change","findDangerousChanges","schemaChanges","typesDiff","_typesDiff$removed2","removed","oldType","_typesDiff$persisted2","persisted","_oldType","newType","findEnumTypeChanges","findUnionTypeChanges","findInputObjectTypeChanges","findFieldChanges","findImplementedInterfacesChanges","typeKindName","findTypeChanges","directivesDiff","_directivesDiff$remov2","oldDirective","_directivesDiff$persi2","_oldDirective","newDirective","argsDiff","_argsDiff$added2","newArg","_argsDiff$removed2","oldArg","_oldDirective$locatio2","findDirectiveChanges","fieldsDiff","_fieldsDiff$added2","newField","_fieldsDiff$removed2","oldField","_fieldsDiff$persisted2","_oldField","_newField","isChangeSafeForInputObjectFieldOrFieldArg","possibleTypesDiff","_possibleTypesDiff$ad2","newPossibleType","_possibleTypesDiff$re2","oldPossibleType","valuesDiff","_valuesDiff$added2","_valuesDiff$removed2","interfacesDiff","_interfacesDiff$added2","newInterface","_interfacesDiff$remov2","oldInterface","_fieldsDiff$removed4","_i36","_fieldsDiff$persisted4","_oldField2","findArgChanges","isChangeSafeForObjectOrInterfaceField","_i38","_argsDiff$removed4","_i40","_argsDiff$persisted2","_oldArg","oldValueStr","stringifyValue","newValueStr","_i42","_argsDiff$added4","_newArg","sortedAST","objectNode","fieldA","fieldB","oldArray","newArray","oldMap","_ref11","newMap","_ref12","_i44","oldItem","newItem","_i46","_newItem","findDeprecatedUsages","classObject","formatValue","seenValues","previouslySeenValues","customInspectFn","getCustomFn","customValue","formatArray","getObjectTag","formatObject","formatObjectValue","nodejsCustomInspectSymbol","Location","column","maybeNode","dedentBlockStringValue","rawString","lines","commonIndent","getBlockStringIndentation","startLine","isBlank","endLine","_commonIndent","isFirstLine","isEmptyLine","indent","printBlockString","isSingleLine","hasLeadingSpace","hasTrailingQuote","printAsMultipleLines","DirectiveLocation","Kind","NAME","OPERATION_DEFINITION","SELECTION_SET","ARGUMENT","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","OBJECT_TYPE_DEFINITION","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","UNION_TYPE_DEFINITION","ENUM_TYPE_DEFINITION","ENUM_VALUE_DEFINITION","INPUT_OBJECT_TYPE_DEFINITION","DIRECTIVE_DEFINITION","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","Lexer","startOfFileToken","lastToken","lineStart","lookahead","_token$next","readToken","isPunctuatorTokenKind","printCharCode","bodyLength","_line","_col","readComment","readBlockString","readString","readNumber","readName","unexpectedCharacterMessage","col","firstCode","isFloat","readDigits","isNameStart","chunkStart","char2hex","invalidSequence","lineRegexp","expectToken","parseValueLiteral","parseType","parseTypeReference","_lexer","parseName","many","parseDefinition","parseOperationDefinition","parseFragmentDefinition","parseTypeSystemDefinition","parseTypeSystemExtension","peekDescription","unexpected","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","parseVariable","expectOptionalToken","parseSelection","parseFragment","parseField","nameOrAlias","parseArguments","isConst","parseConstArgument","parseArgument","hasTypeCondition","expectOptionalKeyword","parseFragmentName","parseNamedType","_this$_options","expectKeyword","parseObject","parseStringLiteral","parseObjectField","parseDirective","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseDescription","parseOperationTypeDefinition","parseImplementsInterfaces","parseFieldsDefinition","_this$_options2","delimitedMany","_this$_options3","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","parseDirectiveLocations","parseDirectiveLocation","_this$_options4","getTokenKindDesc","getTokenDesc","atToken","openKind","parseFn","closeKind","delimiterKind","printLocation","printSourceLocation","sourceLocation","firstLineColumnOffset","locationOffset","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","printDocASTReducer","varDefs","argsLine","_ref13","_ref14","_ref15","_ref16","_ref17","ListType","_ref18","NonNullType","_ref19","addDescription","_ref20","OperationTypeDefinition","_ref21","_ref22","_ref23","FieldDefinition","_ref24","hasMultilineItems","InputValueDefinition","_ref25","_ref26","_ref27","_ref28","EnumValueDefinition","_ref29","_ref30","_ref31","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","maybeArray","_maybeArray$filter$jo","separator","maybeString","isMultiline","Source","isSource","TokenKind","SOF","EOF","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","BLOCK_STRING","COMMENT","QueryDocumentKeys","BREAK","visitorKeys","inArray","edits","newRoot","isLeaving","isEdited","editOffset","editKey","editValue","_visitorKeys$node$kin","visitFn","getVisitFn","visitInParallel","skipping","kindVisitor","kindSpecificVisitor","specificVisitor","specificKindVisitor","SYMBOL_ITERATOR","SYMBOL_ASYNC_ITERATOR","SYMBOL_TO_STRING_TAG","origSymbol","hasSymbolSham","symObj","syms","reactIs","REACT_STATICS","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","intervalSeparator","intervalRegex","intervalSuffix","translator","_from","intervalMatches","postProcess","newKeys","checks","$","ImagesLoaded","onAlways","queryElem","getImages","jqDeferred","Deferred","images","addElementImages","addImage","addElementBackgroundImages","elementNodeTypes","childImgs","9","11","LoadingImage","Background","reURL","addBackground","loadingImage","onProgress","progressedCount","hasAnyBroken","isLoaded","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","unbindEvents","makeJQueryPlugin","imagesLoaded","superCtor","super_","TempCtor","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","tryDateObject","GeneratorFunction","isFnRegex","generatorFunc","getGeneratorFunc","$exec","isRegexMarker","badStringifier","throwRegexMarker","gOPD","availableTypedArrays","typedArrays","$slice","toStrTags","superProto","anyTrue","tryTypedArrays","keysSeen","key2","isFalse","trimLeft","TYPE_NUMBER","TYPE_STRING","TOK_EOF","TOK_UNQUOTEDIDENTIFIER","TOK_QUOTEDIDENTIFIER","TOK_RBRACKET","TOK_RPAREN","TOK_COMMA","TOK_COLON","TOK_RBRACE","TOK_NUMBER","TOK_CURRENT","TOK_EXPREF","TOK_PIPE","TOK_OR","TOK_AND","TOK_EQ","TOK_GT","TOK_LT","TOK_GTE","TOK_LTE","TOK_NE","TOK_FLATTEN","TOK_STAR","TOK_FILTER","TOK_DOT","TOK_NOT","TOK_LBRACE","TOK_LBRACKET","TOK_LPAREN","TOK_LITERAL","basicTokens","operatorStartToken","skipChars","isNum","tokenize","_current","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","startingChar","literalString","_looksLikeJSON","bindingPower","TreeInterpreter","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","avg","_functionAvg","_functionCeil","_functionContains","_functionEndsWith","_functionFloor","_functionLength","_functionMap","_functionMax","_functionMerge","variadic","_functionMaxBy","sum","_functionSum","_functionStartsWith","_functionMin","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","_functionSortBy","_functionJoin","_functionReverse","_functionToArray","_functionToString","_functionToNumber","_functionNotNull","expression","_loadTokens","_lookahead","_lookaheadToken","rbp","leftToken","_advance","nud","led","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","_parseComparator","tokenType","_parseSliceExpression","indexExpr","comparator","expressions","keyToken","identifierTypes","sliceParams","computed","computeSliceParams","objValues","finalResults","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","argValue","searchStr","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","maxElement","localeCompare","minElement","listToSum","joinChar","convertedValue","sortedArray","requiredType","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","compile","OldCookies","noConflict","converter","stringifiedAttributes","jar","getJSON","withConverter","freeExports","freeModule","isDeep","freeGlobal","freeProcess","nodeUtil","require","binding","freeSelf","OFI","propRegex","testImg","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","onImageReady","fixOne","el","fontFamily","ofi","skipTest","naturalHeight","descriptors","ss","keepSrcUsable","picturefill","pf","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","startAutoMode","watchMQ","getOfiImageMaybe","HTMLImageElement","hijackAttributes","define","getPolyfill","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","defaultMakeData","Trie","weakness","makeData","getChildTrie","isObjRef","weak","strong","defaultDispose","dispose","newest","oldest","getNode","older","newer","clean","parentEntrySlot","maybeUnsubscribe","entryOrDep","emptySetPool","assert","optionalMessage","valueGet","Entry","parents","childValues","dirtyChildren","recomputing","mightBeDirty","rememberParent","recompute","forgetChildren","recomputeNewValue","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","eachParent","forgetChild","dependOn","forgetDeps","reportDirtyChild","reportCleanChild","parentCount","parentWasClean","childValue","removeDirtyChild","dc","EntryMethods","depsByKey","dep_1","entryMethodName","m_1","makeDefaultMakeCacheKeyFunction","keyTrie","dirtyKey","peekKey","forgetKey","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","hr","uptime","_maxSize","_size","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","contentSecurityPolicy","pathCache","setCache","getCache","normalizePath","safe","isLast","_forEach","isBracket","makeSafe","shouldBeQuoted","isQuoted","hasLeadingNumber","hasSpecialChars","setterFallback","getterFallback","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2decode","counter","ucs2encode","digitToBasic","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","eq","kstr","vstr","stringifyPrimitive","ks","vendors","caf","queue","_now","cp","cancelled","cancelAnimationFrame","handleChange","nativeEvent","saveInput","defaultChecked","onKeyPress","globalProps","HOOK_MARK","warningFunc","getFieldsValue","getFieldError","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldsValue","submit","getInternalHooks","initEntityValue","registerField","useSubscribe","setInitialValues","setCallbacks","setValidateMessages","setPreserve","formatRegExp","convertFieldsError","isEmptyValue","isNativeStringType","asyncSerialArray","AsyncValidationError","objArr","_pending","flattenObjArr","firstFields","objArrKeys","objArrLength","pending","asyncParallelArray","complementError","oe","fullField","deepMerge","ruleType","type$1","dateObject","newMessages","Schema","_messages","source_","oc","messages$1","series","getValidationMethod","errorFields","doIt","deep","defaultField","addFullfield","suppressWarning","fieldsSchema","fieldSchema","errs","finalErrors","asyncValidator","messageIndex","entity","internalSet","removeIfUndefined","_paths","restPath","getNamePath","namePath","newStore","cloneByNamePathList","namePathList","containsNamePath","matchNamePath","internalSetValues","recursive","setValues","restValues","changedNamePath","nameUnit","defaultGetValueFromEvent","valuePropName","moveIndex","toIndex","float","AsyncValidator","convertMessages","messageVariables","kv","replaceFunc","template","additionalKV","replaceMessage","fillTemplate","ruleName","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","_callee2","cloneRule","subRuleField","subResults","_context2","t0","subValue","abrupt","validateRules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","_callee","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_callee4","_context4","requireUpdate","shouldUpdate","nextValue","resetCount","cancelRegisterFunc","mounted","touched","validatePromise","cancelRegister","preserve","isListField","_fieldContext$prefixN","fieldContext","prefixName","getRules","_this$props3$rules","onStoreChange","prevStore","_this$props4","_this$props4$dependen","onReset","curValue","namePathMatch","validating","reRender","dependency","relatedFields","rootPromise","_this$props5","_this$props5$validate","triggerName","filteredRules","validateTrigger","isFieldDirty","isList","isPreserve","getMeta","prevValidating","getOnlyChild","meta","getControlled","_this$props6","getValueFromEvent","getValueProps","mergedValidateTrigger","_getInternalHooks","mergedGetValueProps","originTriggerFunc","control","validateTriggerList","originTrigger","_this$props7","returnChildNode","_this$getOnlyChild","FieldContext","keyManager","parentPrefixName","_ref3$value","getNewValue","indexSet","keysIndex","valueIndex","move","SPLIT","NameMap","kvs","_cell$match","_cell$match2","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","initialValues","lastValidatePromise","getForm","getInitialValue","warningUnhooked","getFieldEntities","pure","getFieldsMap","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filteredNameList","_entity$isListField","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","entities","namePathListEntities","testField","resetWithFieldInitialValue","requiredFieldEntities","resetWithFields","originValue","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","subNamePath","mergedPreserve","updateValue","_namePath","mergedInfo","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","filedErrors","onFieldsChange","provideNameList","promiseList","hasError","allPromiseFinish","resultNamePathList","returnPromise","errorList","outOfDate","onFinish","onFinishFailed","formRef","formStore","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","FormProvider","onFormChange","onFormFinish","formContext","formsRef","changedFields","forms","newForms","_ref$component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","formInstance","_formInstance$getInte","mountRef","childrenNode","childrenRenderProps","prevFieldsRef","targetKeys","isSimilar","formContextValue","wrapperNode","onSubmit","_restProps$onReset","RefForm","useForm","makePrefixMap","styleProp","domSupport","win","vendorPrefixes","animationend","transitionend","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","transitionType","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","useMountStatus","setVal","STEP_QUEUE","setStep","_useNextFrame","cancelNextFrame","nextFrame","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","nextStep","doNext","useStatus","supportMotion","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onVisibleChanged","asyncVisible","setAsyncVisible","setStatus","setStyle","mountedRef","deadlineRef","destroyedRef","cacheElementRef","getDomElement","activeRef","onInternalMotionEnd","canEnd","deadline","_useDomMotionEvents","callbackRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","eventHandlers","_useStepQueue","useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","nextStatus","DomWrapper","transitionSupport","isSupportTransition","CSSMotion","_props$visible","_props$removeOnLeave","forceRender","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","mergedProps","statusSuffix","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","parseKeys","diffKeys","currentIndex","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","MOTION_PROP_NAMES","CSSMotionList","keyEntities","removeKey","_onVisibleChanged","motionProps","changedVisible","parsedKeyObjects","prevEntity","Notice","closeTimer","clearCloseTimer","noticeKey","startCloseTimer","updateMark","restartCloseTimer","componentClass","dataOrAriaAttributeProps","getUuid","Notification","notices","hookRefs","originNotice","previousState","noticeIndex","updatedNotices","userPassKey","_ref2$notice","noticePropsMap","noticeKeys","_notice$onClose","motionClassName","motionStyle","_this2$noticePropsMap","newInstance","createdRef","setElements","firstMount","noticeEle","originElements","cloneList","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","ReactResizeObserver","resizeObserver","currentElement","_target$getBoundingCl","fixedWidth","fixedHeight","setChildNode","onComponentUpdated","destroyObserver","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","useImperativeHandle","extraProps","destroyTooltip","autoDestroy","keepParent","_props$arrowContent","onPopupVisibleChange","afterPopupVisibleChange","popupAnimation","popupMotion","defaultPopupVisible","destroyPopupOnHide","forwardRef","isPointsEq","isAlignPoint","getMotion","Mask","zIndex","maskMotion","maskAnimation","maskTransitionName","vendorPrefix","jsCssMap","Webkit","Moz","getVendorPrefix","getTransformName","setTransitionProperty","transitionProperty","setTransform","getComputedStyleX","matrix2d","matrix3d","forceRelayout","originalStyle","getScroll","getScrollLeft","getScrollTop","getOffset","box","docElem","clientLeft","clientTop","getClientPosition","defaultView","parentWindow","isWindow","_RE_NUM_NO_PX","RE_POS","getOffsetDirection","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","preset","_dir","_off","setTransform$1","originalXY","matrix","getTransformXY","resultXY","xy","match2d","setTransformXY","isBorderBoxFn","cs","computedStyle","rsLeft","pixelLeft","BOX_MODELS","getPBMWidth","cssProp","domUtils","getWH","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","compatMode","cssShow","visibility","getWHIgnoreDisplay","includeMargin","getWindow","oriOffset","oLeft","oTop","tLeft","tTop","useCssTransform","setOffset","getWindowScrollLeft","getWindowScrollTop","getOffsetParent","positionStyle","getParent$1","getVisibleRectForElement","alwaysByViewport","visibleRect","originalPosition","scrollX","scrollY","documentWidth","documentHeight","bodyStyle","overflowX","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","getAlignOffset","V","getElFuturePos","elRegion","refNodeRegion","p1","p2","isFailX","elFuturePos","isFailY","flip","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","newElRegion","newPoints","newOffset","newTargetOffset","isCompleteFailX","_newPoints","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","resizeWidth","resizeHeight","adjustForViewport","alignElement","targetRegion","isOutOfVisibleRect","__getOffsetParent","__getVisibleRectForElement","monitorResize","prevWidth","prevHeight","getPoint","point","RefAlign","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","forceAlignPropsRef","_useBuffer","calledRef","cancelTrigger","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestOnAlign","isVisible","tgtPoint","clientX","clientY","pointInView","alignPoint","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","winResizeRef","forceAlign","StatusQueue","PopupInner","stretch","getRootDomNode","getClassNameFromAlign","alignRef","alignedClassName","setAlignedClassName","_useStretchStyle","targetSize","setTargetSize","sizeStyle","minHeight","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","doMeasure","setInternalStatus","rafRef","cancelRaf","useVisibleStatus","_useVisibleStatus2","goNextStatus","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","originHandler","alignDisabled","motionRef","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","_props$mobile$popupMo","popupRender","Popup","innerVisible","serInnerVisible","inMobile","setInMobile","cloneProps","returnEmptyString","returnDocument","ALL_HANDLERS","PortalComponent","Trigger","Portal","fireEvents","delaySetPopupVisible","setPoint","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","_this$popupRef$curren","relatedTarget","isFocusToShow","focusTime","focusDelay","preClickTime","preTouchTime","isBlurToHide","blurDelay","onContextMenu","setPopupVisible","onContextMenuClose","isContextMenuToShow","preTime","isClickToShow","isClickToHide","nextVisible","onPopupMouseDown","_this$context","hasPopupMouseDown","mouseDownTimeout","onDocumentClick","maskClosable","getPopupDomNode","isContextMenuOnly","getPopupClassNameFromAlign","getAlignPopupClassName","getComponent","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","attachParent","popupContainer","attachId","mountNode","handlePortalUpdate","prevPopupVisible","componentDidUpdate","currentDocument","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","clearOutsideHandler","_this$popupRef$curren2","placementStr","baseAlign","getAlignFromPlacement","delayS","delayTimer","childPros","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","newChildProps","createTwoChains","childrenClassName","portal","didUpdate","prevState","newState","keepEmpty","isFragment","addEventListenerWrap","MARK_KEY","injectCSS","_option$csp","_option$csp2","styleNode","nonce","containerCache","updateCSS","placeholderStyle","existNode","_option$csp3","_option$csp4","_option$csp5","getBBox","_box","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","J","U","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","altKey","ctrlKey","metaKey","isCharacterKey","initRef","_containerRef$current","_containerRef$current2","useControlledState","defaultStateValue","postState","innerValue","setInnerValue","firstRenderRef","rafUUID","rafIds","callRef","leftTimes","realId","fillRef","composeRef","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","note","noteOnce","_createForOfIteratorHelper","allowArrayLike","it","_e12","normalCompletion","didErr","_e13","injectApplyAnimatedValues","injectColorNames","injectBugfixes","injectInterpolation","injectFrame","injectNow","injectDefaultElement","injectCreateAnimatedStyle","_S","getChildren","getPayload","detach","_P","_super2","getAnimatedValue","_P2","_super3","_V","_super4","transparent","burntsienna","extrapolate","easing","extrapolateLeft","extrapolateRight","_E","_super5","calc","updateConfig","interpolate","_P3","_super6","flush","updateStyles","animatedStyles","startPosition","lastPosition","lastVelocity","lastTime","tt","_E2","_super7","et","nt","ot","st","native","onStart","onRest","onFrame","impl","inject","interpolateTo","autoStart","at","lt","ct","ut","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","orphans","tabSize","widows","zoom","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","ht","ft","_t","_n2","_u","_o4","_s2","_l2","scrollLeft","_d2","_e2","setProperty","_e3","mt","gt","_step","_iterator","_e4","_n3","_o5","_s3","_a2","animatedValues","_l3","_d3","fromValues","_c2","toValues","_u2","_p","initialVelocity","decay","_e5","_t2","tension","mass","_n4","precision","_r3","animatedProps","interpolation","debouncedOnEnd","noChange","vt","bt","interpolations","dependents","hasChanged","animations","frame","_e6","changes","_t3","_n6","_n5","prepare","_t4","onEnd","wt","_V2","_super8","xt","_s$Component","_super9","propsAnimated","attachProps","_e7","_e8","_e9","kt","gentle","wobbly","stiff","slow","molasses","At","_s$Component2","_super10","lastProps","propsChanged","internal","didInject","wasMounted","afterInject","injectProps","_t5","St","_s$PureComponent","_super11","hook","PureComponent","jt","_s$PureComponent2","_super12","running","_e10","_n7","_n8","primitive","Pt","__default","Spring","Trail","Et","Vt","Ot","_s$PureComponent3","_super13","_this22","destroyItem","onDestroyed","deleted","transitions","_this23","trail","unique","originalKey","Ct","Keyframes","Controller","animated","Globals","animateToNumber","fontStyle","includeComma","_ref$animationType","animationType","_r$a$useState","_r$a$useState2","_r$a$useState3","_r$a$useState4","_t6","_t7","_t8","_e11","_r$a$useState5","_r$a$useState6","Fragment","ee","ne","se","pe","le","de","ce","ue","fe","he","me","ye","ve","De","we","ke","ge","be","Ce","Se","Me","Pe","Ee","Ne","Oe","Ye","xe","Te","Ie","Le","Fe","Re","qe","Ae","We","Be","je","He","Ke","Qe","Ve","Ue","$e","ze","Ge","Je","Xe","Ze","Dt","Mt","Nt","Yt","It","Tt","Jt","Gt","awareOfUnicodeTokens","Lt","Ft","Rt","qt","Wt","Bt","Ht","Kt","Qt","Ut","$t","zt","__localeId__","__localeData__","Xt","Zt","tr","minDate","maxDate","excludeDates","includeDates","filterDate","pr","nr","or","sr","ir","lr","dr","excludeTimes","includeTimes","filterTime","cr","minTime","maxTime","ur","fr","mr","yr","vr","Dr","wr","kr","gr","startPeriod","endPeriod","br","Cr","yearsList","incrementYears","decrementYears","onCancel","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","renderOptions","Sr","dropdownVisible","onSelectChange","renderSelectOptions","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","setOpen","dropdownMode","renderScrollMode","renderSelectMode","Mr","Pr","Er","useShortMonthInDropdown","Nr","monthYearsList","scrollableMonthYearDropdown","Yr","xr","Tr","createRef","isDisabled","handleOnKeyDown","disabledKeyboardNavigation","preSelection","highlightDates","startDate","endDate","selectsStart","selectsEnd","selectsRange","selectingDate","isInSelectingRange","dayClassName","isExcluded","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isWeekend","isOutsideMonth","getHighLightedClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","getTabIndex","isInputFocused","inline","shouldFocusDayInline","dayEl","monthShowsDuplicateDaysEnd","monthShowsDuplicateDaysStart","renderDayContents","getClassNames","handleMouseEnter","getAriaLabel","handleFocusDay","Ir","weekNumber","ariaLabelPrefix","Lr","onDayClick","onDayMouseEnter","onWeekSelect","shouldCloseOnSelect","formatWeekNumber","showWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayClick","handleDayMouseEnter","renderDays","Fr","orderInDisplay","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","setPreSelection","MONTH_REFS","onMonthClick","handleMonthNavigation","monthClassName","isRangeStartMonth","isRangeEndMonth","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","showTwoColumnMonthYearPicker","showFourColumnMonthYearPicker","onMonthKeyDown","getMonthClassNames","onQuarterClick","getQuarterClassNames","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","Rr","timeClassName","injectTimes","intervals","openToDate","liClasses","centerLi","calcCenterPosition","monthRef","todayButton","showTimeSelectOnly","timeCaption","renderTimes","onTimeChange","offsetTop","qr","handleYearClick","yearItemNumber","onYearClick","getYearClassNames","Ar","customTimeInput","timeInputLabel","renderTimeInput","Wr","showPopperArrow","arrowProps","Br","jr","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","onMonthChange","handleMonthYearChange","weekLabel","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","decreaseMonth","decreaseYear","previousMonthAriaLabel","previousYearAriaLabel","previousYearButtonLabel","previousMonthButtonLabel","showTimeSelect","increaseMonth","increaseYear","nextMonthAriaLabel","nextYearAriaLabel","nextYearButtonLabel","nextMonthButtonLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","monthDate","renderCurrentMonth","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","monthContainer","customHeaderCount","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","renderHeader","handleMonthMouseLeave","timeFormat","timeIntervals","withPortal","showTimeInput","getDateInView","assignMonthContainer","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","Hr","Kr","tabLoopRef","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","Qr","portalRoot","getElementById","portalId","createPortal","Vr","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","popperOnKeyDown","Popper","modifiers","popperContainer","Manager","Reference","preventOverflow","escapeWithReference","boundariesElement","Ur","$r","zr","Gr","getPreSelection","startOpen","preventFocus","preventFocusTimeout","cancelFocusInput","calcInitialState","lastPreSelectChange","Xr","setBlur","preventOpenOnFocus","inputFocusTimeout","setFocus","onChangeRaw","isDefaultPrevented","Jr","strictParsing","setSelected","allowSameDay","focusSelectedMonth","onInputClick","calendar","componentNode","inputOk","handleSelect","onInputError","onClearClick","closeOnScroll","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleFocus","placeholderText","ariaDescribedBy","ariaInvalid","ariaLabelledBy","ariaRequired","isClearable","clearButtonTitle","clearButtonClassName","ariaLabelClose","onCalendarOpen","onCalendarClose","clearPreventFocusTimeout","renderCalendar","renderDateInput","renderClearButton","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","COMMON_MIME_TYPES","toFileWithPath","withMimeType","webkitRelativePath","FILES_TO_IGNORE","getInputFiles","files","fromList","getDataTransferFiles","toFilePromises","noIgnoredFiles","flatten","webkitGetAsEntry","fromDataTransferItem","isDirectory","fromDirEntry","getAsFile","fwp","fromEntry","fromFileEntry","createReader","readEntries","batch","getInvalidTypeRejectionErr","messageSuffix","getTooLargeRejectionErr","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","fileMatchSize","isDefined","allFilesAccepted","maxFiles","accepted","sizeMatch","isPropagationStopped","cancelBubble","isEvtWithFiles","dataTransfer","onDocumentDragOver","isIe","isEdge","isIeOrEdge","composeEventHandlers","_arrayWithoutHoles","_nonIterableSpread","Dropzone","_useDropzone","useDropzone","getFilesFromEvent","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","initialState","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","fileRejections","_defaultProps$options","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","onFileDialogCancel","rootRef","_useReducer","_useReducer2","openFileDialog","click","onWindowFocus","onKeyDownCb","isEqualNode","onFocusCb","onBlurCb","onClickCb","dragTargetsRef","onDocumentDrop","onDragEnterCb","persist","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","onDropCb","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","customErrors","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","onInputElementClick","getInputProps","_ref3$refKey","inputProps","fileCount","keyList","hasProp","hasElementType","arrA","arrB","dateA","dateB","regexpA","regexpB","$$typeof","_interopRequireWildcard","_reactDom","_imagesloaded","_propTypes","FlickityComponent","flickityReady","flickityCreated","cellCount","carousel","flkty","Children","_this$props$options","reloadOnUpdate","disableImagesLoaded","flickityRef","setReady","setFlickityToReady","renderPortal","hasMap","hasSet","hasArrayBuffer","i18nInstance","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","getI18n","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","isNodeFound","ignoreClass","correspondingElement","passiveEventSupport","uid","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","handlerOptions","passive","WrappedComponent","__outsideClickHandler","__clickOutsideHandlerProp","handleClickOutside","__getComponentNode","setClickOutsideRef","enableOnClickOutside","_uid","testPassiveEventSupport","eventTypes","findHighest","disableOnClickOutside","getRef","isReactComponent","_props","wrappedRef","getClass","timeoutDuration","longerTimeoutBrowsers","debounce","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","noOffsetParent","getRoot","findCommonOffsetParent","element1","element2","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","element1root","upperSide","scrollingElement","includeScroll","modifier","getBordersSize","axis","sideA","sideB","getWindowSizes","classCallCheck","createClass","getClientRect","offsets","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","secondaryMeasurement","runModifiers","ends","cur","isDestroyed","arrowStyles","flipped","positionFixed","originalPlacement","isCreated","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","isNumeric","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","validPlacements","clockwise","BEHAVIORS","parseOffset","basePlacement","useHeight","divider","splitRegex","mergeWithPrevious","toValue","index2","Defaults","shiftvariation","_data$offsets","isVertical","shiftOffsets","transformProp","popperStyles","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","hide","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","jquery","Utils","PopperUtils","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","newReferenceNode","setReferenceNode","unwrapArray","safeInvoke","initialStyle","initialArrowStyle","InnerPopper","popperNode","updatePopperInstance","updateStateModifier","popperInstance","destroyPopperInstance","referenceElement","setPopperNode","getPopperStyle","getPopperPlacement","outOfBoundaries","getOutOfBoundariesState","setArrowNode","getArrowStyle","InnerReference","refHandler","getBatch","nullListeners","parentSub","handleChangeWrapper","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","isSubscribed","createListenerCollection","tryUnsubscribe","getState","createStoreHook","useReduxContext","createDispatchHook","useStore","useDispatch","refEquality","createSelectorHook","equalityFn","_useReduxContext","selectedState","contextSub","latestSubscriptionCallbackError","latestSelector","latestStoreState","latestSelectedState","storeState","newSelectedState","checkForUpdates","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","json_ld_1","helmetJsonLdProp","jsonLdScriptProps","JsonLd","React","dangerouslySetInnerHTML","__html","safeJsonLdReplacer","ESCAPE_ENTITIES","ESCAPE_REGEX","ESCAPE_REPLACER","React__default","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","mountedInstances","emitChange","SideEffect","_PureComponent","rewind","recordedState","UNSAFE_componentWillMount","getDisplayName","compose","enhancer","export","autoPause","createStore","preloadedState","origDispatch","devTools","__REDUX_DEVTOOLS_EXTENSION__","composeWithEnhancer","composeWithDevTools","devToolsEnhancer","logOnly","newKey","formatProdErrorMessage","$$observable","randomString","ActionTypes","REPLACE","PROBE_UNKNOWN_ACTION","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","nextState","previousStateForKey","nextStateForKey","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","$Object","ignoreCase","multiline","dotAll","unicode","sticky","flagsBound","TypeErr","MapShim","getIndex","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","timeStamp","throttle","connect_","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","subtree","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","getProps","getConstraints","isBoolean","hasDateFormat","constraints","isNullable","logInfo","isNothing","isPresent","isNumberLike","isArrayType","isNumberType","isStringType","isFunctionType","isDateType","schemaType","whenEntryObj","when","entryObj","validateAndConfigure","hasKey","createYupSchemaEntry","createValue","createEntryOpts","createEntry","hasAnyKey","whenEntryFor","calcEntryObj","constraintObj","keyVal","constraintValue","constraint","whenKeys","createWhenEntry","accumulate","typeHandler","constraintsAdded","delegators","noValueConstraints","constraintsMap","constraintName","yup","errName","valErrMessage","constraintFn","errFn","multiValueConstraint","presentConstraintValue","nonPresentConstraintValue","onConstraintAdded","isNoValueConstraint","addValueConstraint","addConstraint","simple","errorMessageHandler","oneOf","anyOf","errMessages","errMessageFor","validateOnCreate","mixedConfig","mixed","typeConfig","configureTypeConfig","disableFlags","enableFlags","shouldPreProcessValue","mixedEnabled","typeEnabled","$typeExtends","configuredTypeEnabled","$typeEnabled","extends","disabledMode","enabledMode","preProcessedConstraintValue","notRequired","initHelpers","createErrorMessageHandler","constraintBuilder","createConstraintBuilder","rebind","convertEnabled","convertFnFor","customConvertFnFor","builtInConvertFnFor","createSchemaEntry","addMappedConstraints","addMappedConstraint","notOneOf","not","createWhenConditionFor","createWhenCondition","nullable","errMessage","toValidJSONSchema","deNormalize","errorMsg","throwError","ensureItems","itemsOf","of","maxItems","isValidSize","handleInvalidSize","minItems","$items","$additionalItems","$uniqueItems","$contains","warnOnInvalid","$map","moreThan","lessThan","explainConstraintValidMsg","typer","isValidConstraint","delegates","entryNames","addConstraints","validateAndTransform","invalidMsg","invalidConstraintMsg","handleInvalidConstraint","verify","schemaEntryFor","normalizeNumType","rangeConstraint","isPositive","truncate","posNeg","positive","exclusiveMaximum","exclusiveMinimum","maximum","minimum","buildYup","camelCase","constantCase","noUnknown","propertyNames","isEmail","isUrl","lowercase","uppercase","genericFormat","constraintNameFor","minLength","isValidDateType","isValidDate","transformToDate","handleInvalidDate","errValKeys","YupArray","toYupArray","YupBoolean","toYupBoolean","YupNumber","toYupNumberSchemaEntry","toYupNumber","YupObject","toYupObject","YupString","toYupString","YupDate","toYupDate","YupMixed","ConvertYupSchemaError","toMultiType","toSingleType","initResolvers","createMultiTypeResolver","multiTypeResolver","createSingleTypeResolver","singleTypeResolver","toDefaultEntry","defaultType","setTypeHandlers","setPropertyHandler","defaultTypeHandlerMap","propertyValueHandler","createPropertyValueHandler","typeHandlers","isValidSchema","toEntry","alphanumeric","optsKey","alpha","ascii","creditCard","currency","dataUri","domainName","hexColor","ipv4","isbn","magnetUri","mobilePhone","mongoId","postalCode","createValidatorName","createTestName","isMagnetURI","yupSchema","additionalProps","getAdditionalProperties","getRequired","normalizeRequired","propsToShape","shapeConfig","validSchema","additionalProperties","objPropsToShape","objPropsShape","addPropsShape","additionalPropsToShape","propToYupSchemaEntry","yupSchemaEntry","_has","_isSchema","otherwise","branch","_resolve","cast","validateSync","validateAt","validateSyncAt","__isYupSchema__","_propertyExpr","isContext","isSibling","isRef","__isYupRef","ValidationError","_printValue","strReg","_taggedTemplateLiteralLoose2","_isAbsent","_makePath","_mixed","_locale","_runValidations","_templateObject","ArraySchema","_subType","withMutation","_typeCheck","_cast","_opts","isChanged","castArray","castElement","_validate","subType","endEarly","_option","originalValue","propagateErrors","validations","innerOptions","_isPresent","_min","exclusive","_max","ensure","rejector","BooleanSchema","_isodate","_Reference","invalidDate","DateSchema","addMethod","_boolean","_string","_number","_object","_array","_Lazy","_ValidationError","_reach","reach","_setLocale","setLocale","notType","isCast","notEqual","SchemaType","_cloneDeepWith","_toArray2","_Condition","_prependDeep","_createValidation","RefSet","_deps","_conditions","abortEarly","_exclusive","_whitelist","_blacklist","tests","transforms","typeError","_defaultDefault","_type","_mutate","_label","_meta","OPTIONS","_nullable","conditions","resolvedSchema","formattedValue","formattedResult","isStrict","validationParams","initialTests","_typeError","_whitelistError","_blacklistError","isValidSync","getDefault","isExclusive","enums","valids","invalids","strip","_strip","_getIn","getIn","parentPath","_arr2","_arr3","NumberSchema","more","avail","ObjectSchema","_snakeCase2","_camelCase2","_mapKeys","_mapValues","_sortFields","_sortByKeyOrder","_templateObject2","dft","_excludedEdges","intermediateValue","__validating","exists","excludes","fromGetter","noAllow","known","unknown","stripUnknown","allow","transformKeys","snakeCase","custom","StringSchema","rEmail","rUrl","isTrimmed","_length","excludeEmptyString","createErrorFactory","_objectWithoutPropertiesLoose2","testFn","_synchronousPromise","SynchronousPromise","runTest","validOrError","_ref2$path","_ref2$message","_ref2$type","oldParams","newParams","resolveParams","numericKeys","minutesOffset","isoReg","prependDeep","sourceVal","targetVal","quoteStrings","printSimpleValue","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","printNumber","lastPart","lastPartDebug","_part","collectErrors","scopeToValue","unwrapError","nestedErrors","addNode","depPath","_toposort","linear","inQuad","outQuad","inOutQuad","inCube","outCube","inOutCube","inQuart","outQuart","inOutQuart","inQuint","outQuint","inOutQuint","inSine","cos","outSine","sin","inOutSine","inExpo","outExpo","inOutExpo","inCirc","outCirc","inOutCirc","inBack","outBack","inOutBack","inBounce","outBounce","inOutBounce","inElastic","asin","outElastic","inOutElastic","Emitter","_callbacks","hasListeners","additionalOffset","alignment","scrollPosition","elemRect","maxScrollPosition","calculateScrollOffset","Tween","tween","ease","_curr","_done","_start","_to","_duration","_ease","_update","hexRegex","numRegex","consider","decimalPoint","trimmedStr","skipLike","makeArrayFrom","RESOLVED","_continuations","_paused","_continueWith","_failWith","looksLikeAPromise","passThrough","createAggregateErrorFrom","nextFn","unresolved","_setParent","_isRejected","catchResult","_chainPromiseData","_runResolutions","_isResolved","_runRejections","ran","runFinally","callbackResult","resume","firstPaused","_findFirstPaused","_findAncestry","firstPending","_findFirstPending","_setResolved","_findFirstAncestor","_isPending","matching","firstRejected","_setRejected","_takeContinuations","continuations","cont","_handleUserFunctionResult","_handleWhenResolvedDataIsPromise","_handleResolutionError","continuation","e2","nextSynchronousPromise","promiseData","newError","allData","numResolved","thisResult","doReject","allErrors","numRejected","allSettled","numSettled","doSettled","RealPromise","installGlobally","__patched","originalAwaiter","patchAwaiterIfRequired","uninstallGlobally","toposort","sorted","visited","outgoingEdges","makeOutgoingEdges","nodesHash","makeNodesHash","predecessors","nodeRep","outgoing","uniqueNodes","__decorate","decorators","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","__createBinding","k2","__asyncDelegator","__makeTemplateObject","cooked","__importStar","__importDefault","__classPrivateFieldGet","privateMap","__classPrivateFieldSet","_bindHandles","isAdd","bindMethod","touchAction","_bindStartEvent","PointerEvent","cursorNodes","OPTION","clickTypes","checkbox","isCursorNode","isClickType","isOkay","_pointerReset","isDragging","_dragStart","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","startEvent","getTouch","touch","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","ptr","unique_pred","unique_eq","cased","preserveCamelCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","hasUpperCase","simplePathPattern","queryIndex","splitter","uSplit","simplePath","toASCII","tkeys","tk","tkey","rkeys","rk","rkey","isNullOrUndefined","isArgumentsObject","isGeneratorFunction","whichTypedArray","isTypedArray","uncurryThis","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","working","isDataViewToString","isDataView","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isSet","isWeakMap","isWeakSet","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","deprecate","noDeprecation","throwDeprecation","traceDeprecation","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","stylize","stylizeNoColor","depth","showHidden","_extend","customInspect","stylizeWithColor","styleType","recurseTimes","formatPrimitive","visibleKeys","arrayToHash","isRegExp","braces","formatProperty","numLinesEst","reduceToSingleString","objectToString","pad","debuglog","isSymbol","isNativeError","isPrimitive","inherits","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","foundName","hasSymbol","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","isObservable","hostReportError","cleanupSubscription","_cleanup","closeSubscription","_queue","notifySubscription","onNotify","flushSubscription","subscriptionObserver","SubscriptionObserver","_subscriber","hasSeed","startNext","completeIfDone","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_item","toIndexedObject","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","getOwnPropertyDescriptorModule","definePropertyModule","DESCRIPTORS","createPropertyDescriptor","bitmap","fails","EXISTS","getBuiltIn","v8","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","aFunction","classof","functionToString","inspectSource","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","facade","STATE","enforce","getterFor","TYPE","feature","detection","POLYFILL","NATIVE","V8_VERSION","PromiseCapability","$$resolve","$$reject","IE8_DOM_DEFINE","anObject","Attributes","propertyIsEnumerableModule","$getOwnPropertyDescriptor","internalObjectKeys","$propertyIsEnumerable","NASHORN_BUG","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","newPromiseCapability","promiseCapability","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","SHARED","IS_PURE","copyright","SPECIES","wellKnownSymbol","defaultConstructor","whitespaces","METHOD_NAME","requireObjectCoercible","ltrim","rtrim","IndexedObject","PREFERRED_STRING","postfix","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","NativePromise","speciesConstructor","real","onFinally","$trimStart","FORCED","forcedStringTrimMethod","trimStart","withPrefix","getGlobalPathPrefix","_assertThisInitialized2","_inheritsLoose2","_reachRouter","_utils","_parsePath","parsePath","isAbsolutePath","getGlobalBasePrefix","isLocalLink","rewriteLinkPath","relativeTo","absolutify","NavLinkPropTypes","activeClassName","activeStyle","partiallyActive","GatsbyLinkLocationWrapper","GatsbyLink","_location","defaultGetProps","isPartiallyCurrent","isCurrent","IOSupported","IntersectionObserver","handleRef","_prefetch","currentPath","rewrittenPath","newPathName","___loader","io","_this$io","isIntersecting","intersectionRatio","_this$props$getProps","_onClick","_onMouseEnter","prefixedTo","Link","hovering","defaultPrevented","shiftKey","shouldReplace","___navigate","hashIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","_sessionStorage","SessionStorage","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","_saveScroll","windowScroll","shouldUpdateScroll","scrollToHash","prevRouterProps","routerProps","_this$props$location","_this$props$location2","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","storedValue","stateKeyBase","useLocation","publicAppsyncClient","privateAppsyncClient","awsconfig","httpLink","getAppSyncClientContext","isLoggedIn","wordpressClient","WPContext","ObserverMap","RootIds","optionsToId","_createObserver","thresholds","_elements$get","inView","trackVisibility","createObserver","isPlainChildren","InView","_unobserveCb","handleNode","triggerOnce","initialInView","observeNode","rootMargin","as","setIsVisible","avatarURL","setExists","imageExist","itExists","camelize","chr","styleToObject","PRODUCTION","normalizeIconArgs","objectWithKey","FontAwesomeIcon","forwardedRef","iconArgs","maskArgs","_classes","pulse","inverse","border","listItem","rotation","swapOpacity","renderedIcon","_console","convertCurry","_extraProps$style","existingStyle","iconStyle","xlinkHref","Loading","fixed","Step","stepIcon","unclickable","Tabs","activeId","setActiveId","tabs","Breadcrumbs","i18n","useI18next","site","useStaticQuery","structuredData","itemListElement","breadcrumb","siteMetadata","siteUrl","resolveUrl","decodeHTMLEntities","external","linkProps","renderWithoutLink","finalLink","setFinalLink","newClassName","finalLinkUpdateCallback","Carousel","flickityOptions","withBackground","subtitle","static","subscribeFormReset","formName","submitButtonText","defaultToTrue","acptNewsletter","acptMarketing","acptProfiling","useTranslation","storedEmail","storedFirstName","firstName","storedLastName","lastName","getAppsyncClient","createFormSubmission","submitForm","formSubmissionError","actions","variant","subscribeForm","declaredOrigin","discountCode","readPrivacy","newsletterInfo","marketingInfo","profilingInfo","FormGenerator","hideCancelButton","setSubmitting","createForm_submissionInput","jsonData","dataLayer","bindSetValues","bindResertForm","altText","imageFile","childImageSharp","fluid","publicURL","theImage","applyCover","FinalImage","applyContain","styledColor","objectFit","objectPosition","Video","cdnVideo","controls","youtubeVideo","frameBorder","allowFullScreen","Overlay","useComponentWillMount","Title","forceColor","theTitle","subTitle","superTitle","containerClassName","textAlign","isMergeableObject","isNonNullObject","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","arrayMerge","sourceIsArray","destination","mergeObject","objectProto","nativeObjectToString","symToStringTag","unmasked","funcProto","funcToString","objectCtorString","Ctor","__data__","ListCache","maskSrcKey","reIsHostCtor","reIsNative","Hash","MapCache","LARGE_ARRAY_SIZE","Stack","iteratee","objValue","customizer","reIsUint","typedArrayTags","nodeIsTypedArray","inherited","isArr","isArg","isBuff","skipIndexes","isProto","resIndex","nativeGetSymbols","keysFunc","symbolsFunc","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","reFlags","symbolProto","symbolValueOf","objectCreate","nodeIsMap","nodeIsSet","cloneableTags","baseClone","bitmask","isFlat","isFull","isFunc","stacked","memoized","baseToString","isEmptyArray","isEmptyChildren","setIn","resVal","pathArray","currentObj","nextPath","setNestedObjectValues","_Object$keys","FormikContext","FormikProvider","useFormikContext","formik","formikReducer","isSubmitting","isValidating","submitCount","emptyErrors","emptyTouched","useFormik","_ref$validateOnChange","validateOnChange","_ref$validateOnBlur","validateOnBlur","_ref$validateOnMount","validateOnMount","isInitialValid","_ref$enableReinitiali","enableReinitialize","initialErrors","initialTouched","initialStatus","fieldRegistry","runValidateHandler","maybePromisedErrors","actualException","runValidationSchema","validationSchema","validateData","prepareDataForValidation","validateYupSchema","yupError","_isArray","yupToFormErrors","runSingleFieldLevelValidation","runFieldLevelValidations","fieldKeysWithValidation","fieldValidations","fieldErrorsList","runAllValidations","fieldErrors","schemaErrors","validateErrors","validateFormWithHighPriority","useEventCallback","combinedErrors","resetForm","dispatchFn","maybePromisedOnReset","imperativeMethods","validateField","maybePromise","unregisterField","setTouched","shouldValidate","setErrors","resolvedValues","setFieldError","setFieldValue","executeChange","eventOrTextValue","maybePath","outerHTML","valueProp","currentArrayOfValues","isValueInArray","getValueForCheckbox","getSelectedValues","eventOrPath","setFieldTouched","executeBlur","_e$target","eventOrString","setFormikState","stateOrCb","isInstanceOfError","promiseOrUndefined","executeSubmit","handleSubmit","validateForm","handleReset","getFieldMeta","initialError","getFieldHelpers","getFieldProps","nameOrOptions","isAnObject","valueState","Formik","formikbag","shouldClone","useIsomorphicLayoutEffect","legacyBag","asElement","_innerRef","_rest","_action","_useFormikContext","arrayLike","copyArrayLike","maxIndex","FieldArrayInner","updateArrayField","alterTouched","alterErrors","updateErrors","updateTouched","fieldError","fieldTouched","handlePush","indexA","indexB","handleSwap","handleMove","handleInsert","handleReplace","handleUnshift","handleRemove","handlePop","arrayHelpers","labelAlign","vertical","FormItemContext","updateItemErrors","FormItemPrefixContext","frameElement","scrollMode","boundary","skipOverflowHiddenElements","visualViewport","isOptionsObject","targetIsDetached","computeOptions","canSmoothScroll","defaultBehavior","candidate","getFieldId","toNamePathStr","_useRcForm","rcForm","itemsRef","wrapForm","__INTERNAL__","namePathStr","scrollToField","fieldId","getFieldInstance","InternalForm","contextSize","contextForm","_props$size","colon","labelCol","wrapperCol","hideRequiredMark","_props$layout","layout","scrollToFirstError","requiredMark","restFormProps","mergedRequiredMark","formClassName","errorInfo","defaultScrollToFirstError","htmlFor","_useLocaleReceiver","formLocale","contextLabelAlign","contextLabelCol","contextColon","mergedLabelCol","mergedLabelAlign","labelClsBasic","labelColClassName","labelChildren","computedColon","tooltipProps","toTooltipProps","_tooltipProps$icon","restTooltipProps","tooltipNode","labelClassName","EMPTY_LIST","ErrorList","_ref$errors","help","onDomErrorVisibleChange","_useCacheErrors","changeTrigger","directly","prevVisible","newVisible","prevErrors","prevErr","useCacheErrors","_useCacheErrors2","cacheErrors","memoErrors","innerStatus","setInnerStatus","baseClassName","iconMap","hasFeedback","formItemRender","_internalItemRender","mergedWrapperCol","IconNode","subFormContext","inputDom","errorListDom","extraDom","dom","NAME_SPLIT","MemoInput","fieldKey","noStyle","_useContext2","domErrorVisible","innerSetDomErrorVisible","_useFrameState","frameRef","batchRef","useFrameState","_useFrameState2","inlineErrors","setInlineErrors","contextValidateTrigger","setDomErrorVisible","hasName","hasValidName","nameRef","updateChildItemErrors","subName","subErrors","originSubName","prevInlineErrors","getItemRef","childrenRef","nameStr","renderLayout","baseChildren","_itemClassName","mergedErrors","subErrorList","mergedValidateStatus","itemClassName","isRenderProps","updateRef","mergedName","originErrorName","fieldKeys","ruleEntity","mergedControl","providerProps","ClearableInputType","hasPrefixSuffix","hasAddon","addonBefore","addonAfter","ClearableLabeledInput","onInputMouseUp","triggerFocus","needClear","renderClearIcon","suffixNode","renderSuffix","prefixNode","affixWrapperCls","getInputClassName","labeledElement","_classNames4","addonClassName","addonBeforeNode","addonAfterNode","mergedWrapperClassName","mergedGroupClassName","_classNames5","renderTextAreaWithClearIcon","renderInputWithLabel","renderLabeledIcon","fixControlledValue","resolveOnChange","originalInputValue","setSelectionRange","saveClearableInput","clearableInput","clearPasswordValueAttribute","renderInput","handleKeyDown","removePasswordTimeout","hasAttribute","onPressEnter","renderComponent","_this$props3$bordered","Search","customizeInputPrefixCls","inputPrefixCls","_props$enterButton","enterButton","customOnSearch","customOnChange","searchIcon","btnClassName","enterButtonAsElement","isAntdButton","hiddenTextarea","RESIZE_STATUS","HIDDEN_TEXTAREA_STYLE","SIZING_STYLE","computedStyleCache","calculateNodeStyling","useCache","paddingSize","borderSize","sizingStyle","nodeInfo","ResizableTextArea","saveTextArea","textArea","handleResize","resizeStatus","autoSize","resizeOnNextFrame","nextFrameActionId","resizeTextarea","minRows","maxRows","textareaStyles","uiTextNode","_calculateNodeStyling","MIN_SAFE_INTEGER","maxHeight","singleRowHeight","calculateNodeHeight","RESIZING","resizeFrameId","RESIZED","fixFirefoxAutoScroll","renderTextArea","_this$props2$prefixCl","currentStart","selectionStart","currentEnd","selectionEnd","TextArea","resizableTextArea","fixEmojiLength","_a$showCount","showCount","clearableInputRef","compositing","setCompositing","handleSetValue","hasMaxLength","triggerValue","textareaNode","valueLength","dataCount","ActionMap","hover","renderPassword","visibilityToggle","_iconProps","_props$iconRender","iconRender","iconTrigger","iconProps","getIcon","inputClassName","omittedProps","emptySelected","isGrouped","mapOptions","formatISO","representation","tzOffset","dateDelimiter","timeDelimiter","absoluteOffset","hourOffset","minuteOffset","generateFields","FieldsList","formProps","toBeReturned","fieldProps","fieldProperties","dropZoneProperties","spanPerField","convertToYupJsonSchema","formJson","schemaJson","cfgJson","validatorsArray","propertyNested","customValidators","extractDefaultValues","newJson","translateSchema","translateAll","hideSubmitButton","cancelButtonText","handleFileUploadWithAmplify","toBeTranslated","JSDemo","age","gender","interestedIn","country","countries","emoji","favoriteCountries","visitedCountries","foodChoices","row0","birthdate","partyDateTime","row1","contacts","phone","rowConfirmEmail","emailConfirm","notes","privacy","privacy2","isDemo","storedValues","setStoredValues","uploadProgress","setUploadProgress","isCustomSubmitting","setCustomSubmitting","isHorizontal","rowLayout","controlsLayout","rowGutter","function","handleUploadsAndSubstituteToURLs","bindSubmitForm","setProgress","filesTotalSize","filesUploadedSize","justCalculate","possibleFile","File","capitalizeWords","useDocumentTitle","originalTitle","willMount","checkSingleRequirement","requiredRole","roles","checkIfAuthorized","requires","htmlEntities","nbsp","cent","pound","yen","euro","quot","amp","apos","entityCode","birthDate","nominativo","address1","birthPlace","city","zipCode","discountCodeInfo","statuteInfo","acptStatute","loginCode","taxCode","deleteChosedVariant","createUserInBuyingGroup","updateUserInBuyingGroup","I18nextContext","routed","defaultLanguage","originalPath","uidPagesMap","uidPagesMapStringified","alreadyWarned","warnOnce","loadNamespaces","isInitialized","hasLoadedNamespace","lng","fallbackLng","lastLng","loadNotPending","loadState","backendConnector","backend","isLanguageChangingTo","hasResourceBundle","i18nFromProps","i18nFromContext","defaultNSFromContext","defaultNS","reportNamespaces","notReadyT","retNotReady","ready","react","i18nOptions","addUsedNamespaces","initializedStoreOnce","getT","getFixedT","nsMode","setT","boundReset","isInitial","clock","removeLocalePart","anchor","realTo","getLanguagePath","gatsbyNavigate","changeLanguage","LANGUAGE_KEY","onClickDoNothing","wordPressUrl","wordpress","baseUrl","uploadsUrl","prefixesMap","urlLanguage","checkForWrongHttp","postType","slug","matchingKey","useMatch","hrefLang","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","objectWithoutProperties","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","tagNodes","indexToDelete","newElement","styleSheet","cssText","createTextNode","existingTag","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","noscript","HelmetExport","HelmetWrapper","shouldComponentUpdate","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","defaultTitle","titleTemplate","mappedState","Helmet","renderStatic","createUrlWithLang","locales","en","enUS","FormatDate","formattedDate","parseFormat","ifNotValid","originalFormat","FormatPrice","price","decPlaces","decSep","thouSep","formatPrice","Router","basepath","languageBasePath","Seo","SeoContext","author","isArticle","pageUrl","noindex","addData","seoReducer","SeoContextProvider","dataUID","StructuredData","parentAddData","setId","upsertData","enrichedData","subData","sdEcoversoOrganization","logo","sdEcoversoPublisher","addContext","AUTH_RESET","AUTH_START","AUTH_CHALLENGE","AUTH_CHALLENGE_START","AUTH_CHALLENGE_FAIL","AUTH_SUCCESS","AUTH_FAIL","AUTH_END","REGISTRATION_START","REGISTRATION_FAIL","LOADING_ON","LOADING_OFF","LOGIN_MODAL_VISIBILITY","NOTIFICATION_ADD","NOTIFICATION_EMPTY","SET_SELECTED_BRANDS","SET_SELECTED_SEGMENTS","SET_SELECTED_TECHNOLOGIES","SET_SELECTED_PRICE_RANGE","SET_SELECTED_PRICE_RANGE_MAX","authReset","actionTypes","authStart","authChallenge","authSuccess","userId","authFail","skipNotification","getParameterByName","passwordlessSignUp","getRandomString","registrationStart","passwordlessSignIn","registrationFail","passwordlessChallenge","answer","checkLogin","softFailMessage","checkIfLoggedIn","refreshAuthToken","logout","randomValues","intToHex","setLoginModalVisibility","notificationAdd","notificationEmpty","setSelectedBrands","selectedBrands","setSelectedSegments","selectedSegments","setSelectedTechnologies","selectedTechnologies","setSelectedPriceRange","selectedPriceRange","plugins","getResourceURLsForPathname","loadPage","loadPageSync","defaultReturn","argTransform","mitt","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","normalizePagePath","grabMatchParams","findPath","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","supportedPrefetchStrategy","fakeLink","relList","supports","getElementsByName","preFetched","PageResourceStatus","Success","preferDefault","createPageDataUrl","doFetch","toPageResources","pageData","componentChunkName","webpackCompilationHash","staticQueryHashes","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","prefetchCompleted","memoizedGet","inFlightPromise","setApiRunner","apiRunner","prefetchDisabled","fetchPageDataJson","loadObj","pagePath","retries","jsonPayload","notFound","loadPageDataJson","rawPath","loadAppData","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","withErrorDetails","shouldPrefetch","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","createComponentUrls","isPageNotFound","appData","___chunkMapping","__PATH_PREFIX__","ProdLoader","asyncRequires","chunkName","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","clip","whiteSpace","maybeRedirect","___replace","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","___webpackCompilationHash","serviceWorker","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","pageName","pageHeadings","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shallowDiffers","loadResources","___emitter","___push","apiRunnerAsync","RouteHandler","BaseContext","baseuri","DataContext","GatsbyRoot","LocationHandler","browserLoc","SiteRoot","App","onClientEntryRanRef","renderer","GATSBY_EXPERIMENTAL_CONCURRENT_FEATURES","ReactDOM","domReady","hydrate","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","redirects","fromPath","installingWorker","installing","___failedResources","reload","lastStatus","lastLoginEmail","actionType","loginModalVisibility","notifications","createThunkMiddleware","extraArgument","withExtraArgument","rootReducer","authReducer","layoutReducer","cars","carsReducer","composeEnhancers","ServiceWorkerClass","_logger","_serviceWorker","filePath","registration","waiting","_registration","_setupListeners","enablePush","publicKey","_publicKey","pushManager","getSubscription","userVisibleOnly","applicationServerKey","_urlB64ToUint8Array","base64String","rawData","atob","outputArray","clientInfo","operaMatch","ieMatch","cfMatch","sMatch","awkMatch","anyMatch","browserType","tzMatch","make","browserClientInfo","GetJourneyDateRangeKpiRequest","JourneyDateRangeKpiResponse","GetJourneyDateRangeKpiResponse","GetJourneyExecutionActivityMetricsRequest","JourneyExecutionActivityMetricsResponse","GetJourneyExecutionActivityMetricsResponse","GetJourneyExecutionMetricsRequest","JourneyExecutionMetricsResponse","GetJourneyExecutionMetricsResponse","GetPushTemplateRequest","PushNotificationTemplateResponse","GetPushTemplateResponse","GetRecommenderConfigurationRequest","GetRecommenderConfigurationResponse","GetRecommenderConfigurationsRequest","ListRecommenderConfigurationsResponse","GetRecommenderConfigurationsResponse","GetSegmentRequest","GetSegmentResponse","GetSegmentExportJobsRequest","GetSegmentExportJobsResponse","GetSegmentImportJobsRequest","GetSegmentImportJobsResponse","GetSegmentsRequest","SegmentsResponse","GetSegmentsResponse","GetSegmentVersionRequest","GetSegmentVersionResponse","GetSegmentVersionsRequest","GetSegmentVersionsResponse","GetSmsChannelRequest","GetSmsChannelResponse","GetSmsTemplateRequest","SMSTemplateResponse","GetSmsTemplateResponse","GetUserEndpointsRequest","GetUserEndpointsResponse","GetVoiceChannelRequest","GetVoiceChannelResponse","GetVoiceTemplateRequest","VoiceTemplateResponse","GetVoiceTemplateResponse","JourneysResponse","JourneyStateRequest","ListJourneysRequest","ListJourneysResponse","TemplateResponse","TemplateVersionResponse","ListTagsForResourceRequest","TagsModel","ListTemplatesRequest","TemplatesResponse","ListTemplatesResponse","ListTemplateVersionsRequest","TemplateVersionsResponse","ListTemplateVersionsResponse","MessageResult","MessageRequest","MessageResponse","NumberValidateRequest","NumberValidateResponse","PhoneNumberValidateRequest","PhoneNumberValidateResponse","PutEventsRequest","PutEventsResponse","WriteEventStream","PutEventStreamRequest","PutEventStreamResponse","UpdateAttributesRequest","RemoveAttributesRequest","RemoveAttributesResponse","SendMessagesRequest","SendMessagesResponse","SendUsersMessageRequest","SendUsersMessagesRequest","SendUsersMessageResponse","SendUsersMessagesResponse","TagResourceRequest","UntagResourceRequest","UpdateAdmChannelRequest","UpdateAdmChannelResponse","UpdateApnsChannelRequest","UpdateApnsChannelResponse","UpdateApnsSandboxChannelRequest","UpdateApnsSandboxChannelResponse","UpdateApnsVoipChannelRequest","UpdateApnsVoipChannelResponse","UpdateApnsVoipSandboxChannelRequest","UpdateApnsVoipSandboxChannelResponse","WriteApplicationSettingsRequest","UpdateApplicationSettingsRequest","UpdateApplicationSettingsResponse","UpdateBaiduChannelRequest","UpdateBaiduChannelResponse","UpdateCampaignRequest","UpdateCampaignResponse","UpdateEmailChannelRequest","UpdateEmailChannelResponse","UpdateEmailTemplateRequest","UpdateEmailTemplateResponse","UpdateEndpointRequest","UpdateEndpointResponse","UpdateEndpointsBatchRequest","UpdateEndpointsBatchResponse","UpdateGcmChannelRequest","UpdateGcmChannelResponse","UpdateJourneyRequest","UpdateJourneyResponse","UpdateJourneyStateRequest","UpdateJourneyStateResponse","UpdatePushTemplateRequest","UpdatePushTemplateResponse","UpdateRecommenderConfigurationShape","UpdateRecommenderConfigurationRequest","UpdateRecommenderConfigurationResponse","UpdateSegmentRequest","UpdateSegmentResponse","SMSChannelRequest","UpdateSmsChannelRequest","UpdateSmsChannelResponse","UpdateSmsTemplateRequest","UpdateSmsTemplateResponse","TemplateActiveVersionRequest","UpdateTemplateActiveVersionRequest","UpdateTemplateActiveVersionResponse","VoiceChannelRequest","UpdateVoiceChannelRequest","UpdateVoiceChannelResponse","UpdateVoiceTemplateRequest","UpdateVoiceTemplateResponse","ClientDevice","dimension","PutEventsCommand","UpdateEndpointCommand","PinpointClient","RETRYABLE_CODES","ACCEPTED_CODES","EventsBuffer","_pause","_flush","_buffer","_sendBatch","_startLoop","bufferSize","bufferElement","eventId","updateClient","_interval","flushInterval","flushSize","batchSize","bufferSubset","_putEvents","eventMap","batchEventParams","_bufferToMap","_generateBatchEventParams","_processPutEventsSuccessResponse","_handlePutEventsFailure","ApplicationId","EventsRequest","BatchItem","endpointId","batchItem","Events","EventType","retryableEvents","_retry","Results","EventsResponse","responses","EventsItemResponse","StatusCode","eventObject","eligibleEvents","resendLimit","curVal","dispatchAnalyticsEvent","UPDATE_ENDPOINT","SESSION_STOP","BEACON_SUPPORTED","sendBeacon","AWSPinpointProvider","_endpointGenerating","_endpointUpdateInProgress","_endpointBuffer","_clientInfo","_getEndpointId","_flushBuffer","_initClients","_generateSession","_send","_putToBuffer","_sendEndpointUpdate","endpointObject","_updateEndpoint","_sessionId","_sessionStartTimestamp","Id","StartTimestamp","stopTimestamp","Duration","StopTimestamp","_pinpointSendStopSession","_pinpointPutEvents","_generateBatchItemContext","eventParams","endpointObj","pinpointClient","_eventError","requestUrl","update_params","failureData","_endpointRequest","EndpointId","EndpointRequest","_resumeBuffer","_handleEndpointUpdateFailure","_handleEndpointUpdateForbidden","_retryEndpointUpdate","exponential","_bufferExists","_updateBufferClient","_initBuffer","_customizePinpointClientReq","clientContext","defaultEndpointConfig","demographicByClientInfo","modelVersion","demographicByClientContext","appTitle","appVersionName","appVersionCode","appPackageName","channelType","address","effectiveDate","demographic","lists","MethodEmbed","_originalMethod","methodOverride","PREV_URL_KEY","defaultOpts","getUrl","PageViewTracker","tracker","_tracker","_hasEnabled","_trackFunc","_pageViewTrackSPA","_pageViewTrackDefault","_isSameUrl","customAttrs","nativeMatches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","ancestor","delegateTarget","shouldCheckSelf","parent_1","parentElements","closest","selectorPrefix","EventTracker","_delegates","selector_1","useCapture","defaultAttrs","localName","initialEventSent","SessionTracker","_trackBeforeUnload","_envCheck","_hidden","_visibilityChange","visibilityState","_sendInitialEvent","trackers","pageView","AnalyticsClass","_disabled","_trackers","providerConfig","autoSessionRecord","startSession","_sendEvent","stopSession","autoTrack","trackerType","endpointUpdated","authConfigured","analyticsConfigured","authEvent","storageEvent","analyticsEvent","recordAuthEvent","sendEvents","consoleLogger","baseLogger","concreteLogger","_len4","_key4","lvl","debugOnly","moduleName","_cloned","makeString","getLastOfPath","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","ResourceStore","_EventEmitter","keySeparator","silent","addNamespaces","addResource","pack","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","processor","checkedLoadedFor","Translator","nsSeparator","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","fallbackValue","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","defaultVariables","na","nest","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","extracted","fallbackNS","needsContextHandling","codes","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","resourceStore","capitalize","LanguageUtil","whitelist","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","isSupportedCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","_rulesPluralsTypes","6","7","8","10","12","13","14","15","16","19","20","21","22","createRules","numbers","plurals","PluralResolver","getRule","noAbs","simplifyPluralSuffix","returnSuffix","compatibilityJSON","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","missingInterpolationHandler","safeValue","todo","clonedOptions","handleHasOptions","inheritedOptions","optionsString","doReduce","Connector","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","addResourceBundle","_getLastOfPath2","what","fcName","tried","queueLoad","loadOne","prepareLoading","isUpdate","initImmediate","nonExplicitWhitelist","preload","pluralSeparator","partialBundledLanguages","tDescription","_format","transformOptions","modules","isClone","createClassOnDemand","ClassOrObject","lu","languageDetector","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","usedCallback","setLng","getBestMatchFromCodes","cacheUserLanguage","detect","fixedT","_this$translator","_this$translator2","precheck","preResult","preloaded","newLngs","membersToCopy","I18nextProvider","i18next","farInfoCircle","falInfoCircle","farQuestionCircle","fasGraduationCap","fasCar","falCar","fasTrophy","falPortalEnter","fasDoNotEnter","fasEngineWarning","fadCars","fasCheckCircle","fadHourglassHalf","farClock","fasEuroSign","falSignInAlt","falHandPointDown","falHandPointRight","falHandPointLeft","farCircle","farCheckCircle","farEdit","currentEnv","MyAmplify","wrapRootElement","ApolloWrapper","wrapPageElement","pluginOptions","i18nextOptions","detected","ignoreLanguage","browserLang","newUrl","intervalPlural","withI18next","convertProps","convertedProps","resolutions","critical","groupByMedia","matchesMedia","media","getImageCacheKey","srcData","getCurrentSrcData","currentData","hasArtDirectionSupport","foundMedia","noMedia","imageCache","inImageCache","hasNativeLazyLoadSupport","hasIOSupport","generateImageSources","imageVariants","srcSet","srcSetWebp","withMedia","without","generateTracedSVGSources","tracedSVG","generateBase64Sources","generateNoscriptSource","isWebp","listenToIntersections","noscriptImg","Placeholder","generateSources","spreadProps","ariaHidden","baseImage","Img","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","imgLoaded","imgCached","isHydrated","imageRef","placeholderRef","handleImageLoaded","onStartLoad","wasCached","cleanUpListeners","imageInCache","_convertProps","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderClassName","durationFadeIn","itemProp","shouldReveal","shouldFadeIn","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","maxWidth","aspectRatio","divStyle","fixedObject","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","_PropTypes$checkPropT","checkPropTypes","oneOfType","arrayOf","_index","ImageWithIEPolyfill","ObjectFitImages","polyfillStyle","INVALID_HASH","IMPROPPER_FORMATTING","windowHash","_ref2$offset","_ref2$duration","gatsby_scroll_offset","gatsby_scroll_duration","gatsby_scroll_hash","scroller","checkHash","logWarning","handleLinkClick","onAnchorLinkClick","errorTypes","_to$split2","anchorPath","_gatsby","handleStrippedLinkClick","_to$split4","isSamePage","isDifferentPage","stripHashedLocation","validElement","isDevelopment","_scrollToElement","listOfMetricsSend","timer","sendWebVitals","dataLayerName","sendData","webVitalsMeasurement","sendToGTM","getLCP","getFID","getCLS","debouncedCLS","debouncedFID","debouncedLCP","routeChangeEventName","onInitialClientRender","enableWebVitalsTracking","localizedManifests","defaultFilename","localizedManifest","app","start_url","__dirname","languageCodes","posts","press","testimonials","faq","twitter","instagram","youtube","createNamedContext","Ctx","LocationContext","LocationProvider","unlisten","_props$history","componentDidCatch","isRedirect","_navigate","unmounted","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_navigate2","createRoute","FocusWrapper","FocusHandler","wrapperProps","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","shouldFocus","myURIChanged","navigatedUpToMe","_props2","_props2$component","Comp","outline","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Match","resolvedPath","useNavigate","useParams","stripSlashes","elementPath","argIndex","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","setCacheAdd","setCacheHas","SetCache","stackClear","stackDelete","stackGet","stackHas","stackSet","baseTimes","isIndex","accumulator","initAccum","reAsciiWord","baseAssignValue","copyObject","keysIn","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","argsTag","funcTag","objectTag","baseCreate","baseFor","createBaseFor","castPath","toKey","arrayPush","getRawTag","baseGetTag","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","toSource","isLength","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","nativeKeysIn","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","arrayMap","baseSlice","cloneArrayBuffer","getSymbols","getSymbolsIn","coreJsData","fromRight","castSlice","hasUnicode","strSymbols","trailing","arrayReduce","deburr","reApos","deburrLetter","basePropertyOf","arraySome","cacheHas","isPartial","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","setToArray","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","isKeyable","baseIsNative","getPrototype","overArg","arrayFilter","stubArray","mapTag","setTag","weakMapTag","dataViewTag","hasFunc","reHasUnicode","reHasUnicodeWord","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","reIsDeepProp","reIsPlainProp","IE_PROTO","assocIndexOf","getMapData","asciiToArray","unicodeToArray","memoizeCapped","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","createCompounder","word","CLONE_DEEP_FLAG","reLatin","reComboMark","baseHas","hasPath","baseHasIn","baseIsArguments","stubFalse","baseIsMap","baseUnary","baseIsSet","baseIsTypedArray","arrayLikeKeys","baseKeys","isArrayLike","baseKeysIn","baseForOwn","baseIteratee","baseProperty","basePropertyDeep","iteratorToArray","symIterator","createCaseFirst","baseValues","asciiWords","hasUnicodeWord","unicodeWords","guard","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","unwrapped","previousPromise","callInvokeWithMethodAndArg","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","genFun","awrap","skipTempReset","rootRecord","rval","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode"],"mappings":"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AQAC,EAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GA0BAC,GAQAC,GAQAC,GAQAC,GAQAC,GAUAC,GAUAC,GAQAC,GAQAC,GAQAC,GAQAC,GAUAC,GAUAC,GAYAC,GAUAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAUAC,GAQAC,GAUAC,GAUAC,GAUAC,GAQAC,GAQAC,GAUAC,GAUAC,GAQAC,GAQAC,GAQAC,GA0BAC,GAQAC,GAQAC,GAQAC,GAUAC,GAYAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GA0BAC,GAUAC,GAUAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GA0BAC,GAQAC,GAQAC,GAQAC,GAUAC,GAYAC,GAUAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAUAC,GAUAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAUAC,GAUAC,GAYAC,GAQAC,GAQAC,GAQAC,GAYAC,GAQAC,GAYAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAUAC,GAQAC,GAQAC,GAUAC,GAQAC,GAUAC,GAYAC,GAUAC,GAQAC,GAQAC,GAUAC,GAQAC,GAQAC,GAQAC,GAUAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAYAC,GAcAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQAC,GAQ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AAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,W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","file":"app-5f26d02cc88821d4d5bb.js","sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _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\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _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}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n}\n\nmodule.exports = _taggedTemplateLiteralLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n))); // Automatically convert percentage into number\n\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n } // Handle floating point rounding errors\n\n\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n } // Convert into [0, 1] range if it isn't already\n\n\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? n % max + max : n % max) / parseFloat(String(max));\n } else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = n % max / parseFloat(String(max));\n }\n\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\n\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\n\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\n\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\n\nexport function boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\n\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return Number(n) * 100 + \"%\";\n }\n\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\n\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}","import { bound01, pad2 } from './util'; // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\n\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\n\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\n\n\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\n\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return {\n h: h,\n s: s,\n v: v\n };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\n\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\n\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))]; // Return a 3 character hex if possible\n\n if (allow3Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\n\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))]; // Return a 4 character hex if possible\n\n if (allow4Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1)) && hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\n\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\n\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\n\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\n\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff\n };\n}","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n};","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\n\nexport function inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n} // \n\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?'; // \n\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?'; // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n\nvar CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\"; // Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\n\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\n\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n\n if (color.length === 0) {\n return false;\n }\n\n var named = false;\n\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color === 'transparent') {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: 'name'\n };\n } // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n\n\n var match = matchers.rgb.exec(color);\n\n if (match) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n\n match = matchers.rgba.exec(color);\n\n if (match) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n\n match = matchers.hsl.exec(color);\n\n if (match) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n\n match = matchers.hsla.exec(color);\n\n if (match) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n\n match = matchers.hsv.exec(color);\n\n if (match) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n\n match = matchers.hsva.exec(color);\n\n if (match) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n\n match = matchers.hex8.exec(color);\n\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8'\n };\n }\n\n match = matchers.hex6.exec(color);\n\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex'\n };\n }\n\n match = matchers.hex4.exec(color);\n\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8'\n };\n }\n\n match = matchers.hex3.exec(color);\n\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex'\n };\n }\n\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\n\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"]);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n// should move it to antd main repo?\n\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"]);\n\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre;\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return /*#__PURE__*/React.createElement(\"span\", Object.assign({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","// This icon file is generated automatically.\nvar CheckCircleFilled = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\"\n }\n }]\n },\n \"name\": \"check-circle\",\n \"theme\": \"filled\"\n};\nexport default CheckCircleFilled;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\n\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","// This icon file is generated automatically.\nvar CheckOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\"\n }\n }]\n },\n \"name\": \"check\",\n \"theme\": \"outlined\"\n};\nexport default CheckOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckOutlined = function CheckOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: CheckOutlinedSvg\n }));\n};\n\nCheckOutlined.displayName = 'CheckOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckOutlined);","// This icon file is generated automatically.\nvar CloseCircleFilled = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\"\n }\n }]\n },\n \"name\": \"close-circle\",\n \"theme\": \"filled\"\n};\nexport default CloseCircleFilled;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: CloseCircleFilledSvg\n }));\n};\n\nCloseCircleFilled.displayName = 'CloseCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleFilled);","// This icon file is generated automatically.\nvar CloseOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\"\n }\n }]\n },\n \"name\": \"close\",\n \"theme\": \"outlined\"\n};\nexport default CloseOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\n\nCloseOutlined.displayName = 'CloseOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","// This icon file is generated automatically.\nvar DownOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\"\n }\n }]\n },\n \"name\": \"down\",\n \"theme\": \"outlined\"\n};\nexport default DownOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DownOutlined = function DownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: DownOutlinedSvg\n }));\n};\n\nDownOutlined.displayName = 'DownOutlined';\nexport default /*#__PURE__*/React.forwardRef(DownOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleFilled = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\"\n }\n }]\n },\n \"name\": \"exclamation-circle\",\n \"theme\": \"filled\"\n};\nexport default ExclamationCircleFilled;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\n\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","// This icon file is generated automatically.\nvar InfoCircleOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"\n }\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\"\n }\n }]\n },\n \"name\": \"info-circle\",\n \"theme\": \"outlined\"\n};\nexport default InfoCircleOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: InfoCircleOutlinedSvg\n }));\n};\n\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","// This icon file is generated automatically.\nvar LoadingOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"0 0 1024 1024\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\"\n }\n }]\n },\n \"name\": \"loading\",\n \"theme\": \"outlined\"\n};\nexport default LoadingOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: LoadingOutlinedSvg\n }));\n};\n\nLoadingOutlined.displayName = 'LoadingOutlined';\nexport default /*#__PURE__*/React.forwardRef(LoadingOutlined);","// This icon file is generated automatically.\nvar SearchOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\"\n }\n }]\n },\n \"name\": \"search\",\n \"theme\": \"outlined\"\n};\nexport default SearchOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar SearchOutlined = function SearchOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: SearchOutlinedSvg\n }));\n};\n\nSearchOutlined.displayName = 'SearchOutlined';\nexport default /*#__PURE__*/React.forwardRef(SearchOutlined);","import { wrap } from 'optimism';\nimport { getFragmentQueryDocument } from \"../../utilities/index.js\";\n\nvar ApolloCache = function () {\n function ApolloCache() {\n this.getFragmentDoc = wrap(getFragmentQueryDocument);\n }\n\n ApolloCache.prototype.recordOptimisticTransaction = function (transaction, optimisticId) {\n this.performTransaction(transaction, optimisticId);\n };\n\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n\n ApolloCache.prototype.identify = function (object) {\n return;\n };\n\n ApolloCache.prototype.gc = function () {\n return [];\n };\n\n ApolloCache.prototype.modify = function (options) {\n return false;\n };\n\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = !!options.optimistic;\n }\n\n return this.read({\n rootId: options.id || 'ROOT_QUERY',\n query: options.query,\n variables: options.variables,\n returnPartialData: options.returnPartialData,\n optimistic: optimistic\n });\n };\n\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = !!options.optimistic;\n }\n\n return this.read({\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n variables: options.variables,\n rootId: options.id,\n returnPartialData: options.returnPartialData,\n optimistic: optimistic\n });\n };\n\n ApolloCache.prototype.writeQuery = function (options) {\n return this.write({\n dataId: options.id || 'ROOT_QUERY',\n result: options.data,\n query: options.query,\n variables: options.variables,\n broadcast: options.broadcast\n });\n };\n\n ApolloCache.prototype.writeFragment = function (options) {\n return this.write({\n dataId: options.id,\n result: options.data,\n variables: options.variables,\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n broadcast: options.broadcast\n });\n };\n\n return ApolloCache;\n}();\n\nexport { ApolloCache };","export var Cache;\n\n(function (Cache) {})(Cache || (Cache = {}));","var MissingFieldError = function () {\n function MissingFieldError(message, path, query, clientOnly, variables) {\n this.message = message;\n this.path = path;\n this.query = query;\n this.clientOnly = clientOnly;\n this.variables = variables;\n }\n\n return MissingFieldError;\n}();\n\nexport { MissingFieldError };","import { isReference, isField, DeepMerger, resultKeyNameFromField, shouldInclude } from \"../../utilities/index.js\";\nexport var hasOwn = Object.prototype.hasOwnProperty;\nexport function getTypenameFromStoreObject(store, objectOrReference) {\n return isReference(objectOrReference) ? store.get(objectOrReference.__ref, \"__typename\") : objectOrReference && objectOrReference.__typename;\n}\nexport var TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\nexport function fieldNameFromStoreName(storeFieldName) {\n var match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\nexport function selectionSetMatchesResult(selectionSet, result, variables) {\n if (result && typeof result === \"object\") {\n return Array.isArray(result) ? result.every(function (item) {\n return selectionSetMatchesResult(selectionSet, item, variables);\n }) : selectionSet.selections.every(function (field) {\n if (isField(field) && shouldInclude(field, variables)) {\n var key = resultKeyNameFromField(field);\n return hasOwn.call(result, key) && (!field.selectionSet || selectionSetMatchesResult(field.selectionSet, result[key], variables));\n }\n\n return true;\n });\n }\n\n return false;\n}\nexport function storeValueIsStoreObject(value) {\n return value !== null && typeof value === \"object\" && !isReference(value) && !Array.isArray(value);\n}\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger();\n}","import { __assign, __extends, __rest } from \"tslib\";\nimport { dep, KeyTrie } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { isReference, makeReference, DeepMerger, maybeDeepFreeze, canUseWeakMap } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nvar DELETE = Object.create(null);\n\nvar delModifier = function delModifier() {\n return DELETE;\n};\n\nvar INVALIDATE = Object.create(null);\n\nvar EntityStore = function () {\n function EntityStore(policies, group) {\n var _this = this;\n\n this.policies = policies;\n this.group = group;\n this.data = Object.create(null);\n this.rootIds = Object.create(null);\n this.refs = Object.create(null);\n\n this.getFieldValue = function (objectOrReference, storeFieldName) {\n return maybeDeepFreeze(isReference(objectOrReference) ? _this.get(objectOrReference.__ref, storeFieldName) : objectOrReference && objectOrReference[storeFieldName]);\n };\n\n this.canRead = function (objOrRef) {\n return isReference(objOrRef) ? _this.has(objOrRef.__ref) : typeof objOrRef === \"object\";\n };\n\n this.toReference = function (objOrIdOrRef, mergeIntoStore) {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n\n var id = _this.policies.identify(objOrIdOrRef)[0];\n\n if (id) {\n var ref = makeReference(id);\n\n if (mergeIntoStore) {\n _this.merge(id, objOrIdOrRef);\n }\n\n return ref;\n }\n };\n }\n\n EntityStore.prototype.toObject = function () {\n return __assign({}, this.data);\n };\n\n EntityStore.prototype.has = function (dataId) {\n return this.lookup(dataId, true) !== void 0;\n };\n\n EntityStore.prototype.get = function (dataId, fieldName) {\n this.group.depend(dataId, fieldName);\n\n if (hasOwn.call(this.data, dataId)) {\n var storeObject = this.data[dataId];\n\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n\n if (fieldName === \"__typename\" && hasOwn.call(this.policies.rootTypenamesById, dataId)) {\n return this.policies.rootTypenamesById[dataId];\n }\n\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n };\n\n EntityStore.prototype.lookup = function (dataId, dependOnExistence) {\n if (dependOnExistence) this.group.depend(dataId, \"__exists\");\n\n if (hasOwn.call(this.data, dataId)) {\n return this.data[dataId];\n }\n\n if (this instanceof Layer) {\n return this.parent.lookup(dataId, dependOnExistence);\n }\n\n if (this.policies.rootTypenamesById[dataId]) {\n return Object.create(null);\n }\n };\n\n EntityStore.prototype.merge = function (dataId, incoming) {\n var _this = this;\n\n var existing = this.lookup(dataId);\n var merged = new DeepMerger(storeObjectReconciler).merge(existing, incoming);\n this.data[dataId] = merged;\n\n if (merged !== existing) {\n delete this.refs[dataId];\n\n if (this.group.caching) {\n var fieldsToDirty_1 = Object.create(null);\n if (!existing) fieldsToDirty_1.__exists = 1;\n Object.keys(incoming).forEach(function (storeFieldName) {\n if (!existing || existing[storeFieldName] !== merged[storeFieldName]) {\n fieldsToDirty_1[storeFieldName] = 1;\n var fieldName = fieldNameFromStoreName(storeFieldName);\n\n if (fieldName !== storeFieldName && !_this.policies.hasKeyArgs(merged.__typename, fieldName)) {\n fieldsToDirty_1[fieldName] = 1;\n }\n\n if (merged[storeFieldName] === void 0 && !(_this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n Object.keys(fieldsToDirty_1).forEach(function (fieldName) {\n return _this.group.dirty(dataId, fieldName);\n });\n }\n }\n };\n\n EntityStore.prototype.modify = function (dataId, fields) {\n var _this = this;\n\n var storeObject = this.lookup(dataId);\n\n if (storeObject) {\n var changedFields_1 = Object.create(null);\n var needToMerge_1 = false;\n var allDeleted_1 = true;\n var sharedDetails_1 = {\n DELETE: DELETE,\n INVALIDATE: INVALIDATE,\n isReference: isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: function readField(fieldNameOrOptions, from) {\n return _this.policies.readField(typeof fieldNameOrOptions === \"string\" ? {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId)\n } : fieldNameOrOptions, {\n store: _this\n });\n }\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0) return;\n var modify = typeof fields === \"function\" ? fields : fields[storeFieldName] || fields[fieldName];\n\n if (modify) {\n var newValue = modify === delModifier ? DELETE : modify(maybeDeepFreeze(fieldValue), __assign(__assign({}, sharedDetails_1), {\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n storage: _this.getStorage(dataId, storeFieldName)\n }));\n\n if (newValue === INVALIDATE) {\n _this.group.dirty(dataId, storeFieldName);\n } else {\n if (newValue === DELETE) newValue = void 0;\n\n if (newValue !== fieldValue) {\n changedFields_1[storeFieldName] = newValue;\n needToMerge_1 = true;\n fieldValue = newValue;\n }\n }\n }\n\n if (fieldValue !== void 0) {\n allDeleted_1 = false;\n }\n });\n\n if (needToMerge_1) {\n this.merge(dataId, changedFields_1);\n\n if (allDeleted_1) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n } else {\n delete this.data[dataId];\n }\n\n this.group.dirty(dataId, \"__exists\");\n }\n\n return true;\n }\n }\n\n return false;\n };\n\n EntityStore.prototype.delete = function (dataId, fieldName, args) {\n var _a;\n\n var storeObject = this.lookup(dataId);\n\n if (storeObject) {\n var typename = this.getFieldValue(storeObject, \"__typename\");\n var storeFieldName = fieldName && args ? this.policies.getStoreFieldName({\n typename: typename,\n fieldName: fieldName,\n args: args\n }) : fieldName;\n return this.modify(dataId, storeFieldName ? (_a = {}, _a[storeFieldName] = delModifier, _a) : delModifier);\n }\n\n return false;\n };\n\n EntityStore.prototype.evict = function (options) {\n var evicted = false;\n\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n\n if (this instanceof Layer) {\n evicted = this.parent.evict(options) || evicted;\n }\n\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n\n return evicted;\n };\n\n EntityStore.prototype.clear = function () {\n this.replace(null);\n };\n\n EntityStore.prototype.extract = function () {\n var _this = this;\n\n var obj = this.toObject();\n var extraRootIds = [];\n this.getRootIdSet().forEach(function (id) {\n if (!hasOwn.call(_this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n\n if (extraRootIds.length) {\n obj.__META = {\n extraRootIds: extraRootIds.sort()\n };\n }\n\n return obj;\n };\n\n EntityStore.prototype.replace = function (newData) {\n var _this = this;\n\n Object.keys(this.data).forEach(function (dataId) {\n if (!(newData && hasOwn.call(newData, dataId))) {\n _this.delete(dataId);\n }\n });\n\n if (newData) {\n var __META = newData.__META,\n rest_1 = __rest(newData, [\"__META\"]);\n\n Object.keys(rest_1).forEach(function (dataId) {\n _this.merge(dataId, rest_1[dataId]);\n });\n\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n };\n\n EntityStore.prototype.retain = function (rootId) {\n return this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1;\n };\n\n EntityStore.prototype.release = function (rootId) {\n if (this.rootIds[rootId] > 0) {\n var count = --this.rootIds[rootId];\n if (!count) delete this.rootIds[rootId];\n return count;\n }\n\n return 0;\n };\n\n EntityStore.prototype.getRootIdSet = function (ids) {\n if (ids === void 0) {\n ids = new Set();\n }\n\n Object.keys(this.rootIds).forEach(ids.add, ids);\n\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n } else {\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n\n return ids;\n };\n\n EntityStore.prototype.gc = function () {\n var _this = this;\n\n var ids = this.getRootIdSet();\n var snapshot = this.toObject();\n ids.forEach(function (id) {\n if (hasOwn.call(snapshot, id)) {\n Object.keys(_this.findChildRefIds(id)).forEach(ids.add, ids);\n delete snapshot[id];\n }\n });\n var idsToRemove = Object.keys(snapshot);\n\n if (idsToRemove.length) {\n var root_1 = this;\n\n while (root_1 instanceof Layer) {\n root_1 = root_1.parent;\n }\n\n idsToRemove.forEach(function (id) {\n return root_1.delete(id);\n });\n }\n\n return idsToRemove;\n };\n\n EntityStore.prototype.findChildRefIds = function (dataId) {\n if (!hasOwn.call(this.refs, dataId)) {\n var found_1 = this.refs[dataId] = Object.create(null);\n var workSet_1 = new Set([this.data[dataId]]);\n\n var canTraverse_1 = function canTraverse_1(obj) {\n return obj !== null && typeof obj === 'object';\n };\n\n workSet_1.forEach(function (obj) {\n if (isReference(obj)) {\n found_1[obj.__ref] = true;\n } else if (canTraverse_1(obj)) {\n Object.values(obj).filter(canTraverse_1).forEach(workSet_1.add, workSet_1);\n }\n });\n }\n\n return this.refs[dataId];\n };\n\n EntityStore.prototype.makeCacheKey = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return this.group.keyMaker.lookupArray(args);\n };\n\n return EntityStore;\n}();\n\nexport { EntityStore };\n\nvar CacheGroup = function () {\n function CacheGroup(caching) {\n this.caching = caching;\n this.d = null;\n this.keyMaker = new KeyTrie(canUseWeakMap);\n this.d = caching ? dep() : null;\n }\n\n CacheGroup.prototype.depend = function (dataId, storeFieldName) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n var fieldName = fieldNameFromStoreName(storeFieldName);\n\n if (fieldName !== storeFieldName) {\n this.d(makeDepKey(dataId, fieldName));\n }\n }\n };\n\n CacheGroup.prototype.dirty = function (dataId, storeFieldName) {\n if (this.d) {\n this.d.dirty(makeDepKey(dataId, storeFieldName));\n }\n };\n\n return CacheGroup;\n}();\n\nfunction makeDepKey(dataId, storeFieldName) {\n return storeFieldName + '#' + dataId;\n}\n\n(function (EntityStore) {\n var Root = function (_super) {\n __extends(Root, _super);\n\n function Root(_a) {\n var policies = _a.policies,\n _b = _a.resultCaching,\n resultCaching = _b === void 0 ? true : _b,\n seed = _a.seed;\n\n var _this = _super.call(this, policies, new CacheGroup(resultCaching)) || this;\n\n _this.storageTrie = new KeyTrie(canUseWeakMap);\n _this.sharedLayerGroup = new CacheGroup(resultCaching);\n if (seed) _this.replace(seed);\n return _this;\n }\n\n Root.prototype.addLayer = function (layerId, replay) {\n return new Layer(layerId, this, replay, this.sharedLayerGroup);\n };\n\n Root.prototype.removeLayer = function () {\n return this;\n };\n\n Root.prototype.getStorage = function () {\n return this.storageTrie.lookupArray(arguments);\n };\n\n return Root;\n }(EntityStore);\n\n EntityStore.Root = Root;\n})(EntityStore || (EntityStore = {}));\n\nvar Layer = function (_super) {\n __extends(Layer, _super);\n\n function Layer(id, parent, replay, group) {\n var _this = _super.call(this, parent.policies, group) || this;\n\n _this.id = id;\n _this.parent = parent;\n _this.replay = replay;\n _this.group = group;\n replay(_this);\n return _this;\n }\n\n Layer.prototype.addLayer = function (layerId, replay) {\n return new Layer(layerId, this, replay, this.group);\n };\n\n Layer.prototype.removeLayer = function (layerId) {\n var _this = this;\n\n var parent = this.parent.removeLayer(layerId);\n\n if (layerId === this.id) {\n if (this.group.caching) {\n Object.keys(this.data).forEach(function (dataId) {\n if (_this.data[dataId] !== parent.lookup(dataId)) {\n _this.delete(dataId);\n }\n });\n }\n\n return parent;\n }\n\n if (parent === this.parent) return this;\n return parent.addLayer(this.id, this.replay);\n };\n\n Layer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n\n Layer.prototype.findChildRefIds = function (dataId) {\n var fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ? __assign(__assign({}, fromParent), _super.prototype.findChildRefIds.call(this, dataId)) : fromParent;\n };\n\n Layer.prototype.getStorage = function () {\n var p = this.parent;\n\n while (p.parent) {\n p = p.parent;\n }\n\n return p.getStorage.apply(p, arguments);\n };\n\n return Layer;\n}(EntityStore);\n\nfunction storeObjectReconciler(existingObject, incomingObject, property) {\n var existingValue = existingObject[property];\n var incomingValue = incomingObject[property];\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\n\nexport function supportsResultCaching(store) {\n return !!(store instanceof EntityStore && store.group.caching);\n}","import { __assign } from \"tslib\";\nimport { wrap } from 'optimism';\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { isField, resultKeyNameFromField, isReference, makeReference, createFragmentMap, shouldInclude, addTypenameToDocument, getDefaultValues, getFragmentDefinitions, getMainDefinition, getQueryDefinition, maybeDeepFreeze, mergeDeepArray, getFragmentFromSelection } from \"../../utilities/index.js\";\nimport { supportsResultCaching } from \"./entityStore.js\";\nimport { getTypenameFromStoreObject } from \"./helpers.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\n;\n\nfunction missingFromInvariant(err, context) {\n return new MissingFieldError(err.message, context.path.slice(), context.query, context.clientOnly, context.variables);\n}\n\nvar StoreReader = function () {\n function StoreReader(config) {\n var _this = this;\n\n this.config = config;\n this.executeSelectionSet = wrap(function (options) {\n return _this.execSelectionSetImpl(options);\n }, {\n keyArgs: function keyArgs(options) {\n return [options.selectionSet, options.objectOrReference, options.context];\n },\n makeCacheKey: function makeCacheKey(selectionSet, parent, context) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(selectionSet, isReference(parent) ? parent.__ref : parent, context.varString);\n }\n }\n });\n this.knownResults = new WeakMap();\n this.executeSubSelectedArray = wrap(function (options) {\n return _this.execSubSelectedArrayImpl(options);\n }, {\n makeCacheKey: function makeCacheKey(_a) {\n var field = _a.field,\n array = _a.array,\n context = _a.context;\n\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(field, array, context.varString);\n }\n }\n });\n this.config = __assign({\n addTypename: true\n }, config);\n }\n\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store,\n query = _a.query,\n _b = _a.rootId,\n rootId = _b === void 0 ? 'ROOT_QUERY' : _b,\n variables = _a.variables,\n _c = _a.returnPartialData,\n returnPartialData = _c === void 0 ? true : _c;\n var policies = this.config.cache.policies;\n variables = __assign(__assign({}, getDefaultValues(getQueryDefinition(query))), variables);\n var execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: makeReference(rootId),\n context: {\n store: store,\n query: query,\n policies: policies,\n variables: variables,\n varString: JSON.stringify(variables),\n fragmentMap: createFragmentMap(getFragmentDefinitions(query)),\n path: [],\n clientOnly: false\n }\n });\n var hasMissingFields = execResult.missing && execResult.missing.length > 0;\n\n if (hasMissingFields && !returnPartialData) {\n throw execResult.missing[0];\n }\n\n return {\n result: execResult.result,\n missing: execResult.missing,\n complete: !hasMissingFields\n };\n };\n\n StoreReader.prototype.isFresh = function (result, parent, selectionSet, context) {\n if (supportsResultCaching(context.store) && this.knownResults.get(result) === selectionSet) {\n var latest = this.executeSelectionSet.peek(selectionSet, parent, context);\n\n if (latest && result === latest.result) {\n return true;\n }\n }\n\n return false;\n };\n\n StoreReader.prototype.execSelectionSetImpl = function (_a) {\n var _this = this;\n\n var selectionSet = _a.selectionSet,\n objectOrReference = _a.objectOrReference,\n context = _a.context;\n\n if (isReference(objectOrReference) && !context.policies.rootTypenamesById[objectOrReference.__ref] && !context.store.has(objectOrReference.__ref)) {\n return {\n result: {},\n missing: [missingFromInvariant(process.env.NODE_ENV === \"production\" ? new InvariantError(4) : new InvariantError(\"Dangling reference to missing \" + objectOrReference.__ref + \" object\"), context)]\n };\n }\n\n var variables = context.variables,\n policies = context.policies,\n store = context.store;\n var objectsToMerge = [];\n var finalResult = {\n result: null\n };\n var typename = store.getFieldValue(objectOrReference, \"__typename\");\n\n if (this.config.addTypename && typeof typename === \"string\" && !policies.rootIdsByTypename[typename]) {\n objectsToMerge.push({\n __typename: typename\n });\n }\n\n function getMissing() {\n return finalResult.missing || (finalResult.missing = []);\n }\n\n function handleMissing(result) {\n var _a;\n\n if (result.missing) (_a = getMissing()).push.apply(_a, result.missing);\n return result.result;\n }\n\n var workSet = new Set(selectionSet.selections);\n workSet.forEach(function (selection) {\n var _a;\n\n if (!shouldInclude(selection, variables)) return;\n\n if (isField(selection)) {\n var fieldValue = policies.readField({\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference\n }, context);\n var resultName = resultKeyNameFromField(selection);\n context.path.push(resultName);\n var wasClientOnly = context.clientOnly;\n context.clientOnly = wasClientOnly || !!(selection.directives && selection.directives.some(function (d) {\n return d.name.value === \"client\";\n }));\n\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n getMissing().push(missingFromInvariant(process.env.NODE_ENV === \"production\" ? new InvariantError(5) : new InvariantError(\"Can't find field '\" + selection.name.value + \"' on \" + (isReference(objectOrReference) ? objectOrReference.__ref + \" object\" : \"object \" + JSON.stringify(objectOrReference, null, 2))), context));\n }\n } else if (Array.isArray(fieldValue)) {\n fieldValue = handleMissing(_this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n context: context\n }));\n } else if (!selection.selectionSet) {\n if (process.env.NODE_ENV !== 'production') {\n assertSelectionSetForIdValue(context.store, selection, fieldValue);\n maybeDeepFreeze(fieldValue);\n }\n } else if (fieldValue != null) {\n fieldValue = handleMissing(_this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue,\n context: context\n }));\n }\n\n if (fieldValue !== void 0) {\n objectsToMerge.push((_a = {}, _a[resultName] = fieldValue, _a));\n }\n\n context.clientOnly = wasClientOnly;\n invariant(context.path.pop() === resultName);\n } else {\n var fragment = getFragmentFromSelection(selection, context.fragmentMap);\n\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n finalResult.result = mergeDeepArray(objectsToMerge);\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(finalResult.result);\n }\n\n this.knownResults.set(finalResult.result, selectionSet);\n return finalResult;\n };\n\n StoreReader.prototype.execSubSelectedArrayImpl = function (_a) {\n var _this = this;\n\n var field = _a.field,\n array = _a.array,\n context = _a.context;\n var missing;\n\n function handleMissing(childResult, i) {\n if (childResult.missing) {\n missing = missing || [];\n missing.push.apply(missing, childResult.missing);\n }\n\n invariant(context.path.pop() === i);\n return childResult.result;\n }\n\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n\n array = array.map(function (item, i) {\n if (item === null) {\n return null;\n }\n\n context.path.push(i);\n\n if (Array.isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n context: context\n }), i);\n }\n\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n context: context\n }), i);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n\n invariant(context.path.pop() === i);\n return item;\n });\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(array);\n }\n\n return {\n result: array,\n missing: missing\n };\n };\n\n return StoreReader;\n}();\n\nexport { StoreReader };\n\nfunction assertSelectionSetForIdValue(store, field, fieldValue) {\n if (!field.selectionSet) {\n var workSet_1 = new Set([fieldValue]);\n workSet_1.forEach(function (value) {\n if (value && typeof value === \"object\") {\n process.env.NODE_ENV === \"production\" ? invariant(!isReference(value), 6) : invariant(!isReference(value), \"Missing selection set for object of type \" + getTypenameFromStoreObject(store, value) + \" returned for query field \" + field.name.value);\n Object.values(value).forEach(workSet_1.add, workSet_1);\n }\n });\n }\n}","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { equal } from '@wry/equality';\nimport { createFragmentMap, getFragmentFromSelection, getDefaultValues, getFragmentDefinitions, getOperationDefinition, getTypenameFromResult, makeReference, isField, resultKeyNameFromField, isReference, shouldInclude, hasDirectives, cloneDeep } from \"../../utilities/index.js\";\nimport { makeProcessedFieldsMerger, fieldNameFromStoreName, storeValueIsStoreObject } from \"./helpers.js\";\n;\n\nvar StoreWriter = function () {\n function StoreWriter(cache, reader) {\n this.cache = cache;\n this.reader = reader;\n }\n\n StoreWriter.prototype.writeToStore = function (_a) {\n var query = _a.query,\n result = _a.result,\n dataId = _a.dataId,\n store = _a.store,\n variables = _a.variables;\n var operationDefinition = getOperationDefinition(query);\n var merger = makeProcessedFieldsMerger();\n variables = __assign(__assign({}, getDefaultValues(operationDefinition)), variables);\n var ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: {\n map: new Map()\n },\n context: {\n store: store,\n written: Object.create(null),\n merge: function merge(existing, incoming) {\n return merger.merge(existing, incoming);\n },\n variables: variables,\n varString: JSON.stringify(variables),\n fragmentMap: createFragmentMap(getFragmentDefinitions(query))\n }\n });\n\n if (!isReference(ref)) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(7) : new InvariantError(\"Could not identify object \" + JSON.stringify(result));\n }\n\n store.retain(ref.__ref);\n return ref;\n };\n\n StoreWriter.prototype.processSelectionSet = function (_a) {\n var _this = this;\n\n var dataId = _a.dataId,\n result = _a.result,\n selectionSet = _a.selectionSet,\n context = _a.context,\n mergeTree = _a.mergeTree;\n var policies = this.cache.policies;\n\n var _b = policies.identify(result, selectionSet, context.fragmentMap),\n id = _b[0],\n keyObject = _b[1];\n\n dataId = dataId || id;\n\n if (\"string\" === typeof dataId) {\n var sets = context.written[dataId] || (context.written[dataId] = []);\n var ref = makeReference(dataId);\n if (sets.indexOf(selectionSet) >= 0) return ref;\n sets.push(selectionSet);\n\n if (this.reader && this.reader.isFresh(result, ref, selectionSet, context)) {\n return ref;\n }\n }\n\n var incomingFields = Object.create(null);\n\n if (keyObject) {\n incomingFields = context.merge(incomingFields, keyObject);\n }\n\n var typename = dataId && policies.rootTypenamesById[dataId] || getTypenameFromResult(result, selectionSet, context.fragmentMap) || dataId && context.store.get(dataId, \"__typename\");\n\n if (\"string\" === typeof typename) {\n incomingFields.__typename = typename;\n }\n\n var workSet = new Set(selectionSet.selections);\n workSet.forEach(function (selection) {\n var _a;\n\n if (!shouldInclude(selection, context.variables)) return;\n\n if (isField(selection)) {\n var resultFieldKey = resultKeyNameFromField(selection);\n var value = result[resultFieldKey];\n\n if (typeof value !== 'undefined') {\n var storeFieldName = policies.getStoreFieldName({\n typename: typename,\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables\n });\n var childTree = getChildMergeTree(mergeTree, storeFieldName);\n\n var incomingValue = _this.processFieldValue(value, selection, context, childTree);\n\n var childTypename = selection.selectionSet && context.store.getFieldValue(incomingValue, \"__typename\") || void 0;\n var merge = policies.getMergeFunction(typename, selection.name.value, childTypename);\n\n if (merge) {\n childTree.info = {\n field: selection,\n typename: typename,\n merge: merge\n };\n } else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n\n incomingFields = context.merge(incomingFields, (_a = {}, _a[storeFieldName] = incomingValue, _a));\n } else if (policies.usingPossibleTypes && !hasDirectives([\"defer\", \"client\"], selection)) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(8) : new InvariantError(\"Missing field '\" + resultFieldKey + \"' in \" + JSON.stringify(result, null, 2).substring(0, 100));\n }\n } else {\n var fragment = getFragmentFromSelection(selection, context.fragmentMap);\n\n if (fragment && policies.fragmentMatches(fragment, typename, result, context.variables)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n\n if (\"string\" === typeof dataId) {\n var entityRef_1 = makeReference(dataId);\n\n if (mergeTree.map.size) {\n incomingFields = this.applyMerges(mergeTree, entityRef_1, incomingFields, context);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n var hasSelectionSet_1 = function hasSelectionSet_1(storeFieldName) {\n return fieldsWithSelectionSets_1.has(fieldNameFromStoreName(storeFieldName));\n };\n\n var fieldsWithSelectionSets_1 = new Set();\n workSet.forEach(function (selection) {\n if (isField(selection) && selection.selectionSet) {\n fieldsWithSelectionSets_1.add(selection.name.value);\n }\n });\n\n var hasMergeFunction_1 = function hasMergeFunction_1(storeFieldName) {\n var childTree = mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n\n Object.keys(incomingFields).forEach(function (storeFieldName) {\n if (hasSelectionSet_1(storeFieldName) && !hasMergeFunction_1(storeFieldName)) {\n warnAboutDataLoss(entityRef_1, incomingFields, storeFieldName, context.store);\n }\n });\n }\n\n context.store.merge(dataId, incomingFields);\n return entityRef_1;\n }\n\n return incomingFields;\n };\n\n StoreWriter.prototype.processFieldValue = function (value, field, context, mergeTree) {\n var _this = this;\n\n if (!field.selectionSet || value === null) {\n return process.env.NODE_ENV === 'production' ? value : cloneDeep(value);\n }\n\n if (Array.isArray(value)) {\n return value.map(function (item, i) {\n var value = _this.processFieldValue(item, field, context, getChildMergeTree(mergeTree, i));\n\n maybeRecycleChildMergeTree(mergeTree, i);\n return value;\n });\n }\n\n return this.processSelectionSet({\n result: value,\n selectionSet: field.selectionSet,\n context: context,\n mergeTree: mergeTree\n });\n };\n\n StoreWriter.prototype.applyMerges = function (mergeTree, existing, incoming, context, getStorageArgs) {\n var _a;\n\n var _this = this;\n\n if (mergeTree.map.size && !isReference(incoming)) {\n var e_1 = !Array.isArray(incoming) && (isReference(existing) || storeValueIsStoreObject(existing)) ? existing : void 0;\n var i_1 = incoming;\n\n if (e_1 && !getStorageArgs) {\n getStorageArgs = [isReference(e_1) ? e_1.__ref : e_1];\n }\n\n var changedFields_1;\n\n var getValue_1 = function getValue_1(from, name) {\n return Array.isArray(from) ? typeof name === \"number\" ? from[name] : void 0 : context.store.getFieldValue(from, String(name));\n };\n\n mergeTree.map.forEach(function (childTree, storeFieldName) {\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n\n var eVal = getValue_1(e_1, storeFieldName);\n var iVal = getValue_1(i_1, storeFieldName);\n\n var aVal = _this.applyMerges(childTree, eVal, iVal, context, getStorageArgs);\n\n if (aVal !== iVal) {\n changedFields_1 = changedFields_1 || new Map();\n changedFields_1.set(storeFieldName, aVal);\n }\n\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n\n if (changedFields_1) {\n incoming = Array.isArray(i_1) ? i_1.slice(0) : __assign({}, i_1);\n changedFields_1.forEach(function (value, name) {\n incoming[name] = value;\n });\n }\n }\n\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(existing, incoming, mergeTree.info, context, getStorageArgs && (_a = context.store).getStorage.apply(_a, getStorageArgs));\n }\n\n return incoming;\n };\n\n return StoreWriter;\n}();\n\nexport { StoreWriter };\nvar emptyMergeTreePool = [];\n\nfunction getChildMergeTree(_a, name) {\n var map = _a.map;\n\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || {\n map: new Map()\n });\n }\n\n return map.get(name);\n}\n\nfunction maybeRecycleChildMergeTree(_a, name) {\n var map = _a.map;\n var childTree = map.get(name);\n\n if (childTree && !childTree.info && !childTree.map.size) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\n\nvar warnings = new Set();\n\nfunction warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {\n var getChild = function getChild(objOrRef) {\n var child = store.getFieldValue(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n\n var existing = getChild(existingRef);\n if (!existing) return;\n var incoming = getChild(incomingObj);\n if (!incoming) return;\n if (isReference(existing)) return;\n if (equal(existing, incoming)) return;\n\n if (Object.keys(existing).every(function (key) {\n return store.getFieldValue(incoming, key) !== void 0;\n })) {\n return;\n }\n\n var parentType = store.getFieldValue(existingRef, \"__typename\") || store.getFieldValue(incomingObj, \"__typename\");\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var typeDotName = parentType + \".\" + fieldName;\n if (warnings.has(typeDotName)) return;\n warnings.add(typeDotName);\n var childTypenames = [];\n\n if (!Array.isArray(existing) && !Array.isArray(incoming)) {\n [existing, incoming].forEach(function (child) {\n var typename = store.getFieldValue(child, \"__typename\");\n\n if (typeof typename === \"string\" && !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n\n process.env.NODE_ENV === \"production\" || invariant.warn(\"Cache data may be lost when replacing the \" + fieldName + \" field of a \" + parentType + \" object.\\n\\nTo address this problem (which is not a bug in Apollo Client), \" + (childTypenames.length ? \"either ensure all objects of type \" + childTypenames.join(\" and \") + \" have an ID or a custom merge function, or \" : \"\") + \"define a custom merge function for the \" + typeDotName + \" field, so InMemoryCache can safely merge these objects:\\n\\n existing: \" + JSON.stringify(existing).slice(0, 1000) + \"\\n incoming: \" + JSON.stringify(incoming).slice(0, 1000) + \"\\n\\nFor more information about these options, please refer to the documentation:\\n\\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\\n\");\n}","import { __assign, __extends } from \"tslib\";\nimport \"./fixPolyfills.js\";\nimport { dep, wrap } from 'optimism';\nimport { ApolloCache } from \"../core/cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { addTypenameToDocument, isReference } from \"../../utilities/index.js\";\nimport { StoreReader } from \"./readFromStore.js\";\nimport { StoreWriter } from \"./writeToStore.js\";\nimport { EntityStore, supportsResultCaching } from \"./entityStore.js\";\nimport { makeVar, forgetCache, recallCache } from \"./reactiveVars.js\";\nimport { defaultDataIdFromObject, Policies } from \"./policies.js\";\nimport { hasOwn } from \"./helpers.js\";\nvar defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n typePolicies: {}\n};\n\nvar InMemoryCache = function (_super) {\n __extends(InMemoryCache, _super);\n\n function InMemoryCache(config) {\n if (config === void 0) {\n config = {};\n }\n\n var _this = _super.call(this) || this;\n\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.makeVar = makeVar;\n _this.txCount = 0;\n _this.maybeBroadcastWatch = wrap(function (c, fromOptimisticTransaction) {\n return _this.broadcastWatch.call(_this, c, !!fromOptimisticTransaction);\n }, {\n makeCacheKey: function makeCacheKey(c) {\n var store = c.optimistic ? _this.optimisticData : _this.data;\n\n if (supportsResultCaching(store)) {\n var optimistic = c.optimistic,\n rootId = c.rootId,\n variables = c.variables;\n return store.makeCacheKey(c.query, c.callback, JSON.stringify({\n optimistic: optimistic,\n rootId: rootId,\n variables: variables\n }));\n }\n }\n });\n _this.watchDep = dep();\n _this.config = __assign(__assign({}, defaultConfig), config);\n _this.addTypename = !!_this.config.addTypename;\n _this.policies = new Policies({\n cache: _this,\n dataIdFromObject: _this.config.dataIdFromObject,\n possibleTypes: _this.config.possibleTypes,\n typePolicies: _this.config.typePolicies\n });\n _this.data = new EntityStore.Root({\n policies: _this.policies,\n resultCaching: _this.config.resultCaching\n });\n _this.optimisticData = _this.data;\n _this.storeWriter = new StoreWriter(_this, _this.storeReader = new StoreReader({\n cache: _this,\n addTypename: _this.addTypename\n }));\n return _this;\n }\n\n InMemoryCache.prototype.restore = function (data) {\n if (data) this.data.replace(data);\n return this;\n };\n\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return (optimistic ? this.optimisticData : this.data).extract();\n };\n\n InMemoryCache.prototype.read = function (options) {\n var _a = options.returnPartialData,\n returnPartialData = _a === void 0 ? false : _a;\n\n try {\n return this.storeReader.diffQueryAgainstStore({\n store: options.optimistic ? this.optimisticData : this.data,\n query: options.query,\n variables: options.variables,\n rootId: options.rootId,\n config: this.config,\n returnPartialData: returnPartialData\n }).result || null;\n } catch (e) {\n if (e instanceof MissingFieldError) {\n return null;\n }\n\n throw e;\n }\n };\n\n InMemoryCache.prototype.write = function (options) {\n try {\n ++this.txCount;\n return this.storeWriter.writeToStore({\n store: this.data,\n query: options.query,\n result: options.result,\n dataId: options.dataId,\n variables: options.variables\n });\n } finally {\n if (! --this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n\n InMemoryCache.prototype.modify = function (options) {\n if (hasOwn.call(options, \"id\") && !options.id) {\n return false;\n }\n\n var store = options.optimistic ? this.optimisticData : this.data;\n\n try {\n ++this.txCount;\n return store.modify(options.id || \"ROOT_QUERY\", options.fields);\n } finally {\n if (! --this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n\n InMemoryCache.prototype.diff = function (options) {\n return this.storeReader.diffQueryAgainstStore({\n store: options.optimistic ? this.optimisticData : this.data,\n rootId: options.id || \"ROOT_QUERY\",\n query: options.query,\n variables: options.variables,\n returnPartialData: options.returnPartialData,\n config: this.config\n });\n };\n\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n\n if (!this.watches.size) {\n recallCache(this);\n }\n\n this.watches.add(watch);\n\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n\n return function () {\n if (_this.watches.delete(watch) && !_this.watches.size) {\n forgetCache(_this);\n }\n\n _this.watchDep.dirty(watch);\n\n _this.maybeBroadcastWatch.forget(watch);\n };\n };\n\n InMemoryCache.prototype.gc = function () {\n return this.optimisticData.gc();\n };\n\n InMemoryCache.prototype.retain = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n };\n\n InMemoryCache.prototype.release = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n };\n\n InMemoryCache.prototype.identify = function (object) {\n return isReference(object) ? object.__ref : this.policies.identify(object)[0];\n };\n\n InMemoryCache.prototype.evict = function (options) {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n return false;\n }\n\n options = __assign(__assign({}, options), {\n id: \"ROOT_QUERY\"\n });\n }\n\n try {\n ++this.txCount;\n return this.optimisticData.evict(options);\n } finally {\n if (! --this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n\n InMemoryCache.prototype.reset = function () {\n this.data.clear();\n this.optimisticData = this.data;\n this.broadcastWatches();\n return Promise.resolve();\n };\n\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n };\n\n InMemoryCache.prototype.performTransaction = function (transaction, optimisticId) {\n var _this = this;\n\n var perform = function perform(layer) {\n var _a = _this,\n data = _a.data,\n optimisticData = _a.optimisticData;\n ++_this.txCount;\n\n if (layer) {\n _this.data = _this.optimisticData = layer;\n }\n\n try {\n transaction(_this);\n } finally {\n --_this.txCount;\n _this.data = data;\n _this.optimisticData = optimisticData;\n }\n };\n\n var fromOptimisticTransaction = false;\n\n if (typeof optimisticId === 'string') {\n this.optimisticData = this.optimisticData.addLayer(optimisticId, perform);\n fromOptimisticTransaction = true;\n } else if (optimisticId === null) {\n perform(this.data);\n } else {\n perform();\n }\n\n this.broadcastWatches(fromOptimisticTransaction);\n };\n\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n\n return result;\n }\n\n return document;\n };\n\n InMemoryCache.prototype.broadcastWatches = function (fromOptimisticTransaction) {\n var _this = this;\n\n if (!this.txCount) {\n this.watches.forEach(function (c) {\n return _this.maybeBroadcastWatch(c, fromOptimisticTransaction);\n });\n }\n };\n\n InMemoryCache.prototype.broadcastWatch = function (c, fromOptimisticTransaction) {\n this.watchDep.dirty(c);\n this.watchDep(c);\n var diff = this.diff({\n query: c.query,\n variables: c.variables,\n optimistic: c.optimistic\n });\n\n if (c.optimistic && fromOptimisticTransaction) {\n diff.fromOptimisticTransaction = true;\n }\n\n c.callback(diff);\n };\n\n return InMemoryCache;\n}(ApolloCache);\n\nexport { InMemoryCache };","import { __assign, __rest } from \"tslib\";\nimport { KeyTrie } from 'optimism';\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { getFragmentFromSelection, isField, getTypenameFromResult, storeKeyNameFromField, argumentsObjectFromField, isReference, getStoreKeyName, canUseWeakMap } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName, storeValueIsStoreObject, selectionSetMatchesResult, TypeOrFieldNameRegExp } from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\n\nfunction argsFromFieldSpecifier(spec) {\n return spec.args !== void 0 ? spec.args : spec.field ? argumentsObjectFromField(spec.field, spec.variables) : null;\n}\n\nexport var defaultDataIdFromObject = function defaultDataIdFromObject(_a, context) {\n var __typename = _a.__typename,\n id = _a.id,\n _id = _a._id;\n\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject = id !== void 0 ? {\n id: id\n } : _id !== void 0 ? {\n _id: _id\n } : void 0;\n }\n\n if (id === void 0) id = _id;\n\n if (id !== void 0) {\n return __typename + \":\" + (typeof id === \"number\" || typeof id === \"string\" ? id : JSON.stringify(id));\n }\n }\n};\n\nvar nullKeyFieldsFn = function nullKeyFieldsFn() {\n return void 0;\n};\n\nvar simpleKeyArgsFn = function simpleKeyArgsFn(_args, context) {\n return context.fieldName;\n};\n\nvar mergeTrueFn = function mergeTrueFn(existing, incoming, _a) {\n var mergeObjects = _a.mergeObjects;\n return mergeObjects(existing, incoming);\n};\n\nvar mergeFalseFn = function mergeFalseFn(_, incoming) {\n return incoming;\n};\n\nvar Policies = function () {\n function Policies(config) {\n this.config = config;\n this.typePolicies = Object.create(null);\n this.toBeAdded = Object.create(null);\n this.supertypeMap = new Map();\n this.fuzzySubtypes = new Map();\n this.rootIdsByTypename = Object.create(null);\n this.rootTypenamesById = Object.create(null);\n this.usingPossibleTypes = false;\n this.config = __assign({\n dataIdFromObject: defaultDataIdFromObject\n }, config);\n this.cache = this.config.cache;\n this.setRootTypename(\"Query\");\n this.setRootTypename(\"Mutation\");\n this.setRootTypename(\"Subscription\");\n\n if (config.possibleTypes) {\n this.addPossibleTypes(config.possibleTypes);\n }\n\n if (config.typePolicies) {\n this.addTypePolicies(config.typePolicies);\n }\n }\n\n Policies.prototype.identify = function (object, selectionSet, fragmentMap) {\n var typename = selectionSet && fragmentMap ? getTypenameFromResult(object, selectionSet, fragmentMap) : object.__typename;\n\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n\n var context = {\n typename: typename,\n selectionSet: selectionSet,\n fragmentMap: fragmentMap\n };\n var id;\n var policy = typename && this.getTypePolicy(typename);\n var keyFn = policy && policy.keyFn || this.config.dataIdFromObject;\n\n while (keyFn) {\n var specifierOrId = keyFn(object, context);\n\n if (Array.isArray(specifierOrId)) {\n keyFn = keyFieldsFnFromSpecifier(specifierOrId);\n } else {\n id = specifierOrId;\n break;\n }\n }\n\n id = id ? String(id) : void 0;\n return context.keyObject ? [id, context.keyObject] : [id];\n };\n\n Policies.prototype.addTypePolicies = function (typePolicies) {\n var _this = this;\n\n Object.keys(typePolicies).forEach(function (typename) {\n var _a = typePolicies[typename],\n queryType = _a.queryType,\n mutationType = _a.mutationType,\n subscriptionType = _a.subscriptionType,\n incoming = __rest(_a, [\"queryType\", \"mutationType\", \"subscriptionType\"]);\n\n if (queryType) _this.setRootTypename(\"Query\", typename);\n if (mutationType) _this.setRootTypename(\"Mutation\", typename);\n if (subscriptionType) _this.setRootTypename(\"Subscription\", typename);\n\n if (hasOwn.call(_this.toBeAdded, typename)) {\n _this.toBeAdded[typename].push(incoming);\n } else {\n _this.toBeAdded[typename] = [incoming];\n }\n });\n };\n\n Policies.prototype.updateTypePolicy = function (typename, incoming) {\n var _this = this;\n\n var existing = this.getTypePolicy(typename);\n var keyFields = incoming.keyFields,\n fields = incoming.fields;\n\n function setMerge(existing, merge) {\n existing.merge = typeof merge === \"function\" ? merge : merge === true ? mergeTrueFn : merge === false ? mergeFalseFn : existing.merge;\n }\n\n setMerge(existing, incoming.merge);\n existing.keyFn = keyFields === false ? nullKeyFieldsFn : Array.isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields) : typeof keyFields === \"function\" ? keyFields : existing.keyFn;\n\n if (fields) {\n Object.keys(fields).forEach(function (fieldName) {\n var existing = _this.getFieldPolicy(typename, fieldName, true);\n\n var incoming = fields[fieldName];\n\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n } else {\n var keyArgs = incoming.keyArgs,\n read = incoming.read,\n merge = incoming.merge;\n existing.keyFn = keyArgs === false ? simpleKeyArgsFn : Array.isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs) : typeof keyArgs === \"function\" ? keyArgs : existing.keyFn;\n\n if (typeof read === \"function\") {\n existing.read = read;\n }\n\n setMerge(existing, merge);\n }\n\n if (existing.read && existing.merge) {\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n };\n\n Policies.prototype.setRootTypename = function (which, typename) {\n if (typename === void 0) {\n typename = which;\n }\n\n var rootId = \"ROOT_\" + which.toUpperCase();\n var old = this.rootTypenamesById[rootId];\n\n if (typename !== old) {\n process.env.NODE_ENV === \"production\" ? invariant(!old || old === which, 1) : invariant(!old || old === which, \"Cannot change root \" + which + \" __typename more than once\");\n if (old) delete this.rootIdsByTypename[old];\n this.rootIdsByTypename[typename] = rootId;\n this.rootTypenamesById[rootId] = typename;\n }\n };\n\n Policies.prototype.addPossibleTypes = function (possibleTypes) {\n var _this = this;\n\n this.usingPossibleTypes = true;\n Object.keys(possibleTypes).forEach(function (supertype) {\n _this.getSupertypeSet(supertype, true);\n\n possibleTypes[supertype].forEach(function (subtype) {\n _this.getSupertypeSet(subtype, true).add(supertype);\n\n var match = subtype.match(TypeOrFieldNameRegExp);\n\n if (!match || match[0] !== subtype) {\n _this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n };\n\n Policies.prototype.getTypePolicy = function (typename) {\n var _this = this;\n\n if (!hasOwn.call(this.typePolicies, typename)) {\n var policy_1 = this.typePolicies[typename] = Object.create(null);\n policy_1.fields = Object.create(null);\n var supertypes = this.supertypeMap.get(typename);\n\n if (supertypes && supertypes.size) {\n supertypes.forEach(function (supertype) {\n var _a = _this.getTypePolicy(supertype),\n fields = _a.fields,\n rest = __rest(_a, [\"fields\"]);\n\n Object.assign(policy_1, rest);\n Object.assign(policy_1.fields, fields);\n });\n }\n }\n\n var inbox = this.toBeAdded[typename];\n\n if (inbox && inbox.length) {\n inbox.splice(0).forEach(function (policy) {\n _this.updateTypePolicy(typename, policy);\n });\n }\n\n return this.typePolicies[typename];\n };\n\n Policies.prototype.getFieldPolicy = function (typename, fieldName, createIfMissing) {\n if (typename) {\n var fieldPolicies = this.getTypePolicy(typename).fields;\n return fieldPolicies[fieldName] || createIfMissing && (fieldPolicies[fieldName] = Object.create(null));\n }\n };\n\n Policies.prototype.getSupertypeSet = function (subtype, createIfMissing) {\n var supertypeSet = this.supertypeMap.get(subtype);\n\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, supertypeSet = new Set());\n }\n\n return supertypeSet;\n };\n\n Policies.prototype.fragmentMatches = function (fragment, typename, result, variables) {\n var _this = this;\n\n if (!fragment.typeCondition) return true;\n if (!typename) return false;\n var supertype = fragment.typeCondition.name.value;\n if (typename === supertype) return true;\n\n if (this.usingPossibleTypes && this.supertypeMap.has(supertype)) {\n var typenameSupertypeSet = this.getSupertypeSet(typename, true);\n var workQueue_1 = [typenameSupertypeSet];\n\n var maybeEnqueue_1 = function maybeEnqueue_1(subtype) {\n var supertypeSet = _this.getSupertypeSet(subtype, false);\n\n if (supertypeSet && supertypeSet.size && workQueue_1.indexOf(supertypeSet) < 0) {\n workQueue_1.push(supertypeSet);\n }\n };\n\n var needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n var checkingFuzzySubtypes = false;\n\n for (var i = 0; i < workQueue_1.length; ++i) {\n var supertypeSet = workQueue_1[i];\n\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"Inferring subtype \" + typename + \" of supertype \" + supertype);\n }\n\n typenameSupertypeSet.add(supertype);\n }\n\n return true;\n }\n\n supertypeSet.forEach(maybeEnqueue_1);\n\n if (needToCheckFuzzySubtypes && i === workQueue_1.length - 1 && selectionSetMatchesResult(fragment.selectionSet, result, variables)) {\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n this.fuzzySubtypes.forEach(function (regExp, fuzzyString) {\n var match = typename.match(regExp);\n\n if (match && match[0] === typename) {\n maybeEnqueue_1(fuzzyString);\n }\n });\n }\n }\n }\n\n return false;\n };\n\n Policies.prototype.hasKeyArgs = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n };\n\n Policies.prototype.getStoreFieldName = function (fieldSpec) {\n var typename = fieldSpec.typename,\n fieldName = fieldSpec.fieldName;\n var policy = this.getFieldPolicy(typename, fieldName, false);\n var storeFieldName;\n var keyFn = policy && policy.keyFn;\n\n if (keyFn && typename) {\n var context = {\n typename: typename,\n fieldName: fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables\n };\n var args = argsFromFieldSpecifier(fieldSpec);\n\n while (keyFn) {\n var specifierOrString = keyFn(args, context);\n\n if (Array.isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n } else {\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n\n if (storeFieldName === void 0) {\n storeFieldName = fieldSpec.field ? storeKeyNameFromField(fieldSpec.field, fieldSpec.variables) : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n\n if (storeFieldName === false) {\n return fieldName;\n }\n\n return fieldName === fieldNameFromStoreName(storeFieldName) ? storeFieldName : fieldName + \":\" + storeFieldName;\n };\n\n Policies.prototype.readField = function (options, context) {\n var objectOrReference = options.from;\n if (!objectOrReference) return;\n var nameOrField = options.field || options.fieldName;\n if (!nameOrField) return;\n\n if (options.typename === void 0) {\n var typename = context.store.getFieldValue(objectOrReference, \"__typename\");\n if (typename) options.typename = typename;\n }\n\n var storeFieldName = this.getStoreFieldName(options);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var existing = context.store.getFieldValue(objectOrReference, storeFieldName);\n var policy = this.getFieldPolicy(options.typename, fieldName, false);\n var read = policy && policy.read;\n\n if (read) {\n var readOptions = makeFieldFunctionOptions(this, objectOrReference, options, context, context.store.getStorage(isReference(objectOrReference) ? objectOrReference.__ref : objectOrReference, storeFieldName));\n return cacheSlot.withValue(this.cache, read, [existing, readOptions]);\n }\n\n return existing;\n };\n\n Policies.prototype.getMergeFunction = function (parentTypename, fieldName, childTypename) {\n var policy = this.getFieldPolicy(parentTypename, fieldName, false);\n var merge = policy && policy.merge;\n\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n\n return merge;\n };\n\n Policies.prototype.runMergeFunction = function (existing, incoming, _a, context, storage) {\n var field = _a.field,\n typename = _a.typename,\n merge = _a.merge;\n\n if (merge === mergeTrueFn) {\n return makeMergeObjectsFunction(context.store.getFieldValue)(existing, incoming);\n }\n\n if (merge === mergeFalseFn) {\n return incoming;\n }\n\n return merge(existing, incoming, makeFieldFunctionOptions(this, void 0, {\n typename: typename,\n fieldName: field.name.value,\n field: field,\n variables: context.variables\n }, context, storage || Object.create(null)));\n };\n\n return Policies;\n}();\n\nexport { Policies };\n\nfunction makeFieldFunctionOptions(policies, objectOrReference, fieldSpec, context, storage) {\n var storeFieldName = policies.getStoreFieldName(fieldSpec);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var variables = fieldSpec.variables || context.variables;\n var _a = context.store,\n getFieldValue = _a.getFieldValue,\n toReference = _a.toReference,\n canRead = _a.canRead;\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n variables: variables,\n isReference: isReference,\n toReference: toReference,\n storage: storage,\n cache: policies.cache,\n canRead: canRead,\n readField: function readField(fieldNameOrOptions, from) {\n var options = typeof fieldNameOrOptions === \"string\" ? {\n fieldName: fieldNameOrOptions,\n from: from\n } : __assign({}, fieldNameOrOptions);\n\n if (void 0 === options.from) {\n options.from = objectOrReference;\n }\n\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n\n return policies.readField(options, context);\n },\n mergeObjects: makeMergeObjectsFunction(getFieldValue)\n };\n}\n\nfunction makeMergeObjectsFunction(getFieldValue) {\n return function mergeObjects(existing, incoming) {\n if (Array.isArray(existing) || Array.isArray(incoming)) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(2) : new InvariantError(\"Cannot automatically merge arrays\");\n }\n\n if (existing && typeof existing === \"object\" && incoming && typeof incoming === \"object\") {\n var eType = getFieldValue(existing, \"__typename\");\n var iType = getFieldValue(incoming, \"__typename\");\n var typesDiffer = eType && iType && eType !== iType;\n\n if (typesDiffer || !storeValueIsStoreObject(existing) || !storeValueIsStoreObject(incoming)) {\n return incoming;\n }\n\n return __assign(__assign({}, existing), incoming);\n }\n\n return incoming;\n };\n}\n\nfunction keyArgsFnFromSpecifier(specifier) {\n return function (args, context) {\n return args ? context.fieldName + \":\" + JSON.stringify(computeKeyObject(args, specifier, false)) : context.fieldName;\n };\n}\n\nfunction keyFieldsFnFromSpecifier(specifier) {\n var trie = new KeyTrie(canUseWeakMap);\n return function (object, context) {\n var aliasMap;\n\n if (context.selectionSet && context.fragmentMap) {\n var info = trie.lookupArray([context.selectionSet, context.fragmentMap]);\n aliasMap = info.aliasMap || (info.aliasMap = makeAliasMap(context.selectionSet, context.fragmentMap));\n }\n\n var keyObject = context.keyObject = computeKeyObject(object, specifier, true, aliasMap);\n return context.typename + \":\" + JSON.stringify(keyObject);\n };\n}\n\nfunction makeAliasMap(selectionSet, fragmentMap) {\n var map = Object.create(null);\n var workQueue = new Set([selectionSet]);\n workQueue.forEach(function (selectionSet) {\n selectionSet.selections.forEach(function (selection) {\n if (isField(selection)) {\n if (selection.alias) {\n var responseKey = selection.alias.value;\n var storeKey = selection.name.value;\n\n if (storeKey !== responseKey) {\n var aliases = map.aliases || (map.aliases = Object.create(null));\n aliases[storeKey] = responseKey;\n }\n }\n\n if (selection.selectionSet) {\n var subsets = map.subsets || (map.subsets = Object.create(null));\n subsets[selection.name.value] = makeAliasMap(selection.selectionSet, fragmentMap);\n }\n } else {\n var fragment = getFragmentFromSelection(selection, fragmentMap);\n\n if (fragment) {\n workQueue.add(fragment.selectionSet);\n }\n }\n });\n });\n return map;\n}\n\nfunction computeKeyObject(response, specifier, strict, aliasMap) {\n var keyObj = Object.create(null);\n var prevKey;\n specifier.forEach(function (s) {\n if (Array.isArray(s)) {\n if (typeof prevKey === \"string\") {\n var subsets = aliasMap && aliasMap.subsets;\n var subset = subsets && subsets[prevKey];\n keyObj[prevKey] = computeKeyObject(response[prevKey], s, strict, subset);\n }\n } else {\n var aliases = aliasMap && aliasMap.aliases;\n var responseName = aliases && aliases[s] || s;\n\n if (hasOwn.call(response, responseName)) {\n keyObj[prevKey = s] = response[responseName];\n } else {\n process.env.NODE_ENV === \"production\" ? invariant(!strict, 3) : invariant(!strict, \"Missing field '\" + responseName + \"' while computing key fields\");\n prevKey = void 0;\n }\n }\n });\n return keyObj;\n}","import { dep } from \"optimism\";\nimport { Slot } from \"@wry/context\";\nexport var cacheSlot = new Slot();\nvar cacheInfoMap = new WeakMap();\n\nfunction getCacheInfo(cache) {\n var info = cacheInfoMap.get(cache);\n\n if (!info) {\n cacheInfoMap.set(cache, info = {\n vars: new Set(),\n dep: dep()\n });\n }\n\n return info;\n}\n\nexport function forgetCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) {\n return rv.forgetCache(cache);\n });\n}\nexport function recallCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) {\n return rv.attachCache(cache);\n });\n}\nexport function makeVar(value) {\n var caches = new Set();\n var listeners = new Set();\n\n var rv = function rv(newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue;\n caches.forEach(function (cache) {\n getCacheInfo(cache).dep.dirty(rv);\n broadcast(cache);\n });\n var oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach(function (listener) {\n return listener(value);\n });\n }\n } else {\n var cache = cacheSlot.getValue();\n\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n\n return value;\n };\n\n rv.onNextChange = function (listener) {\n listeners.add(listener);\n return function () {\n listeners.delete(listener);\n };\n };\n\n var attach = rv.attachCache = function (cache) {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n };\n\n rv.forgetCache = function (cache) {\n return caches.delete(cache);\n };\n\n return rv;\n}\n\nfunction broadcast(cache) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { visit, BREAK } from 'graphql';\nimport { invariant } from 'ts-invariant';\nimport { argumentsObjectFromField, buildQueryFromSelectionSet, createFragmentMap, getFragmentDefinitions, getMainDefinition, hasDirectives, isField, isInlineFragment, mergeDeep, mergeDeepArray, removeClientSetsFromDocument, resultKeyNameFromField, shouldInclude } from \"../utilities/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\n\nvar LocalState = function () {\n function LocalState(_a) {\n var cache = _a.cache,\n client = _a.client,\n resolvers = _a.resolvers,\n fragmentMatcher = _a.fragmentMatcher;\n this.cache = cache;\n\n if (client) {\n this.client = client;\n }\n\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n\n this.resolvers = this.resolvers || {};\n\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n\n LocalState.prototype.runResolvers = function (_a) {\n var document = _a.document,\n remoteResult = _a.remoteResult,\n context = _a.context,\n variables = _a.variables,\n _b = _a.onlyRunForcedResolvers,\n onlyRunForcedResolvers = _b === void 0 ? false : _b;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_c) {\n if (document) {\n return [2, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) {\n return __assign(__assign({}, remoteResult), {\n data: localResult.result\n });\n })];\n }\n\n return [2, remoteResult];\n });\n });\n };\n\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n\n return null;\n };\n\n LocalState.prototype.serverQuery = function (document) {\n return removeClientSetsFromDocument(document);\n };\n\n LocalState.prototype.prepareContext = function (context) {\n var cache = this.cache;\n return __assign(__assign({}, context), {\n cache: cache,\n getCacheKey: function getCacheKey(obj) {\n return cache.identify(obj);\n }\n });\n };\n\n LocalState.prototype.addExportedVariables = function (document, variables, context) {\n if (variables === void 0) {\n variables = {};\n }\n\n if (context === void 0) {\n context = {};\n }\n\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (document) {\n return [2, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) {\n return __assign(__assign({}, variables), data.exportedVariables);\n })];\n }\n\n return [2, __assign({}, variables)];\n });\n });\n };\n\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function enter(node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === 'always' && arg.value.kind === 'BooleanValue' && arg.value.value === true;\n });\n\n if (forceResolvers) {\n return BREAK;\n }\n }\n }\n }\n });\n return forceResolvers;\n };\n\n LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }).result;\n };\n\n LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n if (context === void 0) {\n context = {};\n }\n\n if (variables === void 0) {\n variables = {};\n }\n\n if (fragmentMatcher === void 0) {\n fragmentMatcher = function fragmentMatcher() {\n return true;\n };\n }\n\n if (onlyRunForcedResolvers === void 0) {\n onlyRunForcedResolvers = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var mainDefinition, fragments, fragmentMap, definitionOperation, defaultOperationType, _a, cache, client, execContext;\n\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n definitionOperation = mainDefinition.operation;\n defaultOperationType = definitionOperation ? definitionOperation.charAt(0).toUpperCase() + definitionOperation.slice(1) : 'Query';\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), {\n cache: cache,\n client: client\n }),\n variables: variables,\n fragmentMatcher: fragmentMatcher,\n defaultOperationType: defaultOperationType,\n exportedVariables: {},\n onlyRunForcedResolvers: onlyRunForcedResolvers\n };\n return [2, this.resolveSelectionSet(mainDefinition.selectionSet, rootValue, execContext).then(function (result) {\n return {\n result: result,\n exportedVariables: execContext.exportedVariables\n };\n })];\n });\n });\n };\n\n LocalState.prototype.resolveSelectionSet = function (selectionSet, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var fragmentMap, context, variables, resultsToMerge, execute;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n\n execute = function execute(selection) {\n return __awaiter(_this, void 0, void 0, function () {\n var fragment, typeCondition;\n return __generator(this, function (_a) {\n if (!shouldInclude(selection, variables)) {\n return [2];\n }\n\n if (isField(selection)) {\n return [2, this.resolveField(selection, rootValue, execContext).then(function (fieldResult) {\n var _a;\n\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push((_a = {}, _a[resultKeyNameFromField(selection)] = fieldResult, _a));\n }\n })];\n }\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n fragment = fragmentMap[selection.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(fragment, 11) : invariant(fragment, \"No fragment named \" + selection.name.value);\n }\n\n if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\n\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return [2, this.resolveSelectionSet(fragment.selectionSet, rootValue, execContext).then(function (fragmentResult) {\n resultsToMerge.push(fragmentResult);\n })];\n }\n }\n\n return [2];\n });\n });\n };\n\n return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n })];\n });\n });\n };\n\n LocalState.prototype.resolveField = function (field, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n variables = execContext.variables;\n fieldName = field.name.value;\n aliasedFieldName = resultKeyNameFromField(field);\n aliasUsed = fieldName !== aliasedFieldName;\n defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n resultPromise = Promise.resolve(defaultResult);\n\n if (!execContext.onlyRunForcedResolvers || this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n\n if (resolve) {\n resultPromise = Promise.resolve(cacheSlot.withValue(this.cache, resolve, [rootValue, argumentsObjectFromField(field, variables), execContext.context, {\n field: field,\n fragmentMap: execContext.fragmentMap\n }]));\n }\n }\n }\n\n return [2, resultPromise.then(function (result) {\n if (result === void 0) {\n result = defaultResult;\n }\n\n if (field.directives) {\n field.directives.forEach(function (directive) {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(function (arg) {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n\n if (!field.selectionSet) {\n return result;\n }\n\n if (result == null) {\n return result;\n }\n\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, result, execContext);\n }\n\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, result, execContext);\n }\n })];\n });\n });\n };\n\n LocalState.prototype.resolveSubSelectedArray = function (field, result, execContext) {\n var _this = this;\n\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, item, execContext);\n }\n\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, item, execContext);\n }\n }));\n };\n\n return LocalState;\n}();\n\nexport { LocalState };","import { equal } from \"@wry/equality\";\nimport { isNonEmptyArray, graphQLResultHasError, canUseWeakMap } from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nvar destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)();\n\nfunction wrapDestructiveCacheMethod(cache, methodName) {\n var original = cache[methodName];\n\n if (typeof original === \"function\") {\n cache[methodName] = function () {\n destructiveMethodCounts.set(cache, (destructiveMethodCounts.get(cache) + 1) % 1e15);\n return original.apply(this, arguments);\n };\n }\n}\n\nfunction cancelNotifyTimeout(info) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\n\nvar QueryInfo = function () {\n function QueryInfo(cache) {\n this.cache = cache;\n this.listeners = new Set();\n this.document = null;\n this.lastRequestId = 1;\n this.subscriptions = new Set();\n this.stopped = false;\n this.dirty = false;\n this.diff = null;\n this.observableQuery = null;\n\n if (!destructiveMethodCounts.has(cache)) {\n destructiveMethodCounts.set(cache, 0);\n wrapDestructiveCacheMethod(cache, \"evict\");\n wrapDestructiveCacheMethod(cache, \"modify\");\n wrapDestructiveCacheMethod(cache, \"reset\");\n }\n }\n\n QueryInfo.prototype.init = function (query) {\n var networkStatus = query.networkStatus || NetworkStatus.loading;\n\n if (this.variables && this.networkStatus !== NetworkStatus.loading && !equal(this.variables, query.variables)) {\n networkStatus = NetworkStatus.setVariables;\n }\n\n if (!equal(query.variables, this.variables)) {\n this.diff = null;\n }\n\n Object.assign(this, {\n document: query.document,\n variables: query.variables,\n networkError: null,\n graphQLErrors: this.graphQLErrors || [],\n networkStatus: networkStatus\n });\n\n if (query.observableQuery) {\n this.setObservableQuery(query.observableQuery);\n }\n\n if (query.lastRequestId) {\n this.lastRequestId = query.lastRequestId;\n }\n\n return this;\n };\n\n QueryInfo.prototype.reset = function () {\n cancelNotifyTimeout(this);\n this.diff = null;\n this.dirty = false;\n };\n\n QueryInfo.prototype.getDiff = function (variables) {\n if (variables === void 0) {\n variables = this.variables;\n }\n\n if (this.diff && equal(variables, this.variables)) {\n return this.diff;\n }\n\n this.updateWatch(this.variables = variables);\n return this.diff = this.cache.diff({\n query: this.document,\n variables: variables,\n returnPartialData: true,\n optimistic: true\n });\n };\n\n QueryInfo.prototype.setDiff = function (diff) {\n var _this = this;\n\n var oldDiff = this.diff;\n this.diff = diff;\n\n if (!this.dirty && (diff && diff.result) !== (oldDiff && oldDiff.result)) {\n this.dirty = true;\n\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(function () {\n return _this.notify();\n }, 0);\n }\n }\n };\n\n QueryInfo.prototype.setObservableQuery = function (oq) {\n var _this = this;\n\n if (oq === this.observableQuery) return;\n\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n\n this.observableQuery = oq;\n\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add(this.oqListener = function () {\n if (_this.getDiff().fromOptimisticTransaction) {\n oq[\"observe\"]();\n } else {\n oq.reobserve();\n }\n });\n } else {\n delete this.oqListener;\n }\n };\n\n QueryInfo.prototype.notify = function () {\n var _this = this;\n\n cancelNotifyTimeout(this);\n\n if (this.shouldNotify()) {\n this.listeners.forEach(function (listener) {\n return listener(_this);\n });\n }\n\n this.dirty = false;\n };\n\n QueryInfo.prototype.shouldNotify = function () {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n\n if (isNetworkRequestInFlight(this.networkStatus) && this.observableQuery) {\n var fetchPolicy = this.observableQuery.options.fetchPolicy;\n\n if (fetchPolicy !== \"cache-only\" && fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n\n return true;\n };\n\n QueryInfo.prototype.stop = function () {\n if (!this.stopped) {\n this.stopped = true;\n this.reset();\n this.cancel();\n delete this.cancel;\n this.subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n var oq = this.observableQuery;\n if (oq) oq.stopPolling();\n }\n };\n\n QueryInfo.prototype.cancel = function () {};\n\n QueryInfo.prototype.updateWatch = function (variables) {\n var _this = this;\n\n if (variables === void 0) {\n variables = this.variables;\n }\n\n var oq = this.observableQuery;\n\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n\n if (!this.lastWatch || this.lastWatch.query !== this.document || !equal(variables, this.lastWatch.variables)) {\n this.cancel();\n this.cancel = this.cache.watch(this.lastWatch = {\n query: this.document,\n variables: variables,\n optimistic: true,\n callback: function callback(diff) {\n return _this.setDiff(diff);\n }\n });\n }\n };\n\n QueryInfo.prototype.shouldWrite = function (result, variables) {\n var lastWrite = this.lastWrite;\n return !(lastWrite && lastWrite.dmCount === destructiveMethodCounts.get(this.cache) && equal(variables, lastWrite.variables) && equal(result.data, lastWrite.result.data));\n };\n\n QueryInfo.prototype.markResult = function (result, options, allowCacheWrite) {\n var _this = this;\n\n this.graphQLErrors = isNonEmptyArray(result.errors) ? result.errors : [];\n this.reset();\n\n if (options.fetchPolicy === 'no-cache') {\n this.diff = {\n result: result.data,\n complete: true\n };\n } else if (!this.stopped && allowCacheWrite) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n this.cache.performTransaction(function (cache) {\n if (_this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: _this.document,\n data: result.data,\n variables: options.variables\n });\n _this.lastWrite = {\n result: result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(_this.cache)\n };\n } else {\n if (_this.diff && _this.diff.complete) {\n result.data = _this.diff.result;\n return;\n }\n }\n\n var diff = cache.diff({\n query: _this.document,\n variables: options.variables,\n returnPartialData: true,\n optimistic: true\n });\n\n if (!_this.stopped) {\n _this.updateWatch(options.variables);\n }\n\n _this.diff = diff;\n\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n } else {\n this.lastWrite = void 0;\n }\n }\n };\n\n QueryInfo.prototype.markReady = function () {\n this.networkError = null;\n return this.networkStatus = NetworkStatus.ready;\n };\n\n QueryInfo.prototype.markError = function (error) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n this.reset();\n\n if (error.graphQLErrors) {\n this.graphQLErrors = error.graphQLErrors;\n }\n\n if (error.networkError) {\n this.networkError = error.networkError;\n }\n\n return error;\n };\n\n return QueryInfo;\n}();\n\nexport { QueryInfo };\nexport function shouldWriteResult(result, errorPolicy) {\n if (errorPolicy === void 0) {\n errorPolicy = \"none\";\n }\n\n var ignoreErrors = errorPolicy === \"ignore\" || errorPolicy === \"all\";\n var writeWithErrors = !graphQLResultHasError(result);\n\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n\n return writeWithErrors;\n}","import \"core-js/modules/es.promise.finally.js\";\nimport { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { equal } from '@wry/equality';\nimport { execute } from \"../link/core/index.js\";\nimport { getDefaultValues, getOperationDefinition, getOperationName, hasClientExports, graphQLResultHasError, removeConnectionDirectiveFromDocument, canUseWeakMap, Observable, asyncMap, isNonEmptyArray, Concast } from \"../utilities/index.js\";\nimport { ApolloError, isApolloError } from \"../errors/index.js\";\nimport { ObservableQuery } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { LocalState } from \"./LocalState.js\";\nimport { QueryInfo, shouldWriteResult } from \"./QueryInfo.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar QueryManager = function () {\n function QueryManager(_a) {\n var cache = _a.cache,\n link = _a.link,\n _b = _a.queryDeduplication,\n queryDeduplication = _b === void 0 ? false : _b,\n onBroadcast = _a.onBroadcast,\n _c = _a.ssrMode,\n ssrMode = _c === void 0 ? false : _c,\n _d = _a.clientAwareness,\n clientAwareness = _d === void 0 ? {} : _d,\n localState = _a.localState,\n assumeImmutableResults = _a.assumeImmutableResults;\n this.clientAwareness = {};\n this.queries = new Map();\n this.fetchCancelFns = new Map();\n this.transformCache = new (canUseWeakMap ? WeakMap : Map)();\n this.queryIdCounter = 1;\n this.requestIdCounter = 1;\n this.mutationIdCounter = 1;\n this.inFlightLinkObservables = new Map();\n this.cache = cache;\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({\n cache: cache\n });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n\n if (this.onBroadcast = onBroadcast) {\n this.mutationStore = Object.create(null);\n }\n }\n\n QueryManager.prototype.stop = function () {\n var _this = this;\n\n this.queries.forEach(function (_info, queryId) {\n _this.stopQueryNoBroadcast(queryId);\n });\n this.cancelPendingFetches(process.env.NODE_ENV === \"production\" ? new InvariantError(12) : new InvariantError('QueryManager stopped while query was in flight'));\n };\n\n QueryManager.prototype.cancelPendingFetches = function (error) {\n this.fetchCancelFns.forEach(function (cancel) {\n return cancel(error);\n });\n this.fetchCancelFns.clear();\n };\n\n QueryManager.prototype.mutate = function (_a) {\n var mutation = _a.mutation,\n variables = _a.variables,\n optimisticResponse = _a.optimisticResponse,\n updateQueries = _a.updateQueries,\n _b = _a.refetchQueries,\n refetchQueries = _b === void 0 ? [] : _b,\n _c = _a.awaitRefetchQueries,\n awaitRefetchQueries = _c === void 0 ? false : _c,\n updateWithProxyFn = _a.update,\n _d = _a.errorPolicy,\n errorPolicy = _d === void 0 ? 'none' : _d,\n fetchPolicy = _a.fetchPolicy,\n _e = _a.context,\n context = _e === void 0 ? {} : _e;\n return __awaiter(this, void 0, void 0, function () {\n var mutationId, mutationStoreValue, self;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n process.env.NODE_ENV === \"production\" ? invariant(mutation, 13) : invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.');\n process.env.NODE_ENV === \"production\" ? invariant(!fetchPolicy || fetchPolicy === 'no-cache', 14) : invariant(!fetchPolicy || fetchPolicy === 'no-cache', \"Mutations only support a 'no-cache' fetchPolicy. If you don't want to disable the cache, remove your fetchPolicy setting to proceed with the default mutation behavior.\");\n mutationId = this.generateMutationId();\n mutation = this.transform(mutation).document;\n variables = this.getVariables(mutation, variables);\n if (!this.transform(mutation).hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(mutation, variables, context)];\n\n case 1:\n variables = _f.sent();\n _f.label = 2;\n\n case 2:\n mutationStoreValue = this.mutationStore && (this.mutationStore[mutationId] = {\n mutation: mutation,\n variables: variables,\n loading: true,\n error: null\n });\n\n if (optimisticResponse) {\n this.markMutationOptimistic(optimisticResponse, {\n mutationId: mutationId,\n document: mutation,\n variables: variables,\n errorPolicy: errorPolicy,\n updateQueries: updateQueries,\n update: updateWithProxyFn\n });\n }\n\n this.broadcastQueries();\n self = this;\n return [2, new Promise(function (resolve, reject) {\n var storeResult;\n var error;\n self.getObservableFromLink(mutation, __assign(__assign({}, context), {\n optimisticResponse: optimisticResponse\n }), variables, false).subscribe({\n next: function next(result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors\n });\n return;\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n if (fetchPolicy !== 'no-cache') {\n try {\n self.markMutationResult({\n mutationId: mutationId,\n result: result,\n document: mutation,\n variables: variables,\n errorPolicy: errorPolicy,\n updateQueries: updateQueries,\n update: updateWithProxyFn\n });\n } catch (e) {\n error = new ApolloError({\n networkError: e\n });\n return;\n }\n }\n\n storeResult = result;\n },\n error: function error(err) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n reject(new ApolloError({\n networkError: err\n }));\n },\n complete: function complete() {\n if (error && mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = error;\n }\n\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n\n if (error) {\n reject(error);\n return;\n }\n\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult);\n }\n\n var refetchQueryPromises = [];\n\n if (isNonEmptyArray(refetchQueries)) {\n refetchQueries.forEach(function (refetchQuery) {\n if (typeof refetchQuery === 'string') {\n self.queries.forEach(function (_a) {\n var observableQuery = _a.observableQuery;\n\n if (observableQuery && observableQuery.hasObservers() && observableQuery.queryName === refetchQuery) {\n refetchQueryPromises.push(observableQuery.refetch());\n }\n });\n } else {\n var queryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only'\n };\n\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n\n refetchQueryPromises.push(self.query(queryOptions));\n }\n });\n }\n\n Promise.all(awaitRefetchQueries ? refetchQueryPromises : []).then(function () {\n if (errorPolicy === 'ignore' && storeResult && graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n\n resolve(storeResult);\n }, reject);\n }\n });\n })];\n }\n });\n });\n };\n\n QueryManager.prototype.markMutationResult = function (mutation, cache) {\n var _this = this;\n\n if (cache === void 0) {\n cache = this.cache;\n }\n\n if (shouldWriteResult(mutation.result, mutation.errorPolicy)) {\n var cacheWrites_1 = [{\n result: mutation.result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables\n }];\n var updateQueries_1 = mutation.updateQueries;\n\n if (updateQueries_1) {\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n var queryName = observableQuery && observableQuery.queryName;\n\n if (!queryName || !hasOwnProperty.call(updateQueries_1, queryName)) {\n return;\n }\n\n var updater = updateQueries_1[queryName];\n\n var _b = _this.queries.get(queryId),\n document = _b.document,\n variables = _b.variables;\n\n var _c = cache.diff({\n query: document,\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }),\n currentQueryResult = _c.result,\n complete = _c.complete;\n\n if (complete && currentQueryResult) {\n var nextQueryResult = updater(currentQueryResult, {\n mutationResult: mutation.result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables\n });\n\n if (nextQueryResult) {\n cacheWrites_1.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables\n });\n }\n }\n });\n }\n\n cache.performTransaction(function (c) {\n cacheWrites_1.forEach(function (write) {\n return c.write(write);\n });\n var update = mutation.update;\n\n if (update) {\n update(c, mutation.result);\n }\n }, null);\n }\n };\n\n QueryManager.prototype.markMutationOptimistic = function (optimisticResponse, mutation) {\n var _this = this;\n\n var data = typeof optimisticResponse === \"function\" ? optimisticResponse(mutation.variables) : optimisticResponse;\n return this.cache.recordOptimisticTransaction(function (cache) {\n try {\n _this.markMutationResult(__assign(__assign({}, mutation), {\n result: {\n data: data\n }\n }), cache);\n } catch (error) {\n process.env.NODE_ENV === \"production\" || invariant.error(error);\n }\n }, mutation.mutationId);\n };\n\n QueryManager.prototype.fetchQuery = function (queryId, options, networkStatus) {\n return this.fetchQueryObservable(queryId, options, networkStatus).promise;\n };\n\n QueryManager.prototype.getQueryStore = function () {\n var store = Object.create(null);\n this.queries.forEach(function (info, queryId) {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors\n };\n });\n return store;\n };\n\n QueryManager.prototype.resetErrors = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n };\n\n QueryManager.prototype.transform = function (document) {\n var transformCache = this.transformCache;\n\n if (!transformCache.has(document)) {\n var transformed = this.cache.transformDocument(document);\n var forLink = removeConnectionDirectiveFromDocument(this.cache.transformForLink(transformed));\n var clientQuery = this.localState.clientQuery(transformed);\n var serverQuery = forLink && this.localState.serverQuery(forLink);\n var cacheEntry_1 = {\n document: transformed,\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery: clientQuery,\n serverQuery: serverQuery,\n defaultVars: getDefaultValues(getOperationDefinition(transformed))\n };\n\n var add = function add(doc) {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry_1);\n }\n };\n\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document);\n };\n\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.transform(document).defaultVars), variables);\n };\n\n QueryManager.prototype.watchQuery = function (options) {\n options = __assign(__assign({}, options), {\n variables: this.getVariables(options.query, options.variables)\n });\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n var queryInfo = new QueryInfo(this.cache);\n var observable = new ObservableQuery({\n queryManager: this,\n queryInfo: queryInfo,\n options: options\n });\n this.queries.set(observable.queryId, queryInfo);\n queryInfo.init({\n document: options.query,\n observableQuery: observable,\n variables: options.variables\n });\n return observable;\n };\n\n QueryManager.prototype.query = function (options) {\n var _this = this;\n\n process.env.NODE_ENV === \"production\" ? invariant(options.query, 15) : invariant(options.query, 'query option is required. You must specify your GraphQL document ' + 'in the query option.');\n process.env.NODE_ENV === \"production\" ? invariant(options.query.kind === 'Document', 16) : invariant(options.query.kind === 'Document', 'You must wrap the query string in a \"gql\" tag.');\n process.env.NODE_ENV === \"production\" ? invariant(!options.returnPartialData, 17) : invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.');\n process.env.NODE_ENV === \"production\" ? invariant(!options.pollInterval, 18) : invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.');\n var queryId = this.generateQueryId();\n return this.fetchQuery(queryId, options).finally(function () {\n return _this.stopQuery(queryId);\n });\n };\n\n QueryManager.prototype.generateQueryId = function () {\n return String(this.queryIdCounter++);\n };\n\n QueryManager.prototype.generateRequestId = function () {\n return this.requestIdCounter++;\n };\n\n QueryManager.prototype.generateMutationId = function () {\n return String(this.mutationIdCounter++);\n };\n\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n };\n\n QueryManager.prototype.clearStore = function () {\n this.cancelPendingFetches(process.env.NODE_ENV === \"production\" ? new InvariantError(19) : new InvariantError('Store reset while query was in flight (not completed in link chain)'));\n this.queries.forEach(function (queryInfo) {\n if (queryInfo.observableQuery) {\n queryInfo.networkStatus = NetworkStatus.loading;\n } else {\n queryInfo.stop();\n }\n });\n\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n\n return this.cache.reset();\n };\n\n QueryManager.prototype.resetStore = function () {\n var _this = this;\n\n return this.clearStore().then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n\n if (includeStandby === void 0) {\n includeStandby = false;\n }\n\n var observableQueryPromises = [];\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n\n if (observableQuery && observableQuery.hasObservers()) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n\n if (fetchPolicy !== 'cache-only' && (includeStandby || fetchPolicy !== 'standby')) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n\n _this.getQuery(queryId).setDiff(null);\n }\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n\n QueryManager.prototype.setObservableQuery = function (observableQuery) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n };\n\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n\n var query = _a.query,\n fetchPolicy = _a.fetchPolicy,\n errorPolicy = _a.errorPolicy,\n variables = _a.variables,\n _b = _a.context,\n context = _b === void 0 ? {} : _b;\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n var makeObservable = function makeObservable(variables) {\n return _this.getObservableFromLink(query, context, variables, false).map(function (result) {\n if (fetchPolicy !== 'no-cache') {\n if (shouldWriteResult(result, errorPolicy)) {\n _this.cache.write({\n query: query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables\n });\n }\n\n _this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors\n });\n }\n\n return result;\n });\n };\n\n if (this.transform(query).hasClientExports) {\n var observablePromise_1 = this.localState.addExportedVariables(query, variables, context).then(makeObservable);\n return new Observable(function (observer) {\n var sub = null;\n observablePromise_1.then(function (observable) {\n return sub = observable.subscribe(observer);\n }, observer.error);\n return function () {\n return sub && sub.unsubscribe();\n };\n });\n }\n\n return makeObservable(variables);\n };\n\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n };\n\n QueryManager.prototype.removeQuery = function (queryId) {\n this.fetchCancelFns.delete(queryId);\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n };\n\n QueryManager.prototype.broadcastQueries = function () {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach(function (info) {\n return info.notify();\n });\n };\n\n QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, deduplication) {\n var _this = this;\n\n var _a;\n\n if (deduplication === void 0) {\n deduplication = (_a = context === null || context === void 0 ? void 0 : context.queryDeduplication) !== null && _a !== void 0 ? _a : this.queryDeduplication;\n }\n\n var observable;\n var serverQuery = this.transform(query).serverQuery;\n\n if (serverQuery) {\n var _b = this,\n inFlightLinkObservables_1 = _b.inFlightLinkObservables,\n link = _b.link;\n\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), {\n forceFetch: !deduplication\n }))\n };\n context = operation.context;\n\n if (deduplication) {\n var byVariables_1 = inFlightLinkObservables_1.get(serverQuery) || new Map();\n inFlightLinkObservables_1.set(serverQuery, byVariables_1);\n var varJson_1 = JSON.stringify(variables);\n observable = byVariables_1.get(varJson_1);\n\n if (!observable) {\n var concast = new Concast([execute(link, operation)]);\n byVariables_1.set(varJson_1, observable = concast);\n concast.cleanup(function () {\n if (byVariables_1.delete(varJson_1) && byVariables_1.size < 1) {\n inFlightLinkObservables_1.delete(serverQuery);\n }\n });\n }\n } else {\n observable = new Concast([execute(link, operation)]);\n }\n } else {\n observable = new Concast([Observable.of({\n data: {}\n })]);\n context = this.prepareContext(context);\n }\n\n var clientQuery = this.transform(query).clientQuery;\n\n if (clientQuery) {\n observable = asyncMap(observable, function (result) {\n return _this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context: context,\n variables: variables\n });\n });\n }\n\n return observable;\n };\n\n QueryManager.prototype.getResultsFromLink = function (queryInfo, allowCacheWrite, options) {\n var requestId = queryInfo.lastRequestId = this.generateRequestId();\n return asyncMap(this.getObservableFromLink(queryInfo.document, options.context, options.variables), function (result) {\n var hasErrors = isNonEmptyArray(result.errors);\n\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: result.errors\n }));\n }\n\n queryInfo.markResult(result, options, allowCacheWrite);\n queryInfo.markReady();\n }\n\n var aqr = {\n data: result.data,\n loading: false,\n networkStatus: queryInfo.networkStatus || NetworkStatus.ready\n };\n\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = result.errors;\n }\n\n return aqr;\n }, function (networkError) {\n var error = isApolloError(networkError) ? networkError : new ApolloError({\n networkError: networkError\n });\n\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n });\n };\n\n QueryManager.prototype.fetchQueryObservable = function (queryId, options, networkStatus) {\n var _this = this;\n\n if (networkStatus === void 0) {\n networkStatus = NetworkStatus.loading;\n }\n\n var query = this.transform(options.query).document;\n var variables = this.getVariables(query, options.variables);\n var queryInfo = this.getQuery(queryId);\n var oldNetworkStatus = queryInfo.networkStatus;\n var _a = options.fetchPolicy,\n fetchPolicy = _a === void 0 ? \"cache-first\" : _a,\n _b = options.errorPolicy,\n errorPolicy = _b === void 0 ? \"none\" : _b,\n _c = options.returnPartialData,\n returnPartialData = _c === void 0 ? false : _c,\n _d = options.notifyOnNetworkStatusChange,\n notifyOnNetworkStatusChange = _d === void 0 ? false : _d,\n _e = options.context,\n context = _e === void 0 ? {} : _e;\n var mightUseNetwork = fetchPolicy === \"cache-first\" || fetchPolicy === \"cache-and-network\" || fetchPolicy === \"network-only\" || fetchPolicy === \"no-cache\";\n\n if (mightUseNetwork && notifyOnNetworkStatusChange && typeof oldNetworkStatus === \"number\" && oldNetworkStatus !== networkStatus && isNetworkRequestInFlight(networkStatus)) {\n if (fetchPolicy !== \"cache-first\") {\n fetchPolicy = \"cache-and-network\";\n }\n\n returnPartialData = true;\n }\n\n var normalized = Object.assign({}, options, {\n query: query,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n returnPartialData: returnPartialData,\n notifyOnNetworkStatusChange: notifyOnNetworkStatusChange,\n context: context\n });\n\n var fromVariables = function fromVariables(variables) {\n normalized.variables = variables;\n return _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);\n };\n\n this.fetchCancelFns.set(queryId, function (reason) {\n Promise.resolve().then(function () {\n return concast.cancel(reason);\n });\n });\n var concast = new Concast(this.transform(normalized.query).hasClientExports ? this.localState.addExportedVariables(normalized.query, normalized.variables, normalized.context).then(fromVariables) : fromVariables(normalized.variables));\n concast.cleanup(function () {\n _this.fetchCancelFns.delete(queryId);\n\n var nextFetchPolicy = options.nextFetchPolicy;\n\n if (nextFetchPolicy) {\n options.nextFetchPolicy = void 0;\n options.fetchPolicy = typeof nextFetchPolicy === \"function\" ? nextFetchPolicy.call(options, options.fetchPolicy || \"cache-first\") : nextFetchPolicy;\n }\n });\n return concast;\n };\n\n QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, options, networkStatus) {\n var _this = this;\n\n var query = options.query,\n variables = options.variables,\n fetchPolicy = options.fetchPolicy,\n errorPolicy = options.errorPolicy,\n returnPartialData = options.returnPartialData,\n context = options.context;\n queryInfo.init({\n document: query,\n variables: variables,\n networkStatus: networkStatus\n });\n\n var readCache = function readCache() {\n return queryInfo.getDiff(variables);\n };\n\n var resultsFromCache = function resultsFromCache(diff, networkStatus) {\n if (networkStatus === void 0) {\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading;\n }\n\n var data = diff.result;\n\n if (process.env.NODE_ENV !== 'production' && isNonEmptyArray(diff.missing) && !equal(data, {}) && !returnPartialData) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"Missing cache result fields: \" + diff.missing.map(function (m) {\n return m.path.join('.');\n }).join(', '), diff.missing);\n }\n\n var fromData = function fromData(data) {\n return Observable.of(__assign({\n data: data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus\n }, diff.complete ? null : {\n partial: true\n }));\n };\n\n if (_this.transform(query).hasForcedResolvers) {\n return _this.localState.runResolvers({\n document: query,\n remoteResult: {\n data: data\n },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true\n }).then(function (resolved) {\n return fromData(resolved.data);\n });\n }\n\n return fromData(data);\n };\n\n var resultsFromLink = function resultsFromLink(allowCacheWrite) {\n return _this.getResultsFromLink(queryInfo, allowCacheWrite, {\n variables: variables,\n context: context,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy\n });\n };\n\n switch (fetchPolicy) {\n default:\n case \"cache-first\":\n {\n var diff = readCache();\n\n if (diff.complete) {\n return [resultsFromCache(diff, queryInfo.markReady())];\n }\n\n if (returnPartialData) {\n return [resultsFromCache(diff), resultsFromLink(true)];\n }\n\n return [resultsFromLink(true)];\n }\n\n case \"cache-and-network\":\n {\n var diff = readCache();\n\n if (diff.complete || returnPartialData) {\n return [resultsFromCache(diff), resultsFromLink(true)];\n }\n\n return [resultsFromLink(true)];\n }\n\n case \"cache-only\":\n return [resultsFromCache(readCache(), queryInfo.markReady())];\n\n case \"network-only\":\n return [resultsFromLink(true)];\n\n case \"no-cache\":\n return [resultsFromLink(false)];\n\n case \"standby\":\n return [];\n }\n };\n\n QueryManager.prototype.getQuery = function (queryId) {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this.cache));\n }\n\n return this.queries.get(queryId);\n };\n\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) {\n context = {};\n }\n\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign({}, newContext), {\n clientAwareness: this.clientAwareness\n });\n };\n\n return QueryManager;\n}();\n\nexport { QueryManager };","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport { compact } from \"../utilities/index.js\";\nimport { version } from \"../version.js\";\nimport { HttpLink } from \"../link/http/index.js\";\nimport { QueryManager } from \"./QueryManager.js\";\nimport { LocalState } from \"./LocalState.js\";\nvar hasSuggestedDevtools = false;\nexport function mergeOptions(defaults, options) {\n return compact(defaults, options, options.variables && {\n variables: __assign(__assign({}, defaults.variables), options.variables)\n });\n}\n\nvar ApolloClient = function () {\n function ApolloClient(options) {\n var _this = this;\n\n this.defaultOptions = {};\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n var uri = options.uri,\n credentials = options.credentials,\n headers = options.headers,\n cache = options.cache,\n _a = options.ssrMode,\n ssrMode = _a === void 0 ? false : _a,\n _b = options.ssrForceFetchDelay,\n ssrForceFetchDelay = _b === void 0 ? 0 : _b,\n _c = options.connectToDevTools,\n connectToDevTools = _c === void 0 ? typeof window === 'object' && !window.__APOLLO_CLIENT__ && process.env.NODE_ENV !== 'production' : _c,\n _d = options.queryDeduplication,\n queryDeduplication = _d === void 0 ? true : _d,\n defaultOptions = options.defaultOptions,\n _e = options.assumeImmutableResults,\n assumeImmutableResults = _e === void 0 ? false : _e,\n resolvers = options.resolvers,\n typeDefs = options.typeDefs,\n fragmentMatcher = options.fragmentMatcher,\n clientAwarenessName = options.name,\n clientAwarenessVersion = options.version;\n var link = options.link;\n\n if (!link) {\n link = uri ? new HttpLink({\n uri: uri,\n credentials: credentials,\n headers: headers\n }) : ApolloLink.empty();\n }\n\n if (!cache) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(9) : new InvariantError(\"To initialize Apollo Client, you must specify a 'cache' property \" + \"in the options object. \\n\" + \"For more information, please visit: https://go.apollo.dev/c/docs\");\n }\n\n this.link = link;\n this.cache = cache;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || {};\n this.typeDefs = typeDefs;\n\n if (ssrForceFetchDelay) {\n setTimeout(function () {\n return _this.disableNetworkFetches = false;\n }, ssrForceFetchDelay);\n }\n\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n\n if (connectToDevTools && typeof window === 'object') {\n window.__APOLLO_CLIENT__ = this;\n }\n\n if (!hasSuggestedDevtools && process.env.NODE_ENV !== 'production') {\n hasSuggestedDevtools = true;\n\n if (typeof window !== 'undefined' && window.document && window.top === window.self && !window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__) {\n var nav = window.navigator;\n var ua = nav && nav.userAgent;\n var url = void 0;\n\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url = \"https://chrome.google.com/webstore/detail/\" + \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n } else if (ua.indexOf(\"Firefox/\") > -1) {\n url = \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n }\n }\n\n if (url) {\n invariant.log(\"Download the Apollo DevTools for a better development \" + \"experience: \" + url);\n }\n }\n }\n\n this.version = version;\n this.localState = new LocalState({\n cache: cache,\n client: this,\n resolvers: resolvers,\n fragmentMatcher: fragmentMatcher\n });\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n queryDeduplication: queryDeduplication,\n ssrMode: ssrMode,\n clientAwareness: {\n name: clientAwarenessName,\n version: clientAwarenessVersion\n },\n localState: this.localState,\n assumeImmutableResults: assumeImmutableResults,\n onBroadcast: connectToDevTools ? function () {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager.getQueryStore(),\n mutations: _this.queryManager.mutationStore || {}\n },\n dataWithOptimisticResults: _this.cache.extract(true)\n });\n }\n } : void 0\n });\n }\n\n ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n\n if (this.disableNetworkFetches && (options.fetchPolicy === 'network-only' || options.fetchPolicy === 'cache-and-network')) {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n\n return this.queryManager.watchQuery(options);\n };\n\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n\n process.env.NODE_ENV === \"production\" ? invariant(options.fetchPolicy !== 'cache-and-network', 10) : invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' + 'client.query can only return a single result. Please use client.watchQuery ' + 'to receive multiple results from the cache and the network, or consider ' + 'using a different fetchPolicy, such as cache-first or network-only.');\n\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n\n return this.queryManager.query(options);\n };\n\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n\n return this.queryManager.mutate(options);\n };\n\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.cache.readQuery(options, optimistic);\n };\n\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.cache.readFragment(options, optimistic);\n };\n\n ApolloClient.prototype.writeQuery = function (options) {\n this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n };\n\n ApolloClient.prototype.writeFragment = function (options) {\n this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n };\n\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore();\n }).then(function () {\n return Promise.all(_this.resetStoreCallbacks.map(function (fn) {\n return fn();\n }));\n }).then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore();\n }).then(function () {\n return Promise.all(_this.clearStoreCallbacks.map(function (fn) {\n return fn();\n }));\n });\n };\n\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n\n ApolloClient.prototype.setLink = function (newLink) {\n this.link = this.queryManager.link = newLink;\n };\n\n return ApolloClient;\n}();\n\nexport { ApolloClient };","export var version = '3.3.21';","import { NetworkStatus } from \"./networkStatus.js\";\nimport { compact } from \"../utilities/index.js\";\nimport { invariant } from 'ts-invariant';\n\nvar Reobserver = function () {\n function Reobserver(observer, options, fetch, shouldFetch) {\n this.observer = observer;\n this.options = options;\n this.fetch = fetch;\n this.shouldFetch = shouldFetch;\n }\n\n Reobserver.prototype.reobserve = function (newOptions, newNetworkStatus) {\n if (newOptions) {\n this.updateOptions(newOptions);\n } else {\n this.updatePolling();\n }\n\n var concast = this.fetch(this.options, newNetworkStatus);\n\n if (this.concast) {\n this.concast.removeObserver(this.observer, true);\n }\n\n concast.addObserver(this.observer);\n return (this.concast = concast).promise;\n };\n\n Reobserver.prototype.updateOptions = function (newOptions) {\n Object.assign(this.options, compact(newOptions));\n this.updatePolling();\n return this;\n };\n\n Reobserver.prototype.stop = function () {\n if (this.concast) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n }\n\n if (this.pollingInfo) {\n clearTimeout(this.pollingInfo.timeout);\n this.options.pollInterval = 0;\n this.updatePolling();\n }\n };\n\n Reobserver.prototype.updatePolling = function () {\n var _this = this;\n\n var _a = this,\n pollingInfo = _a.pollingInfo,\n pollInterval = _a.options.pollInterval;\n\n if (!pollInterval) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n\n return;\n }\n\n if (pollingInfo && pollingInfo.interval === pollInterval) {\n return;\n }\n\n process.env.NODE_ENV === \"production\" ? invariant(pollInterval, 20) : invariant(pollInterval, 'Attempted to start a polling query without a polling interval.');\n\n if (this.shouldFetch === false) {\n return;\n }\n\n var info = pollingInfo || (this.pollingInfo = {});\n info.interval = pollInterval;\n\n var maybeFetch = function maybeFetch() {\n if (_this.pollingInfo) {\n if (_this.shouldFetch && _this.shouldFetch()) {\n _this.reobserve({\n fetchPolicy: \"network-only\",\n nextFetchPolicy: _this.options.fetchPolicy || \"cache-first\"\n }, NetworkStatus.poll).then(poll, poll);\n } else {\n poll();\n }\n }\n\n ;\n };\n\n var poll = function poll() {\n var info = _this.pollingInfo;\n\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n\n poll();\n };\n\n return Reobserver;\n}();\n\nexport { Reobserver };","import \"core-js/modules/es.promise.finally.js\";\nimport { __assign, __extends } from \"tslib\";\nimport { invariant } from 'ts-invariant';\nimport { equal } from '@wry/equality';\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { cloneDeep, getOperationDefinition, Observable, iterateObserversSafely, isNonEmptyArray, fixObservableSubclass } from \"../utilities/index.js\";\nimport { Reobserver } from \"./Reobserver.js\";\nvar warnedAboutUpdateQuery = false;\n\nvar ObservableQuery = function (_super) {\n __extends(ObservableQuery, _super);\n\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager,\n queryInfo = _a.queryInfo,\n options = _a.options;\n\n var _this = _super.call(this, function (observer) {\n return _this.onSubscribe(observer);\n }) || this;\n\n _this.observers = new Set();\n _this.subscriptions = new Set();\n _this.observer = {\n next: function next(result) {\n if (_this.lastError || _this.isDifferentFromLastResult(result)) {\n _this.updateLastResult(result);\n\n iterateObserversSafely(_this.observers, 'next', result);\n }\n },\n error: function error(_error) {\n _this.updateLastResult(__assign(__assign({}, _this.lastResult), {\n error: _error,\n errors: _error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false\n }));\n\n iterateObserversSafely(_this.observers, 'error', _this.lastError = _error);\n }\n };\n _this.isTornDown = false;\n _this.options = options;\n _this.queryId = queryManager.generateQueryId();\n var opDef = getOperationDefinition(options.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n _this.queryManager = queryManager;\n _this.queryInfo = queryInfo;\n return _this;\n }\n\n Object.defineProperty(ObservableQuery.prototype, \"variables\", {\n get: function get() {\n return this.options.variables;\n },\n enumerable: false,\n configurable: true\n });\n\n ObservableQuery.prototype.result = function () {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function next(result) {\n resolve(result);\n\n _this.observers.delete(observer);\n\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject\n };\n\n var subscription = _this.subscribe(observer);\n });\n };\n\n ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {\n if (saveAsLastResult === void 0) {\n saveAsLastResult = true;\n }\n\n var lastResult = this.lastResult;\n var networkStatus = this.queryInfo.networkStatus || lastResult && lastResult.networkStatus || NetworkStatus.ready;\n\n var result = __assign(__assign({}, lastResult), {\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus\n });\n\n if (this.isTornDown) {\n return result;\n }\n\n var _a = this.options.fetchPolicy,\n fetchPolicy = _a === void 0 ? 'cache-first' : _a;\n\n if (fetchPolicy === 'no-cache' || fetchPolicy === 'network-only') {\n delete result.partial;\n } else if (!result.data || !this.queryManager.transform(this.options.query).hasForcedResolvers) {\n var diff = this.queryInfo.getDiff();\n result.data = diff.complete || this.options.returnPartialData ? diff.result : void 0;\n\n if (diff.complete) {\n if (result.networkStatus === NetworkStatus.loading && (fetchPolicy === 'cache-first' || fetchPolicy === 'cache-only')) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n\n delete result.partial;\n } else {\n result.partial = true;\n }\n }\n\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n\n return result;\n };\n\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult) {\n return !equal(this.lastResultSnapshot, newResult);\n };\n\n ObservableQuery.prototype.getLastResult = function () {\n return this.lastResult;\n };\n\n ObservableQuery.prototype.getLastError = function () {\n return this.lastError;\n };\n\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.lastResult;\n delete this.lastResultSnapshot;\n delete this.lastError;\n this.isTornDown = false;\n };\n\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n this.queryManager.resetErrors(this.queryId);\n };\n\n ObservableQuery.prototype.refetch = function (variables) {\n var reobserveOptions = {\n pollInterval: 0\n };\n var fetchPolicy = this.options.fetchPolicy;\n\n if (fetchPolicy !== 'no-cache' && fetchPolicy !== 'cache-and-network') {\n reobserveOptions.fetchPolicy = 'network-only';\n reobserveOptions.nextFetchPolicy = fetchPolicy || \"cache-first\";\n }\n\n if (variables && !equal(this.options.variables, variables)) {\n reobserveOptions.variables = this.options.variables = __assign(__assign({}, this.options.variables), variables);\n }\n\n return this.newReobserver(false).reobserve(reobserveOptions, NetworkStatus.refetch);\n };\n\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n\n var combinedOptions = __assign(__assign({}, fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign({}, this.options), fetchMoreOptions), {\n variables: __assign(__assign({}, this.options.variables), fetchMoreOptions.variables)\n })), {\n fetchPolicy: \"no-cache\"\n });\n\n var qid = this.queryManager.generateQueryId();\n\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.queryInfo.networkStatus = NetworkStatus.fetchMore;\n this.observe();\n }\n\n return this.queryManager.fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore).then(function (fetchMoreResult) {\n var data = fetchMoreResult.data;\n var updateQuery = fetchMoreOptions.updateQuery;\n\n if (updateQuery) {\n if (process.env.NODE_ENV !== \"production\" && !warnedAboutUpdateQuery) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"The updateQuery callback for fetchMore is deprecated, and will be removed\\nin the next major version of Apollo Client.\\n\\nPlease convert updateQuery functions to field policies with appropriate\\nread and merge functions, or use/adapt a helper function (such as\\nconcatPagination, offsetLimitPagination, or relayStylePagination) from\\n@apollo/client/utilities.\\n\\nThe field policy system handles pagination more effectively than a\\nhand-written updateQuery function, and you only need to define the policy\\nonce, rather than every time you call fetchMore.\");\n warnedAboutUpdateQuery = true;\n }\n\n _this.updateQuery(function (previous) {\n return updateQuery(previous, {\n fetchMoreResult: data,\n variables: combinedOptions.variables\n });\n });\n } else {\n _this.queryManager.cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: data\n });\n }\n\n return fetchMoreResult;\n }).finally(function () {\n _this.queryManager.stopQuery(qid);\n\n _this.reobserve();\n });\n };\n\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n\n var subscription = this.queryManager.startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context\n }).subscribe({\n next: function next(subscriptionData) {\n var updateQuery = options.updateQuery;\n\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables\n });\n });\n }\n },\n error: function error(err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n\n process.env.NODE_ENV === \"production\" || invariant.error('Unhandled GraphQL subscription error', err);\n }\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n\n ObservableQuery.prototype.setOptions = function (newOptions) {\n return this.reobserve(newOptions);\n };\n\n ObservableQuery.prototype.setVariables = function (variables) {\n if (equal(this.variables, variables)) {\n return this.observers.size ? this.result() : Promise.resolve();\n }\n\n this.options.variables = variables;\n\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n var _a = this.options.fetchPolicy,\n fetchPolicy = _a === void 0 ? 'cache-first' : _a;\n var reobserveOptions = {\n fetchPolicy: fetchPolicy,\n variables: variables\n };\n\n if (fetchPolicy !== 'cache-first' && fetchPolicy !== 'no-cache' && fetchPolicy !== 'network-only') {\n reobserveOptions.fetchPolicy = 'cache-and-network';\n reobserveOptions.nextFetchPolicy = fetchPolicy;\n }\n\n return this.reobserve(reobserveOptions, NetworkStatus.setVariables);\n };\n\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var _a;\n\n var queryManager = this.queryManager;\n var result = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n previousResult: (_a = this.lastResult) === null || _a === void 0 ? void 0 : _a.data,\n returnPartialData: true,\n optimistic: false\n }).result;\n var newResult = mapFn(result, {\n variables: this.variables\n });\n\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables\n });\n queryManager.broadcastQueries();\n }\n };\n\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n this.getReobserver().updateOptions({\n pollInterval: pollInterval\n });\n };\n\n ObservableQuery.prototype.stopPolling = function () {\n if (this.reobserver) {\n this.reobserver.updateOptions({\n pollInterval: 0\n });\n }\n };\n\n ObservableQuery.prototype.updateLastResult = function (newResult) {\n var previousResult = this.lastResult;\n this.lastResult = newResult;\n this.lastResultSnapshot = this.queryManager.assumeImmutableResults ? newResult : cloneDeep(newResult);\n\n if (!isNonEmptyArray(newResult.errors)) {\n delete this.lastError;\n }\n\n return previousResult;\n };\n\n ObservableQuery.prototype.onSubscribe = function (observer) {\n var _this = this;\n\n if (observer === this.observer) {\n return function () {};\n }\n\n try {\n var subObserver = observer._subscription._observer;\n\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch (_a) {}\n\n var first = !this.observers.size;\n this.observers.add(observer);\n\n if (this.lastError) {\n observer.error && observer.error(this.lastError);\n } else if (this.lastResult) {\n observer.next && observer.next(this.lastResult);\n }\n\n if (first) {\n this.reobserve().catch(function (_) {});\n }\n\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n };\n\n ObservableQuery.prototype.getReobserver = function () {\n return this.reobserver || (this.reobserver = this.newReobserver(true));\n };\n\n ObservableQuery.prototype.newReobserver = function (shareOptions) {\n var _this = this;\n\n var _a = this,\n queryManager = _a.queryManager,\n queryId = _a.queryId;\n\n queryManager.setObservableQuery(this);\n return new Reobserver(this.observer, shareOptions ? this.options : __assign({}, this.options), function (currentOptions, newNetworkStatus) {\n queryManager.setObservableQuery(_this);\n return queryManager.fetchQueryObservable(queryId, currentOptions, newNetworkStatus);\n }, !queryManager.ssrMode && function () {\n return !isNetworkRequestInFlight(_this.queryInfo.networkStatus);\n });\n };\n\n ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {\n this.isTornDown = false;\n return this.getReobserver().reobserve(newOptions, newNetworkStatus);\n };\n\n ObservableQuery.prototype.observe = function () {\n this.observer.next(this.getCurrentResult(false));\n };\n\n ObservableQuery.prototype.hasObservers = function () {\n return this.observers.size > 0;\n };\n\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isTornDown) return;\n\n if (this.reobserver) {\n this.reobserver.stop();\n delete this.reobserver;\n }\n\n this.subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n };\n\n return ObservableQuery;\n}(Observable);\n\nexport { ObservableQuery };\nfixObservableSubclass(ObservableQuery);\n\nfunction defaultSubscriptionObserverErrorCallback(error) {\n process.env.NODE_ENV === \"production\" || invariant.error('Unhandled error', error.message, error.stack);\n}","export { ApolloClient, mergeOptions } from \"./ApolloClient.js\";\nexport { ObservableQuery } from \"./ObservableQuery.js\";\nexport { NetworkStatus } from \"./networkStatus.js\";\nexport * from \"./types.js\";\nexport { isApolloError, ApolloError } from \"../errors/index.js\";\nexport { Cache, ApolloCache, InMemoryCache, MissingFieldError, defaultDataIdFromObject, makeVar } from \"../cache/index.js\";\nexport * from \"../cache/inmemory/types.js\";\nexport * from \"../link/core/index.js\";\nexport * from \"../link/http/index.js\";\nexport { fromError, toPromise, fromPromise, throwServerError } from \"../link/utils/index.js\";\nexport { Observable, isReference, makeReference } from \"../utilities/index.js\";\nimport { setVerbosity } from \"ts-invariant\";\nexport { setVerbosity as setLogVerbosity };\nsetVerbosity(\"log\");\nexport { default as gql, resetCaches, disableFragmentWarnings, enableExperimentalFragmentVariables, disableExperimentalFragmentVariables } from 'graphql-tag';","export var NetworkStatus;\n\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\n\nexport function isNetworkRequestInFlight(networkStatus) {\n return networkStatus ? networkStatus < 7 : false;\n}","import { __extends } from \"tslib\";\nimport { isNonEmptyArray } from \"../utilities/index.js\";\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\n\nvar generateErrorMessage = function generateErrorMessage(err) {\n var message = '';\n\n if (isNonEmptyArray(err.graphQLErrors)) {\n err.graphQLErrors.forEach(function (graphQLError) {\n var errorMessage = graphQLError ? graphQLError.message : 'Error message not found.';\n message += errorMessage + \"\\n\";\n });\n }\n\n if (err.networkError) {\n message += err.networkError.message + \"\\n\";\n }\n\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nvar ApolloError = function (_super) {\n __extends(ApolloError, _super);\n\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors,\n networkError = _a.networkError,\n errorMessage = _a.errorMessage,\n extraInfo = _a.extraInfo;\n\n var _this = _super.call(this, errorMessage) || this;\n\n _this.graphQLErrors = graphQLErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n\n return ApolloError;\n}(Error);\n\nexport { ApolloError };","import { __rest } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nexport function setContext(setter) {\n return new ApolloLink(function (operation, forward) {\n var request = __rest(operation, []);\n\n return new Observable(function (observer) {\n var handle;\n var closed = false;\n Promise.resolve(request).then(function (req) {\n return setter(req, operation.getContext());\n }).then(operation.setContext).then(function () {\n if (closed) return;\n handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer)\n });\n }).catch(observer.error.bind(observer));\n return function () {\n closed = true;\n if (handle) handle.unsubscribe();\n };\n });\n });\n}","import { __extends } from \"tslib\";\nimport { InvariantError, invariant } from 'ts-invariant';\nimport { Observable } from \"../../utilities/index.js\";\nimport { validateOperation, createOperation, transformOperation } from \"../utils/index.js\";\n\nfunction passthrough(op, forward) {\n return forward ? forward(op) : Observable.of();\n}\n\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\n\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\n\nvar LinkError = function (_super) {\n __extends(LinkError, _super);\n\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n\n _this.link = link;\n return _this;\n }\n\n return LinkError;\n}(Error);\n\nvar ApolloLink = function () {\n function ApolloLink(request) {\n if (request) this.request = request;\n }\n\n ApolloLink.empty = function () {\n return new ApolloLink(function () {\n return Observable.of();\n });\n };\n\n ApolloLink.from = function (links) {\n if (links.length === 0) return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) {\n return x.concat(y);\n });\n };\n\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation) ? leftLink.request(operation) || Observable.of() : rightLink.request(operation) || Observable.of();\n });\n } else {\n return new ApolloLink(function (operation, forward) {\n return test(operation) ? leftLink.request(operation, forward) || Observable.of() : rightLink.request(operation, forward) || Observable.of();\n });\n }\n };\n\n ApolloLink.execute = function (link, operation) {\n return link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of();\n };\n\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n\n if (isTerminating(firstLink)) {\n process.env.NODE_ENV === \"production\" || invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n\n var nextLink = toLink(second);\n\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) {\n return nextLink.request(op) || Observable.of();\n }) || Observable.of();\n });\n } else {\n return new ApolloLink(function (operation, forward) {\n return firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of();\n });\n }\n };\n\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n\n ApolloLink.prototype.request = function (operation, forward) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(21) : new InvariantError('request is not implemented');\n };\n\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n return false;\n }\n\n throw error;\n };\n\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n\n return ApolloLink;\n}();\n\nexport { ApolloLink };","import { __assign } from \"tslib\";\nexport function createOperation(starting, operation) {\n var context = __assign({}, starting);\n\n var setContext = function setContext(next) {\n if (typeof next === 'function') {\n context = __assign(__assign({}, context), next(context));\n } else {\n context = __assign(__assign({}, context), next);\n }\n };\n\n var getContext = function getContext() {\n return __assign({}, context);\n };\n\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext\n });\n return operation;\n}","import { getOperationName } from \"../../utilities/index.js\";\nexport function transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query\n };\n\n if (!transformedOperation.operationName) {\n transformedOperation.operationName = typeof transformedOperation.query !== 'string' ? getOperationName(transformedOperation.query) || undefined : '';\n }\n\n return transformedOperation;\n}","import { InvariantError } from 'ts-invariant';\nexport function validateOperation(operation) {\n var OPERATION_FIELDS = ['query', 'operationName', 'variables', 'extensions', 'context'];\n\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(26) : new InvariantError(\"illegal argument: \" + key);\n }\n }\n\n return operation;\n}","import { ApolloLink } from \"./ApolloLink.js\";\nexport var concat = ApolloLink.concat;","import { ApolloLink } from \"./ApolloLink.js\";\nexport var empty = ApolloLink.empty;","import { ApolloLink } from \"./ApolloLink.js\";\nexport var execute = ApolloLink.execute;","import { ApolloLink } from \"./ApolloLink.js\";\nexport var from = ApolloLink.from;","import { ApolloLink } from \"./ApolloLink.js\";\nexport var split = ApolloLink.split;","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\n\nvar HttpLink = function (_super) {\n __extends(HttpLink, _super);\n\n function HttpLink(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _this = _super.call(this, createHttpLink(options).request) || this;\n\n _this.options = options;\n return _this;\n }\n\n return HttpLink;\n}(ApolloLink);\n\nexport { HttpLink };","import { InvariantError } from 'ts-invariant';\nexport var checkFetcher = function checkFetcher(fetcher) {\n if (!fetcher && typeof fetch === 'undefined') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(22) : new InvariantError(\"\\n\\\"fetch\\\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\\n\\nimport fetch from 'cross-fetch';\\nimport { ApolloClient, HttpLink } from '@apollo/client';\\nconst client = new ApolloClient({\\n link: new HttpLink({ uri: '/graphql', fetch })\\n});\\n \");\n }\n};","import { __assign, __rest } from \"tslib\";\nimport { visit } from 'graphql';\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport { parseAndCheckHttpResponse } from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport { selectHttpOptionsAndBody, fallbackHttpConfig } from \"./selectHttpOptionsAndBody.js\";\nimport { createSignalIfSupported } from \"./createSignalIfSupported.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError } from \"../utils/index.js\";\nexport var createHttpLink = function createHttpLink(linkOptions) {\n if (linkOptions === void 0) {\n linkOptions = {};\n }\n\n var _a = linkOptions.uri,\n uri = _a === void 0 ? '/graphql' : _a,\n fetcher = linkOptions.fetch,\n includeExtensions = linkOptions.includeExtensions,\n useGETForQueries = linkOptions.useGETForQueries,\n _b = linkOptions.includeUnusedVariables,\n includeUnusedVariables = _b === void 0 ? false : _b,\n requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"includeExtensions\", \"useGETForQueries\", \"includeUnusedVariables\"]);\n\n checkFetcher(fetcher);\n\n if (!fetcher) {\n fetcher = fetch;\n }\n\n var linkConfig = {\n http: {\n includeExtensions: includeExtensions\n },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n var clientAwarenessHeaders = {};\n\n if (context.clientAwareness) {\n var _a = context.clientAwareness,\n name_1 = _a.name,\n version = _a.version;\n\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers);\n\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders\n };\n\n var _b = selectHttpOptionsAndBody(operation, fallbackHttpConfig, linkConfig, contextConfig),\n options = _b.options,\n body = _b.body;\n\n if (body.variables && !includeUnusedVariables) {\n var unusedNames_1 = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable: function Variable(node, _key, parent) {\n if (parent && parent.kind !== 'VariableDefinition') {\n unusedNames_1.delete(node.name.value);\n }\n }\n });\n\n if (unusedNames_1.size) {\n body.variables = __assign({}, body.variables);\n unusedNames_1.forEach(function (name) {\n delete body.variables[name];\n });\n }\n }\n\n var controller;\n\n if (!options.signal) {\n var _c = createSignalIfSupported(),\n _controller = _c.controller,\n signal = _c.signal;\n\n controller = _controller;\n if (controller) options.signal = signal;\n }\n\n var definitionIsMutation = function definitionIsMutation(d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n\n if (useGETForQueries && !operation.query.definitions.some(definitionIsMutation)) {\n options.method = 'GET';\n }\n\n if (options.method === 'GET') {\n var _d = rewriteURIForGET(chosenURI, body),\n newURI = _d.newURI,\n parseError = _d.parseError;\n\n if (parseError) {\n return fromError(parseError);\n }\n\n chosenURI = newURI;\n } else {\n try {\n options.body = serializeFetchParameter(body, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable(function (observer) {\n fetcher(chosenURI, options).then(function (response) {\n operation.setContext({\n response: response\n });\n return response;\n }).then(parseAndCheckHttpResponse(operation)).then(function (result) {\n observer.next(result);\n observer.complete();\n return result;\n }).catch(function (err) {\n if (err.name === 'AbortError') return;\n\n if (err.result && err.result.errors && err.result.data) {\n observer.next(err.result);\n }\n\n observer.error(err);\n });\n return function () {\n if (controller) controller.abort();\n };\n });\n });\n};","export var createSignalIfSupported = function createSignalIfSupported() {\n if (typeof AbortController === 'undefined') return {\n controller: false,\n signal: false\n };\n var controller = new AbortController();\n var signal = controller.signal;\n return {\n controller: controller,\n signal: signal\n };\n};","import { throwServerError } from \"../utils/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) {\n return response.text().then(function (bodyText) {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n var parseError = err;\n parseError.name = 'ServerParseError';\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n }).then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \" + response.status);\n }\n\n if (!Array.isArray(result) && !hasOwnProperty.call(result, 'data') && !hasOwnProperty.call(result, 'errors')) {\n throwServerError(response, result, \"Server response was missing for query '\" + (Array.isArray(operations) ? operations.map(function (op) {\n return op.operationName;\n }) : operations.operationName) + \"'.\");\n }\n\n return result;\n });\n };\n}","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nexport function rewriteURIForGET(chosenURI, body) {\n var queryParams = [];\n\n var addQueryParam = function addQueryParam(key, value) {\n queryParams.push(key + \"=\" + encodeURIComponent(value));\n };\n\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n\n if (body.variables) {\n var serializedVariables = void 0;\n\n try {\n serializedVariables = serializeFetchParameter(body.variables, 'Variables map');\n } catch (parseError) {\n return {\n parseError: parseError\n };\n }\n\n addQueryParam('variables', serializedVariables);\n }\n\n if (body.extensions) {\n var serializedExtensions = void 0;\n\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, 'Extensions map');\n } catch (parseError) {\n return {\n parseError: parseError\n };\n }\n\n addQueryParam('extensions', serializedExtensions);\n }\n\n var fragment = '',\n preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf('#');\n\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n\n var queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n var newURI = preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return {\n newURI: newURI\n };\n}","import { __assign } from \"tslib\";\nimport { print } from 'graphql';\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json'\n};\nvar defaultOptions = {\n method: 'POST'\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions\n};\nexport var selectHttpOptionsAndBody = function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n\n var options = __assign(__assign({}, fallbackConfig.options), {\n headers: fallbackConfig.headers,\n credentials: fallbackConfig.credentials\n });\n\n var http = fallbackConfig.http || {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), {\n headers: __assign(__assign({}, options.headers), headersToLowerCase(config.headers))\n });\n if (config.credentials) options.credentials = config.credentials;\n http = __assign(__assign({}, http), config.http);\n });\n var operationName = operation.operationName,\n extensions = operation.extensions,\n variables = operation.variables,\n query = operation.query;\n var body = {\n operationName: operationName,\n variables: variables\n };\n if (http.includeExtensions) body.extensions = extensions;\n if (http.includeQuery) body.query = print(query);\n return {\n options: options,\n body: body\n };\n};\n\nfunction headersToLowerCase(headers) {\n if (headers) {\n var normalized_1 = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n normalized_1[name.toLowerCase()] = headers[name];\n });\n return normalized_1;\n }\n\n return headers;\n}","export var selectURI = function selectURI(operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n\n if (contextURI) {\n return contextURI;\n } else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n } else {\n return fallbackURI || '/graphql';\n }\n};","import { InvariantError } from 'ts-invariant';\nexport var serializeFetchParameter = function serializeFetchParameter(p, label) {\n var serialized;\n\n try {\n serialized = JSON.stringify(p);\n } catch (e) {\n var parseError = process.env.NODE_ENV === \"production\" ? new InvariantError(23) : new InvariantError(\"Network request failed. \" + label + \" is not serializable: \" + e.message);\n parseError.parseError = e;\n throw parseError;\n }\n\n return serialized;\n};","import { Observable } from \"../../utilities/index.js\";\nexport function fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}","import { Observable } from \"../../utilities/index.js\";\nexport function fromPromise(promise) {\n return new Observable(function (observer) {\n promise.then(function (value) {\n observer.next(value);\n observer.complete();\n }).catch(observer.error.bind(observer));\n });\n}","export var throwServerError = function throwServerError(response, result, message) {\n var error = new Error(message);\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};","import { invariant } from 'ts-invariant';\nexport function toPromise(observable) {\n var completed = false;\n return new Promise(function (resolve, reject) {\n observable.subscribe({\n next: function next(data) {\n if (completed) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"Promise Wrapper does not support multiple results from Observable\");\n } else {\n completed = true;\n resolve(data);\n }\n },\n error: reject\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n 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,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\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}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\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 || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n 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) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : 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],\n 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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\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) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n 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}\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}","import { __extends } from 'tslib';\nvar genericMessage = \"Invariant Violation\";\nvar _a = Object.setPrototypeOf,\n setPrototypeOf = _a === void 0 ? function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n} : _a;\n\nvar InvariantError =\n/** @class */\nfunction (_super) {\n __extends(InvariantError, _super);\n\n function InvariantError(message) {\n if (message === void 0) {\n message = genericMessage;\n }\n\n var _this = _super.call(this, typeof message === \"number\" ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\" : message) || this;\n\n _this.framesToPop = 1;\n _this.name = genericMessage;\n setPrototypeOf(_this, InvariantError.prototype);\n return _this;\n }\n\n return InvariantError;\n}(Error);\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nvar verbosityLevels = [\"log\", \"warn\", \"error\", \"silent\"];\nvar verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod(method) {\n return function () {\n if (verbosityLevels.indexOf(method) >= verbosityLevel) {\n return console[method].apply(console, arguments);\n }\n };\n}\n\n(function (invariant) {\n invariant.log = wrapConsoleMethod(\"log\");\n invariant.warn = wrapConsoleMethod(\"warn\");\n invariant.error = wrapConsoleMethod(\"error\");\n})(invariant || (invariant = {}));\n\nfunction setVerbosity(level) {\n var old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\n\nvar invariant$1 = invariant;\nexport default invariant$1;\nexport { InvariantError, invariant, setVerbosity };","import React from 'react';\nimport { canUseWeakMap } from \"../../utilities/index.js\";\nvar cache = new (canUseWeakMap ? WeakMap : Map)();\nexport function getApolloContext() {\n var context = cache.get(React.createContext);\n\n if (!context) {\n context = React.createContext({});\n context.displayName = 'ApolloContext';\n cache.set(React.createContext, context);\n }\n\n return context;\n}\nexport { getApolloContext as resetApolloContext };","import React from 'react';\nimport { invariant } from 'ts-invariant';\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function ApolloProvider(_a) {\n var client = _a.client,\n children = _a.children;\n var ApolloContext = getApolloContext();\n return React.createElement(ApolloContext.Consumer, null, function (context) {\n if (context === void 0) {\n context = {};\n }\n\n if (client && context.client !== client) {\n context = Object.assign({}, context, {\n client: client\n });\n }\n\n process.env.NODE_ENV === \"production\" ? invariant(context.client, 28) : invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' + 'sure you pass in your client via the \"client\" prop.');\n return React.createElement(ApolloContext.Provider, {\n value: context\n }, children);\n });\n};","import { invariant } from 'ts-invariant';\nexport var DocumentType;\n\n(function (DocumentType) {\n DocumentType[DocumentType[\"Query\"] = 0] = \"Query\";\n DocumentType[DocumentType[\"Mutation\"] = 1] = \"Mutation\";\n DocumentType[DocumentType[\"Subscription\"] = 2] = \"Subscription\";\n})(DocumentType || (DocumentType = {}));\n\nvar cache = new Map();\nexport function operationName(type) {\n var name;\n\n switch (type) {\n case DocumentType.Query:\n name = 'Query';\n break;\n\n case DocumentType.Mutation:\n name = 'Mutation';\n break;\n\n case DocumentType.Subscription:\n name = 'Subscription';\n break;\n }\n\n return name;\n}\nexport function parser(document) {\n var cached = cache.get(document);\n if (cached) return cached;\n var variables, type, name;\n process.env.NODE_ENV === \"production\" ? invariant(!!document && !!document.kind, 34) : invariant(!!document && !!document.kind, \"Argument of \" + document + \" passed to parser was not a valid GraphQL \" + \"DocumentNode. You may need to use 'graphql-tag' or another method \" + \"to convert your operation into a document\");\n var fragments = document.definitions.filter(function (x) {\n return x.kind === 'FragmentDefinition';\n });\n var queries = document.definitions.filter(function (x) {\n return x.kind === 'OperationDefinition' && x.operation === 'query';\n });\n var mutations = document.definitions.filter(function (x) {\n return x.kind === 'OperationDefinition' && x.operation === 'mutation';\n });\n var subscriptions = document.definitions.filter(function (x) {\n return x.kind === 'OperationDefinition' && x.operation === 'subscription';\n });\n process.env.NODE_ENV === \"production\" ? invariant(!fragments.length || queries.length || mutations.length || subscriptions.length, 35) : invariant(!fragments.length || queries.length || mutations.length || subscriptions.length, \"Passing only a fragment to 'graphql' is not yet supported. \" + \"You must include a query, subscription or mutation as well\");\n process.env.NODE_ENV === \"production\" ? invariant(queries.length + mutations.length + subscriptions.length <= 1, 36) : invariant(queries.length + mutations.length + subscriptions.length <= 1, \"react-apollo only supports a query, subscription, or a mutation per HOC. \" + (document + \" had \" + queries.length + \" queries, \" + subscriptions.length + \" \") + (\"subscriptions and \" + mutations.length + \" mutations. \") + \"You can use 'compose' to join multiple operation types to a component\");\n type = queries.length ? DocumentType.Query : DocumentType.Mutation;\n if (!queries.length && !mutations.length) type = DocumentType.Subscription;\n var definitions = queries.length ? queries : mutations.length ? mutations : subscriptions;\n process.env.NODE_ENV === \"production\" ? invariant(definitions.length === 1, 37) : invariant(definitions.length === 1, \"react-apollo only supports one definition per HOC. \" + document + \" had \" + (definitions.length + \" definitions. \") + \"You can use 'compose' to join multiple operation types to a component\");\n var definition = definitions[0];\n variables = definition.variableDefinitions || [];\n\n if (definition.name && definition.name.kind === 'Name') {\n name = definition.name.value;\n } else {\n name = 'data';\n }\n\n var payload = {\n name: name,\n type: type,\n variables: variables\n };\n cache.set(document, payload);\n return payload;\n}","import { equal } from '@wry/equality';\nimport { invariant } from 'ts-invariant';\nimport { parser, operationName } from \"../parser/index.js\";\n\nvar OperationData = function () {\n function OperationData(options, context) {\n this.isMounted = false;\n this.previousOptions = {};\n this.context = {};\n this.options = {};\n this.options = options || {};\n this.context = context || {};\n }\n\n OperationData.prototype.getOptions = function () {\n return this.options;\n };\n\n OperationData.prototype.setOptions = function (newOptions, storePrevious) {\n if (storePrevious === void 0) {\n storePrevious = false;\n }\n\n if (storePrevious && !equal(this.options, newOptions)) {\n this.previousOptions = this.options;\n }\n\n this.options = newOptions;\n };\n\n OperationData.prototype.unmount = function () {\n this.isMounted = false;\n };\n\n OperationData.prototype.refreshClient = function () {\n var client = this.options && this.options.client || this.context && this.context.client;\n process.env.NODE_ENV === \"production\" ? invariant(!!client, 29) : invariant(!!client, 'Could not find \"client\" in the context or passed in as an option. ' + 'Wrap the root component in an , or pass an ' + 'ApolloClient instance in via options.');\n var isNew = false;\n\n if (client !== this.client) {\n isNew = true;\n this.client = client;\n this.cleanup();\n }\n\n return {\n client: this.client,\n isNew: isNew\n };\n };\n\n OperationData.prototype.verifyDocumentType = function (document, type) {\n var operation = parser(document);\n var requiredOperationName = operationName(type);\n var usedOperationName = operationName(operation.type);\n process.env.NODE_ENV === \"production\" ? invariant(operation.type === type, 30) : invariant(operation.type === type, \"Running a \" + requiredOperationName + \" requires a graphql \" + (requiredOperationName + \", but a \" + usedOperationName + \" was used instead.\"));\n };\n\n return OperationData;\n}();\n\nexport { OperationData };","import { __assign, __extends } from \"tslib\";\nimport { equal } from '@wry/equality';\nimport { DocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { OperationData } from \"./OperationData.js\";\nimport { mergeOptions } from \"../../core/index.js\";\n\nvar MutationData = function (_super) {\n __extends(MutationData, _super);\n\n function MutationData(_a) {\n var options = _a.options,\n context = _a.context,\n result = _a.result,\n setResult = _a.setResult;\n\n var _this = _super.call(this, options, context) || this;\n\n _this.runMutation = function (mutationFunctionOptions) {\n if (mutationFunctionOptions === void 0) {\n mutationFunctionOptions = {};\n }\n\n _this.onMutationStart();\n\n var mutationId = _this.generateNewMutationId();\n\n return _this.mutate(mutationFunctionOptions).then(function (response) {\n _this.onMutationCompleted(response, mutationId);\n\n return response;\n }).catch(function (error) {\n var onError = _this.getOptions().onError;\n\n _this.onMutationError(error, mutationId);\n\n if (onError) {\n onError(error);\n return {\n data: undefined,\n errors: error\n };\n } else {\n throw error;\n }\n });\n };\n\n _this.verifyDocumentType(options.mutation, DocumentType.Mutation);\n\n _this.result = result;\n _this.setResult = setResult;\n _this.mostRecentMutationId = 0;\n return _this;\n }\n\n MutationData.prototype.execute = function (result) {\n this.isMounted = true;\n this.verifyDocumentType(this.getOptions().mutation, DocumentType.Mutation);\n return [this.runMutation, __assign(__assign({}, result), {\n client: this.refreshClient().client\n })];\n };\n\n MutationData.prototype.afterExecute = function () {\n this.isMounted = true;\n return this.unmount.bind(this);\n };\n\n MutationData.prototype.cleanup = function () {};\n\n MutationData.prototype.mutate = function (options) {\n return this.refreshClient().client.mutate(mergeOptions(this.getOptions(), options));\n };\n\n MutationData.prototype.onMutationStart = function () {\n if (!this.result.loading && !this.getOptions().ignoreResults) {\n this.updateResult({\n loading: true,\n error: undefined,\n data: undefined,\n called: true\n });\n }\n };\n\n MutationData.prototype.onMutationCompleted = function (response, mutationId) {\n var _a = this.getOptions(),\n onCompleted = _a.onCompleted,\n ignoreResults = _a.ignoreResults;\n\n var data = response.data,\n errors = response.errors;\n var error = errors && errors.length > 0 ? new ApolloError({\n graphQLErrors: errors\n }) : undefined;\n\n var callOncomplete = function callOncomplete() {\n return onCompleted ? onCompleted(data) : null;\n };\n\n if (this.isMostRecentMutation(mutationId) && !ignoreResults) {\n this.updateResult({\n called: true,\n loading: false,\n data: data,\n error: error\n });\n }\n\n callOncomplete();\n };\n\n MutationData.prototype.onMutationError = function (error, mutationId) {\n if (this.isMostRecentMutation(mutationId)) {\n this.updateResult({\n loading: false,\n error: error,\n data: undefined,\n called: true\n });\n }\n };\n\n MutationData.prototype.generateNewMutationId = function () {\n return ++this.mostRecentMutationId;\n };\n\n MutationData.prototype.isMostRecentMutation = function (mutationId) {\n return this.mostRecentMutationId === mutationId;\n };\n\n MutationData.prototype.updateResult = function (result) {\n if (this.isMounted && (!this.previousResult || !equal(this.previousResult, result))) {\n this.setResult(result);\n this.previousResult = result;\n return result;\n }\n };\n\n return MutationData;\n}(OperationData);\n\nexport { MutationData };","import { __assign } from \"tslib\";\nimport { useContext, useState, useRef, useEffect } from 'react';\nimport { MutationData } from \"../data/index.js\";\nimport { getApolloContext } from \"../context/index.js\";\nexport function useMutation(mutation, options) {\n var context = useContext(getApolloContext());\n\n var _a = useState({\n called: false,\n loading: false\n }),\n result = _a[0],\n setResult = _a[1];\n\n var updatedOptions = options ? __assign(__assign({}, options), {\n mutation: mutation\n }) : {\n mutation: mutation\n };\n var mutationDataRef = useRef();\n\n function getMutationDataRef() {\n if (!mutationDataRef.current) {\n mutationDataRef.current = new MutationData({\n options: updatedOptions,\n context: context,\n result: result,\n setResult: setResult\n });\n }\n\n return mutationDataRef.current;\n }\n\n var mutationData = getMutationDataRef();\n mutationData.setOptions(updatedOptions);\n mutationData.context = context;\n useEffect(function () {\n return mutationData.afterExecute();\n });\n return mutationData.execute(result);\n}","import { __assign, __extends } from \"tslib\";\nimport { equal } from '@wry/equality';\nimport { ApolloError } from \"../../errors/index.js\";\nimport { NetworkStatus } from \"../../core/index.js\";\nimport { DocumentType } from \"../parser/index.js\";\nimport { OperationData } from \"./OperationData.js\";\n\nvar QueryData = function (_super) {\n __extends(QueryData, _super);\n\n function QueryData(_a) {\n var options = _a.options,\n context = _a.context,\n onNewData = _a.onNewData;\n\n var _this = _super.call(this, options, context) || this;\n\n _this.runLazy = false;\n _this.previous = Object.create(null);\n\n _this.runLazyQuery = function (options) {\n _this.cleanup();\n\n _this.runLazy = true;\n _this.lazyOptions = options;\n\n _this.onNewData();\n };\n\n _this.getQueryResult = function () {\n var result = _this.observableQueryFields();\n\n var options = _this.getOptions();\n\n if (options.skip) {\n result = __assign(__assign({}, result), {\n data: undefined,\n error: undefined,\n loading: false,\n networkStatus: NetworkStatus.ready,\n called: true\n });\n } else if (_this.currentObservable) {\n var currentResult = _this.currentObservable.getCurrentResult();\n\n var data = currentResult.data,\n loading = currentResult.loading,\n partial = currentResult.partial,\n networkStatus = currentResult.networkStatus,\n errors = currentResult.errors;\n var error = currentResult.error;\n\n if (errors && errors.length > 0) {\n error = new ApolloError({\n graphQLErrors: errors\n });\n }\n\n result = __assign(__assign({}, result), {\n data: data,\n loading: loading,\n networkStatus: networkStatus,\n error: error,\n called: true\n });\n\n if (loading) {} else if (error) {\n Object.assign(result, {\n data: (_this.currentObservable.getLastResult() || {}).data\n });\n } else {\n var fetchPolicy = _this.currentObservable.options.fetchPolicy;\n var partialRefetch = options.partialRefetch;\n\n if (partialRefetch && partial && (!data || Object.keys(data).length === 0) && fetchPolicy !== 'cache-only') {\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.loading\n });\n result.refetch();\n return result;\n }\n }\n }\n\n result.client = _this.client;\n\n _this.setOptions(options, true);\n\n var previousResult = _this.previous.result;\n _this.previous.loading = previousResult && previousResult.loading || false;\n result.previousData = previousResult && (previousResult.data || previousResult.previousData);\n _this.previous.result = result;\n _this.currentObservable && _this.currentObservable.resetQueryStoreErrors();\n return result;\n };\n\n _this.obsRefetch = function (variables) {\n var _a;\n\n return (_a = _this.currentObservable) === null || _a === void 0 ? void 0 : _a.refetch(variables);\n };\n\n _this.obsFetchMore = function (fetchMoreOptions) {\n return _this.currentObservable.fetchMore(fetchMoreOptions);\n };\n\n _this.obsUpdateQuery = function (mapFn) {\n return _this.currentObservable.updateQuery(mapFn);\n };\n\n _this.obsStartPolling = function (pollInterval) {\n var _a;\n\n (_a = _this.currentObservable) === null || _a === void 0 ? void 0 : _a.startPolling(pollInterval);\n };\n\n _this.obsStopPolling = function () {\n var _a;\n\n (_a = _this.currentObservable) === null || _a === void 0 ? void 0 : _a.stopPolling();\n };\n\n _this.obsSubscribeToMore = function (options) {\n return _this.currentObservable.subscribeToMore(options);\n };\n\n _this.onNewData = onNewData;\n return _this;\n }\n\n QueryData.prototype.execute = function () {\n this.refreshClient();\n\n var _a = this.getOptions(),\n skip = _a.skip,\n query = _a.query;\n\n if (skip || query !== this.previous.query) {\n this.removeQuerySubscription();\n this.removeObservable(!skip);\n this.previous.query = query;\n }\n\n this.updateObservableQuery();\n if (this.isMounted) this.startQuerySubscription();\n return this.getExecuteSsrResult() || this.getExecuteResult();\n };\n\n QueryData.prototype.executeLazy = function () {\n return !this.runLazy ? [this.runLazyQuery, {\n loading: false,\n networkStatus: NetworkStatus.ready,\n called: false,\n data: undefined\n }] : [this.runLazyQuery, this.execute()];\n };\n\n QueryData.prototype.fetchData = function () {\n var _this = this;\n\n var options = this.getOptions();\n if (options.skip || options.ssr === false) return false;\n return new Promise(function (resolve) {\n return _this.startQuerySubscription(resolve);\n });\n };\n\n QueryData.prototype.afterExecute = function (_a) {\n var _b = (_a === void 0 ? {} : _a).lazy,\n lazy = _b === void 0 ? false : _b;\n this.isMounted = true;\n\n if (!lazy || this.runLazy) {\n this.handleErrorOrCompleted();\n }\n\n this.previousOptions = this.getOptions();\n return this.unmount.bind(this);\n };\n\n QueryData.prototype.cleanup = function () {\n this.removeQuerySubscription();\n this.removeObservable(true);\n delete this.previous.result;\n };\n\n QueryData.prototype.getOptions = function () {\n var options = _super.prototype.getOptions.call(this);\n\n if (this.lazyOptions) {\n options.variables = __assign(__assign({}, options.variables), this.lazyOptions.variables);\n options.context = __assign(__assign({}, options.context), this.lazyOptions.context);\n }\n\n if (this.runLazy) {\n delete options.skip;\n }\n\n return options;\n };\n\n QueryData.prototype.ssrInitiated = function () {\n return this.context && this.context.renderPromises;\n };\n\n QueryData.prototype.getExecuteResult = function () {\n var result = this.getQueryResult();\n this.startQuerySubscription();\n return result;\n };\n\n ;\n\n QueryData.prototype.getExecuteSsrResult = function () {\n var _a = this.getOptions(),\n ssr = _a.ssr,\n skip = _a.skip;\n\n var ssrDisabled = ssr === false;\n var fetchDisabled = this.refreshClient().client.disableNetworkFetches;\n\n var ssrLoading = __assign({\n loading: true,\n networkStatus: NetworkStatus.loading,\n called: true,\n data: undefined,\n stale: false,\n client: this.client\n }, this.observableQueryFields());\n\n if (ssrDisabled && (this.ssrInitiated() || fetchDisabled)) {\n this.previous.result = ssrLoading;\n return ssrLoading;\n }\n\n if (this.ssrInitiated()) {\n var result = this.getQueryResult() || ssrLoading;\n\n if (result.loading && !skip) {\n this.context.renderPromises.addQueryPromise(this, function () {\n return null;\n });\n }\n\n return result;\n }\n };\n\n QueryData.prototype.prepareObservableQueryOptions = function () {\n var options = this.getOptions();\n this.verifyDocumentType(options.query, DocumentType.Query);\n var displayName = options.displayName || 'Query';\n\n if (this.ssrInitiated() && (options.fetchPolicy === 'network-only' || options.fetchPolicy === 'cache-and-network')) {\n options.fetchPolicy = 'cache-first';\n }\n\n return __assign(__assign({}, options), {\n displayName: displayName,\n context: options.context\n });\n };\n\n QueryData.prototype.initializeObservableQuery = function () {\n if (this.ssrInitiated()) {\n this.currentObservable = this.context.renderPromises.getSSRObservable(this.getOptions());\n }\n\n if (!this.currentObservable) {\n var observableQueryOptions = this.prepareObservableQueryOptions();\n this.previous.observableQueryOptions = __assign(__assign({}, observableQueryOptions), {\n children: null\n });\n this.currentObservable = this.refreshClient().client.watchQuery(__assign({}, observableQueryOptions));\n\n if (this.ssrInitiated()) {\n this.context.renderPromises.registerSSRObservable(this.currentObservable, observableQueryOptions);\n }\n }\n };\n\n QueryData.prototype.updateObservableQuery = function () {\n if (!this.currentObservable) {\n this.initializeObservableQuery();\n return;\n }\n\n if (this.getOptions().skip) return;\n\n var newObservableQueryOptions = __assign(__assign({}, this.prepareObservableQueryOptions()), {\n children: null\n });\n\n if (!equal(newObservableQueryOptions, this.previous.observableQueryOptions)) {\n this.previous.observableQueryOptions = newObservableQueryOptions;\n this.currentObservable.setOptions(newObservableQueryOptions).catch(function () {});\n }\n };\n\n QueryData.prototype.startQuerySubscription = function (onNewData) {\n var _this = this;\n\n if (onNewData === void 0) {\n onNewData = this.onNewData;\n }\n\n if (this.currentSubscription || this.getOptions().skip) return;\n this.currentSubscription = this.currentObservable.subscribe({\n next: function next(_a) {\n var loading = _a.loading,\n networkStatus = _a.networkStatus,\n data = _a.data;\n var previousResult = _this.previous.result;\n\n if (previousResult && previousResult.loading === loading && previousResult.networkStatus === networkStatus && equal(previousResult.data, data)) {\n return;\n }\n\n onNewData();\n },\n error: function error(_error) {\n _this.resubscribeToQuery();\n\n if (!_error.hasOwnProperty('graphQLErrors')) throw _error;\n var previousResult = _this.previous.result;\n\n if (previousResult && previousResult.loading || !equal(_error, _this.previous.error)) {\n _this.previous.error = _error;\n onNewData();\n }\n }\n });\n };\n\n QueryData.prototype.resubscribeToQuery = function () {\n this.removeQuerySubscription();\n var currentObservable = this.currentObservable;\n\n if (currentObservable) {\n var lastError = currentObservable.getLastError();\n var lastResult = currentObservable.getLastResult();\n currentObservable.resetLastResults();\n this.startQuerySubscription();\n Object.assign(currentObservable, {\n lastError: lastError,\n lastResult: lastResult\n });\n }\n };\n\n QueryData.prototype.handleErrorOrCompleted = function () {\n if (!this.currentObservable || !this.previous.result) return;\n var _a = this.previous.result,\n data = _a.data,\n loading = _a.loading,\n error = _a.error;\n\n if (!loading) {\n var _b = this.getOptions(),\n query = _b.query,\n variables = _b.variables,\n onCompleted = _b.onCompleted,\n onError = _b.onError,\n skip = _b.skip;\n\n if (this.previousOptions && !this.previous.loading && equal(this.previousOptions.query, query) && equal(this.previousOptions.variables, variables)) {\n return;\n }\n\n if (onCompleted && !error && !skip) {\n onCompleted(data);\n } else if (onError && error) {\n onError(error);\n }\n }\n };\n\n QueryData.prototype.removeQuerySubscription = function () {\n if (this.currentSubscription) {\n this.currentSubscription.unsubscribe();\n delete this.currentSubscription;\n }\n };\n\n QueryData.prototype.removeObservable = function (andDelete) {\n if (this.currentObservable) {\n this.currentObservable[\"tearDownQuery\"]();\n\n if (andDelete) {\n delete this.currentObservable;\n }\n }\n };\n\n QueryData.prototype.observableQueryFields = function () {\n var _a;\n\n return {\n variables: (_a = this.currentObservable) === null || _a === void 0 ? void 0 : _a.variables,\n refetch: this.obsRefetch,\n fetchMore: this.obsFetchMore,\n updateQuery: this.obsUpdateQuery,\n startPolling: this.obsStartPolling,\n stopPolling: this.obsStopPolling,\n subscribeToMore: this.obsSubscribeToMore\n };\n };\n\n return QueryData;\n}(OperationData);\n\nexport { QueryData };","import { __assign } from \"tslib\";\nimport { useContext, useEffect, useReducer, useRef } from 'react';\nimport { QueryData } from \"../../data/index.js\";\nimport { useDeepMemo } from \"./useDeepMemo.js\";\nimport { getApolloContext } from \"../../context/index.js\";\nexport function useBaseQuery(query, options, lazy) {\n if (lazy === void 0) {\n lazy = false;\n }\n\n var context = useContext(getApolloContext());\n\n var _a = useReducer(function (x) {\n return x + 1;\n }, 0),\n tick = _a[0],\n forceUpdate = _a[1];\n\n var updatedOptions = options ? __assign(__assign({}, options), {\n query: query\n }) : {\n query: query\n };\n var queryDataRef = useRef();\n var queryData = queryDataRef.current || (queryDataRef.current = new QueryData({\n options: updatedOptions,\n context: context,\n onNewData: function onNewData() {\n if (!queryData.ssrInitiated()) {\n Promise.resolve().then(function () {\n return queryDataRef.current && forceUpdate();\n });\n } else {\n forceUpdate();\n }\n }\n }));\n queryData.setOptions(updatedOptions);\n queryData.context = context;\n var memo = {\n options: __assign(__assign({}, updatedOptions), {\n onError: undefined,\n onCompleted: undefined\n }),\n context: context,\n tick: tick\n };\n var result = useDeepMemo(function () {\n return lazy ? queryData.executeLazy() : queryData.execute();\n }, memo);\n var queryResult = lazy ? result[1] : result;\n useEffect(function () {\n return function () {\n return queryData.cleanup();\n };\n }, []);\n useEffect(function () {\n return queryData.afterExecute({\n lazy: lazy\n });\n }, [queryResult.loading, queryResult.networkStatus, queryResult.error, queryResult.data]);\n return result;\n}","import { useRef } from 'react';\nimport { equal } from '@wry/equality';\nexport function useDeepMemo(memoFn, key) {\n var ref = useRef();\n\n if (!ref.current || !equal(key, ref.current.key)) {\n ref.current = {\n key: key,\n value: memoFn()\n };\n }\n\n return ref.current.value;\n}","import { useBaseQuery } from \"./utils/useBaseQuery.js\";\nexport function useQuery(query, options) {\n return useBaseQuery(query, options, false);\n}","import { __assign, __extends } from \"tslib\";\nimport { equal } from '@wry/equality';\nimport { OperationData } from \"./OperationData.js\";\n\nvar SubscriptionData = function (_super) {\n __extends(SubscriptionData, _super);\n\n function SubscriptionData(_a) {\n var options = _a.options,\n context = _a.context,\n setResult = _a.setResult;\n\n var _this = _super.call(this, options, context) || this;\n\n _this.currentObservable = {};\n _this.setResult = setResult;\n\n _this.initialize(options);\n\n return _this;\n }\n\n SubscriptionData.prototype.execute = function (result) {\n if (this.getOptions().skip === true) {\n this.cleanup();\n return {\n loading: false,\n error: undefined,\n data: undefined,\n variables: this.getOptions().variables\n };\n }\n\n var currentResult = result;\n\n if (this.refreshClient().isNew) {\n currentResult = this.getLoadingResult();\n }\n\n var shouldResubscribe = this.getOptions().shouldResubscribe;\n\n if (typeof shouldResubscribe === 'function') {\n shouldResubscribe = !!shouldResubscribe(this.getOptions());\n }\n\n if (shouldResubscribe !== false && this.previousOptions && Object.keys(this.previousOptions).length > 0 && (this.previousOptions.subscription !== this.getOptions().subscription || !equal(this.previousOptions.variables, this.getOptions().variables) || this.previousOptions.skip !== this.getOptions().skip)) {\n this.cleanup();\n currentResult = this.getLoadingResult();\n }\n\n this.initialize(this.getOptions());\n this.startSubscription();\n this.previousOptions = this.getOptions();\n return __assign(__assign({}, currentResult), {\n variables: this.getOptions().variables\n });\n };\n\n SubscriptionData.prototype.afterExecute = function () {\n this.isMounted = true;\n };\n\n SubscriptionData.prototype.cleanup = function () {\n this.endSubscription();\n delete this.currentObservable.query;\n };\n\n SubscriptionData.prototype.initialize = function (options) {\n if (this.currentObservable.query || this.getOptions().skip === true) return;\n this.currentObservable.query = this.refreshClient().client.subscribe({\n query: options.subscription,\n variables: options.variables,\n fetchPolicy: options.fetchPolicy,\n context: options.context\n });\n };\n\n SubscriptionData.prototype.startSubscription = function () {\n if (this.currentObservable.subscription) return;\n this.currentObservable.subscription = this.currentObservable.query.subscribe({\n next: this.updateCurrentData.bind(this),\n error: this.updateError.bind(this),\n complete: this.completeSubscription.bind(this)\n });\n };\n\n SubscriptionData.prototype.getLoadingResult = function () {\n return {\n loading: true,\n error: undefined,\n data: undefined\n };\n };\n\n SubscriptionData.prototype.updateResult = function (result) {\n if (this.isMounted) {\n this.setResult(result);\n }\n };\n\n SubscriptionData.prototype.updateCurrentData = function (result) {\n var onSubscriptionData = this.getOptions().onSubscriptionData;\n this.updateResult({\n data: result.data,\n loading: false,\n error: undefined\n });\n\n if (onSubscriptionData) {\n onSubscriptionData({\n client: this.refreshClient().client,\n subscriptionData: result\n });\n }\n };\n\n SubscriptionData.prototype.updateError = function (error) {\n this.updateResult({\n error: error,\n loading: false\n });\n };\n\n SubscriptionData.prototype.completeSubscription = function () {\n var _this = this;\n\n Promise.resolve().then(function () {\n var onSubscriptionComplete = _this.getOptions().onSubscriptionComplete;\n\n if (onSubscriptionComplete) onSubscriptionComplete();\n\n _this.endSubscription();\n });\n };\n\n SubscriptionData.prototype.endSubscription = function () {\n if (this.currentObservable.subscription) {\n this.currentObservable.subscription.unsubscribe();\n delete this.currentObservable.subscription;\n }\n };\n\n return SubscriptionData;\n}(OperationData);\n\nexport { SubscriptionData };","import { __assign } from \"tslib\";\nimport { useContext, useState, useRef, useEffect } from 'react';\nimport { SubscriptionData } from \"../data/index.js\";\nimport { getApolloContext } from \"../context/index.js\";\nexport function useSubscription(subscription, options) {\n var context = useContext(getApolloContext());\n var updatedOptions = options ? __assign(__assign({}, options), {\n subscription: subscription\n }) : {\n subscription: subscription\n };\n\n var _a = useState({\n loading: !updatedOptions.skip,\n error: undefined,\n data: undefined\n }),\n result = _a[0],\n setResult = _a[1];\n\n var subscriptionDataRef = useRef();\n\n function getSubscriptionDataRef() {\n if (!subscriptionDataRef.current) {\n subscriptionDataRef.current = new SubscriptionData({\n options: updatedOptions,\n context: context,\n setResult: setResult\n });\n }\n\n return subscriptionDataRef.current;\n }\n\n var subscriptionData = getSubscriptionDataRef();\n subscriptionData.setOptions(updatedOptions, true);\n subscriptionData.context = context;\n useEffect(function () {\n return subscriptionData.afterExecute();\n });\n useEffect(function () {\n return subscriptionData.cleanup.bind(subscriptionData);\n }, []);\n return subscriptionData.execute(result);\n}","export function isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}","export var canUseWeakMap = typeof WeakMap === 'function' && !(typeof navigator === 'object' && navigator.product === 'ReactNative');","var toString = Object.prototype.toString;\nexport function cloneDeep(value) {\n return cloneDeepHelper(value);\n}\n\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\":\n {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n\n case \"[object Object]\":\n {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n\n default:\n return val;\n }\n}","export function compact() {\n var objects = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n\n var result = Object.create(null);\n objects.forEach(function (obj) {\n if (!obj) return;\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n return result;\n}","export function graphQLResultHasError(result) {\n return result.errors && result.errors.length > 0 || false;\n}","import { isDevelopment, isTest } from \"./environment.js\";\n\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\n\nfunction deepFreeze(value) {\n var workSet = new Set([value]);\n workSet.forEach(function (obj) {\n if (isObject(obj)) {\n if (!Object.isFrozen(obj)) Object.freeze(obj);\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n if (isObject(obj[name])) workSet.add(obj[name]);\n });\n }\n });\n return value;\n}\n\nexport function maybeDeepFreeze(obj) {\n if (process.env.NODE_ENV !== \"production\" && (isDevelopment() || isTest())) {\n deepFreeze(obj);\n }\n\n return obj;\n}","import { __assign, __spreadArrays } from \"tslib\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function mergeDeep() {\n var sources = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n\n return mergeDeepArray(sources);\n}\nexport function mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n\n if (count > 1) {\n var merger = new DeepMerger();\n\n for (var i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n\n return target;\n}\n\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n\nvar defaultReconciler = function defaultReconciler(target, source, property) {\n return this.merge(target[property], source[property]);\n};\n\nvar DeepMerger = function () {\n function DeepMerger(reconciler) {\n if (reconciler === void 0) {\n reconciler = defaultReconciler;\n }\n\n this.reconciler = reconciler;\n this.isObject = isObject;\n this.pastCopies = new Set();\n }\n\n DeepMerger.prototype.merge = function (target, source) {\n var _this = this;\n\n var context = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n context[_i - 2] = arguments[_i];\n }\n\n if (isObject(source) && isObject(target)) {\n Object.keys(source).forEach(function (sourceKey) {\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n\n if (source[sourceKey] !== targetValue) {\n var result = _this.reconciler.apply(_this, __spreadArrays([target, source, sourceKey], context));\n\n if (result !== targetValue) {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n } else {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n return target;\n }\n\n return source;\n };\n\n DeepMerger.prototype.shallowCopyForMerge = function (value) {\n if (isObject(value) && !this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n } else {\n value = __assign({\n __proto__: Object.getPrototypeOf(value)\n }, value);\n }\n\n this.pastCopies.add(value);\n }\n\n return value;\n };\n\n return DeepMerger;\n}();\n\nexport { DeepMerger };","import { visit } from 'graphql';\nimport { invariant } from 'ts-invariant';\nexport function shouldInclude(_a, variables) {\n var directives = _a.directives;\n\n if (!directives || !directives.length) {\n return true;\n }\n\n return getInclusionDirectives(directives).every(function (_a) {\n var directive = _a.directive,\n ifArgument = _a.ifArgument;\n var evaledValue = false;\n\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables && variables[ifArgument.value.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(evaledValue !== void 0, 38) : invariant(evaledValue !== void 0, \"Invalid variable referenced in @\" + directive.name.value + \" directive.\");\n } else {\n evaledValue = ifArgument.value.value;\n }\n\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\nexport function getDirectiveNames(root) {\n var names = [];\n visit(root, {\n Directive: function Directive(node) {\n names.push(node.name.value);\n }\n });\n return names;\n}\nexport function hasDirectives(names, root) {\n return getDirectiveNames(root).some(function (name) {\n return names.indexOf(name) > -1;\n });\n}\nexport function hasClientExports(document) {\n return document && hasDirectives(['client'], document) && hasDirectives(['export'], document);\n}\n\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(directives) {\n var result = [];\n\n if (directives && directives.length) {\n directives.forEach(function (directive) {\n if (!isInclusionDirective(directive)) return;\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n process.env.NODE_ENV === \"production\" ? invariant(directiveArguments && directiveArguments.length === 1, 39) : invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\" + directiveName + \" directive.\");\n var ifArgument = directiveArguments[0];\n process.env.NODE_ENV === \"production\" ? invariant(ifArgument.name && ifArgument.name.value === 'if', 40) : invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\" + directiveName + \" directive.\");\n var ifValue = ifArgument.value;\n process.env.NODE_ENV === \"production\" ? invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 41) : invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\" + directiveName + \" directive must be a variable or a boolean value.\");\n result.push({\n directive: directive,\n ifArgument: ifArgument\n });\n });\n }\n\n return result;\n}","import { __assign, __spreadArrays } from \"tslib\";\nimport { invariant, InvariantError } from 'ts-invariant';\nexport function getFragmentQueryDocument(document, fragmentName) {\n var actualFragmentName = fragmentName;\n var fragments = [];\n document.definitions.forEach(function (definition) {\n if (definition.kind === 'OperationDefinition') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(42) : new InvariantError(\"Found a \" + definition.operation + \" operation\" + (definition.name ? \" named '\" + definition.name.value + \"'\" : '') + \". \" + 'No operations are allowed when using a fragment as a query. Only fragments are allowed.');\n }\n\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n\n if (typeof actualFragmentName === 'undefined') {\n process.env.NODE_ENV === \"production\" ? invariant(fragments.length === 1, 43) : invariant(fragments.length === 1, \"Found \" + fragments.length + \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\");\n actualFragmentName = fragments[0].name.value;\n }\n\n var query = __assign(__assign({}, document), {\n definitions: __spreadArrays([{\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [{\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName\n }\n }]\n }\n }], document.definitions)\n });\n\n return query;\n}\nexport function createFragmentMap(fragments) {\n if (fragments === void 0) {\n fragments = [];\n }\n\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nexport function getFragmentFromSelection(selection, fragmentMap) {\n switch (selection.kind) {\n case 'InlineFragment':\n return selection;\n\n case 'FragmentSpread':\n {\n var fragment = fragmentMap && fragmentMap[selection.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(fragment, 44) : invariant(fragment, \"No fragment named \" + selection.name.value + \".\");\n return fragment;\n }\n\n default:\n return null;\n }\n}","import { invariant, InvariantError } from 'ts-invariant';\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\nexport function checkDocument(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc && doc.kind === 'Document', 45) : invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n var operations = doc.definitions.filter(function (d) {\n return d.kind !== 'FragmentDefinition';\n }).map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(46) : new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\" + definition.kind + \"\\\"\");\n }\n\n return definition;\n });\n process.env.NODE_ENV === \"production\" ? invariant(operations.length <= 1, 47) : invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \" + operations.length + \" operations\");\n return doc;\n}\nexport function getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition';\n })[0];\n}\nexport function getOperationName(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n }).map(function (x) {\n return x.name.value;\n })[0] || null;\n}\nexport function getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'FragmentDefinition';\n });\n}\nexport function getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n process.env.NODE_ENV === \"production\" ? invariant(queryDef && queryDef.operation === 'query', 48) : invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.');\n return queryDef;\n}\nexport function getFragmentDefinition(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc.kind === 'Document', 49) : invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n process.env.NODE_ENV === \"production\" ? invariant(doc.definitions.length <= 1, 50) : invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.');\n var fragmentDef = doc.definitions[0];\n process.env.NODE_ENV === \"production\" ? invariant(fragmentDef.kind === 'FragmentDefinition', 51) : invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.');\n return fragmentDef;\n}\nexport function getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n\n if (operation === 'query' || operation === 'mutation' || operation === 'subscription') {\n return definition;\n }\n }\n\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(52) : new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.');\n}\nexport function getDefaultValues(definition) {\n var defaultValues = Object.create(null);\n var defs = definition && definition.variableDefinitions;\n\n if (defs && defs.length) {\n defs.forEach(function (def) {\n if (def.defaultValue) {\n valueToObjectRepresentation(defaultValues, def.variable.name, def.defaultValue);\n }\n });\n }\n\n return defaultValues;\n}","import stringify from 'fast-json-stable-stringify';\nimport { InvariantError } from 'ts-invariant';\nimport { getFragmentFromSelection } from \"./fragments.js\";\nexport function makeReference(id) {\n return {\n __ref: String(id)\n };\n}\nexport function isReference(obj) {\n return Boolean(obj && typeof obj === 'object' && typeof obj.__ref === 'string');\n}\n\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n } else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(53) : new InvariantError(\"The inline argument \\\"\" + name.value + \"\\\" of kind \\\"\" + value.kind + \"\\\"\" + 'is not supported. Use variables instead of inline arguments to ' + 'overcome this limitation.');\n }\n}\nexport function storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n\n var argObj = null;\n\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = ['connection', 'include', 'skip', 'client', 'rest', 'export'];\nexport function getStoreKeyName(fieldName, args, directives) {\n if (args && directives && directives['connection'] && directives['connection']['key']) {\n if (directives['connection']['filter'] && directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter'] ? directives['connection']['filter'] : [];\n filterKeys.sort();\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = args[key];\n });\n return directives['connection']['key'] + \"(\" + JSON.stringify(filteredArgs_1) + \")\";\n } else {\n return directives['connection']['key'];\n }\n }\n\n var completeFieldName = fieldName;\n\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\" + stringifiedArgs + \")\";\n }\n\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\" + key + \"(\" + JSON.stringify(directives[key]) + \")\";\n } else {\n completeFieldName += \"@\" + key;\n }\n });\n }\n\n return completeFieldName;\n}\nexport function argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n\n return null;\n}\nexport function resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nexport function getTypenameFromResult(result, selectionSet, fragmentMap) {\n if (typeof result.__typename === 'string') {\n return result.__typename;\n }\n\n for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {\n var selection = _a[_i];\n\n if (isField(selection)) {\n if (selection.name.value === '__typename') {\n return result[resultKeyNameFromField(selection)];\n }\n } else {\n var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);\n\n if (typeof typename === 'string') {\n return typename;\n }\n }\n }\n}\nexport function isField(selection) {\n return selection.kind === 'Field';\n}\nexport function isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}","export function filterInPlace(array, test, context) {\n var target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}","import { __assign, __spreadArrays } from \"tslib\";\nimport { visit } from 'graphql';\nimport { invariant } from 'ts-invariant';\nimport { checkDocument, getOperationDefinition, getFragmentDefinition, getFragmentDefinitions, getMainDefinition } from \"./getFromAST.js\";\nimport { filterInPlace } from \"../common/filterInPlace.js\";\nimport { isField, isInlineFragment } from \"./storeUtils.js\";\nimport { createFragmentMap } from \"./fragments.js\";\nvar TYPENAME_FIELD = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename'\n }\n};\n\nfunction isEmpty(op, fragments) {\n return op.selectionSet.selections.every(function (selection) {\n return selection.kind === 'FragmentSpread' && isEmpty(fragments[selection.name.value], fragments);\n });\n}\n\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc))) ? null : doc;\n}\n\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n return dir.name && dir.name === directive.name.value || dir.test && dir.test(directive);\n });\n };\n}\n\nexport function removeDirectivesFromDocument(directives, doc) {\n var variablesInUse = Object.create(null);\n var variablesToRemove = [];\n var fragmentSpreadsInUse = Object.create(null);\n var fragmentSpreadsToRemove = [];\n var modifiedDoc = nullIfDocIsEmpty(visit(doc, {\n Variable: {\n enter: function enter(node, _key, parent) {\n if (parent.kind !== 'VariableDefinition') {\n variablesInUse[node.name.value] = true;\n }\n }\n },\n Field: {\n enter: function enter(node) {\n if (directives && node.directives) {\n var shouldRemoveField = directives.some(function (directive) {\n return directive.remove;\n });\n\n if (shouldRemoveField && node.directives && node.directives.some(getDirectiveMatcher(directives))) {\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: arg.value.name.value\n });\n }\n });\n }\n\n if (node.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) {\n fragmentSpreadsToRemove.push({\n name: frag.name.value\n });\n });\n }\n\n return null;\n }\n }\n }\n },\n FragmentSpread: {\n enter: function enter(node) {\n fragmentSpreadsInUse[node.name.value] = true;\n }\n },\n Directive: {\n enter: function enter(node) {\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n }\n }\n }));\n\n if (modifiedDoc && filterInPlace(variablesToRemove, function (v) {\n return !!v.name && !variablesInUse[v.name];\n }).length) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n\n if (modifiedDoc && filterInPlace(fragmentSpreadsToRemove, function (fs) {\n return !!fs.name && !fragmentSpreadsInUse[fs.name];\n }).length) {\n modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc);\n }\n\n return modifiedDoc;\n}\nexport function addTypenameToDocument(doc) {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter: function enter(node, _key, parent) {\n if (parent && parent.kind === 'OperationDefinition') {\n return;\n }\n\n var selections = node.selections;\n\n if (!selections) {\n return;\n }\n\n var skip = selections.some(function (selection) {\n return isField(selection) && (selection.name.value === '__typename' || selection.name.value.lastIndexOf('__', 0) === 0);\n });\n\n if (skip) {\n return;\n }\n\n var field = parent;\n\n if (isField(field) && field.directives && field.directives.some(function (d) {\n return d.name.value === 'export';\n })) {\n return;\n }\n\n return __assign(__assign({}, node), {\n selections: __spreadArrays(selections, [TYPENAME_FIELD])\n });\n }\n }\n });\n}\n\naddTypenameToDocument.added = function (field) {\n return field === TYPENAME_FIELD;\n};\n\nvar connectionRemoveConfig = {\n test: function test(directive) {\n var willRemove = directive.name.value === 'connection';\n\n if (willRemove) {\n if (!directive.arguments || !directive.arguments.some(function (arg) {\n return arg.name.value === 'key';\n })) {\n process.env.NODE_ENV === \"production\" || invariant.warn('Removing an @connection directive even though it does not have a key. ' + 'You may want to use the key parameter to specify a store key.');\n }\n }\n\n return willRemove;\n }\n};\nexport function removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\n\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n\n return !!selectionSet && selectionSet.selections && selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n });\n}\n\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return selection.directives.some(getDirectiveMatcher(directives)) || nestedCheck && hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck);\n}\n\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value && argument.value.kind === 'Variable' && argument.value.name && (aConfig.name === argument.value.name.value || aConfig.test && aConfig.test(argument));\n });\n };\n}\n\nexport function removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function enter(node) {\n return __assign(__assign({}, node), {\n variableDefinitions: node.variableDefinitions ? node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) {\n return arg.name === varDef.variable.name.value;\n });\n }) : []\n });\n }\n },\n Field: {\n enter: function enter(node) {\n var shouldRemoveField = config.some(function (argConfig) {\n return argConfig.remove;\n });\n\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n }\n\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n }\n },\n Argument: {\n enter: function enter(node) {\n if (argMatcher(node)) {\n return null;\n }\n }\n }\n }));\n}\nexport function removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) {\n return def.name === node.name.value;\n })) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: {\n enter: enter\n },\n FragmentDefinition: {\n enter: enter\n }\n }));\n}\n\nfunction getAllFragmentSpreadsFromSelectionSet(selectionSet) {\n var allFragments = [];\n selectionSet.selections.forEach(function (selection) {\n if ((isField(selection) || isInlineFragment(selection)) && selection.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) {\n return allFragments.push(frag);\n });\n } else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n return allFragments;\n}\n\nexport function buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n\n if (definitionOperation === 'query') {\n return document;\n }\n\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function enter(node) {\n return __assign(__assign({}, node), {\n operation: 'query'\n });\n }\n }\n });\n return modifiedDoc;\n}\nexport function removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([{\n test: function test(directive) {\n return directive.name.value === 'client';\n },\n remove: true\n }], document);\n\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter: function enter(node) {\n if (node.selectionSet) {\n var isTypenameOnly = node.selectionSet.selections.every(function (selection) {\n return isField(selection) && selection.name.value === '__typename';\n });\n\n if (isTypenameOnly) {\n return null;\n }\n }\n }\n }\n });\n }\n\n return modifiedDoc;\n}","import { __assign, __rest as __rest_1, __spreadArrays } from \"tslib\";\nimport { __rest } from \"tslib\";\nimport { mergeDeep } from \"../common/mergeDeep.js\";\nexport function concatPagination(keyArgs) {\n if (keyArgs === void 0) {\n keyArgs = false;\n }\n\n return {\n keyArgs: keyArgs,\n merge: function merge(existing, incoming) {\n return existing ? __spreadArrays(existing, incoming) : incoming;\n }\n };\n}\nexport function offsetLimitPagination(keyArgs) {\n if (keyArgs === void 0) {\n keyArgs = false;\n }\n\n return {\n keyArgs: keyArgs,\n merge: function merge(existing, incoming, _a) {\n var args = _a.args;\n var merged = existing ? existing.slice(0) : [];\n\n if (args) {\n var _b = args.offset,\n offset = _b === void 0 ? 0 : _b;\n\n for (var i = 0; i < incoming.length; ++i) {\n merged[offset + i] = incoming[i];\n }\n } else {\n merged.push.apply(merged, incoming);\n }\n\n return merged;\n }\n };\n}\nexport function relayStylePagination(keyArgs) {\n if (keyArgs === void 0) {\n keyArgs = false;\n }\n\n return {\n keyArgs: keyArgs,\n read: function read(existing, _a) {\n var canRead = _a.canRead,\n readField = _a.readField;\n if (!existing) return;\n var edges = [];\n var firstEdgeCursor = \"\";\n var lastEdgeCursor = \"\";\n existing.edges.forEach(function (edge) {\n if (canRead(readField(\"node\", edge))) {\n edges.push(edge);\n\n if (edge.cursor) {\n firstEdgeCursor = firstEdgeCursor || edge.cursor || \"\";\n lastEdgeCursor = edge.cursor || lastEdgeCursor;\n }\n }\n });\n\n var _b = existing.pageInfo || {},\n startCursor = _b.startCursor,\n endCursor = _b.endCursor;\n\n return __assign(__assign({}, getExtras(existing)), {\n edges: edges,\n pageInfo: __assign(__assign({}, existing.pageInfo), {\n startCursor: startCursor || firstEdgeCursor,\n endCursor: endCursor || lastEdgeCursor\n })\n });\n },\n merge: function merge(existing, incoming, _a) {\n if (existing === void 0) {\n existing = makeEmptyData();\n }\n\n var args = _a.args,\n isReference = _a.isReference,\n readField = _a.readField;\n var incomingEdges = incoming.edges ? incoming.edges.map(function (edge) {\n if (isReference(edge = __assign({}, edge))) {\n edge.cursor = readField(\"cursor\", edge);\n }\n\n return edge;\n }) : [];\n\n if (incoming.pageInfo) {\n var pageInfo_1 = incoming.pageInfo;\n var startCursor = pageInfo_1.startCursor,\n endCursor = pageInfo_1.endCursor;\n var firstEdge = incomingEdges[0];\n var lastEdge = incomingEdges[incomingEdges.length - 1];\n\n if (firstEdge && startCursor) {\n firstEdge.cursor = startCursor;\n }\n\n if (lastEdge && endCursor) {\n lastEdge.cursor = endCursor;\n }\n\n var firstCursor = firstEdge && firstEdge.cursor;\n\n if (firstCursor && !startCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n startCursor: firstCursor\n }\n });\n }\n\n var lastCursor = lastEdge && lastEdge.cursor;\n\n if (lastCursor && !endCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n endCursor: lastCursor\n }\n });\n }\n }\n\n var prefix = existing.edges;\n var suffix = [];\n\n if (args && args.after) {\n var index = prefix.findIndex(function (edge) {\n return edge.cursor === args.after;\n });\n\n if (index >= 0) {\n prefix = prefix.slice(0, index + 1);\n }\n } else if (args && args.before) {\n var index = prefix.findIndex(function (edge) {\n return edge.cursor === args.before;\n });\n suffix = index < 0 ? prefix : prefix.slice(index);\n prefix = [];\n } else if (incoming.edges) {\n prefix = [];\n }\n\n var edges = __spreadArrays(prefix, incomingEdges, suffix);\n\n var pageInfo = __assign(__assign({}, incoming.pageInfo), existing.pageInfo);\n\n if (incoming.pageInfo) {\n var _b = incoming.pageInfo,\n hasPreviousPage = _b.hasPreviousPage,\n hasNextPage = _b.hasNextPage,\n startCursor = _b.startCursor,\n endCursor = _b.endCursor,\n extras = __rest_1(_b, [\"hasPreviousPage\", \"hasNextPage\", \"startCursor\", \"endCursor\"]);\n\n Object.assign(pageInfo, extras);\n\n if (!prefix.length) {\n if (void 0 !== hasPreviousPage) pageInfo.hasPreviousPage = hasPreviousPage;\n if (void 0 !== startCursor) pageInfo.startCursor = startCursor;\n }\n\n if (!suffix.length) {\n if (void 0 !== hasNextPage) pageInfo.hasNextPage = hasNextPage;\n if (void 0 !== endCursor) pageInfo.endCursor = endCursor;\n }\n }\n\n return __assign(__assign(__assign({}, getExtras(existing)), getExtras(incoming)), {\n edges: edges,\n pageInfo: pageInfo\n });\n }\n };\n}\n\nvar getExtras = function getExtras(obj) {\n return __rest(obj, notExtras);\n};\n\nvar notExtras = [\"edges\", \"pageInfo\"];\n\nfunction makeEmptyData() {\n return {\n edges: [],\n pageInfo: {\n hasPreviousPage: false,\n hasNextPage: true,\n startCursor: \"\",\n endCursor: \"\"\n }\n };\n}","import { __extends } from \"tslib\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\n\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n}\n\nvar Concast = function (_super) {\n __extends(Concast, _super);\n\n function Concast(sources) {\n var _this = _super.call(this, function (observer) {\n _this.addObserver(observer);\n\n return function () {\n return _this.removeObserver(observer);\n };\n }) || this;\n\n _this.observers = new Set();\n _this.addCount = 0;\n _this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n _this.handlers = {\n next: function next(result) {\n if (_this.sub !== null) {\n _this.latest = [\"next\", result];\n iterateObserversSafely(_this.observers, \"next\", result);\n }\n },\n error: function error(_error) {\n var sub = _this.sub;\n\n if (sub !== null) {\n if (sub) Promise.resolve().then(function () {\n return sub.unsubscribe();\n });\n _this.sub = null;\n _this.latest = [\"error\", _error];\n\n _this.reject(_error);\n\n iterateObserversSafely(_this.observers, \"error\", _error);\n }\n },\n complete: function complete() {\n if (_this.sub !== null) {\n var value = _this.sources.shift();\n\n if (!value) {\n _this.sub = null;\n\n if (_this.latest && _this.latest[0] === \"next\") {\n _this.resolve(_this.latest[1]);\n } else {\n _this.resolve();\n }\n\n iterateObserversSafely(_this.observers, \"complete\");\n } else if (isPromiseLike(value)) {\n value.then(function (obs) {\n return _this.sub = obs.subscribe(_this.handlers);\n });\n } else {\n _this.sub = value.subscribe(_this.handlers);\n }\n }\n }\n };\n\n _this.cancel = function (reason) {\n _this.reject(reason);\n\n _this.sources = [];\n\n _this.handlers.complete();\n };\n\n _this.promise.catch(function (_) {});\n\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n\n if (isPromiseLike(sources)) {\n sources.then(function (iterable) {\n return _this.start(iterable);\n }, _this.handlers.error);\n } else {\n _this.start(sources);\n }\n\n return _this;\n }\n\n Concast.prototype.start = function (sources) {\n if (this.sub !== void 0) return;\n this.sources = Array.from(sources);\n this.handlers.complete();\n };\n\n Concast.prototype.deliverLastMessage = function (observer) {\n if (this.latest) {\n var nextOrError = this.latest[0];\n var method = observer[nextOrError];\n\n if (method) {\n method.call(observer, this.latest[1]);\n }\n\n if (this.sub === null && nextOrError === \"next\" && observer.complete) {\n observer.complete();\n }\n }\n };\n\n Concast.prototype.addObserver = function (observer) {\n if (!this.observers.has(observer)) {\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n ++this.addCount;\n }\n };\n\n Concast.prototype.removeObserver = function (observer, quietly) {\n if (this.observers.delete(observer) && --this.addCount < 1 && !quietly) {\n this.handlers.error(new Error(\"Observable cancelled prematurely\"));\n }\n };\n\n Concast.prototype.cleanup = function (callback) {\n var _this = this;\n\n var called = false;\n\n var once = function once() {\n if (!called) {\n called = true;\n\n _this.observers.delete(observer);\n\n callback();\n }\n };\n\n var observer = {\n next: once,\n error: once,\n complete: once\n };\n var count = this.addCount;\n this.addObserver(observer);\n this.addCount = count;\n };\n\n return Concast;\n}(Observable);\n\nexport { Concast };\nfixObservableSubclass(Concast);","import { Observable } from \"./Observable.js\";\nexport function asyncMap(observable, mapFn, catchFn) {\n return new Observable(function (observer) {\n var next = observer.next,\n error = observer.error,\n _complete = observer.complete;\n var activeCallbackCount = 0;\n var completed = false;\n var promiseQueue = {\n then: function then(callback) {\n return new Promise(function (resolve) {\n return resolve(callback());\n });\n }\n };\n\n function makeCallback(examiner, delegate) {\n if (examiner) {\n return function (arg) {\n ++activeCallbackCount;\n\n var both = function both() {\n return examiner(arg);\n };\n\n promiseQueue = promiseQueue.then(both, both).then(function (result) {\n --activeCallbackCount;\n next && next.call(observer, result);\n\n if (completed) {\n handler.complete();\n }\n }, function (error) {\n --activeCallbackCount;\n throw error;\n }).catch(function (caught) {\n error && error.call(observer, caught);\n });\n };\n } else {\n return function (arg) {\n return delegate && delegate.call(observer, arg);\n };\n }\n }\n\n var handler = {\n next: makeCallback(mapFn, next),\n error: makeCallback(catchFn, error),\n complete: function complete() {\n completed = true;\n\n if (!activeCallbackCount) {\n _complete && _complete.call(observer);\n }\n }\n };\n var sub = observable.subscribe(handler);\n return function () {\n return sub.unsubscribe();\n };\n });\n}","export function iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) {\n return obs[method] && observersWithMethod.push(obs);\n });\n observersWithMethod.forEach(function (obs) {\n return obs[method](argument);\n });\n}","import { Observable } from \"./Observable.js\";\nexport function fixObservableSubclass(subclass) {\n function set(key) {\n Object.defineProperty(subclass, key, {\n value: Observable\n });\n }\n\n if (typeof Symbol === \"function\" && Symbol.species) {\n set(Symbol.species);\n }\n\n set(\"@@species\");\n return subclass;\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 */\nexport var CognitoHostedUIIdentityProvider;\n\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 = {}));\n\nexport function isFederatedSignInOptions(obj) {\n var keys = ['provider'];\n return obj && !!keys.find(function (k) {\n return obj.hasOwnProperty(k);\n });\n}\nexport function isFederatedSignInOptionsCustom(obj) {\n var keys = ['customProvider'];\n return obj && !!keys.find(function (k) {\n return obj.hasOwnProperty(k);\n });\n}\nexport function hasCustomState(obj) {\n var keys = ['customState'];\n return obj && !!keys.find(function (k) {\n return obj.hasOwnProperty(k);\n });\n}\nexport function isCognitoHostedOpts(oauth) {\n return oauth.redirectSignIn !== undefined;\n}\nexport var AuthErrorTypes;\n\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 || (AuthErrorTypes = {}));\n\nexport function isUsernamePasswordOpts(obj) {\n return !!obj.username;\n}","import * as cookie from 'cookie';\nexport function hasDocumentCookie() {\n // Can we get/set cookies on document.cookie?\n return typeof document === 'object' && typeof document.cookie === 'string';\n}\nexport function cleanCookies() {\n document.cookie.split(';').forEach(function (c) {\n document.cookie = c.replace(/^ +/, '').replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\n });\n}\nexport function parseCookies(cookies, options) {\n if (typeof cookies === 'string') {\n return cookie.parse(cookies, options);\n } else if (typeof cookies === 'object' && cookies !== null) {\n return cookies;\n } else {\n return {};\n }\n}\nexport function isParsingCookie(value, doNotParse) {\n if (typeof doNotParse === 'undefined') {\n // We guess if the cookie start with { or [, it has been serialized\n doNotParse = !value || value[0] !== '{' && value[0] !== '[' && value[0] !== '\"';\n }\n\n return !doNotParse;\n}\nexport function readCookie(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var cleanValue = cleanupCookieValue(value);\n\n if (isParsingCookie(cleanValue, options.doNotParse)) {\n try {\n return JSON.parse(cleanValue);\n } catch (e) {// At least we tried\n }\n } // Ignore clean value if we failed the deserialization\n // It is not relevant anymore to trim those values\n\n\n return value;\n}\n\nfunction cleanupCookieValue(value) {\n // express prepend j: before serializing a cookie\n if (value && value[0] === 'j' && value[1] === ':') {\n return value.substr(2);\n }\n\n return value;\n}","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport * as cookie from 'cookie';\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\n\nvar Cookies =\n/** @class */\nfunction () {\n function Cookies(cookies, options) {\n var _this = this;\n\n this.changeListeners = [];\n this.HAS_DOCUMENT_COOKIE = false;\n this.cookies = parseCookies(cookies, options);\n new Promise(function () {\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\n }).catch(function () {});\n }\n\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\n if (!this.HAS_DOCUMENT_COOKIE) {\n return;\n }\n\n this.cookies = cookie.parse(document.cookie, parseOptions);\n };\n\n Cookies.prototype._emitChange = function (params) {\n for (var i = 0; i < this.changeListeners.length; ++i) {\n this.changeListeners[i](params);\n }\n };\n\n Cookies.prototype.get = function (name, options, parseOptions) {\n if (options === void 0) {\n options = {};\n }\n\n this._updateBrowserValues(parseOptions);\n\n return readCookie(this.cookies[name], options);\n };\n\n Cookies.prototype.getAll = function (options, parseOptions) {\n if (options === void 0) {\n options = {};\n }\n\n this._updateBrowserValues(parseOptions);\n\n var result = {};\n\n for (var name_1 in this.cookies) {\n result[name_1] = readCookie(this.cookies[name_1], options);\n }\n\n return result;\n };\n\n Cookies.prototype.set = function (name, value, options) {\n var _a;\n\n if (typeof value === 'object') {\n value = JSON.stringify(value);\n }\n\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\n\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = cookie.serialize(name, value, options);\n }\n\n this._emitChange({\n name: name,\n value: value,\n options: options\n });\n };\n\n Cookies.prototype.remove = function (name, options) {\n var finalOptions = options = __assign(__assign({}, options), {\n expires: new Date(1970, 1, 1, 0, 0, 1),\n maxAge: 0\n });\n\n this.cookies = __assign({}, this.cookies);\n delete this.cookies[name];\n\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = cookie.serialize(name, '', finalOptions);\n }\n\n this._emitChange({\n name: name,\n value: undefined,\n options: options\n });\n };\n\n Cookies.prototype.addChangeListener = function (callback) {\n this.changeListeners.push(callback);\n };\n\n Cookies.prototype.removeChangeListener = function (callback) {\n var idx = this.changeListeners.indexOf(callback);\n\n if (idx >= 0) {\n this.changeListeners.splice(idx, 1);\n }\n };\n\n return Cookies;\n}();\n\nexport default Cookies;","import Cookies from './Cookies';\nexport default Cookies;","import Cookies from 'universal-cookie';\nimport { browserOrNode } from '../JS';\nvar isBrowser = browserOrNode().isBrowser;\n\nvar UniversalStorage =\n/** @class */\nfunction () {\n function UniversalStorage(context) {\n if (context === void 0) {\n context = {};\n }\n\n this.cookies = new Cookies();\n this.store = isBrowser ? window.localStorage : Object.create(null);\n this.cookies = context.req ? new Cookies(context.req.headers.cookie) : new Cookies();\n Object.assign(this.store, this.cookies.getAll());\n }\n\n Object.defineProperty(UniversalStorage.prototype, \"length\", {\n get: function get() {\n return Object.entries(this.store).length;\n },\n enumerable: true,\n configurable: true\n });\n\n UniversalStorage.prototype.clear = function () {\n var _this = this;\n\n Array.from(new Array(this.length)).map(function (_, i) {\n return _this.key(i);\n }).forEach(function (key) {\n return _this.removeItem(key);\n });\n };\n\n UniversalStorage.prototype.getItem = function (key) {\n return this.getLocalItem(key);\n };\n\n UniversalStorage.prototype.getLocalItem = function (key) {\n return Object.prototype.hasOwnProperty.call(this.store, key) ? this.store[key] : null;\n };\n\n UniversalStorage.prototype.getUniversalItem = function (key) {\n return this.cookies.get(key);\n };\n\n UniversalStorage.prototype.key = function (index) {\n return Object.keys(this.store)[index];\n };\n\n UniversalStorage.prototype.removeItem = function (key) {\n this.removeLocalItem(key);\n this.removeUniversalItem(key);\n };\n\n UniversalStorage.prototype.removeLocalItem = function (key) {\n delete this.store[key];\n };\n\n UniversalStorage.prototype.removeUniversalItem = function (key) {\n this.cookies.remove(key, {\n path: '/'\n });\n };\n\n UniversalStorage.prototype.setItem = function (key, value) {\n this.setLocalItem(key, value); // keys take the shape:\n // 1. `${ProviderPrefix}.${userPoolClientId}.${username}.${tokenType}\n // 2. `${ProviderPrefix}.${userPoolClientId}.LastAuthUser\n\n var tokenType = key.split('.').pop();\n\n switch (tokenType) {\n // LastAuthUser is needed for computing other key names\n case 'LastAuthUser': // accessToken is required for CognitoUserSession\n\n case 'accessToken': // 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\n case 'refreshToken': // Required for CognitoUserSession\n\n case 'idToken':\n isBrowser ? this.setUniversalItem(key, value) : 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\n UniversalStorage.prototype.setLocalItem = function (key, value) {\n this.store[key] = value;\n };\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\n return UniversalStorage;\n}();\n\nexport { UniversalStorage };","export var AuthErrorStrings;\n\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 || (AuthErrorStrings = {}));","/*\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 launchUri(url) {\n var windowProxy = window.open(url, SELF);\n\n if (windowProxy) {\n return Promise.resolve(windowProxy);\n } else {\n return Promise.reject();\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 */\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { parse } from 'url'; // Used for OAuth parsing of Cognito Hosted UI\n\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' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default';\n\nvar dispatchAuthEvent = function dispatchAuthEvent(event, data, message) {\n Hub.dispatch('auth', {\n event: event,\n data: data,\n message: message\n }, 'Auth', AMPLIFY_SYMBOL);\n};\n\nvar logger = new Logger('OAuth');\n\nvar OAuth =\n/** @class */\nfunction () {\n function OAuth(_a) {\n var config = _a.config,\n cognitoClientId = _a.cognitoClientId,\n _b = _a.scopes,\n scopes = _b === void 0 ? [] : _b;\n this._urlOpener = config.urlOpener || launchUri;\n this._config = config;\n this._cognitoClientId = cognitoClientId;\n if (!this.isValidScopes(scopes)) throw Error('scopes must be a String Array');\n this._scopes = scopes;\n }\n\n OAuth.prototype.isValidScopes = function (scopes) {\n return Array.isArray(scopes) && scopes.every(function (scope) {\n return typeof scope === 'string';\n });\n };\n\n OAuth.prototype.oauthSignIn = function (responseType, domain, redirectSignIn, clientId, provider, customState) {\n if (responseType === void 0) {\n responseType = 'code';\n }\n\n if (provider === void 0) {\n provider = CognitoHostedUIIdentityProvider.Cognito;\n }\n\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\n\n var state = customState ? generatedState + \"-\" + urlSafeEncode(customState) : generatedState;\n oAuthStorage.setState(state);\n\n var pkce_key = this._generateRandom(128);\n\n oAuthStorage.setPKCE(pkce_key);\n\n var code_challenge = this._generateChallenge(pkce_key);\n\n var code_challenge_method = 'S256';\n\n var scopesString = this._scopes.join(' ');\n\n var queryString = Object.entries(__assign(__assign({\n redirect_uri: redirectSignIn,\n response_type: responseType,\n client_id: clientId,\n identity_provider: provider,\n scope: scopesString,\n state: state\n }, responseType === 'code' ? {\n code_challenge: code_challenge\n } : {}), responseType === 'code' ? {\n code_challenge_method: code_challenge_method\n } : {})).map(function (_a) {\n var _b = __read(_a, 2),\n k = _b[0],\n v = _b[1];\n\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n }).join('&');\n var URL = \"https://\" + domain + \"/oauth2/authorize?\" + queryString;\n logger.debug(\"Redirecting to \" + URL);\n\n this._urlOpener(URL, redirectSignIn);\n };\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\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n code = (parse(currentUrl).query || '').split('&').map(function (pairings) {\n return pairings.split('=');\n }).reduce(function (accum, _a) {\n var _b;\n\n var _c = __read(_a, 2),\n k = _c[0],\n v = _c[1];\n\n return __assign(__assign({}, accum), (_b = {}, _b[k] = v, _b));\n }, {\n code: undefined\n }).code;\n currentUrlPathname = parse(currentUrl).pathname || '/';\n redirectSignInPathname = parse(this._config.redirectSignIn).pathname || '/';\n\n if (!code || currentUrlPathname !== redirectSignInPathname) {\n return [2\n /*return*/\n ];\n }\n\n oAuthTokenEndpoint = 'https://' + this._config.domain + '/oauth2/token';\n dispatchAuthEvent('codeFlow', {}, \"Retrieving tokens from \" + oAuthTokenEndpoint);\n client_id = isCognitoHostedOpts(this._config) ? this._cognitoClientId : this._config.clientID;\n redirect_uri = isCognitoHostedOpts(this._config) ? this._config.redirectSignIn : this._config.redirectUri;\n code_verifier = oAuthStorage.getPKCE();\n oAuthTokenBody = __assign({\n grant_type: 'authorization_code',\n code: code,\n client_id: client_id,\n redirect_uri: redirect_uri\n }, code_verifier ? {\n code_verifier: code_verifier\n } : {});\n logger.debug(\"Calling token endpoint: \" + oAuthTokenEndpoint + \" with\", oAuthTokenBody);\n body = Object.entries(oAuthTokenBody).map(function (_a) {\n var _b = __read(_a, 2),\n k = _b[0],\n v = _b[1];\n\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n }).join('&');\n return [4\n /*yield*/\n , fetch(oAuthTokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n body: body\n })];\n\n case 1:\n return [4\n /*yield*/\n , _b.sent().json()];\n\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\n if (error) {\n throw new Error(error);\n }\n\n return [2\n /*return*/\n , {\n accessToken: access_token,\n refreshToken: refresh_token,\n idToken: id_token\n }];\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\n return __generator(this, function (_b) {\n _a = (parse(currentUrl).hash || '#').substr(1) // Remove # from returned code\n .split('&').map(function (pairings) {\n return pairings.split('=');\n }).reduce(function (accum, _a) {\n var _b;\n\n var _c = __read(_a, 2),\n k = _c[0],\n v = _c[1];\n\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\n /*return*/\n , {\n accessToken: access_token,\n idToken: id_token,\n refreshToken: null\n }];\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\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 5,, 6]);\n\n urlParams = currentUrl ? __assign(__assign({}, (parse(currentUrl).hash || '#').substr(1).split('&').map(function (entry) {\n return entry.split('=');\n }).reduce(function (acc, _a) {\n var _b = __read(_a, 2),\n k = _b[0],\n v = _b[1];\n\n return acc[k] = v, acc;\n }, {})), (parse(currentUrl).query || '').split('&').map(function (entry) {\n return entry.split('=');\n }).reduce(function (acc, _a) {\n var _b = __read(_a, 2),\n k = _b[0],\n v = _b[1];\n\n return acc[k] = v, acc;\n }, {})) : {};\n error = urlParams.error, error_description = urlParams.error_description;\n\n if (error) {\n throw new Error(error_description);\n }\n\n state = this._validateState(urlParams);\n logger.debug(\"Starting \" + this._config.responseType + \" flow with \" + currentUrl);\n if (!(this._config.responseType === 'code')) return [3\n /*break*/\n , 2];\n _a = [{}];\n return [4\n /*yield*/\n , this._handleCodeFlow(currentUrl)];\n\n case 1:\n return [2\n /*return*/\n , __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_c.sent()])), {\n state: state\n }])];\n\n case 2:\n _b = [{}];\n return [4\n /*yield*/\n , this._handleImplicitFlow(currentUrl)];\n\n case 3:\n return [2\n /*return*/\n , __assign.apply(void 0, [__assign.apply(void 0, _b.concat([_c.sent()])), {\n state: state\n }])];\n\n case 4:\n return [3\n /*break*/\n , 6];\n\n case 5:\n e_1 = _c.sent();\n logger.error(\"Error handling auth response.\", e_1);\n throw e_1;\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n OAuth.prototype._validateState = function (urlParams) {\n if (!urlParams) {\n return;\n }\n\n var savedState = oAuthStorage.getState();\n var returnedState = urlParams.state; // This is because savedState only exists if the flow was initiated by Amplify\n\n if (savedState && savedState !== returnedState) {\n throw new Error('Invalid state in OAuth flow');\n }\n\n return returnedState;\n };\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) ? this._cognitoClientId : this._config.oauth.clientID;\n signout_uri = isCognitoHostedOpts(this._config) ? this._config.redirectSignOut : this._config.returnTo;\n oAuthLogoutEndpoint += Object.entries({\n client_id: client_id,\n logout_uri: encodeURIComponent(signout_uri)\n }).map(function (_a) {\n var _b = __read(_a, 2),\n k = _b[0],\n v = _b[1];\n\n return k + \"=\" + v;\n }).join('&');\n dispatchAuthEvent('oAuthSignOut', {\n oAuth: 'signOut'\n }, \"Signing out from \" + oAuthLogoutEndpoint);\n logger.debug(\"Signing out from \" + oAuthLogoutEndpoint);\n return [2\n /*return*/\n , this._urlOpener(oAuthLogoutEndpoint, signout_uri)];\n });\n });\n };\n\n OAuth.prototype._generateState = function (length) {\n var result = '';\n var i = length;\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\n for (; i > 0; --i) {\n result += chars[Math.round(Math.random() * (chars.length - 1))];\n }\n\n return result;\n };\n\n OAuth.prototype._generateChallenge = function (code) {\n return this._base64URL(sha256(code));\n };\n\n OAuth.prototype._base64URL = function (string) {\n return string.toString(Base64).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n };\n\n OAuth.prototype._generateRandom = function (size) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n var buffer = new Uint8Array(size);\n\n if (typeof window !== 'undefined' && !!window.crypto) {\n window.crypto.getRandomValues(buffer);\n } else {\n for (var i = 0; i < size; i += 1) {\n buffer[i] = Math.random() * CHARSET.length | 0;\n }\n }\n\n return this._bufferToString(buffer);\n };\n\n OAuth.prototype._bufferToString = function (buffer) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var state = [];\n\n for (var i = 0; i < buffer.byteLength; i += 1) {\n var index = buffer[i] % CHARSET.length;\n state.push(CHARSET[index]);\n }\n\n return state.join('');\n };\n\n return OAuth;\n}();\n\nexport default OAuth;","export function urlSafeEncode(str) {\n return str.split('').map(function (char) {\n return char.charCodeAt(0).toString(16).padStart(2, '0');\n }).join('');\n}\nexport function urlSafeDecode(hex) {\n return hex.match(/.{2}/g).map(function (char) {\n return String.fromCharCode(parseInt(char, 16));\n }).join('');\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 */\nexport var setState = function setState(state) {\n window.sessionStorage.setItem('oauth_state', state);\n};\nexport var getState = function getState() {\n var oauth_state = window.sessionStorage.getItem('oauth_state');\n window.sessionStorage.removeItem('oauth_state');\n return oauth_state;\n};\nexport var setPKCE = function setPKCE(private_key) {\n window.sessionStorage.setItem('ouath_pkce_key', private_key);\n};\nexport var getPKCE = function getPKCE() {\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 clearAll() {\n window.sessionStorage.removeItem('ouath_pkce_key');\n window.sessionStorage.removeItem('oauth_state');\n};","/*\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 extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\nvar logger = new Logger('AuthError');\n\nvar AuthError =\n/** @class */\nfunction (_super) {\n __extends(AuthError, _super);\n\n function AuthError(type) {\n var _this = this;\n\n var _a = authErrorMessages[type],\n message = _a.message,\n log = _a.log;\n _this = _super.call(this, message) || this; // 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\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\n return AuthError;\n}(Error);\n\nexport { AuthError };\n\nvar NoUserPoolError =\n/** @class */\nfunction (_super) {\n __extends(NoUserPoolError, _super);\n\n function NoUserPoolError(type) {\n var _this = _super.call(this, type) || this; // 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\n\n _this.constructor = NoUserPoolError;\n Object.setPrototypeOf(_this, NoUserPoolError.prototype);\n _this.name = 'NoUserPoolError';\n return _this;\n }\n\n return NoUserPoolError;\n}(AuthError);\n\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 default: {\n message: AuthErrorStrings.DEFAULT_MSG\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 *\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { isUsernamePasswordOpts, isCognitoHostedOpts, isFederatedSignInOptions, isFederatedSignInOptionsCustom, hasCustomState } from './types';\nimport { Amplify, ConsoleLogger as Logger, Credentials, Hub, StorageHelper, Parser, JS, 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'; // 10 sec, following this guide https://www.nngroup.com/articles/response-times-3-important-limits/\n\nvar OAUTH_FLOW_MS_TIMEOUT = 10 * 1000;\nvar AMPLIFY_SYMBOL = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default';\n\nvar dispatchAuthEvent = function dispatchAuthEvent(event, data, message) {\n Hub.dispatch('auth', {\n event: event,\n data: data,\n message: message\n }, 'Auth', AMPLIFY_SYMBOL);\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\n\n\nvar MAX_DEVICES = 60;\n/**\n * Provide authentication steps\n */\n\nvar AuthClass =\n/** @class */\nfunction () {\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\n this.userPool = null;\n this.user = null;\n this.oAuthFlowInProgress = false;\n this.Credentials = Credentials;\n\n this.wrapRefreshSessionCallback = function (callback) {\n var wrapped = function wrapped(error, data) {\n if (data) {\n dispatchAuthEvent('tokenRefresh', undefined, \"New token retrieved\");\n } else {\n dispatchAuthEvent('tokenRefresh_failure', error, \"Failed to retrieve new token\");\n }\n\n return callback(error, data);\n };\n\n return wrapped;\n }; // prettier-ignore\n\n\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\n switch (event) {\n case 'signIn':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'false');\n\n break;\n\n case 'signOut':\n _this._storage.removeItem('amplify-signin-with-hostedUI');\n\n break;\n\n case 'cognitoHostedUI':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'true');\n\n break;\n }\n });\n }\n\n AuthClass.prototype.getModuleName = function () {\n return 'Auth';\n };\n\n AuthClass.prototype.configure = function (config) {\n var _this = this;\n\n if (!config) 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,\n userPoolId = _a.userPoolId,\n userPoolWebClientId = _a.userPoolWebClientId,\n cookieStorage = _a.cookieStorage,\n oauth = _a.oauth,\n region = _a.region,\n identityPoolId = _a.identityPoolId,\n mandatorySignIn = _a.mandatorySignIn,\n refreshHandlers = _a.refreshHandlers,\n identityPoolRegion = _a.identityPoolRegion,\n clientMetadata = _a.clientMetadata,\n endpoint = _a.endpoint;\n\n if (!this._config.storage) {\n // backward compatability\n if (cookieStorage) this._storage = new CookieStorage(cookieStorage);else {\n this._storage = config.ssr ? new UniversalStorage() : new StorageHelper().getStorage();\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\n this._storage = this._config.storage;\n }\n\n this._storageSync = Promise.resolve();\n\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\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\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 }); // initialize cognitoauth client if hosted ui options provided\n // to keep backward compatibility:\n\n var cognitoHostedUIConfig = oauth ? isCognitoHostedOpts(this._config.oauth) ? oauth : oauth.awsCognito : undefined;\n\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 }); // **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\n var usedResponseUrls_1 = {};\n urlListener(function (_a) {\n var url = _a.url;\n\n if (usedResponseUrls_1[url]) {\n return;\n }\n\n usedResponseUrls_1[url] = true;\n\n _this._handleAuthResponse(url);\n });\n }\n\n dispatchAuthEvent('configured', null, \"The Auth category has been configured successfully\");\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\n\n AuthClass.prototype.signUp = function (params) {\n var _this = this;\n\n var restOfAttrs = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n restOfAttrs[_i - 1] = arguments[_i];\n }\n\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n\n var username = null;\n var password = null;\n var attributes = [];\n var validationData = null;\n var clientMetadata;\n\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) attributes.push(new CognitoUserAttribute({\n Name: 'email',\n Value: email\n }));\n if (phone_number) attributes.push(new CognitoUserAttribute({\n Name: 'phone_number',\n Value: phone_number\n }));\n } else if (params && typeof params === 'object') {\n username = params['username'];\n password = params['password'];\n\n if (params && params.clientMetadata) {\n clientMetadata = params.clientMetadata;\n } else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n\n var attrs_1 = params['attributes'];\n\n if (attrs_1) {\n Object.keys(attrs_1).map(function (key) {\n attributes.push(new CognitoUserAttribute({\n Name: key,\n Value: attrs_1[key]\n }));\n });\n }\n\n var validationDataObject_1 = params['validationData'];\n\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 } else {\n return this.rejectAuthError(AuthErrorTypes.SignUpError);\n }\n\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\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 } else {\n dispatchAuthEvent('signUp', data, username + \" has signed up successfully\");\n resolve(data);\n }\n }, clientMetadata);\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\n\n AuthClass.prototype.confirmSignUp = function (username, code, options) {\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n\n var user = this.createCognitoUser(username);\n var forceAliasCreation = options && typeof options.forceAliasCreation === 'boolean' ? options.forceAliasCreation : true;\n var clientMetadata;\n\n if (options && options.clientMetadata) {\n clientMetadata = options.clientMetadata;\n } else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n\n return new Promise(function (resolve, reject) {\n user.confirmRegistration(code, forceAliasCreation, function (err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n }, clientMetadata);\n });\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\n\n AuthClass.prototype.resendSignUp = function (username, clientMetadata) {\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\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 } 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} password - The password of the username\n * @return - A promise resolves the CognitoUser\n */\n\n\n AuthClass.prototype.signIn = function (usernameOrSignInOpts, pw, clientMetadata) {\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n\n var username = null;\n var password = null;\n var validationData = {}; // for backward compatibility\n\n if (typeof usernameOrSignInOpts === 'string') {\n username = usernameOrSignInOpts;\n password = pw;\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\n username = usernameOrSignInOpts.username;\n password = usernameOrSignInOpts.password;\n validationData = usernameOrSignInOpts.validationData;\n } else {\n return this.rejectAuthError(AuthErrorTypes.InvalidUsername);\n }\n\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n\n var authDetails = new AuthenticationDetails({\n Username: username,\n Password: password,\n ValidationData: validationData,\n ClientMetadata: clientMetadata\n });\n\n if (password) {\n return this.signInWithPassword(authDetails);\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\n\n AuthClass.prototype.authCallbacks = function (user, resolve, reject) {\n var _this = this;\n\n var that = this;\n return {\n onSuccess: function onSuccess(session) {\n 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\n case 1:\n _a.trys.push([1, 4, 5, 9]);\n\n return [4\n /*yield*/\n , this.Credentials.clear()];\n\n case 2:\n _a.sent();\n\n return [4\n /*yield*/\n , this.Credentials.set(session, 'session')];\n\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3\n /*break*/\n , 9];\n\n case 4:\n e_1 = _a.sent();\n logger.debug('cannot get cognito credentials', e_1);\n return [3\n /*break*/\n , 9];\n\n case 5:\n _a.trys.push([5, 7,, 8]);\n\n return [4\n /*yield*/\n , this.currentUserPoolUser()];\n\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\n /*break*/\n , 8];\n\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\n /*break*/\n , 8];\n\n case 8:\n return [7\n /*endfinally*/\n ];\n\n case 9:\n return [2\n /*return*/\n ];\n }\n });\n });\n },\n onFailure: function onFailure(err) {\n logger.debug('signIn failure', err);\n dispatchAuthEvent('signIn_failure', err, user.getUsername() + \" failed to signin\");\n reject(err);\n },\n customChallenge: function customChallenge(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 mfaRequired(challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function mfaSetup(challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n newPasswordRequired: function newPasswordRequired(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 totpRequired(challengeName, challengeParam) {\n logger.debug('signIn totpRequired');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n selectMFAType: function selectMFAType(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\n\n AuthClass.prototype.signInWithPassword = function (authDetails) {\n var _this = this;\n\n if (this.pendingSignIn) {\n throw new Error('Pending sign-in attempt already in progress');\n }\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\n\n AuthClass.prototype.signInWithoutPassword = function (authDetails) {\n var _this = this;\n\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\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\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\n\n AuthClass.prototype.getPreferredMFA = function (user, params) {\n var _this = this;\n\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\n var bypassCache = params ? params.bypassCache : false;\n user.getUserData(function (err, data) {\n if (err) {\n logger.debug('getting preferred mfa failed', err);\n rej(err);\n return;\n }\n\n var mfaType = that._getMfaTypeFromUserData(data);\n\n if (!mfaType) {\n rej('invalid MFA Type');\n return;\n } else {\n res(mfaType);\n return;\n }\n }, {\n bypassCache: bypassCache,\n clientMetadata: clientMetadata\n });\n });\n };\n\n AuthClass.prototype._getMfaTypeFromUserData = function (data) {\n var ret = null;\n var preferredMFA = data.PreferredMfaSetting; // if the user has used Auth.setPreferredMFA() to setup the mfa type\n // then the \"PreferredMfaSetting\" would exist in the response\n\n if (preferredMFA) {\n ret = preferredMFA;\n } else {\n // if mfaList exists but empty, then its noMFA\n var mfaList = data.UserMFASettingList;\n\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\n if (MFAOptions) {\n ret = 'SMS_MFA';\n } else {\n ret = 'NOMFA';\n }\n } else if (mfaList.length === 0) {\n ret = 'NOMFA';\n } else {\n logger.debug('invalid case for getPreferredMFA', data);\n }\n }\n\n return ret;\n };\n\n AuthClass.prototype._getUserData = function (user, params) {\n return new Promise(function (res, rej) {\n user.getUserData(function (err, data) {\n if (err) {\n logger.debug('getting user data failed', err);\n rej(err);\n return;\n } else {\n res(data);\n return;\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\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\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientMetadata = this._config.clientMetadata;\n return [4\n /*yield*/\n , this._getUserData(user, {\n bypassCache: true,\n clientMetadata: clientMetadata\n })];\n\n case 1:\n userData = _b.sent();\n smsMfaSettings = null;\n totpMfaSettings = null;\n _a = mfaMethod;\n\n switch (_a) {\n case 'TOTP' || 'SOFTWARE_TOKEN_MFA':\n return [3\n /*break*/\n , 2];\n\n case 'SMS' || 'SMS_MFA':\n return [3\n /*break*/\n , 3];\n\n case 'NOMFA':\n return [3\n /*break*/\n , 4];\n }\n\n return [3\n /*break*/\n , 6];\n\n case 2:\n totpMfaSettings = {\n PreferredMfa: true,\n Enabled: true\n };\n return [3\n /*break*/\n , 7];\n\n case 3:\n smsMfaSettings = {\n PreferredMfa: true,\n Enabled: true\n };\n return [3\n /*break*/\n , 7];\n\n case 4:\n mfaList = userData['UserMFASettingList'];\n return [4\n /*yield*/\n , this._getMfaTypeFromUserData(userData)];\n\n case 5:\n currentMFAType = _b.sent();\n\n if (currentMFAType === 'NOMFA') {\n return [2\n /*return*/\n , Promise.resolve('No change for mfa type')];\n } else if (currentMFAType === 'SMS_MFA') {\n smsMfaSettings = {\n PreferredMfa: false,\n Enabled: false\n };\n } else if (currentMFAType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false\n };\n } else {\n return [2\n /*return*/\n , this.rejectAuthError(AuthErrorTypes.InvalidMFA)];\n } // if there is a UserMFASettingList in the response\n // we need to disable every mfa type in that list\n\n\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 } else if (mfaType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false\n };\n }\n });\n }\n\n return [3\n /*break*/\n , 7];\n\n case 6:\n logger.debug('no validmfa method provided');\n return [2\n /*return*/\n , this.rejectAuthError(AuthErrorTypes.NoMFA)];\n\n case 7:\n that = this;\n return [2\n /*return*/\n , 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\n logger.debug('Set user mfa success', result);\n logger.debug('Caching the latest user data into local'); // cache the latest result into user data\n\n user.getUserData(function (err, data) {\n if (err) {\n logger.debug('getting user data failed', err);\n return rej(err);\n } else {\n return res(result);\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\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\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\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\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\n\n AuthClass.prototype.setupTOTP = function (user) {\n return new Promise(function (res, rej) {\n user.associateSoftwareToken({\n onFailure: function onFailure(err) {\n logger.debug('associateSoftwareToken failed', err);\n rej(err);\n return;\n },\n associateSecretCode: function associateSecretCode(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\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 onFailure(err) {\n logger.debug('verifyTotpToken failed', err);\n rej(err);\n return;\n },\n onSuccess: function onSuccess(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\n\n AuthClass.prototype.confirmSignIn = function (user, code, mfaType, clientMetadata) {\n var _this = this;\n\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n\n var that = this;\n return new Promise(function (resolve, reject) {\n user.sendMFACode(code, {\n onSuccess: function onSuccess(session) {\n 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\n case 1:\n _a.trys.push([1, 4, 5, 6]);\n\n return [4\n /*yield*/\n , this.Credentials.clear()];\n\n case 2:\n _a.sent();\n\n return [4\n /*yield*/\n , this.Credentials.set(session, 'session')];\n\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3\n /*break*/\n , 6];\n\n case 4:\n e_3 = _a.sent();\n logger.debug('cannot get cognito credentials', e_3);\n return [3\n /*break*/\n , 6];\n\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\n /*endfinally*/\n ];\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n },\n onFailure: function onFailure(err) {\n logger.debug('confirm signIn failure', err);\n reject(err);\n }\n }, mfaType, clientMetadata);\n });\n };\n\n AuthClass.prototype.completeNewPassword = function (user, password, requiredAttributes, clientMetadata) {\n var _this = this;\n\n if (requiredAttributes === void 0) {\n requiredAttributes = {};\n }\n\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n\n var that = this;\n return new Promise(function (resolve, reject) {\n user.completeNewPasswordChallenge(password, requiredAttributes, {\n onSuccess: function onSuccess(session) {\n 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\n case 1:\n _a.trys.push([1, 4, 5, 6]);\n\n return [4\n /*yield*/\n , this.Credentials.clear()];\n\n case 2:\n _a.sent();\n\n return [4\n /*yield*/\n , this.Credentials.set(session, 'session')];\n\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3\n /*break*/\n , 6];\n\n case 4:\n e_4 = _a.sent();\n logger.debug('cannot get cognito credentials', e_4);\n return [3\n /*break*/\n , 6];\n\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\n /*endfinally*/\n ];\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n },\n onFailure: function onFailure(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 mfaRequired(challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function mfaSetup(challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n totpRequired: function totpRequired(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\n\n AuthClass.prototype.sendCustomChallengeAnswer = function (user, challengeResponses, clientMetadata) {\n var _this = this;\n\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n\n if (!challengeResponses) {\n return this.rejectAuthError(AuthErrorTypes.EmptyChallengeResponse);\n }\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\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 } else {\n return resolve(result);\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\n\n AuthClass.prototype.updateUserAttributes = function (user, attributes, clientMetadata) {\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\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\n user.updateAttributes(attributeList, function (err, result) {\n if (err) {\n return reject(err);\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\n\n AuthClass.prototype.userAttributes = function (user) {\n var _this = this;\n\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 } else {\n resolve(attributes);\n }\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\n if (attrs['email']) {\n if (attrs['email_verified']) {\n verified['email'] = attrs['email'];\n } else {\n unverified['email'] = attrs['email'];\n }\n }\n\n if (attrs['phone_number']) {\n if (attrs['phone_number_verified']) {\n verified['phone_number'] = attrs['phone_number'];\n } else {\n unverified['phone_number'] = attrs['phone_number'];\n }\n }\n\n return {\n verified: verified,\n unverified: unverified\n };\n });\n };\n /**\n * Get current authenticated user\n * @return - A promise resolves to current authenticated CognitoUser if success\n */\n\n\n AuthClass.prototype.currentUserPoolUser = function (params) {\n var _this = this;\n\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n\n return new Promise(function (res, rej) {\n _this._storageSync.then(function () {\n return __awaiter(_this, void 0, void 0, function () {\n var user, clientMetadata;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isOAuthInProgress()) return [3\n /*break*/\n , 2];\n logger.debug('OAuth signIn in progress, waiting for resolution...');\n return [4\n /*yield*/\n , 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\n function hostedUISignCallback(_a) {\n var payload = _a.payload;\n var event = payload.event;\n\n if (event === 'cognitoHostedUI' || event === 'cognitoHostedUI_failure') {\n logger.debug(\"OAuth signIn resolved: \" + event);\n clearTimeout(timeoutId);\n Hub.remove('auth', hostedUISignCallback);\n res();\n }\n }\n })];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n user = this.userPool.getCurrentUser();\n\n if (!user) {\n logger.debug('Failed to get user from user pool');\n rej('No current user');\n return [2\n /*return*/\n ];\n }\n\n clientMetadata = this._config.clientMetadata; // refresh the session if the session expired.\n\n user.getSession(function (err, session) {\n return __awaiter(_this, void 0, void 0, function () {\n var bypassCache, clientMetadata, _a, scope;\n\n var _this = this;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (err) {\n logger.debug('Failed to get the user session', err);\n rej(err);\n return [2\n /*return*/\n ];\n }\n\n bypassCache = params ? params.bypassCache : false;\n if (!bypassCache) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.Credentials.clear()];\n\n case 1:\n _b.sent();\n\n _b.label = 2;\n\n case 2:\n clientMetadata = this._config.clientMetadata;\n _a = session.getAccessToken().decodePayload().scope, scope = _a === void 0 ? '' : _a;\n\n if (scope.split(' ').includes(USER_ADMIN_SCOPE)) {\n user.getUserData(function (err, data) {\n if (err) {\n logger.debug('getting user data failed', err); // Make sure the user is still valid\n\n if (err.message === 'User is disabled.' || err.message === 'User does not exist.' || err.message === 'Access Token has been revoked' // Session revoked by another app\n ) {\n rej(err);\n } else {\n // the error may also be thrown when lack of permissions to get user info etc\n // in that case we just bypass the error\n res(user);\n }\n\n return;\n }\n\n var preferredMFA = data.PreferredMfaSetting || 'NOMFA';\n var attributeList = [];\n\n for (var i = 0; i < data.UserAttributes.length; i++) {\n var attribute = {\n Name: data.UserAttributes[i].Name,\n Value: data.UserAttributes[i].Value\n };\n var userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n\n var attributes = _this.attributesToObject(attributeList);\n\n Object.assign(user, {\n attributes: attributes,\n preferredMFA: preferredMFA\n });\n return res(user);\n }, {\n bypassCache: bypassCache,\n clientMetadata: clientMetadata\n });\n } else {\n logger.debug(\"Unable to get the user data because the \" + USER_ADMIN_SCOPE + \" \" + \"is not in the scopes of the access token\");\n return [2\n /*return*/\n , res(user)];\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n }, {\n clientMetadata: clientMetadata\n });\n return [2\n /*return*/\n ];\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\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\n\n AuthClass.prototype.currentAuthenticatedUser = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var federatedUser, e_5, federatedInfo, user, e_6;\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\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this._storageSync];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n e_5 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_5);\n throw e_5;\n\n case 4:\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n\n if (federatedInfo) {\n federatedUser = __assign(__assign({}, federatedInfo.user), {\n token: federatedInfo.token\n });\n }\n } catch (e) {\n logger.debug('cannot load federated user from auth storage');\n }\n\n if (!federatedUser) return [3\n /*break*/\n , 5];\n this.user = federatedUser;\n logger.debug('get current authenticated federated user', this.user);\n return [2\n /*return*/\n , this.user];\n\n case 5:\n logger.debug('get current authenticated userpool user');\n user = null;\n _a.label = 6;\n\n case 6:\n _a.trys.push([6, 8,, 9]);\n\n return [4\n /*yield*/\n , this.currentUserPoolUser(params)];\n\n case 7:\n user = _a.sent();\n return [3\n /*break*/\n , 9];\n\n case 8:\n e_6 = _a.sent();\n\n if (e_6 === 'No userPool') {\n logger.error('Cannot get the current user because the user pool is missing. ' + 'Please make sure the Auth module is configured with a valid Cognito User Pool ID');\n }\n\n logger.debug('The user is not authenticated by the error', e_6);\n return [2\n /*return*/\n , Promise.reject('The user is not authenticated')];\n\n case 9:\n this.user = user;\n return [2\n /*return*/\n , 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\n\n AuthClass.prototype.currentSession = function () {\n var that = this;\n logger.debug('Getting current session'); // Purposely not calling the reject method here because we don't need a console error\n\n if (!this.userPool) {\n return Promise.reject();\n }\n\n return new Promise(function (res, rej) {\n that.currentUserPoolUser().then(function (user) {\n that.userSession(user).then(function (session) {\n res(session);\n return;\n }).catch(function (e) {\n logger.debug('Failed to get the current session', e);\n rej(e);\n return;\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\n\n AuthClass.prototype.userSession = function (user) {\n if (!user) {\n logger.debug('the user is null');\n return this.rejectAuthError(AuthErrorTypes.NoUserSession);\n }\n\n var clientMetadata = this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n\n return new Promise(function (resolve, reject) {\n logger.debug('Getting the session from this user:', user);\n user.getSession(function (err, session) {\n if (err) {\n logger.debug('Failed to get the session from user', user);\n reject(err);\n return;\n } else {\n logger.debug('Succeed to get the user session', session);\n resolve(session);\n return;\n }\n }, {\n clientMetadata: clientMetadata\n });\n });\n };\n /**\n * Get authenticated credentials of current user.\n * @return - A promise resolves to be current user's credentials\n */\n\n\n AuthClass.prototype.currentUserCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_7, federatedInfo;\n\n var _this = this;\n\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\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this._storageSync];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 4];\n\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\n case 4:\n federatedInfo = null;\n\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n } catch (e) {\n logger.debug('failed to get or parse item aws-amplify-federatedInfo', e);\n }\n\n if (federatedInfo) {\n // refresh the jwt token here if necessary\n return [2\n /*return*/\n , this.Credentials.refreshFederatedToken(federatedInfo)];\n } else {\n return [2\n /*return*/\n , this.currentSession().then(function (session) {\n logger.debug('getting session success', session);\n return _this.Credentials.set(session, 'session');\n }).catch(function (error) {\n logger.debug('getting session failed', error);\n return _this.Credentials.set(null, 'guest');\n })];\n }\n\n return [2\n /*return*/\n ];\n }\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\n\n AuthClass.prototype.verifyUserAttribute = function (user, attr, clientMetadata) {\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\n return new Promise(function (resolve, reject) {\n user.getAttributeVerificationCode(attr, {\n onSuccess: function onSuccess(success) {\n return resolve(success);\n },\n onFailure: function onFailure(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\n\n AuthClass.prototype.verifyUserAttributeSubmit = function (user, attr, code) {\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n\n return new Promise(function (resolve, reject) {\n user.verifyAttribute(attr, code, {\n onSuccess: function onSuccess(data) {\n resolve(data);\n return;\n },\n onFailure: function onFailure(err) {\n reject(err);\n return;\n }\n });\n });\n };\n\n AuthClass.prototype.verifyCurrentUserAttribute = function (attr) {\n var that = this;\n return that.currentUserPoolUser().then(function (user) {\n return that.verifyUserAttribute(user, attr);\n });\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\n\n AuthClass.prototype.verifyCurrentUserAttributeSubmit = function (attr, code) {\n var that = this;\n return that.currentUserPoolUser().then(function (user) {\n return that.verifyUserAttributeSubmit(user, attr, code);\n });\n };\n\n AuthClass.prototype.cognitoIdentitySignOut = function (opts, user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_8, isSignedInHostedUI;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4\n /*yield*/\n , this._storageSync];\n\n case 1:\n _a.sent();\n\n return [3\n /*break*/\n , 3];\n\n case 2:\n e_8 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_8);\n throw e_8;\n\n case 3:\n isSignedInHostedUI = this._oAuthHandler && this._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n return [2\n /*return*/\n , new Promise(function (res, rej) {\n if (opts && opts.global) {\n logger.debug('user global sign out', user); // in order to use global signout\n // we must validate the user as an authenticated user by using getSession\n\n var clientMetadata = _this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n\n user.getSession(function (err, result) {\n if (err) {\n logger.debug('failed to get the user session', err);\n return rej(err);\n }\n\n user.globalSignOut({\n onSuccess: function onSuccess(data) {\n logger.debug('global sign out success');\n\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n } else {\n return res();\n }\n },\n onFailure: function onFailure(err) {\n logger.debug('global sign out failed', err);\n return rej(err);\n }\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 } else {\n return res();\n }\n });\n }\n })];\n }\n });\n });\n };\n\n AuthClass.prototype.oAuthSignOutRedirect = function (resolve, reject) {\n var isBrowser = JS.browserOrNode().isBrowser;\n\n if (isBrowser) {\n this.oAuthSignOutRedirectOrReject(reject);\n } else {\n this.oAuthSignOutAndResolve(resolve);\n }\n };\n\n AuthClass.prototype.oAuthSignOutAndResolve = function (resolve) {\n this._oAuthHandler.signOut();\n\n resolve();\n };\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\n\n setTimeout(function () {\n return reject('Signout timeout fail');\n }, 3000);\n };\n /**\n * Sign out method\n * @\n * @return - A promise resolved if success\n */\n\n\n AuthClass.prototype.signOut = function (opts) {\n return __awaiter(this, void 0, void 0, function () {\n var e_9, user;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4\n /*yield*/\n , this.cleanCachedItems()];\n\n case 1:\n _a.sent();\n\n return [3\n /*break*/\n , 3];\n\n case 2:\n e_9 = _a.sent();\n logger.debug('failed to clear cached items');\n return [3\n /*break*/\n , 3];\n\n case 3:\n if (!this.userPool) return [3\n /*break*/\n , 7];\n user = this.userPool.getCurrentUser();\n if (!user) return [3\n /*break*/\n , 5];\n return [4\n /*yield*/\n , this.cognitoIdentitySignOut(opts, user)];\n\n case 4:\n _a.sent();\n\n return [3\n /*break*/\n , 6];\n\n case 5:\n logger.debug('no current Cognito user');\n _a.label = 6;\n\n case 6:\n return [3\n /*break*/\n , 8];\n\n case 7:\n logger.debug('no Congito User pool');\n _a.label = 8;\n\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\n /*return*/\n ];\n }\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\n /*yield*/\n , this.Credentials.clear()];\n\n case 1:\n // clear cognito cached item\n _a.sent();\n\n return [2\n /*return*/\n ];\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\n\n AuthClass.prototype.changePassword = function (user, oldPassword, newPassword, clientMetadata) {\n var _this = this;\n\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\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 } 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\n\n AuthClass.prototype.forgotPassword = function (username, clientMetadata) {\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.forgotPassword({\n onSuccess: function onSuccess() {\n resolve();\n return;\n },\n onFailure: function onFailure(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 inputVerificationCode(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\n\n AuthClass.prototype.forgotPasswordSubmit = function (username, code, password, clientMetadata) {\n if (clientMetadata === void 0) {\n clientMetadata = this._config.clientMetadata;\n }\n\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.confirmPassword(code, password, {\n onSuccess: function onSuccess(success) {\n dispatchAuthEvent('forgotPasswordSubmit', user, username + \" forgotPasswordSubmit successful\");\n resolve(success);\n return;\n },\n onFailure: function onFailure(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\n\n AuthClass.prototype.currentUserInfo = function () {\n return __awaiter(this, void 0, void 0, function () {\n var source, user, attributes, userAttrs, credentials, e_10, 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\n /*break*/\n , 9];\n return [4\n /*yield*/\n , this.currentUserPoolUser().catch(function (err) {\n return logger.error(err);\n })];\n\n case 1:\n user = _a.sent();\n\n if (!user) {\n return [2\n /*return*/\n , null];\n }\n\n _a.label = 2;\n\n case 2:\n _a.trys.push([2, 8,, 9]);\n\n return [4\n /*yield*/\n , this.userAttributes(user)];\n\n case 3:\n attributes = _a.sent();\n userAttrs = this.attributesToObject(attributes);\n credentials = null;\n _a.label = 4;\n\n case 4:\n _a.trys.push([4, 6,, 7]);\n\n return [4\n /*yield*/\n , this.currentCredentials()];\n\n case 5:\n credentials = _a.sent();\n return [3\n /*break*/\n , 7];\n\n case 6:\n e_10 = _a.sent();\n logger.debug('Failed to retrieve credentials while getting current user info', e_10);\n return [3\n /*break*/\n , 7];\n\n case 7:\n info = {\n id: credentials ? credentials.identityId : undefined,\n username: user.getUsername(),\n attributes: userAttrs\n };\n return [2\n /*return*/\n , info];\n\n case 8:\n err_1 = _a.sent();\n logger.error('currentUserInfo error', err_1);\n return [2\n /*return*/\n , {}];\n\n case 9:\n if (source === 'federated') {\n user = this.user;\n return [2\n /*return*/\n , user ? user : {}];\n }\n\n return [2\n /*return*/\n ];\n }\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 } // Ensure backwards compatability\n\n\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\n if (!(isFederatedSignInOptions(providerOrOptions) || isFederatedSignInOptionsCustom(providerOrOptions) || hasCustomState(providerOrOptions) || typeof providerOrOptions === 'undefined')) return [3\n /*break*/\n , 1];\n options = providerOrOptions || {\n provider: CognitoHostedUIIdentityProvider.Cognito\n };\n provider = isFederatedSignInOptions(options) ? options.provider : options.customProvider;\n customState = isFederatedSignInOptions(options) ? options.customState : options.customState;\n\n if (this._config.userPoolId) {\n client_id = isCognitoHostedOpts(this._config.oauth) ? this._config.userPoolWebClientId : this._config.oauth.clientID;\n redirect_uri = isCognitoHostedOpts(this._config.oauth) ? this._config.oauth.redirectSignIn : this._config.oauth.redirectUri;\n\n this._oAuthHandler.oauthSignIn(this._config.oauth.responseType, this._config.oauth.domain, redirect_uri, client_id, provider, customState);\n }\n\n return [3\n /*break*/\n , 4];\n\n case 1:\n provider = providerOrOptions; // To check if the user is already logged in\n\n try {\n loggedInUser = JSON.stringify(JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user);\n\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 } catch (e) {}\n\n token = response.token, identity_id = response.identity_id, expires_at = response.expires_at;\n return [4\n /*yield*/\n , this.Credentials.set({\n provider: provider,\n token: token,\n identity_id: identity_id,\n user: user,\n expires_at: expires_at\n }, 'federation')];\n\n case 2:\n credentials = _a.sent();\n return [4\n /*yield*/\n , this.currentAuthenticatedUser()];\n\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\n /*return*/\n , credentials];\n\n case 4:\n return [2\n /*return*/\n ];\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\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\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\n /*return*/\n ];\n }\n\n _b.label = 1;\n\n case 1:\n _b.trys.push([1,, 8, 9]);\n\n this.oAuthFlowInProgress = true;\n\n if (!this._config.userPoolId) {\n throw new Error(\"OAuth responses require a User Pool defined in config\");\n }\n\n dispatchAuthEvent('parsingCallbackUrl', {\n url: URL\n }, \"The callback url is being parsed\");\n currentUrl = URL || (JS.browserOrNode().isBrowser ? window.location.href : '');\n hasCodeOrError = !!(parse(currentUrl).query || '').split('&').map(function (entry) {\n return entry.split('=');\n }).find(function (_a) {\n var _b = __read(_a, 1),\n k = _b[0];\n\n return k === 'code' || k === 'error';\n });\n hasTokenOrError = !!(parse(currentUrl).hash || '#').substr(1).split('&').map(function (entry) {\n return entry.split('=');\n }).find(function (_a) {\n var _b = __read(_a, 1),\n k = _b[0];\n\n return k === 'access_token' || k === 'error';\n });\n if (!(hasCodeOrError || hasTokenOrError)) return [3\n /*break*/\n , 7];\n\n this._storage.setItem('amplify-redirected-from-hosted-ui', 'true');\n\n _b.label = 2;\n\n case 2:\n _b.trys.push([2, 6,, 7]);\n\n return [4\n /*yield*/\n , this._oAuthHandler.handleAuthResponse(currentUrl)];\n\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({\n IdToken: idToken\n }),\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\n /*break*/\n , 5];\n return [4\n /*yield*/\n , this.Credentials.set(session, 'session')];\n\n case 4:\n credentials = _b.sent();\n logger.debug('AWS credentials', credentials);\n _b.label = 5;\n\n case 5:\n isCustomStateIncluded = /-/.test(state);\n currentUser = this.createCognitoUser(session.getIdToken().decodePayload()['cognito:username']); // This calls cacheTokens() in Cognito SDK\n\n currentUser.setSignInUserSession(session);\n\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\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\n if (isCustomStateIncluded) {\n customState = state.split('-').splice(1).join('-');\n dispatchAuthEvent('customOAuthState', urlSafeDecode(customState), \"State for user \" + currentUser.getUsername());\n } //#endregion\n\n\n return [2\n /*return*/\n , credentials];\n\n case 6:\n err_2 = _b.sent();\n logger.debug('Error in cognito hosted auth response', err_2); // 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\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\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\n /*break*/\n , 7];\n\n case 7:\n return [3\n /*break*/\n , 9];\n\n case 8:\n this.oAuthFlowInProgress = false;\n return [7\n /*endfinally*/\n ];\n\n case 9:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n\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\n AuthClass.prototype.attributesToObject = function (attributes) {\n var _this = this;\n\n var obj = {};\n\n if (attributes) {\n attributes.map(function (attribute) {\n if (attribute.Name === 'email_verified' || attribute.Name === 'phone_number_verified') {\n obj[attribute.Name] = _this.isTruthyString(attribute.Value) || attribute.Value === true;\n } else {\n obj[attribute.Name] = attribute.Value;\n }\n });\n }\n\n return obj;\n };\n\n AuthClass.prototype.isTruthyString = function (value) {\n return typeof value.toLowerCase === 'function' && value.toLowerCase() === 'true';\n };\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\n if (authenticationFlowType) {\n user.setAuthenticationFlowType(authenticationFlowType);\n }\n\n return user;\n };\n\n AuthClass.prototype._isValidAuthStorage = function (obj) {\n // We need to check if the obj has the functions of Storage\n return !!obj && typeof obj.getItem === 'function' && typeof obj.setItem === 'function' && typeof obj.removeItem === 'function' && typeof obj.clear === 'function';\n };\n\n AuthClass.prototype.noUserPoolErrorHandler = function (config) {\n if (config) {\n if (!config.userPoolId || !config.identityPoolId) {\n return AuthErrorTypes.MissingAuthConfig;\n }\n }\n\n return AuthErrorTypes.NoConfig;\n };\n\n AuthClass.prototype.rejectAuthError = function (type) {\n return Promise.reject(new AuthError(type));\n };\n\n AuthClass.prototype.rejectNoUserPool = function () {\n var type = this.noUserPoolErrorHandler(this._config);\n return Promise.reject(new NoUserPoolError(type));\n };\n\n AuthClass.prototype.rememberDevice = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4\n /*yield*/\n , this.currentUserPoolUser()];\n\n case 1:\n currUser = _a.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n error_1 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_1);\n return [2\n /*return*/\n , Promise.reject('The user is not authenticated')];\n\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2\n /*return*/\n , new Promise(function (res, rej) {\n currUser.setDeviceStatusRemembered({\n onSuccess: function onSuccess(data) {\n res(data);\n },\n onFailure: function onFailure(err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n } else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n } else {\n rej(err);\n }\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_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4\n /*yield*/\n , this.currentUserPoolUser()];\n\n case 1:\n currUser = _a.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n error_2 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_2);\n return [2\n /*return*/\n , Promise.reject('The user is not authenticated')];\n\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2\n /*return*/\n , new Promise(function (res, rej) {\n currUser.forgetDevice({\n onSuccess: function onSuccess(data) {\n res(data);\n },\n onFailure: function onFailure(err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n } else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n } else {\n rej(err);\n }\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_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4\n /*yield*/\n , this.currentUserPoolUser()];\n\n case 1:\n currUser = _a.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n error_3 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_3);\n throw new Error('The user is not authenticated');\n\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2\n /*return*/\n , new Promise(function (res, rej) {\n var cb = {\n onSuccess: function onSuccess(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 onFailure(err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n } else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n } else {\n rej(err);\n }\n }\n };\n currUser.listDevices(MAX_DEVICES, null, cb);\n })];\n }\n });\n });\n };\n\n return AuthClass;\n}();\n\nexport { AuthClass };\nexport var Auth = new AuthClass(null);\nAmplify.register(Auth);","/*\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 { JS } from '@aws-amplify/core';\nexport default (function (callback) {\n if (JS.browserOrNode().isBrowser && window.location) {\n var url = window.location.href;\n callback({\n url: url\n });\n } else if (JS.browserOrNode().isNode) {\n // continue building on ssr\n (function () {}); // noop\n\n } else {\n throw new Error('Not supported');\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 { StorageHelper } from '@aws-amplify/core';\n/**\n * Default cache config\n */\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 */\n\nexport function getByteLength(str) {\n var ret = 0;\n ret = str.length;\n\n for (var i = str.length; i >= 0; i -= 1) {\n var charCode = str.charCodeAt(i);\n\n if (charCode > 0x7f && charCode <= 0x7ff) {\n ret += 1;\n } else if (charCode > 0x7ff && charCode <= 0xffff) {\n ret += 2;\n } // trail surrogate\n\n\n if (charCode >= 0xdc00 && charCode <= 0xdfff) {\n i -= 1;\n }\n }\n\n return ret;\n}\n/**\n * get current time\n */\n\nexport function getCurrTime() {\n var currTime = new Date();\n return currTime.getTime();\n}\n/**\n * check if passed value is an integer\n */\n\nexport function isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n\n return _isInteger(value);\n}\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 */\n\n\nvar store = {};\n\nvar CacheObject =\n/** @class */\nfunction () {\n function CacheObject() {}\n\n CacheObject.clear = function () {\n store = {};\n };\n\n CacheObject.getItem = function (key) {\n return store[key] || null;\n };\n\n CacheObject.setItem = function (key, value) {\n store[key] = value;\n };\n\n CacheObject.removeItem = function (key) {\n delete store[key];\n };\n\n return CacheObject;\n}();\n\nexport { CacheObject };","/*\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 extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\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 */\n\nvar BrowserStorageCacheClass =\n/** @class */\nfunction (_super) {\n __extends(BrowserStorageCacheClass, _super);\n /**\n * initialize the cache\n * @param config - the configuration of the cache\n */\n\n\n function BrowserStorageCacheClass(config) {\n var _this = this;\n\n var cacheConfig = config ? Object.assign({}, defaultConfig, config) : 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\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\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\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\n\n BrowserStorageCacheClass.prototype._isExpired = function (key) {\n var text = this.config.storage.getItem(key);\n var item = JSON.parse(text);\n\n if (getCurrTime() >= item.expires) {\n return true;\n }\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\n\n BrowserStorageCacheClass.prototype._removeItem = function (prefixedKey, size) {\n var itemSize = size ? size : JSON.parse(this.config.storage.getItem(prefixedKey)).byteSize;\n\n this._decreaseCurSizeInBytes(itemSize); // remove the cache item\n\n\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\n\n BrowserStorageCacheClass.prototype._setItem = function (prefixedKey, item) {\n // update the cache size\n this._increaseCurSizeInBytes(item.byteSize);\n\n try {\n this.config.storage.setItem(prefixedKey, JSON.stringify(item));\n } catch (setItemErr) {\n // if failed, we need to rollback the cache size\n this._decreaseCurSizeInBytes(item.byteSize);\n\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\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 ? spaceItemNeed : 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\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\n\n BrowserStorageCacheClass.prototype._findValidKeys = function () {\n var keys = [];\n var keyInCache = []; // get all keys in Storage\n\n for (var i = 0; i < this.config.storage.length; i += 1) {\n keyInCache.push(this.config.storage.key(i));\n } // find those items which belong to our cache and also clean those expired items\n\n\n for (var i = 0; i < keyInCache.length; i += 1) {\n var key = keyInCache[i];\n\n if (key.indexOf(this.config.keyPrefix) === 0 && key !== this.cacheCurSizeKey) {\n if (this._isExpired(key)) {\n this._removeItem(key);\n } else {\n keys.push(key);\n }\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\n\n BrowserStorageCacheClass.prototype._popOutItems = function (keys, sizeToPop) {\n var items = [];\n var remainedSize = sizeToPop; // get the items from Storage\n\n for (var i = 0; i < keys.length; i += 1) {\n var val = this.config.storage.getItem(keys[i]);\n\n if (val != null) {\n var item = JSON.parse(val);\n items.push(item);\n }\n } // first compare priority\n // then compare visited time\n\n\n items.sort(function (a, b) {\n if (a.priority > b.priority) {\n return -1;\n } else if (a.priority < b.priority) {\n return 1;\n } else {\n if (a.visitedTime < b.visitedTime) {\n return -1;\n } else return 1;\n }\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\n remainedSize -= items[i].byteSize;\n\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\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; // invalid keys\n\n if (prefixedKey === this.config.keyPrefix || prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return;\n }\n\n if (typeof value === 'undefined') {\n logger.warn(\"The value of item should not be undefined!\");\n return;\n }\n\n var cacheItemOptions = {\n priority: options && options.priority !== undefined ? options.priority : this.config.defaultPriority,\n expires: options && options.expires !== undefined ? options.expires : this.config.defaultTTL + getCurrTime()\n };\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\n var item = this.fillCacheItem(prefixedKey, value, cacheItemOptions); // check wether this item is too big;\n\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\n try {\n // first look into the storage, if it exists, delete it.\n var val = this.config.storage.getItem(prefixedKey);\n\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\n } // check whether the cache is full\n\n\n if (this._isCacheFull(item.byteSize)) {\n var validKeys = this._findValidKeys(); // check again and then pop out items\n\n\n if (this._isCacheFull(item.byteSize)) {\n var sizeToPop = this._sizeToPop(item.byteSize);\n\n this._popOutItems(validKeys, sizeToPop);\n }\n } // put item in the cache\n // may failed due to storage full\n\n\n this._setItem(prefixedKey, item);\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\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\n if (prefixedKey === this.config.keyPrefix || prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return null;\n }\n\n try {\n ret = this.config.storage.getItem(prefixedKey);\n\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\n ret = null;\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\n if (options && options.callback !== undefined) {\n var val = options.callback();\n\n if (val !== null) {\n this.setItem(key, val, options);\n }\n\n return val;\n }\n\n return null;\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\n\n BrowserStorageCacheClass.prototype.removeItem = function (key) {\n logger.log(\"Remove item: key is \" + key);\n var prefixedKey = this.config.keyPrefix + key;\n\n if (prefixedKey === this.config.keyPrefix || prefixedKey === this.cacheCurSizeKey) {\n return;\n }\n\n try {\n var val = this.config.storage.getItem(prefixedKey);\n\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\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\n\n BrowserStorageCacheClass.prototype.clear = function () {\n logger.log(\"Clear Cache\");\n var keysToRemove = [];\n\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n\n if (key.indexOf(this.config.keyPrefix) === 0) {\n keysToRemove.push(key);\n }\n }\n\n try {\n for (var i = 0; i < keysToRemove.length; i += 1) {\n this.config.storage.removeItem(keysToRemove[i]);\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\n\n BrowserStorageCacheClass.prototype.getAllKeys = function () {\n var keys = [];\n\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n\n if (key.indexOf(this.config.keyPrefix) === 0 && key !== this.cacheCurSizeKey) {\n keys.push(key.substring(this.config.keyPrefix.length));\n }\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\n\n BrowserStorageCacheClass.prototype.getCacheCurSize = function () {\n var ret = this.config.storage.getItem(this.cacheCurSizeKey);\n\n if (!ret) {\n this.config.storage.setItem(this.cacheCurSizeKey, '0');\n ret = '0';\n }\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\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\n return new BrowserStorageCacheClass(config);\n };\n\n return BrowserStorageCacheClass;\n}(StorageCache);\n\nexport { BrowserStorageCacheClass };\nexport var BrowserStorageCache = new BrowserStorageCacheClass();\n/**\n * @deprecated use named import\n */\n\nexport default BrowserStorageCache;","/*\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 */\n\nvar StorageCache =\n/** @class */\nfunction () {\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\n StorageCache.prototype.getModuleName = function () {\n return 'Cache';\n };\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\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\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\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\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\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\n if (Number(this.config.warningThreshold) > 1 || 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 } // set 5MB limit\n\n\n var cacheLimit = 5 * 1024 * 1024;\n\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\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)); // for accurate size\n\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\n\n StorageCache.prototype.configure = function (config) {\n if (!config) {\n return this.config;\n }\n\n if (config.keyPrefix) {\n logger.warn(\"Don't try to configure keyPrefix!\");\n }\n\n this.config = Object.assign({}, this.config, config, config.Cache);\n this.checkConfig();\n return this.config;\n };\n\n return StorageCache;\n}();\n\nexport { StorageCache };\n/**\n * @deprecated use named import\n */\n\nexport default StorageCache;","/*\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 };\n/**\n * @deprecated use named import\n */\n\nexport default BrowserStorageCache;\nAmplify.register(BrowserStorageCache);","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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { ConsoleLogger as LoggerClass } from './Logger';\nvar logger = new LoggerClass('Amplify');\n\nvar AmplifyClass =\n/** @class */\nfunction () {\n function AmplifyClass() {\n // Everything that is `register`ed is tracked here\n this._components = [];\n this._config = {}; // All modules (with `getModuleName()`) are stored here for dependency injection\n\n this._modules = {}; // for backward compatibility to avoid breaking change\n // if someone is using like Amplify.Auth\n\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\n AmplifyClass.prototype.register = function (comp) {\n logger.debug('component registered in amplify', comp);\n\n this._components.push(comp);\n\n if (typeof comp.getModuleName === 'function') {\n this._modules[comp.getModuleName()] = comp;\n this[comp.getModuleName()] = comp;\n } else {\n logger.debug('no getModuleName method for component', comp);\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\n\n comp.configure(this._config);\n };\n\n AmplifyClass.prototype.configure = function (config) {\n var _this = this;\n\n if (!config) return this._config;\n this._config = Object.assign(this._config, config);\n logger.debug('amplify config', this._config); // 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\n Object.entries(this._modules).forEach(function (_a) {\n var _b = __read(_a, 2),\n Name = _b[0],\n comp = _b[1]; // e.g. Auth.*\n\n\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\n this._components.map(function (comp) {\n comp.configure(_this._config);\n });\n\n return this._config;\n };\n\n AmplifyClass.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable['getCategory'] && typeof pluggable['getCategory'] === 'function') {\n this._components.map(function (comp) {\n if (comp['addPluggable'] && typeof comp['addPluggable'] === 'function') {\n comp.addPluggable(pluggable);\n }\n });\n }\n };\n\n return AmplifyClass;\n}();\n\nexport { AmplifyClass };\nexport var Amplify = new AmplifyClass();\n/**\n * @deprecated use named import\n */\n\nexport default Amplify;","import { __assign } from \"tslib\";\nexport var AmbiguousRoleResolutionType;\n\n(function (AmbiguousRoleResolutionType) {\n AmbiguousRoleResolutionType[\"AUTHENTICATED_ROLE\"] = \"AuthenticatedRole\";\n AmbiguousRoleResolutionType[\"DENY\"] = \"Deny\";\n})(AmbiguousRoleResolutionType || (AmbiguousRoleResolutionType = {}));\n\nexport var CognitoIdentityProvider;\n\n(function (CognitoIdentityProvider) {\n CognitoIdentityProvider.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CognitoIdentityProvider || (CognitoIdentityProvider = {}));\n\nexport var CreateIdentityPoolInput;\n\n(function (CreateIdentityPoolInput) {\n CreateIdentityPoolInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CreateIdentityPoolInput || (CreateIdentityPoolInput = {}));\n\nexport var IdentityPool;\n\n(function (IdentityPool) {\n IdentityPool.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IdentityPool || (IdentityPool = {}));\n\nexport var InternalErrorException;\n\n(function (InternalErrorException) {\n InternalErrorException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InternalErrorException || (InternalErrorException = {}));\n\nexport var InvalidParameterException;\n\n(function (InvalidParameterException) {\n InvalidParameterException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InvalidParameterException || (InvalidParameterException = {}));\n\nexport var LimitExceededException;\n\n(function (LimitExceededException) {\n LimitExceededException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LimitExceededException || (LimitExceededException = {}));\n\nexport var NotAuthorizedException;\n\n(function (NotAuthorizedException) {\n NotAuthorizedException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NotAuthorizedException || (NotAuthorizedException = {}));\n\nexport var ResourceConflictException;\n\n(function (ResourceConflictException) {\n ResourceConflictException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ResourceConflictException || (ResourceConflictException = {}));\n\nexport var TooManyRequestsException;\n\n(function (TooManyRequestsException) {\n TooManyRequestsException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TooManyRequestsException || (TooManyRequestsException = {}));\n\nexport var DeleteIdentitiesInput;\n\n(function (DeleteIdentitiesInput) {\n DeleteIdentitiesInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteIdentitiesInput || (DeleteIdentitiesInput = {}));\n\nexport var ErrorCode;\n\n(function (ErrorCode) {\n ErrorCode[\"ACCESS_DENIED\"] = \"AccessDenied\";\n ErrorCode[\"INTERNAL_SERVER_ERROR\"] = \"InternalServerError\";\n})(ErrorCode || (ErrorCode = {}));\n\nexport var UnprocessedIdentityId;\n\n(function (UnprocessedIdentityId) {\n UnprocessedIdentityId.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UnprocessedIdentityId || (UnprocessedIdentityId = {}));\n\nexport var DeleteIdentitiesResponse;\n\n(function (DeleteIdentitiesResponse) {\n DeleteIdentitiesResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteIdentitiesResponse || (DeleteIdentitiesResponse = {}));\n\nexport var DeleteIdentityPoolInput;\n\n(function (DeleteIdentityPoolInput) {\n DeleteIdentityPoolInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteIdentityPoolInput || (DeleteIdentityPoolInput = {}));\n\nexport var ResourceNotFoundException;\n\n(function (ResourceNotFoundException) {\n ResourceNotFoundException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ResourceNotFoundException || (ResourceNotFoundException = {}));\n\nexport var DescribeIdentityInput;\n\n(function (DescribeIdentityInput) {\n DescribeIdentityInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DescribeIdentityInput || (DescribeIdentityInput = {}));\n\nexport var IdentityDescription;\n\n(function (IdentityDescription) {\n IdentityDescription.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IdentityDescription || (IdentityDescription = {}));\n\nexport var DescribeIdentityPoolInput;\n\n(function (DescribeIdentityPoolInput) {\n DescribeIdentityPoolInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DescribeIdentityPoolInput || (DescribeIdentityPoolInput = {}));\n\nexport var ExternalServiceException;\n\n(function (ExternalServiceException) {\n ExternalServiceException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ExternalServiceException || (ExternalServiceException = {}));\n\nexport var GetCredentialsForIdentityInput;\n\n(function (GetCredentialsForIdentityInput) {\n GetCredentialsForIdentityInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetCredentialsForIdentityInput || (GetCredentialsForIdentityInput = {}));\n\nexport var Credentials;\n\n(function (Credentials) {\n Credentials.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Credentials || (Credentials = {}));\n\nexport var GetCredentialsForIdentityResponse;\n\n(function (GetCredentialsForIdentityResponse) {\n GetCredentialsForIdentityResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetCredentialsForIdentityResponse || (GetCredentialsForIdentityResponse = {}));\n\nexport var InvalidIdentityPoolConfigurationException;\n\n(function (InvalidIdentityPoolConfigurationException) {\n InvalidIdentityPoolConfigurationException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InvalidIdentityPoolConfigurationException || (InvalidIdentityPoolConfigurationException = {}));\n\nexport var GetIdInput;\n\n(function (GetIdInput) {\n GetIdInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetIdInput || (GetIdInput = {}));\n\nexport var GetIdResponse;\n\n(function (GetIdResponse) {\n GetIdResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetIdResponse || (GetIdResponse = {}));\n\nexport var GetIdentityPoolRolesInput;\n\n(function (GetIdentityPoolRolesInput) {\n GetIdentityPoolRolesInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetIdentityPoolRolesInput || (GetIdentityPoolRolesInput = {}));\n\nexport var MappingRuleMatchType;\n\n(function (MappingRuleMatchType) {\n MappingRuleMatchType[\"CONTAINS\"] = \"Contains\";\n MappingRuleMatchType[\"EQUALS\"] = \"Equals\";\n MappingRuleMatchType[\"NOT_EQUAL\"] = \"NotEqual\";\n MappingRuleMatchType[\"STARTS_WITH\"] = \"StartsWith\";\n})(MappingRuleMatchType || (MappingRuleMatchType = {}));\n\nexport var MappingRule;\n\n(function (MappingRule) {\n MappingRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MappingRule || (MappingRule = {}));\n\nexport var RulesConfigurationType;\n\n(function (RulesConfigurationType) {\n RulesConfigurationType.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RulesConfigurationType || (RulesConfigurationType = {}));\n\nexport var RoleMappingType;\n\n(function (RoleMappingType) {\n RoleMappingType[\"RULES\"] = \"Rules\";\n RoleMappingType[\"TOKEN\"] = \"Token\";\n})(RoleMappingType || (RoleMappingType = {}));\n\nexport var RoleMapping;\n\n(function (RoleMapping) {\n RoleMapping.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RoleMapping || (RoleMapping = {}));\n\nexport var GetIdentityPoolRolesResponse;\n\n(function (GetIdentityPoolRolesResponse) {\n GetIdentityPoolRolesResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetIdentityPoolRolesResponse || (GetIdentityPoolRolesResponse = {}));\n\nexport var GetOpenIdTokenInput;\n\n(function (GetOpenIdTokenInput) {\n GetOpenIdTokenInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetOpenIdTokenInput || (GetOpenIdTokenInput = {}));\n\nexport var GetOpenIdTokenResponse;\n\n(function (GetOpenIdTokenResponse) {\n GetOpenIdTokenResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetOpenIdTokenResponse || (GetOpenIdTokenResponse = {}));\n\nexport var DeveloperUserAlreadyRegisteredException;\n\n(function (DeveloperUserAlreadyRegisteredException) {\n DeveloperUserAlreadyRegisteredException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeveloperUserAlreadyRegisteredException || (DeveloperUserAlreadyRegisteredException = {}));\n\nexport var GetOpenIdTokenForDeveloperIdentityInput;\n\n(function (GetOpenIdTokenForDeveloperIdentityInput) {\n GetOpenIdTokenForDeveloperIdentityInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetOpenIdTokenForDeveloperIdentityInput || (GetOpenIdTokenForDeveloperIdentityInput = {}));\n\nexport var GetOpenIdTokenForDeveloperIdentityResponse;\n\n(function (GetOpenIdTokenForDeveloperIdentityResponse) {\n GetOpenIdTokenForDeveloperIdentityResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetOpenIdTokenForDeveloperIdentityResponse || (GetOpenIdTokenForDeveloperIdentityResponse = {}));\n\nexport var ListIdentitiesInput;\n\n(function (ListIdentitiesInput) {\n ListIdentitiesInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListIdentitiesInput || (ListIdentitiesInput = {}));\n\nexport var ListIdentitiesResponse;\n\n(function (ListIdentitiesResponse) {\n ListIdentitiesResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListIdentitiesResponse || (ListIdentitiesResponse = {}));\n\nexport var ListIdentityPoolsInput;\n\n(function (ListIdentityPoolsInput) {\n ListIdentityPoolsInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListIdentityPoolsInput || (ListIdentityPoolsInput = {}));\n\nexport var IdentityPoolShortDescription;\n\n(function (IdentityPoolShortDescription) {\n IdentityPoolShortDescription.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IdentityPoolShortDescription || (IdentityPoolShortDescription = {}));\n\nexport var ListIdentityPoolsResponse;\n\n(function (ListIdentityPoolsResponse) {\n ListIdentityPoolsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListIdentityPoolsResponse || (ListIdentityPoolsResponse = {}));\n\nexport var ListTagsForResourceInput;\n\n(function (ListTagsForResourceInput) {\n ListTagsForResourceInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListTagsForResourceInput || (ListTagsForResourceInput = {}));\n\nexport var ListTagsForResourceResponse;\n\n(function (ListTagsForResourceResponse) {\n ListTagsForResourceResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListTagsForResourceResponse || (ListTagsForResourceResponse = {}));\n\nexport var LookupDeveloperIdentityInput;\n\n(function (LookupDeveloperIdentityInput) {\n LookupDeveloperIdentityInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LookupDeveloperIdentityInput || (LookupDeveloperIdentityInput = {}));\n\nexport var LookupDeveloperIdentityResponse;\n\n(function (LookupDeveloperIdentityResponse) {\n LookupDeveloperIdentityResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LookupDeveloperIdentityResponse || (LookupDeveloperIdentityResponse = {}));\n\nexport var MergeDeveloperIdentitiesInput;\n\n(function (MergeDeveloperIdentitiesInput) {\n MergeDeveloperIdentitiesInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MergeDeveloperIdentitiesInput || (MergeDeveloperIdentitiesInput = {}));\n\nexport var MergeDeveloperIdentitiesResponse;\n\n(function (MergeDeveloperIdentitiesResponse) {\n MergeDeveloperIdentitiesResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MergeDeveloperIdentitiesResponse || (MergeDeveloperIdentitiesResponse = {}));\n\nexport var ConcurrentModificationException;\n\n(function (ConcurrentModificationException) {\n ConcurrentModificationException.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ConcurrentModificationException || (ConcurrentModificationException = {}));\n\nexport var SetIdentityPoolRolesInput;\n\n(function (SetIdentityPoolRolesInput) {\n SetIdentityPoolRolesInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SetIdentityPoolRolesInput || (SetIdentityPoolRolesInput = {}));\n\nexport var TagResourceInput;\n\n(function (TagResourceInput) {\n TagResourceInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TagResourceInput || (TagResourceInput = {}));\n\nexport var TagResourceResponse;\n\n(function (TagResourceResponse) {\n TagResourceResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TagResourceResponse || (TagResourceResponse = {}));\n\nexport var UnlinkDeveloperIdentityInput;\n\n(function (UnlinkDeveloperIdentityInput) {\n UnlinkDeveloperIdentityInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UnlinkDeveloperIdentityInput || (UnlinkDeveloperIdentityInput = {}));\n\nexport var UnlinkIdentityInput;\n\n(function (UnlinkIdentityInput) {\n UnlinkIdentityInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UnlinkIdentityInput || (UnlinkIdentityInput = {}));\n\nexport var UntagResourceInput;\n\n(function (UntagResourceInput) {\n UntagResourceInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UntagResourceInput || (UntagResourceInput = {}));\n\nexport var UntagResourceResponse;\n\n(function (UntagResourceResponse) {\n UntagResourceResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UntagResourceResponse || (UntagResourceResponse = {}));","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\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 */\n\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\n var ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n\n if (ga) {\n logger.debug('google api already loaded');\n return res();\n } else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\n\nvar GoogleOAuth =\n/** @class */\nfunction () {\n function GoogleOAuth() {\n this.initialized = false;\n this.refreshGoogleToken = this.refreshGoogleToken.bind(this);\n this._refreshGoogleTokenImpl = this._refreshGoogleTokenImpl.bind(this);\n }\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\n /*break*/\n , 2];\n logger.debug('need to wait for the Google SDK loaded');\n return [4\n /*yield*/\n , waitForInit];\n\n case 1:\n _a.sent();\n\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n\n case 2:\n return [2\n /*return*/\n , this._refreshGoogleTokenImpl()];\n }\n });\n });\n };\n\n GoogleOAuth.prototype._refreshGoogleTokenImpl = function () {\n var ga = null;\n if (browserOrNode().isBrowser) ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n\n if (!ga) {\n logger.debug('no gapi auth2 available');\n return Promise.reject('no gapi auth2 available');\n }\n\n return new Promise(function (res, rej) {\n ga.getAuthInstance().then(function (googleAuth) {\n if (!googleAuth) {\n logger.debug('google Auth undefined');\n rej(new NonRetryableError('google Auth undefined'));\n }\n\n var googleUser = googleAuth.currentUser.get(); // refresh the token\n\n if (googleUser.isSignedIn()) {\n logger.debug('refreshing the google access token');\n googleUser.reloadAuthResponse().then(function (authResponse) {\n var id_token = authResponse.id_token,\n expires_at = authResponse.expires_at;\n res({\n token: id_token,\n 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 } else {\n rej(new NonRetryableError('Failed to reload google auth response'));\n }\n });\n } else {\n rej(new NonRetryableError('User is not signed in with Google'));\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\n return GoogleOAuth;\n}();\n\nexport { GoogleOAuth };\n/**\n * @deprecated use named import\n */\n\nexport default GoogleOAuth;","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\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 */\n\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\n var fb = window['FB'];\n\n if (fb) {\n logger.debug('FB SDK already loaded');\n return res();\n } else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\n\nvar FacebookOAuth =\n/** @class */\nfunction () {\n function FacebookOAuth() {\n this.initialized = false;\n this.refreshFacebookToken = this.refreshFacebookToken.bind(this);\n this._refreshFacebookTokenImpl = this._refreshFacebookTokenImpl.bind(this);\n }\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\n /*break*/\n , 2];\n logger.debug('need to wait for the Facebook SDK loaded');\n return [4\n /*yield*/\n , waitForInit];\n\n case 1:\n _a.sent();\n\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n\n case 2:\n return [2\n /*return*/\n , this._refreshFacebookTokenImpl()];\n }\n });\n });\n };\n\n FacebookOAuth.prototype._refreshFacebookTokenImpl = function () {\n var fb = null;\n if (browserOrNode().isBrowser) fb = window['FB'];\n\n if (!fb) {\n var errorMessage = 'no fb sdk available';\n logger.debug(errorMessage);\n return Promise.reject(new NonRetryableError(errorMessage));\n }\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); // There is no definitive indication for a network error in\n // fbResponse, so we are treating it as an invalid token.\n\n rej(new NonRetryableError(errorMessage));\n } else {\n var response = fbResponse.authResponse;\n var accessToken = response.accessToken,\n expiresIn = response.expiresIn;\n var date = new Date();\n var expires_at = expiresIn * 1000 + date.getTime();\n\n if (!accessToken) {\n var errorMessage = 'the jwtToken is undefined';\n logger.debug(errorMessage);\n rej(new NonRetryableError(errorMessage));\n }\n\n res({\n token: accessToken,\n expires_at: expires_at\n });\n }\n }, {\n scope: 'public_profile,email'\n });\n });\n };\n\n return FacebookOAuth;\n}();\n\nexport { FacebookOAuth };\n/**\n * @deprecated use named import\n */\n\nexport default FacebookOAuth;","/*\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();","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 */\n\nvar GetCredentialsForIdentityCommand =\n/** @class */\nfunction (_super) {\n __extends(GetCredentialsForIdentityCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function GetCredentialsForIdentityCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n GetCredentialsForIdentityCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetCredentialsForIdentityCommand(input, context);\n };\n\n GetCredentialsForIdentityCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetCredentialsForIdentityCommand(output, context);\n };\n\n return GetCredentialsForIdentityCommand;\n}($Command);\n\nexport { GetCredentialsForIdentityCommand };","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 */\n\nvar ProviderError =\n/** @class */\nfunction (_super) {\n __extends(ProviderError, _super);\n\n function ProviderError(message, tryNextLink) {\n if (tryNextLink === void 0) {\n tryNextLink = true;\n }\n\n var _this = _super.call(this, message) || this;\n\n _this.tryNextLink = tryNextLink;\n return _this;\n }\n\n return ProviderError;\n}(Error);\n\nexport { ProviderError };","import { __read } from \"tslib\";\n/**\n * @internal\n */\n\nexport function resolveLogins(logins) {\n return Promise.all(Object.keys(logins).reduce(function (arr, name) {\n var tokenOrProvider = logins[name];\n\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n } else {\n arr.push(tokenOrProvider().then(function (token) {\n return [name, token];\n }));\n }\n\n return arr;\n }, [])).then(function (resolvedPairs) {\n return resolvedPairs.reduce(function (logins, _a) {\n var _b = __read(_a, 2),\n key = _b[0],\n value = _b[1];\n\n logins[key] = value;\n return logins;\n }, {});\n });\n}","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 */\n\nexport function fromCognitoIdentity(parameters) {\n var _this = this;\n\n return function () {\n return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, _c, AccessKeyId, Expiration, _d, SecretKey, SessionToken, _e, _f, _g, _h;\n\n var _j;\n\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\n /*break*/\n , 2];\n return [4\n /*yield*/\n , resolveLogins(parameters.logins)];\n\n case 1:\n _h = _k.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n _h = undefined;\n _k.label = 3;\n\n case 3:\n return [4\n /*yield*/\n , _f.apply(_e, [new (_g.apply(GetCredentialsForIdentityCommand, [void 0, (_j.Logins = _h, _j)]))()])];\n\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\n /*return*/\n , {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration\n }];\n }\n });\n });\n };\n}\n\nfunction throwOnMissingAccessKeyId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no access key ID\");\n}\n\nfunction throwOnMissingCredentials() {\n throw new ProviderError(\"Response from Amazon Cognito contained no credentials\");\n}\n\nfunction throwOnMissingSecretKey() {\n throw new ProviderError(\"Response from Amazon Cognito contained no secret key\");\n}","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 */\n\nvar GetIdCommand =\n/** @class */\nfunction (_super) {\n __extends(GetIdCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function GetIdCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n GetIdCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetIdCommand(input, context);\n };\n\n GetIdCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetIdCommand(output, context);\n };\n\n return GetIdCommand;\n}($Command);\n\nexport { GetIdCommand };","var STORE_NAME = \"IdentityIds\";\n\nvar IndexedDbStorage =\n/** @class */\nfunction () {\n function IndexedDbStorage(dbName) {\n if (dbName === void 0) {\n dbName = \"aws:cognito-identity-ids\";\n }\n\n this.dbName = dbName;\n }\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 () {\n return resolve(null);\n };\n\n req.onsuccess = function () {\n return resolve(req.result ? req.result.value : null);\n };\n });\n }).catch(function () {\n return null;\n });\n };\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 () {\n return reject(req.error);\n };\n\n req.onsuccess = function () {\n return resolve();\n };\n });\n });\n };\n\n IndexedDbStorage.prototype.setItem = function (id, value) {\n return this.withObjectStore(\"readwrite\", function (store) {\n var req = store.put({\n id: id,\n value: value\n });\n return new Promise(function (resolve, reject) {\n req.onerror = function () {\n return reject(req.error);\n };\n\n req.onsuccess = function () {\n return resolve();\n };\n });\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\n openDbRequest.onerror = function () {\n reject(openDbRequest.error);\n };\n\n openDbRequest.onblocked = function () {\n reject(new Error(\"Unable to access DB\"));\n };\n\n openDbRequest.onupgradeneeded = function () {\n var db = openDbRequest.result;\n\n db.onerror = function () {\n reject(new Error(\"Failed to create object store\"));\n };\n\n db.createObjectStore(STORE_NAME, {\n keyPath: \"id\"\n });\n };\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\n tx.oncomplete = function () {\n return db.close();\n };\n\n return new Promise(function (resolve, reject) {\n tx.onerror = function () {\n return reject(tx.error);\n };\n\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch(function (err) {\n db.close();\n throw err;\n });\n });\n };\n\n return IndexedDbStorage;\n}();\n\nexport { IndexedDbStorage };","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\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n\n return inMemoryStorage;\n}","var InMemoryStorage =\n/** @class */\nfunction () {\n function InMemoryStorage(store) {\n if (store === void 0) {\n store = {};\n }\n\n this.store = store;\n }\n\n InMemoryStorage.prototype.getItem = function (key) {\n if (key in this.store) {\n return this.store[key];\n }\n\n return null;\n };\n\n InMemoryStorage.prototype.removeItem = function (key) {\n delete this.store[key];\n };\n\n InMemoryStorage.prototype.setItem = function (key, value) {\n this.store[key] = value;\n };\n\n return InMemoryStorage;\n}();\n\nexport { InMemoryStorage };","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 */\n\nexport function fromCognitoIdentityPool(_a) {\n var _this = this;\n\n var accountId = _a.accountId,\n _b = _a.cache,\n cache = _b === void 0 ? localStorage() : _b,\n client = _a.client,\n customRoleArn = _a.customRoleArn,\n identityPoolId = _a.identityPoolId,\n logins = _a.logins,\n _c = _a.userIdentifier,\n 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\n var _provider = function provider() {\n return __awaiter(_this, void 0, void 0, function () {\n var identityId, _a, _b, IdentityId, _c, _d, _e, _f;\n\n var _g;\n\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = cacheKey;\n if (!_a) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , cache.getItem(cacheKey)];\n\n case 1:\n _a = _h.sent();\n _h.label = 2;\n\n case 2:\n identityId = _a;\n if (!!identityId) return [3\n /*break*/\n , 7];\n _d = (_c = client).send;\n _e = GetIdCommand.bind;\n _g = {\n AccountId: accountId,\n IdentityPoolId: identityPoolId\n };\n if (!logins) return [3\n /*break*/\n , 4];\n return [4\n /*yield*/\n , resolveLogins(logins)];\n\n case 3:\n _f = _h.sent();\n return [3\n /*break*/\n , 5];\n\n case 4:\n _f = undefined;\n _h.label = 5;\n\n case 5:\n return [4\n /*yield*/\n , _d.apply(_c, [new (_e.apply(GetIdCommand, [void 0, (_g.Logins = _f, _g)]))()])];\n\n case 6:\n _b = _h.sent().IdentityId, IdentityId = _b === void 0 ? throwOnMissingId() : _b;\n identityId = IdentityId;\n\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(function () {});\n }\n\n _h.label = 7;\n\n case 7:\n _provider = fromCognitoIdentity({\n client: client,\n customRoleArn: customRoleArn,\n logins: logins,\n identityId: identityId\n });\n return [2\n /*return*/\n , _provider()];\n }\n });\n });\n };\n\n return function () {\n return _provider().catch(function (err) {\n 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\n throw err;\n });\n });\n });\n };\n}\n\nfunction throwOnMissingId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no identity ID\");\n}","import { __assign } from \"tslib\"; // Partition default templates\n\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\"; // Partition regions\n\nvar AWS_REGIONS = new Set([\"af-south-1\", \"ap-east-1\", \"ap-northeast-1\", \"ap-northeast-2\", \"ap-south-1\", \"ap-southeast-1\", \"ap-southeast-2\", \"ca-central-1\", \"eu-central-1\", \"eu-north-1\", \"eu-south-1\", \"eu-west-1\", \"eu-west-2\", \"eu-west-3\", \"me-south-1\", \"sa-east-1\", \"us-east-1\", \"us-east-2\", \"us-west-1\", \"us-west-2\"]);\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 defaultRegionInfoProvider(region, options) {\n var regionInfo = undefined;\n\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\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-2.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-south-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-2.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.ca-central-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\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\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-central-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-north-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-2.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-3.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\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\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\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\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\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.sa-east-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-2.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\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\n case \"us-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\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\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\"\n };\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\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\"\n };\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\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 } // Finally, assume it's an AWS partition endpoint.\n\n\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\"\n };\n }\n\n }\n\n return Promise.resolve(__assign({\n signingService: \"cognito-identity\"\n }, regionInfo));\n};","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\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};","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 */\n\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), {\n runtime: \"browser\",\n base64Decoder: fromBase64,\n base64Encoder: toBase64,\n bodyLengthChecker: calculateBodyLength,\n credentialDefaultProvider: function credentialDefaultProvider(_) {\n return function () {\n return Promise.reject(new Error(\"Credential is missing\"));\n };\n },\n defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version\n }),\n maxAttempts: DEFAULT_MAX_ATTEMPTS,\n region: invalidProvider(\"Region is missing\"),\n requestHandler: new FetchHttpHandler(),\n sha256: Sha256,\n streamCollector: streamCollector,\n utf8Decoder: fromUtf8,\n utf8Encoder: toUtf8\n});","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 */\n\nvar CognitoIdentityClient =\n/** @class */\nfunction (_super) {\n __extends(CognitoIdentityClient, _super);\n\n function CognitoIdentityClient(configuration) {\n var _this = this;\n\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n\n var _config_1 = resolveRegionConfig(_config_0);\n\n var _config_2 = resolveEndpointsConfig(_config_1);\n\n var _config_3 = resolveAwsAuthConfig(_config_2);\n\n var _config_4 = resolveRetryConfig(_config_3);\n\n var _config_5 = resolveHostHeaderConfig(_config_4);\n\n var _config_6 = resolveUserAgentConfig(_config_5);\n\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n\n return _this;\n }\n\n CognitoIdentityClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n\n return CognitoIdentityClient;\n}(__Client);\n\nexport { CognitoIdentityClient };","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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\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 { getAmplifyUserAgent } from './Platform';\nimport { Amplify } from './Amplify';\nimport { fromCognitoIdentity, fromCognitoIdentityPool } from '@aws-sdk/credential-provider-cognito-identity';\nimport { CognitoIdentityClient, GetIdCommand, GetCredentialsForIdentityCommand } from '@aws-sdk/client-cognito-identity';\nvar logger = new Logger('Credentials');\nvar CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future\n\nvar COGNITO_IDENTITY_KEY_PREFIX = 'CognitoIdentityId-';\n\nvar CredentialsClass =\n/** @class */\nfunction () {\n function CredentialsClass(config) {\n this._gettingCredPromise = null;\n this._refreshHandlers = {}; // Allow `Auth` to be injected for SSR, but Auth isn't a required dependency for Credentials\n\n this.Auth = undefined;\n this.configure(config);\n this._refreshHandlers['google'] = GoogleOAuth.refreshGoogleToken;\n this._refreshHandlers['facebook'] = FacebookOAuth.refreshFacebookToken;\n }\n\n CredentialsClass.prototype.getModuleName = function () {\n return 'Credentials';\n };\n\n CredentialsClass.prototype.getCredSource = function () {\n return this._credentials_source;\n };\n\n CredentialsClass.prototype.configure = function (config) {\n if (!config) return this._config || {};\n this._config = Object.assign({}, this._config, config);\n var refreshHandlers = this._config.refreshHandlers; // If the developer has provided an object of refresh handlers,\n // then we can merge the provided handlers with the current handlers.\n\n if (refreshHandlers) {\n this._refreshHandlers = __assign(__assign({}, this._refreshHandlers), refreshHandlers);\n }\n\n this._storage = this._config.storage;\n\n if (!this._storage) {\n this._storage = new StorageHelper().getStorage();\n }\n\n this._storageSync = Promise.resolve();\n\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n\n return this._config;\n };\n\n CredentialsClass.prototype.get = function () {\n logger.debug('getting credentials');\n return this._pickupCredentials();\n }; // currently we only store the guest identity in local storage\n\n\n CredentialsClass.prototype._getCognitoIdentityIdStorageKey = function (identityPoolId) {\n return \"\" + COGNITO_IDENTITY_KEY_PREFIX + identityPoolId;\n };\n\n CredentialsClass.prototype._pickupCredentials = function () {\n logger.debug('picking up credentials');\n\n if (!this._gettingCredPromise || !this._gettingCredPromise.isPending()) {\n logger.debug('getting new cred promise');\n this._gettingCredPromise = makeQuerablePromise(this._keepAlive());\n } else {\n logger.debug('getting old cred promise');\n }\n\n return this._gettingCredPromise;\n };\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\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\n if (cred && !this._isExpired(cred) && !this._isPastTTL()) {\n logger.debug('credentials not changed and not expired, directly return');\n return [2\n /*return*/\n , Promise.resolve(cred)];\n }\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\n if (!Auth || typeof Auth.currentUserCredentials !== 'function') {\n return [2\n /*return*/\n , Promise.reject('No Auth module registered in Amplify')];\n }\n\n if (!(!this._isExpired(cred) && this._isPastTTL())) return [3\n /*break*/\n , 6];\n logger.debug('ttl has passed but token is not yet expired');\n _b.label = 1;\n\n case 1:\n _b.trys.push([1, 5,, 6]);\n\n return [4\n /*yield*/\n , Auth.currentUserPoolUser()];\n\n case 2:\n user_1 = _b.sent();\n return [4\n /*yield*/\n , Auth.currentSession()];\n\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\n /*yield*/\n , refreshRequest];\n\n case 4:\n _b.sent(); // note that rejections will be caught and handled in the catch block.\n\n\n return [3\n /*break*/\n , 6];\n\n case 5:\n err_1 = _b.sent(); // should not throw because user might just be on guest access or is authenticated through federation\n\n logger.debug('Error attempting to refreshing the session', err_1);\n return [3\n /*break*/\n , 6];\n\n case 6:\n return [2\n /*return*/\n , Auth.currentUserCredentials()];\n }\n });\n });\n };\n\n CredentialsClass.prototype.refreshFederatedToken = function (federatedInfo) {\n logger.debug('Getting federated credentials');\n var provider = federatedInfo.provider,\n user = federatedInfo.user,\n token = federatedInfo.token,\n identity_id = federatedInfo.identity_id;\n var expires_at = federatedInfo.expires_at; // Make sure expires_at is in millis\n\n expires_at = new Date(expires_at).getFullYear() === 1970 ? expires_at * 1000 : expires_at;\n var that = this;\n logger.debug('checking if federated jwt token expired');\n\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 } else {\n // if refresh handler exists\n if (that._refreshHandlers[provider] && 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 } 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\n CredentialsClass.prototype._providerRefreshWithRetry = function (_a) {\n var _this = this;\n\n var refreshHandler = _a.refreshHandler,\n provider = _a.provider,\n user = _a.user;\n var MAX_DELAY_MS = 10 * 1000; // refreshHandler will retry network errors, otherwise it will\n // return NonRetryableError to break out of jitteredExponentialRetry\n\n return jitteredExponentialRetry(refreshHandler, [], MAX_DELAY_MS).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 }).catch(function (e) {\n var isNetworkError = typeof e === 'string' && e.toLowerCase().lastIndexOf('network error', e.length) === 0;\n\n if (!isNetworkError) {\n _this.clear();\n }\n\n logger.debug('refresh federated token failed', e);\n return Promise.reject('refreshing federation token failed: ' + e);\n });\n };\n\n CredentialsClass.prototype._isExpired = function (credentials) {\n if (!credentials) {\n logger.debug('no credentials for expiration check');\n return true;\n }\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\n var expiration = credentials.expiration;\n return expiration.getTime() <= ts;\n };\n\n CredentialsClass.prototype._isPastTTL = function () {\n return this._nextCredentialsRefresh <= Date.now();\n };\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\n var _this = this;\n\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\n if (mandatorySignIn) {\n return [2\n /*return*/\n , Promise.reject('cannot get guest credentials when mandatory signin enabled')];\n }\n\n if (!identityPoolId) {\n logger.debug('No Cognito Identity pool provided for unauthenticated access');\n return [2\n /*return*/\n , Promise.reject('No Cognito Identity pool provided for unauthenticated access')];\n }\n\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return [2\n /*return*/\n , Promise.reject('region is not configured for getting the credentials')];\n }\n\n _b = this;\n return [4\n /*yield*/\n , this._getGuestIdentityId()];\n\n case 1:\n identityId = _b._identityId = _c.sent();\n cognitoClient = new CognitoIdentityClient({\n region: region,\n customUserAgent: getAmplifyUserAgent()\n });\n credentials = undefined;\n\n if (identityId) {\n cognitoIdentityParams = {\n identityId: identityId,\n client: cognitoClient\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n } else {\n credentialsProvider = function credentialsProvider() {\n 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:\n return [4\n /*yield*/\n , cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId\n }))];\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\n /*return*/\n , credentialsFromCognitoIdentity()];\n }\n });\n });\n };\n\n credentials = credentialsProvider().catch(function (err) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n });\n });\n }\n\n return [2\n /*return*/\n , this._loadCredentials(credentials, 'guest', false, null).then(function (res) {\n return res;\n }).catch(function (e) {\n return __awaiter(_this, void 0, void 0, function () {\n var credentialsProvider;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(e.name === 'ResourceNotFoundException' && e.message === \"Identity '\" + identityId + \"' not found.\")) return [3\n /*break*/\n , 2];\n logger.debug('Failed to load guest credentials');\n return [4\n /*yield*/\n , this._removeGuestIdentityId()];\n\n case 1:\n _a.sent();\n\n credentialsProvider = function credentialsProvider() {\n 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:\n return [4\n /*yield*/\n , cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId\n }))];\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\n /*return*/\n , credentialsFromCognitoIdentity()];\n }\n });\n });\n };\n\n credentials = credentialsProvider().catch(function (err) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n });\n });\n return [2\n /*return*/\n , this._loadCredentials(credentials, 'guest', false, null)];\n\n case 2:\n return [2\n /*return*/\n , e];\n }\n });\n });\n })];\n }\n });\n });\n };\n\n CredentialsClass.prototype._setCredentialsFromFederation = function (params) {\n var provider = params.provider,\n token = params.token,\n 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 }; // Use custom provider url instead of the predefined ones\n\n var domain = domains[provider] || provider;\n\n if (!domain) {\n return Promise.reject('You must specify a federated provider');\n }\n\n var logins = {};\n logins[domain] = token;\n var _a = this._config,\n identityPoolId = _a.identityPoolId,\n region = _a.region;\n\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\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\n var cognitoClient = new CognitoIdentityClient({\n region: region,\n customUserAgent: getAmplifyUserAgent()\n });\n var credentials = undefined;\n\n if (identity_id) {\n var cognitoIdentityParams = {\n identityId: identity_id,\n logins: logins,\n client: cognitoClient\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n } else {\n var cognitoIdentityParams = {\n logins: logins,\n identityPoolId: identityPoolId,\n client: cognitoClient\n };\n credentials = fromCognitoIdentityPool(cognitoIdentityParams)();\n }\n\n return this._loadCredentials(credentials, 'federated', true, params);\n };\n\n CredentialsClass.prototype._setCredentialsFromSession = function (session) {\n var _this = this;\n\n logger.debug('set credentials from session');\n var idToken = session.getIdToken().getJwtToken();\n var _a = this._config,\n region = _a.region,\n userPoolId = _a.userPoolId,\n identityPoolId = _a.identityPoolId;\n\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\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\n var key = 'cognito-idp.' + region + '.amazonaws.com/' + userPoolId;\n var logins = {};\n logins[key] = idToken;\n var cognitoClient = new CognitoIdentityClient({\n region: region,\n customUserAgent: getAmplifyUserAgent()\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 Note: Retreive identityId from CredentialsProvider once aws-sdk-js v3 supports this.\n */\n\n var credentialsProvider = function credentialsProvider() {\n return __awaiter(_this, void 0, void 0, function () {\n var guestIdentityId, generatedOrRetrievedIdentityId, IdentityId, _a, _b, AccessKeyId, Expiration, SecretKey, SessionToken, primaryIdentityId;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , this._getGuestIdentityId()];\n\n case 1:\n guestIdentityId = _c.sent();\n if (!!guestIdentityId) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n Logins: logins\n }))];\n\n case 2:\n IdentityId = _c.sent().IdentityId;\n generatedOrRetrievedIdentityId = IdentityId;\n _c.label = 3;\n\n case 3:\n return [4\n /*yield*/\n , cognitoClient.send(new GetCredentialsForIdentityCommand({\n IdentityId: guestIdentityId || generatedOrRetrievedIdentityId,\n Logins: logins\n }))];\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\n /*break*/\n , 6]; // if guestIdentity is found and used by GetCredentialsForIdentity\n // it will be linked to the logins provided, and disqualified as an unauth identity\n\n logger.debug(\"The guest identity \" + guestIdentityId + \" has been successfully linked to the logins\");\n\n if (guestIdentityId === primaryIdentityId) {\n logger.debug(\"The guest identity \" + guestIdentityId + \" has become the primary identity\");\n } // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n\n\n return [4\n /*yield*/\n , this._removeGuestIdentityId()];\n\n case 5:\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n _c.sent();\n\n _c.label = 6;\n\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\n /*return*/\n , {\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n identityId: primaryIdentityId\n }];\n }\n });\n });\n };\n\n var credentials = credentialsProvider().catch(function (err) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n });\n });\n return this._loadCredentials(credentials, 'userPool', true, null);\n };\n\n CredentialsClass.prototype._loadCredentials = function (credentials, source, authenticated, info) {\n var _this = this;\n\n var that = this;\n return new Promise(function (res, rej) {\n credentials.then(function (credentials) {\n 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\n if (this._identityId && !credentials.identityId) {\n credentials['identityId'] = this._identityId;\n }\n\n that._credentials = credentials;\n that._credentials.authenticated = authenticated;\n that._credentials_source = source;\n that._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n\n if (source === 'federated') {\n user = Object.assign({\n id: this._credentials.identityId\n }, info.user);\n provider = info.provider, token = info.token, expires_at = info.expires_at, identity_id = info.identity_id;\n\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 } catch (e) {\n logger.debug('Failed to put federated info into auth storage', e);\n }\n }\n\n if (!(source === 'guest')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this._setGuestIdentityId(credentials.identityId)];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n res(that._credentials);\n return [2\n /*return*/\n ];\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\n CredentialsClass.prototype.set = function (params, source) {\n if (source === 'session') {\n return this._setCredentialsFromSession(params);\n } else if (source === 'federation') {\n return this._setCredentialsFromFederation(params);\n } else if (source === 'guest') {\n return this._setCredentialsForGuest();\n } else {\n logger.debug('no source specified for setting credentials');\n return Promise.reject('invalid source');\n }\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\n this._storage.removeItem('aws-amplify-federatedInfo');\n\n return [2\n /*return*/\n ];\n });\n });\n };\n /* operations on local stored guest identity */\n\n\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\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this._storageSync];\n\n case 2:\n _a.sent();\n\n return [2\n /*return*/\n , this._storage.getItem(this._getCognitoIdentityIdStorageKey(identityPoolId))];\n\n case 3:\n e_1 = _a.sent();\n logger.debug('Failed to get the cached guest identityId', e_1);\n return [3\n /*break*/\n , 4];\n\n case 4:\n return [2\n /*return*/\n ];\n }\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\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this._storageSync];\n\n case 2:\n _a.sent();\n\n this._storage.setItem(this._getCognitoIdentityIdStorageKey(identityPoolId), identityId);\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n e_2 = _a.sent();\n logger.debug('Failed to cache guest identityId', e_2);\n return [3\n /*break*/\n , 4];\n\n case 4:\n return [2\n /*return*/\n ];\n }\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\n this._storage.removeItem(this._getCognitoIdentityIdStorageKey(identityPoolId));\n\n return [2\n /*return*/\n ];\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n\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\n return CredentialsClass;\n}();\n\nexport { CredentialsClass };\nexport var Credentials = new CredentialsClass(null);\nAmplify.register(Credentials);\n/**\n * @deprecated use named import\n */\n\nexport default Credentials;","/*\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Hub');\nvar AMPLIFY_SYMBOL = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default';\n\nfunction isLegacyCallback(callback) {\n return callback.onHubCapsule !== undefined;\n}\n\nvar HubClass =\n/** @class */\nfunction () {\n function HubClass(name) {\n this.listeners = [];\n this.patterns = [];\n this.protectedChannels = ['core', 'auth', 'api', 'analytics', 'interactions', 'pubsub', 'storage', 'xr'];\n this.name = name;\n } // Note - Need to pass channel as a reference for removal to work and not anonymous function\n\n\n HubClass.prototype.remove = function (channel, listener) {\n if (channel instanceof RegExp) {\n var pattern_1 = this.patterns.find(function (_a) {\n var pattern = _a.pattern;\n return pattern.source === channel.source;\n });\n\n if (!pattern_1) {\n logger.warn(\"No listeners for \" + channel);\n return;\n }\n\n this.patterns = __spread(this.patterns.filter(function (x) {\n return x !== pattern_1;\n }));\n } else {\n var holder = this.listeners[channel];\n\n if (!holder) {\n logger.warn(\"No listeners for \" + channel);\n return;\n }\n\n this.listeners[channel] = __spread(holder.filter(function (_a) {\n var callback = _a.callback;\n return callback !== listener;\n }));\n }\n };\n\n HubClass.prototype.dispatch = function (channel, payload, source, ampSymbol) {\n if (source === void 0) {\n source = '';\n }\n\n if (this.protectedChannels.indexOf(channel) > -1) {\n var hasAccess = ampSymbol === AMPLIFY_SYMBOL;\n\n if (!hasAccess) {\n logger.warn(\"WARNING: \" + channel + \" is protected and dispatching on it can have unintended consequences\");\n }\n }\n\n var capsule = {\n channel: channel,\n payload: __assign({}, payload),\n source: source,\n patternInfo: []\n };\n\n try {\n this._toListeners(capsule);\n } catch (e) {\n logger.error(e);\n }\n };\n\n HubClass.prototype.listen = function (channel, callback, listenerName) {\n var _this = this;\n\n if (listenerName === void 0) {\n listenerName = 'noname';\n }\n\n var cb; // Check for legacy onHubCapsule callback for backwards compatability\n\n if (isLegacyCallback(callback)) {\n logger.warn(\"WARNING onHubCapsule is Deprecated. Please pass in a callback.\");\n cb = callback.onHubCapsule.bind(callback);\n } else if (typeof callback !== 'function') {\n throw new Error('No callback supplied to Hub');\n } else {\n cb = callback;\n }\n\n if (channel instanceof RegExp) {\n this.patterns.push({\n pattern: channel,\n callback: cb\n });\n } else {\n var holder = this.listeners[channel];\n\n if (!holder) {\n holder = [];\n this.listeners[channel] = holder;\n }\n\n holder.push({\n name: listenerName,\n callback: cb\n });\n }\n\n return function () {\n _this.remove(channel, cb);\n };\n };\n\n HubClass.prototype._toListeners = function (capsule) {\n var channel = capsule.channel,\n payload = capsule.payload;\n var holder = this.listeners[channel];\n\n if (holder) {\n holder.forEach(function (listener) {\n logger.debug(\"Dispatching to \" + channel + \" with \", payload);\n\n try {\n listener.callback(capsule);\n } catch (e) {\n logger.error(e);\n }\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\n var payloadStr_1 = payload.message;\n this.patterns.forEach(function (pattern) {\n var match = payloadStr_1.match(pattern.pattern);\n\n if (match) {\n var _a = __read(match),\n groups = _a.slice(1);\n\n var dispatchingCapsule = __assign(__assign({}, capsule), {\n patternInfo: groups\n });\n\n try {\n pattern.callback(dispatchingCapsule);\n } catch (e) {\n logger.error(e);\n }\n }\n });\n }\n };\n\n return HubClass;\n}();\n\nexport { HubClass };\n/*We export a __default__ instance of HubClass to use it as a\npsuedo Singleton for the main messaging bus, however you can still create\nyour own instance of HubClass() for a separate \"private bus\" of events.*/\n\nexport var Hub = new HubClass('__default__');\n/**\n * @deprecated use named import\n */\n\nexport default Hub;","/*\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',\n ext: 'txt'\n}, {\n type: 'text/html',\n ext: 'html'\n}, {\n type: 'text/javascript',\n ext: 'js'\n}, {\n type: 'text/css',\n ext: 'css'\n}, {\n type: 'text/csv',\n ext: 'csv'\n}, {\n type: 'text/yaml',\n ext: 'yml'\n}, {\n type: 'text/yaml',\n ext: 'yaml'\n}, {\n type: 'text/calendar',\n ext: 'ics'\n}, {\n type: 'text/calendar',\n ext: 'ical'\n}, {\n type: 'image/apng',\n ext: 'apng'\n}, {\n type: 'image/bmp',\n ext: 'bmp'\n}, {\n type: 'image/gif',\n ext: 'gif'\n}, {\n type: 'image/x-icon',\n ext: 'ico'\n}, {\n type: 'image/x-icon',\n ext: 'cur'\n}, {\n type: 'image/jpeg',\n ext: 'jpg'\n}, {\n type: 'image/jpeg',\n ext: 'jpeg'\n}, {\n type: 'image/jpeg',\n ext: 'jfif'\n}, {\n type: 'image/jpeg',\n ext: 'pjp'\n}, {\n type: 'image/jpeg',\n ext: 'pjpeg'\n}, {\n type: 'image/png',\n ext: 'png'\n}, {\n type: 'image/svg+xml',\n ext: 'svg'\n}, {\n type: 'image/tiff',\n ext: 'tif'\n}, {\n type: 'image/tiff',\n ext: 'tiff'\n}, {\n type: 'image/webp',\n ext: 'webp'\n}, {\n type: 'application/json',\n ext: 'json'\n}, {\n type: 'application/xml',\n ext: 'xml'\n}, {\n type: 'application/x-sh',\n ext: 'sh'\n}, {\n type: 'application/zip',\n ext: 'zip'\n}, {\n type: 'application/x-rar-compressed',\n ext: 'rar'\n}, {\n type: 'application/x-tar',\n ext: 'tar'\n}, {\n type: 'application/x-bzip',\n ext: 'bz'\n}, {\n type: 'application/x-bzip2',\n ext: 'bz2'\n}, {\n type: 'application/pdf',\n ext: 'pdf'\n}, {\n type: 'application/java-archive',\n ext: 'jar'\n}, {\n type: 'application/msword',\n ext: 'doc'\n}, {\n type: 'application/vnd.ms-excel',\n ext: 'xls'\n}, {\n type: 'application/vnd.ms-excel',\n ext: 'xlsx'\n}, {\n type: 'message/rfc822',\n ext: 'eml'\n}];\nexport var isEmpty = function isEmpty(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n return Object.keys(obj).length === 0;\n};\nexport var sortByField = function sortByField(list, field, dir) {\n if (!list || !list.sort) {\n return false;\n }\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\n if (typeof b_val === 'undefined') {\n return typeof a_val === 'undefined' ? 0 : 1 * dirX;\n }\n\n if (typeof a_val === 'undefined') {\n return -1 * dirX;\n }\n\n if (a_val < b_val) {\n return -1 * dirX;\n }\n\n if (a_val > b_val) {\n return 1 * dirX;\n }\n\n return 0;\n });\n return true;\n};\nexport var objectLessAttributes = function objectLessAttributes(obj, less) {\n var ret = Object.assign({}, obj);\n\n if (less) {\n if (typeof less === 'string') {\n delete ret[less];\n } else {\n less.forEach(function (attr) {\n delete ret[attr];\n });\n }\n }\n\n return ret;\n};\nexport var filenameToContentType = function filenameToContentType(filename, defVal) {\n if (defVal === void 0) {\n defVal = 'application/octet-stream';\n }\n\n var name = filename.toLowerCase();\n var filtered = MIME_MAP.filter(function (mime) {\n return name.endsWith('.' + mime.ext);\n });\n return filtered.length > 0 ? filtered[0].type : defVal;\n};\nexport var isTextFile = function isTextFile(contentType) {\n var type = contentType.toLowerCase();\n\n if (type.startsWith('text/')) {\n return true;\n }\n\n return 'application/json' === type || 'application/xml' === type || 'application/sh' === type;\n};\nexport var generateRandomString = function generateRandomString() {\n var result = '';\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\n for (var i = 32; i > 0; i -= 1) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n\n return result;\n};\nexport var makeQuerablePromise = function makeQuerablePromise(promise) {\n if (promise.isResolved) 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\n result.isFullfilled = function () {\n return isFullfilled;\n };\n\n result.isPending = function () {\n return isPending;\n };\n\n result.isRejected = function () {\n return isRejected;\n };\n\n return result;\n};\nexport var isWebWorker = function isWebWorker() {\n if (typeof self === 'undefined') {\n return false;\n }\n\n var selfContext = self;\n return typeof selfContext.WorkerGlobalScope !== 'undefined' && self instanceof selfContext.WorkerGlobalScope;\n};\nexport var browserOrNode = function browserOrNode() {\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var isNode = typeof process !== 'undefined' && process.versions != null && 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 */\n\nexport var transferKeyToLowerCase = function transferKeyToLowerCase(obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) {\n whiteListForItself = [];\n }\n\n if (whiteListForChildren === void 0) {\n whiteListForChildren = [];\n }\n\n if (!isStrictObject(obj)) return obj;\n var ret = {};\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferedKey = whiteListForItself.includes(key) ? key : key[0].toLowerCase() + key.slice(1);\n ret[transferedKey] = whiteListForChildren.includes(key) ? obj[key] : transferKeyToLowerCase(obj[key], whiteListForItself, whiteListForChildren);\n }\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 */\n\nexport var transferKeyToUpperCase = function transferKeyToUpperCase(obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) {\n whiteListForItself = [];\n }\n\n if (whiteListForChildren === void 0) {\n whiteListForChildren = [];\n }\n\n if (!isStrictObject(obj)) return obj;\n var ret = {};\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferredKey = whiteListForItself.includes(key) ? key : key[0].toUpperCase() + key.slice(1);\n ret[transferredKey] = whiteListForChildren.includes(key) ? obj[key] : transferKeyToUpperCase(obj[key], whiteListForItself, whiteListForChildren);\n }\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 */\n\nexport var isStrictObject = function isStrictObject(obj) {\n return obj instanceof Object && !(obj instanceof Array) && !(obj instanceof Function) && !(obj instanceof Number) && !(obj instanceof String) && !(obj instanceof Boolean);\n};\n/**\n * @deprecated use per-function imports\n */\n\nvar JS =\n/** @class */\nfunction () {\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}();\n\nexport { JS };\n/**\n * @deprecated use per-function imports\n */\n\nexport default JS;","/*\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 = ['ResourceNotFoundException', 'InvalidSequenceTokenException'];\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 * 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,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\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\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 */\n\n\nvar ConsoleLogger =\n/** @class */\nfunction () {\n /**\n * @constructor\n * @param {string} name - Name of the logger\n */\n function ConsoleLogger(name, level) {\n if (level === void 0) {\n level = LOG_TYPE.WARN;\n }\n\n this.name = name;\n this.level = level;\n this._pluggables = [];\n }\n\n ConsoleLogger.prototype._padding = function (n) {\n return n < 10 ? '0' + n : '' + n;\n };\n\n ConsoleLogger.prototype._ts = function () {\n var dt = new Date();\n return [this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') + '.' + dt.getMilliseconds();\n };\n\n ConsoleLogger.prototype.configure = function (config) {\n if (!config) 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\n\n ConsoleLogger.prototype._log = function (type) {\n var e_1, _a;\n\n var msg = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n msg[_i - 1] = arguments[_i];\n }\n\n var logger_level_name = this.level;\n\n if (ConsoleLogger.LOG_LEVEL) {\n logger_level_name = ConsoleLogger.LOG_LEVEL;\n }\n\n if (typeof window !== 'undefined' && window.LOG_LEVEL) {\n logger_level_name = window.LOG_LEVEL;\n }\n\n var logger_level = LOG_LEVELS[logger_level_name];\n var type_level = LOG_LEVELS[type];\n\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\n var log = console.log.bind(console);\n\n if (type === LOG_TYPE.ERROR && console.error) {\n log = console.error.bind(console);\n }\n\n if (type === LOG_TYPE.WARN && console.warn) {\n log = console.warn.bind(console);\n }\n\n var prefix = \"[\" + type + \"] \" + this._ts() + \" \" + this.name;\n var message = '';\n\n if (msg.length === 1 && typeof msg[0] === 'string') {\n message = prefix + \" - \" + msg[0];\n log(message);\n } else if (msg.length === 1) {\n message = prefix + \" \" + msg[0];\n log(prefix, msg[0]);\n } else if (typeof msg[0] === 'string') {\n var obj = msg.slice(1);\n\n if (obj.length === 1) {\n obj = obj[0];\n }\n\n message = prefix + \" - \" + msg[0] + \" \" + obj;\n log(prefix + \" - \" + msg[0], obj);\n } else {\n message = prefix + \" \" + msg;\n log(prefix, msg);\n }\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 = {\n message: message,\n timestamp: Date.now()\n };\n plugin.pushLogs([logEvent]);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\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\n\n ConsoleLogger.prototype.log = function () {\n var msg = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\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\n\n ConsoleLogger.prototype.info = function () {\n var msg = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\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\n\n ConsoleLogger.prototype.warn = function () {\n var msg = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\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\n\n ConsoleLogger.prototype.error = function () {\n var msg = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\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\n\n ConsoleLogger.prototype.debug = function () {\n var msg = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\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\n\n ConsoleLogger.prototype.verbose = function () {\n var msg = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n\n this._log.apply(this, __spread([LOG_TYPE.VERBOSE], msg));\n };\n\n ConsoleLogger.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n this._pluggables.push(pluggable);\n\n pluggable.configure(this._config);\n }\n };\n\n ConsoleLogger.prototype.listPluggables = function () {\n return this._pluggables;\n };\n\n ConsoleLogger.LOG_LEVEL = null;\n return ConsoleLogger;\n}();\n\nexport { ConsoleLogger };","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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Parser');\nexport var parseMobileHubConfig = function parseMobileHubConfig(config) {\n var amplifyConfig = {}; // Analytics\n\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 } // Auth\n\n\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 };\n } // Storage\n\n\n var storageConfig;\n\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 } else {\n storageConfig = config ? config.Storage || config : {};\n } // Logging\n\n\n if (config['Logging']) {\n amplifyConfig.Logging = __assign(__assign({}, config['Logging']), {\n region: config['aws_project_region']\n });\n } // Geo\n\n\n if (config['geo']) {\n amplifyConfig.Geo = Object.assign({}, config.geo);\n\n if (config.geo['amazon_location_service']) {\n amplifyConfig.Geo = {\n AmazonLocationService: config.geo['amazon_location_service']\n };\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 */\n\nvar Parser =\n/** @class */\nfunction () {\n function Parser() {}\n\n Parser.parseMobilehubConfig = parseMobileHubConfig;\n return Parser;\n}();\n\nexport { Parser };\n/**\n * @deprecated use per-function export\n */\n\nexport default Parser;","// generated by genversion\nexport var version = '4.3.1';","/*\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};\n\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\n\nexport var getAmplifyUserAgent = function getAmplifyUserAgent() {\n return Platform.userAgent;\n};\n/**\n * @deprecated use named import\n */\n\nexport default Platform;","/*\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\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';\n\nvar encrypt = function encrypt(key, src) {\n var hash = new jsSha256(key);\n hash.update(src);\n return hash.digestSync();\n};\n\nvar hash = function hash(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 */\n\n\nvar escape_RFC3986 = function escape_RFC3986(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 */\n\n\nvar canonical_query = function canonical_query(query) {\n if (!query || query.length === 0) {\n return '';\n }\n\n return query.split('&').map(function (e) {\n var key_val = e.split('=');\n\n if (key_val.length === 1) {\n return e;\n } else {\n var reencoded_val = escape_RFC3986(key_val[1]);\n return key_val[0] + '=' + reencoded_val;\n }\n }).sort(function (a, b) {\n var key_a = a.split('=')[0];\n var key_b = b.split('=')[0];\n\n if (key_a === key_b) {\n return a < b ? -1 : 1;\n } else {\n return key_a < key_b ? -1 : 1;\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*/\n\n\nvar canonical_headers = function canonical_headers(headers) {\n if (!headers || Object.keys(headers).length === 0) {\n return '';\n }\n\n return Object.keys(headers).map(function (key) {\n return {\n key: key.toLowerCase(),\n value: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : ''\n };\n }).sort(function (a, b) {\n return a.key < b.key ? -1 : 1;\n }).map(function (item) {\n return item.key + ':' + item.value;\n }).join('\\n') + '\\n';\n};\n/**\n * List of header keys included in the canonical headers.\n * @access private\n */\n\n\nvar signed_headers = function signed_headers(headers) {\n return Object.keys(headers).map(function (key) {\n return key.toLowerCase();\n }).sort().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*/\n\n\nvar canonical_request = function canonical_request(request) {\n var url_info = parse(request.url);\n return [request.method || '/', encodeURIComponent(url_info.pathname).replace(/%2F/gi, '/'), canonical_query(url_info.query), canonical_headers(request.headers), signed_headers(request.headers), hash(request.data)].join('\\n');\n};\n\nvar parse_service_info = function parse_service_info(request) {\n var url_info = parse(request.url),\n host = url_info.host;\n var matched = host.match(/([^\\.]+)\\.(?:([^\\.]*)\\.)?amazonaws\\.com$/);\n var parsed = (matched || []).slice(1, 3);\n\n if (parsed[1] === 'es') {\n // Elastic Search\n parsed = parsed.reverse();\n }\n\n return {\n service: request.service || parsed[0],\n region: request.region || parsed[1]\n };\n};\n\nvar credential_scope = function credential_scope(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*/\n\n\nvar string_to_sign = function string_to_sign(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*/\n\n\nvar get_signing_key = function get_signing_key(secret_key, d_str, service_info) {\n logger.debug(service_info);\n var k = 'AWS4' + secret_key,\n k_date = encrypt(k, d_str),\n k_region = encrypt(k_date, service_info.region),\n k_service = encrypt(k_region, service_info.service),\n k_signing = encrypt(k_service, 'aws4_request');\n return k_signing;\n};\n\nvar get_signature = function get_signature(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 */\n\n\nvar get_authorization_header = function get_authorization_header(algorithm, access_key, scope, signed_headers, signature) {\n return [algorithm + ' ' + 'Credential=' + access_key + '/' + scope, 'SignedHeaders=' + signed_headers, 'Signature=' + signature].join(', ');\n};\n\nvar Signer =\n/** @class */\nfunction () {\n function Signer() {}\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\n\n Signer.sign = function (request, access_info, service_info) {\n if (service_info === void 0) {\n service_info = null;\n }\n\n request.headers = request.headers || {}; // datetime string and date string\n\n var dt = DateUtils.getDateWithClockOffset(),\n dt_str = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, ''),\n 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\n if (access_info.session_token) {\n request.headers['X-Amz-Security-Token'] = access_info.session_token;\n } // Task 1: Create a Canonical Request\n\n\n var request_str = canonical_request(request);\n logger.debug(request_str); // Task 2: Create a String to Sign\n\n var serviceInfo = service_info || parse_service_info(request),\n scope = credential_scope(d_str, serviceInfo.region, serviceInfo.service),\n str_to_sign = string_to_sign(DEFAULT_ALGORITHM, request_str, dt_str, scope); // Task 3: Calculate the Signature\n\n var signing_key = get_signing_key(access_info.secret_key, d_str, serviceInfo),\n signature = get_signature(signing_key, str_to_sign); // Task 4: Adding the Signing information to the Request\n\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\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().toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n var today = now.substr(0, 8); // Intentionally discarding search\n\n var _a = parse(urlToSign, true, true),\n search = _a.search,\n parsedUrl = __rest(_a, [\"search\"]);\n\n var host = parsedUrl.host;\n var signedHeaders = {\n host: host\n };\n\n var _b = serviceInfo || parse_service_info({\n url: format(parsedUrl)\n }),\n region = _b.region,\n service = _b.service;\n\n var credentialScope = credential_scope(today, region, service); // 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\n var sessionTokenRequired = accessInfo.session_token && service !== IOT_SERVICE_NAME;\n\n var queryParams = __assign(__assign(__assign({\n 'X-Amz-Algorithm': DEFAULT_ALGORITHM,\n 'X-Amz-Credential': [accessInfo.access_key, credentialScope].join('/'),\n 'X-Amz-Date': now.substr(0, 16)\n }, sessionTokenRequired ? {\n 'X-Amz-Security-Token': \"\" + accessInfo.session_token\n } : {}), expiration ? {\n 'X-Amz-Expires': \"\" + expiration\n } : {}), {\n 'X-Amz-SignedHeaders': Object.keys(signedHeaders).join(',')\n });\n\n var canonicalRequest = canonical_request({\n method: method,\n url: format(__assign(__assign({}, parsedUrl), {\n query: __assign(__assign({}, parsedUrl.query), queryParams)\n })),\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\n var additionalQueryParams = __assign({\n 'X-Amz-Signature': signature\n }, accessInfo.session_token && {\n 'X-Amz-Security-Token': accessInfo.session_token\n });\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\n return Signer;\n}();\n\nexport { Signer };\n/**\n * @deprecated use per-function import\n */\n\nexport default Signer;","/*\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 */\n\nvar MemoryStorage =\n/** @class */\nfunction () {\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\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\n\n MemoryStorage.getItem = function (key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : 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\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\n\n MemoryStorage.clear = function () {\n dataMemory = {};\n return dataMemory;\n };\n\n return MemoryStorage;\n}();\n\nexport { MemoryStorage };\n\nvar StorageHelper =\n/** @class */\nfunction () {\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 } catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n\n\n StorageHelper.prototype.getStorage = function () {\n return this.storageWindow;\n };\n\n return StorageHelper;\n}();\n\nexport { StorageHelper };\n/**\n * @deprecated use named import\n */\n\nexport default StorageHelper;","/**\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}; // Comment - TODO: remove\n\n\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 getDateWithClockOffset() {\n if (DateUtils.clockOffset) {\n return new Date(new Date().getTime() + DateUtils.clockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @returns {number} Clock offset in milliseconds\n */\n getClockOffset: function getClockOffset() {\n return DateUtils.clockOffset;\n },\n getHeaderStringFromDate: function getHeaderStringFromDate(date) {\n if (date === void 0) {\n date = DateUtils.getDateWithClockOffset();\n }\n\n return date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n },\n getDateFromHeaderString: function getDateFromHeaderString(header) {\n var _a = __read(header.match(/^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2}).+/), 7),\n year = _a[1],\n month = _a[2],\n day = _a[3],\n hour = _a[4],\n minute = _a[5],\n second = _a[6];\n\n return new Date(Date.UTC(Number(year), Number(month) - 1, Number(day), Number(hour), Number(minute), Number(second)));\n },\n isClockSkewed: function isClockSkewed(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 isClockSkewError(error) {\n if (!error.response || !error.response.headers) {\n return false;\n }\n\n var headers = error.response.headers;\n return Boolean(['BadRequestException', 'InvalidSignatureException'].includes(headers['x-amzn-errortype']) && (headers.date || headers.Date));\n },\n\n /**\n * @param {number} offset Clock offset in milliseconds\n */\n setClockOffset: function setClockOffset(offset) {\n DateUtils.clockOffset = offset;\n }\n};","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { ConsoleLogger as Logger } from '../Logger/ConsoleLogger';\nvar logger = new Logger('Util');\n\nvar NonRetryableError =\n/** @class */\nfunction (_super) {\n __extends(NonRetryableError, _super);\n\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n\n _this.nonRetryable = true;\n return _this;\n }\n\n return NonRetryableError;\n}(Error);\n\nexport { NonRetryableError };\n\nvar isNonRetryableError = function isNonRetryableError(obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Amplify only\n */\n\n\nexport function retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) {\n attempt = 1;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var err_1, retryIn_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with this vars: \" + JSON.stringify(args));\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 8]);\n\n return [4\n /*yield*/\n , functionToRetry.apply(void 0, __spread(args))];\n\n case 2:\n return [2\n /*return*/\n , _a.sent()];\n\n case 3:\n err_1 = _a.sent();\n logger.debug(\"error on \" + functionToRetry.name, err_1);\n\n if (isNonRetryableError(err_1)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err_1);\n throw err_1;\n }\n\n retryIn_1 = delayFn(attempt, args, err_1);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn_1 + \" ms\");\n if (!(retryIn_1 !== false)) return [3\n /*break*/\n , 6];\n return [4\n /*yield*/\n , new Promise(function (res) {\n return setTimeout(res, retryIn_1);\n })];\n\n case 4:\n _a.sent();\n\n return [4\n /*yield*/\n , retry(functionToRetry, args, delayFn, attempt + 1)];\n\n case 5:\n return [2\n /*return*/\n , _a.sent()];\n\n case 6:\n throw err_1;\n\n case 7:\n return [3\n /*break*/\n , 8];\n\n case 8:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\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}\n/**\n * @private\n * Internal use of Amplify only\n */\n\n\nexport var jitteredExponentialRetry = function jitteredExponentialRetry(functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) {\n maxDelayMs = MAX_DELAY_MS;\n }\n\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\n\n\nvar RawSha256 =\n/** @class */\nfunction () {\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\n this.finished = false;\n }\n\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > constants_1.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\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\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); // Ensure the final block has enough room for the hashed length\n\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\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\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 } // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n\n\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n\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\n return out;\n };\n\n RawSha256.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n\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\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (buffer[i * 4] & 0xff) << 24 | (buffer[i * 4 + 1] & 0xff) << 16 | (buffer[i * 4 + 2] & 0xff) << 8 | buffer[i * 4 + 3] & 0xff;\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] = (t1_1 + this.temp[i - 7] | 0) + (t2_1 + this.temp[i - 16] | 0);\n }\n\n var t1 = (((state4 >>> 6 | state4 << 26) ^ (state4 >>> 11 | state4 << 21) ^ (state4 >>> 25 | state4 << 7)) + (state4 & state5 ^ ~state4 & state6) | 0) + (state7 + (constants_1.KEY[i] + this.temp[i] | 0) | 0) | 0;\n var t2 = ((state0 >>> 2 | state0 << 30) ^ (state0 >>> 13 | state0 << 19) ^ (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\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\n return RawSha256;\n}();\n\nexports.RawSha256 = RawSha256;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @internal\n */\n\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\n\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\n\nexports.KEY = new Uint32Array([0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]);\n/**\n * @internal\n */\n\nexports.INIT = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n/**\n * @internal\n */\n\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\ntslib_1.__exportStar(require(\"./jsSha256\"), exports);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar constants_1 = require(\"./constants\");\n\nvar RawSha256_1 = require(\"./RawSha256\");\n\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n\nvar Sha256 =\n/** @class */\nfunction () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n\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\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer); // overwrite the copied key in memory\n\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n Sha256.prototype.update = function (toHash) {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n\n\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\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\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\n /*return*/\n , this.digestSync()];\n });\n });\n };\n\n return Sha256;\n}();\n\nexports.Sha256 = Sha256;\n\nfunction bufferFromSecret(secret) {\n var input = convertToBuffer(secret);\n\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\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return util_utf8_browser_1.fromUtf8(data);\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}","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function fromUtf8(input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function toUtf8(input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}","/**\n * 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 fromUtf8(input) {\n var bytes = [];\n\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n\n if (value < 0x80) {\n bytes.push(value);\n } else if (value < 0x800) {\n bytes.push(value >> 6 | 192, value & 63 | 128);\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 } else {\n bytes.push(value >> 12 | 224, value >> 6 & 63 | 128, value & 63 | 128);\n }\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 */\n\nexport var toUtf8 = function toUtf8(input) {\n var decoded = \"\";\n\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n } else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode((byte & 31) << 6 | nextByte & 63);\n } else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) {\n return byteValue.toString(16);\n }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n } else {\n decoded += String.fromCharCode((byte & 15) << 12 | (input[++i] & 63) << 6 | input[++i] & 63);\n }\n }\n\n return decoded;\n};","import { __assign } from \"tslib\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var AbortIncompleteMultipartUpload;\n\n(function (AbortIncompleteMultipartUpload) {\n AbortIncompleteMultipartUpload.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AbortIncompleteMultipartUpload || (AbortIncompleteMultipartUpload = {}));\n\nexport var AbortMultipartUploadOutput;\n\n(function (AbortMultipartUploadOutput) {\n AbortMultipartUploadOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AbortMultipartUploadOutput || (AbortMultipartUploadOutput = {}));\n\nexport var AbortMultipartUploadRequest;\n\n(function (AbortMultipartUploadRequest) {\n AbortMultipartUploadRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AbortMultipartUploadRequest || (AbortMultipartUploadRequest = {}));\n\nexport var NoSuchUpload;\n\n(function (NoSuchUpload) {\n NoSuchUpload.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoSuchUpload || (NoSuchUpload = {}));\n\nexport var AccelerateConfiguration;\n\n(function (AccelerateConfiguration) {\n AccelerateConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AccelerateConfiguration || (AccelerateConfiguration = {}));\n\nexport var Grantee;\n\n(function (Grantee) {\n Grantee.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Grantee || (Grantee = {}));\n\nexport var Grant;\n\n(function (Grant) {\n Grant.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Grant || (Grant = {}));\n\nexport var Owner;\n\n(function (Owner) {\n Owner.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Owner || (Owner = {}));\n\nexport var AccessControlPolicy;\n\n(function (AccessControlPolicy) {\n AccessControlPolicy.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AccessControlPolicy || (AccessControlPolicy = {}));\n\nexport var AccessControlTranslation;\n\n(function (AccessControlTranslation) {\n AccessControlTranslation.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AccessControlTranslation || (AccessControlTranslation = {}));\n\nexport var CompleteMultipartUploadOutput;\n\n(function (CompleteMultipartUploadOutput) {\n CompleteMultipartUploadOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n });\n };\n})(CompleteMultipartUploadOutput || (CompleteMultipartUploadOutput = {}));\n\nexport var CompletedPart;\n\n(function (CompletedPart) {\n CompletedPart.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CompletedPart || (CompletedPart = {}));\n\nexport var CompletedMultipartUpload;\n\n(function (CompletedMultipartUpload) {\n CompletedMultipartUpload.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CompletedMultipartUpload || (CompletedMultipartUpload = {}));\n\nexport var CompleteMultipartUploadRequest;\n\n(function (CompleteMultipartUploadRequest) {\n CompleteMultipartUploadRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CompleteMultipartUploadRequest || (CompleteMultipartUploadRequest = {}));\n\nexport var CopyObjectResult;\n\n(function (CopyObjectResult) {\n CopyObjectResult.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CopyObjectResult || (CopyObjectResult = {}));\n\nexport var CopyObjectOutput;\n\n(function (CopyObjectOutput) {\n CopyObjectOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(CopyObjectOutput || (CopyObjectOutput = {}));\n\nexport var CopyObjectRequest;\n\n(function (CopyObjectRequest) {\n CopyObjectRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign(__assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n }), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n }), obj.CopySourceSSECustomerKey && {\n CopySourceSSECustomerKey: SENSITIVE_STRING\n });\n };\n})(CopyObjectRequest || (CopyObjectRequest = {}));\n\nexport var ObjectNotInActiveTierError;\n\n(function (ObjectNotInActiveTierError) {\n ObjectNotInActiveTierError.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectNotInActiveTierError || (ObjectNotInActiveTierError = {}));\n\nexport var BucketAlreadyExists;\n\n(function (BucketAlreadyExists) {\n BucketAlreadyExists.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(BucketAlreadyExists || (BucketAlreadyExists = {}));\n\nexport var BucketAlreadyOwnedByYou;\n\n(function (BucketAlreadyOwnedByYou) {\n BucketAlreadyOwnedByYou.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(BucketAlreadyOwnedByYou || (BucketAlreadyOwnedByYou = {}));\n\nexport var CreateBucketOutput;\n\n(function (CreateBucketOutput) {\n CreateBucketOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CreateBucketOutput || (CreateBucketOutput = {}));\n\nexport var CreateBucketConfiguration;\n\n(function (CreateBucketConfiguration) {\n CreateBucketConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CreateBucketConfiguration || (CreateBucketConfiguration = {}));\n\nexport var CreateBucketRequest;\n\n(function (CreateBucketRequest) {\n CreateBucketRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CreateBucketRequest || (CreateBucketRequest = {}));\n\nexport var CreateMultipartUploadOutput;\n\n(function (CreateMultipartUploadOutput) {\n CreateMultipartUploadOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(CreateMultipartUploadOutput || (CreateMultipartUploadOutput = {}));\n\nexport var CreateMultipartUploadRequest;\n\n(function (CreateMultipartUploadRequest) {\n CreateMultipartUploadRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n }), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(CreateMultipartUploadRequest || (CreateMultipartUploadRequest = {}));\n\nexport var DeleteBucketRequest;\n\n(function (DeleteBucketRequest) {\n DeleteBucketRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketRequest || (DeleteBucketRequest = {}));\n\nexport var DeleteBucketAnalyticsConfigurationRequest;\n\n(function (DeleteBucketAnalyticsConfigurationRequest) {\n DeleteBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketAnalyticsConfigurationRequest || (DeleteBucketAnalyticsConfigurationRequest = {}));\n\nexport var DeleteBucketCorsRequest;\n\n(function (DeleteBucketCorsRequest) {\n DeleteBucketCorsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketCorsRequest || (DeleteBucketCorsRequest = {}));\n\nexport var DeleteBucketEncryptionRequest;\n\n(function (DeleteBucketEncryptionRequest) {\n DeleteBucketEncryptionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketEncryptionRequest || (DeleteBucketEncryptionRequest = {}));\n\nexport var DeleteBucketIntelligentTieringConfigurationRequest;\n\n(function (DeleteBucketIntelligentTieringConfigurationRequest) {\n DeleteBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketIntelligentTieringConfigurationRequest || (DeleteBucketIntelligentTieringConfigurationRequest = {}));\n\nexport var DeleteBucketInventoryConfigurationRequest;\n\n(function (DeleteBucketInventoryConfigurationRequest) {\n DeleteBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketInventoryConfigurationRequest || (DeleteBucketInventoryConfigurationRequest = {}));\n\nexport var DeleteBucketLifecycleRequest;\n\n(function (DeleteBucketLifecycleRequest) {\n DeleteBucketLifecycleRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketLifecycleRequest || (DeleteBucketLifecycleRequest = {}));\n\nexport var DeleteBucketMetricsConfigurationRequest;\n\n(function (DeleteBucketMetricsConfigurationRequest) {\n DeleteBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketMetricsConfigurationRequest || (DeleteBucketMetricsConfigurationRequest = {}));\n\nexport var DeleteBucketOwnershipControlsRequest;\n\n(function (DeleteBucketOwnershipControlsRequest) {\n DeleteBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketOwnershipControlsRequest || (DeleteBucketOwnershipControlsRequest = {}));\n\nexport var DeleteBucketPolicyRequest;\n\n(function (DeleteBucketPolicyRequest) {\n DeleteBucketPolicyRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketPolicyRequest || (DeleteBucketPolicyRequest = {}));\n\nexport var DeleteBucketReplicationRequest;\n\n(function (DeleteBucketReplicationRequest) {\n DeleteBucketReplicationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketReplicationRequest || (DeleteBucketReplicationRequest = {}));\n\nexport var DeleteBucketTaggingRequest;\n\n(function (DeleteBucketTaggingRequest) {\n DeleteBucketTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketTaggingRequest || (DeleteBucketTaggingRequest = {}));\n\nexport var DeleteBucketWebsiteRequest;\n\n(function (DeleteBucketWebsiteRequest) {\n DeleteBucketWebsiteRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketWebsiteRequest || (DeleteBucketWebsiteRequest = {}));\n\nexport var DeleteObjectOutput;\n\n(function (DeleteObjectOutput) {\n DeleteObjectOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectOutput || (DeleteObjectOutput = {}));\n\nexport var DeleteObjectRequest;\n\n(function (DeleteObjectRequest) {\n DeleteObjectRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectRequest || (DeleteObjectRequest = {}));\n\nexport var DeletedObject;\n\n(function (DeletedObject) {\n DeletedObject.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeletedObject || (DeletedObject = {}));\n\nexport var _Error;\n\n(function (_Error) {\n _Error.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(_Error || (_Error = {}));\n\nexport var DeleteObjectsOutput;\n\n(function (DeleteObjectsOutput) {\n DeleteObjectsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectsOutput || (DeleteObjectsOutput = {}));\n\nexport var ObjectIdentifier;\n\n(function (ObjectIdentifier) {\n ObjectIdentifier.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectIdentifier || (ObjectIdentifier = {}));\n\nexport var Delete;\n\n(function (Delete) {\n Delete.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Delete || (Delete = {}));\n\nexport var DeleteObjectsRequest;\n\n(function (DeleteObjectsRequest) {\n DeleteObjectsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectsRequest || (DeleteObjectsRequest = {}));\n\nexport var DeleteObjectTaggingOutput;\n\n(function (DeleteObjectTaggingOutput) {\n DeleteObjectTaggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectTaggingOutput || (DeleteObjectTaggingOutput = {}));\n\nexport var DeleteObjectTaggingRequest;\n\n(function (DeleteObjectTaggingRequest) {\n DeleteObjectTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectTaggingRequest || (DeleteObjectTaggingRequest = {}));\n\nexport var DeletePublicAccessBlockRequest;\n\n(function (DeletePublicAccessBlockRequest) {\n DeletePublicAccessBlockRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeletePublicAccessBlockRequest || (DeletePublicAccessBlockRequest = {}));\n\nexport var GetBucketAccelerateConfigurationOutput;\n\n(function (GetBucketAccelerateConfigurationOutput) {\n GetBucketAccelerateConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAccelerateConfigurationOutput || (GetBucketAccelerateConfigurationOutput = {}));\n\nexport var GetBucketAccelerateConfigurationRequest;\n\n(function (GetBucketAccelerateConfigurationRequest) {\n GetBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAccelerateConfigurationRequest || (GetBucketAccelerateConfigurationRequest = {}));\n\nexport var GetBucketAclOutput;\n\n(function (GetBucketAclOutput) {\n GetBucketAclOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAclOutput || (GetBucketAclOutput = {}));\n\nexport var GetBucketAclRequest;\n\n(function (GetBucketAclRequest) {\n GetBucketAclRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAclRequest || (GetBucketAclRequest = {}));\n\nexport var Tag;\n\n(function (Tag) {\n Tag.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Tag || (Tag = {}));\n\nexport var AnalyticsAndOperator;\n\n(function (AnalyticsAndOperator) {\n AnalyticsAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AnalyticsAndOperator || (AnalyticsAndOperator = {}));\n\nexport var AnalyticsFilter;\n\n(function (AnalyticsFilter) {\n AnalyticsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined) return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined) return visitor.Tag(value.Tag);\n if (value.And !== undefined) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n\n AnalyticsFilter.filterSensitiveLog = function (obj) {\n var _a;\n\n if (obj.Prefix !== undefined) return {\n Prefix: obj.Prefix\n };\n if (obj.Tag !== undefined) return {\n Tag: Tag.filterSensitiveLog(obj.Tag)\n };\n if (obj.And !== undefined) return {\n And: AnalyticsAndOperator.filterSensitiveLog(obj.And)\n };\n if (obj.$unknown !== undefined) return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(AnalyticsFilter || (AnalyticsFilter = {}));\n\nexport var AnalyticsS3BucketDestination;\n\n(function (AnalyticsS3BucketDestination) {\n AnalyticsS3BucketDestination.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AnalyticsS3BucketDestination || (AnalyticsS3BucketDestination = {}));\n\nexport var AnalyticsExportDestination;\n\n(function (AnalyticsExportDestination) {\n AnalyticsExportDestination.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AnalyticsExportDestination || (AnalyticsExportDestination = {}));\n\nexport var StorageClassAnalysisDataExport;\n\n(function (StorageClassAnalysisDataExport) {\n StorageClassAnalysisDataExport.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(StorageClassAnalysisDataExport || (StorageClassAnalysisDataExport = {}));\n\nexport var StorageClassAnalysis;\n\n(function (StorageClassAnalysis) {\n StorageClassAnalysis.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(StorageClassAnalysis || (StorageClassAnalysis = {}));\n\nexport var AnalyticsConfiguration;\n\n(function (AnalyticsConfiguration) {\n AnalyticsConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Filter && {\n Filter: AnalyticsFilter.filterSensitiveLog(obj.Filter)\n });\n };\n})(AnalyticsConfiguration || (AnalyticsConfiguration = {}));\n\nexport var GetBucketAnalyticsConfigurationOutput;\n\n(function (GetBucketAnalyticsConfigurationOutput) {\n GetBucketAnalyticsConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration)\n });\n };\n})(GetBucketAnalyticsConfigurationOutput || (GetBucketAnalyticsConfigurationOutput = {}));\n\nexport var GetBucketAnalyticsConfigurationRequest;\n\n(function (GetBucketAnalyticsConfigurationRequest) {\n GetBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAnalyticsConfigurationRequest || (GetBucketAnalyticsConfigurationRequest = {}));\n\nexport var CORSRule;\n\n(function (CORSRule) {\n CORSRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CORSRule || (CORSRule = {}));\n\nexport var GetBucketCorsOutput;\n\n(function (GetBucketCorsOutput) {\n GetBucketCorsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketCorsOutput || (GetBucketCorsOutput = {}));\n\nexport var GetBucketCorsRequest;\n\n(function (GetBucketCorsRequest) {\n GetBucketCorsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketCorsRequest || (GetBucketCorsRequest = {}));\n\nexport var ServerSideEncryptionByDefault;\n\n(function (ServerSideEncryptionByDefault) {\n ServerSideEncryptionByDefault.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.KMSMasterKeyID && {\n KMSMasterKeyID: SENSITIVE_STRING\n });\n };\n})(ServerSideEncryptionByDefault || (ServerSideEncryptionByDefault = {}));\n\nexport var ServerSideEncryptionRule;\n\n(function (ServerSideEncryptionRule) {\n ServerSideEncryptionRule.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefault.filterSensitiveLog(obj.ApplyServerSideEncryptionByDefault)\n });\n };\n})(ServerSideEncryptionRule || (ServerSideEncryptionRule = {}));\n\nexport var ServerSideEncryptionConfiguration;\n\n(function (ServerSideEncryptionConfiguration) {\n ServerSideEncryptionConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Rules && {\n Rules: obj.Rules.map(function (item) {\n return ServerSideEncryptionRule.filterSensitiveLog(item);\n })\n });\n };\n})(ServerSideEncryptionConfiguration || (ServerSideEncryptionConfiguration = {}));\n\nexport var GetBucketEncryptionOutput;\n\n(function (GetBucketEncryptionOutput) {\n GetBucketEncryptionOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration)\n });\n };\n})(GetBucketEncryptionOutput || (GetBucketEncryptionOutput = {}));\n\nexport var GetBucketEncryptionRequest;\n\n(function (GetBucketEncryptionRequest) {\n GetBucketEncryptionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketEncryptionRequest || (GetBucketEncryptionRequest = {}));\n\nexport var IntelligentTieringAndOperator;\n\n(function (IntelligentTieringAndOperator) {\n IntelligentTieringAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IntelligentTieringAndOperator || (IntelligentTieringAndOperator = {}));\n\nexport var IntelligentTieringFilter;\n\n(function (IntelligentTieringFilter) {\n IntelligentTieringFilter.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IntelligentTieringFilter || (IntelligentTieringFilter = {}));\n\nexport var Tiering;\n\n(function (Tiering) {\n Tiering.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Tiering || (Tiering = {}));\n\nexport var IntelligentTieringConfiguration;\n\n(function (IntelligentTieringConfiguration) {\n IntelligentTieringConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IntelligentTieringConfiguration || (IntelligentTieringConfiguration = {}));\n\nexport var GetBucketIntelligentTieringConfigurationOutput;\n\n(function (GetBucketIntelligentTieringConfigurationOutput) {\n GetBucketIntelligentTieringConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketIntelligentTieringConfigurationOutput || (GetBucketIntelligentTieringConfigurationOutput = {}));\n\nexport var GetBucketIntelligentTieringConfigurationRequest;\n\n(function (GetBucketIntelligentTieringConfigurationRequest) {\n GetBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketIntelligentTieringConfigurationRequest || (GetBucketIntelligentTieringConfigurationRequest = {}));\n\nexport var SSEKMS;\n\n(function (SSEKMS) {\n SSEKMS.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.KeyId && {\n KeyId: SENSITIVE_STRING\n });\n };\n})(SSEKMS || (SSEKMS = {}));\n\nexport var SSES3;\n\n(function (SSES3) {\n SSES3.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SSES3 || (SSES3 = {}));\n\nexport var InventoryEncryption;\n\n(function (InventoryEncryption) {\n InventoryEncryption.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMS && {\n SSEKMS: SSEKMS.filterSensitiveLog(obj.SSEKMS)\n });\n };\n})(InventoryEncryption || (InventoryEncryption = {}));\n\nexport var InventoryS3BucketDestination;\n\n(function (InventoryS3BucketDestination) {\n InventoryS3BucketDestination.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Encryption && {\n Encryption: InventoryEncryption.filterSensitiveLog(obj.Encryption)\n });\n };\n})(InventoryS3BucketDestination || (InventoryS3BucketDestination = {}));\n\nexport var InventoryDestination;\n\n(function (InventoryDestination) {\n InventoryDestination.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.S3BucketDestination && {\n S3BucketDestination: InventoryS3BucketDestination.filterSensitiveLog(obj.S3BucketDestination)\n });\n };\n})(InventoryDestination || (InventoryDestination = {}));\n\nexport var InventoryFilter;\n\n(function (InventoryFilter) {\n InventoryFilter.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InventoryFilter || (InventoryFilter = {}));\n\nexport var InventorySchedule;\n\n(function (InventorySchedule) {\n InventorySchedule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InventorySchedule || (InventorySchedule = {}));\n\nexport var InventoryConfiguration;\n\n(function (InventoryConfiguration) {\n InventoryConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Destination && {\n Destination: InventoryDestination.filterSensitiveLog(obj.Destination)\n });\n };\n})(InventoryConfiguration || (InventoryConfiguration = {}));\n\nexport var GetBucketInventoryConfigurationOutput;\n\n(function (GetBucketInventoryConfigurationOutput) {\n GetBucketInventoryConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration)\n });\n };\n})(GetBucketInventoryConfigurationOutput || (GetBucketInventoryConfigurationOutput = {}));\n\nexport var GetBucketInventoryConfigurationRequest;\n\n(function (GetBucketInventoryConfigurationRequest) {\n GetBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketInventoryConfigurationRequest || (GetBucketInventoryConfigurationRequest = {}));\n\nexport var LifecycleExpiration;\n\n(function (LifecycleExpiration) {\n LifecycleExpiration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LifecycleExpiration || (LifecycleExpiration = {}));\n\nexport var LifecycleRuleAndOperator;\n\n(function (LifecycleRuleAndOperator) {\n LifecycleRuleAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LifecycleRuleAndOperator || (LifecycleRuleAndOperator = {}));\n\nexport var LifecycleRuleFilter;\n\n(function (LifecycleRuleFilter) {\n LifecycleRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined) return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined) return visitor.Tag(value.Tag);\n if (value.And !== undefined) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n\n LifecycleRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n\n if (obj.Prefix !== undefined) return {\n Prefix: obj.Prefix\n };\n if (obj.Tag !== undefined) return {\n Tag: Tag.filterSensitiveLog(obj.Tag)\n };\n if (obj.And !== undefined) return {\n And: LifecycleRuleAndOperator.filterSensitiveLog(obj.And)\n };\n if (obj.$unknown !== undefined) return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(LifecycleRuleFilter || (LifecycleRuleFilter = {}));\n\nexport var NoncurrentVersionExpiration;\n\n(function (NoncurrentVersionExpiration) {\n NoncurrentVersionExpiration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoncurrentVersionExpiration || (NoncurrentVersionExpiration = {}));\n\nexport var NoncurrentVersionTransition;\n\n(function (NoncurrentVersionTransition) {\n NoncurrentVersionTransition.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoncurrentVersionTransition || (NoncurrentVersionTransition = {}));\n\nexport var Transition;\n\n(function (Transition) {\n Transition.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Transition || (Transition = {}));\n\nexport var LifecycleRule;\n\n(function (LifecycleRule) {\n LifecycleRule.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Filter && {\n Filter: LifecycleRuleFilter.filterSensitiveLog(obj.Filter)\n });\n };\n})(LifecycleRule || (LifecycleRule = {}));\n\nexport var GetBucketLifecycleConfigurationOutput;\n\n(function (GetBucketLifecycleConfigurationOutput) {\n GetBucketLifecycleConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Rules && {\n Rules: obj.Rules.map(function (item) {\n return LifecycleRule.filterSensitiveLog(item);\n })\n });\n };\n})(GetBucketLifecycleConfigurationOutput || (GetBucketLifecycleConfigurationOutput = {}));\n\nexport var GetBucketLifecycleConfigurationRequest;\n\n(function (GetBucketLifecycleConfigurationRequest) {\n GetBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLifecycleConfigurationRequest || (GetBucketLifecycleConfigurationRequest = {}));\n\nexport var GetBucketLocationOutput;\n\n(function (GetBucketLocationOutput) {\n GetBucketLocationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLocationOutput || (GetBucketLocationOutput = {}));\n\nexport var GetBucketLocationRequest;\n\n(function (GetBucketLocationRequest) {\n GetBucketLocationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLocationRequest || (GetBucketLocationRequest = {}));\n\nexport var TargetGrant;\n\n(function (TargetGrant) {\n TargetGrant.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TargetGrant || (TargetGrant = {}));\n\nexport var LoggingEnabled;\n\n(function (LoggingEnabled) {\n LoggingEnabled.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LoggingEnabled || (LoggingEnabled = {}));\n\nexport var GetBucketLoggingOutput;\n\n(function (GetBucketLoggingOutput) {\n GetBucketLoggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLoggingOutput || (GetBucketLoggingOutput = {}));\n\nexport var GetBucketLoggingRequest;\n\n(function (GetBucketLoggingRequest) {\n GetBucketLoggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLoggingRequest || (GetBucketLoggingRequest = {}));\n\nexport var MetricsAndOperator;\n\n(function (MetricsAndOperator) {\n MetricsAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MetricsAndOperator || (MetricsAndOperator = {}));\n\nexport var MetricsFilter;\n\n(function (MetricsFilter) {\n MetricsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined) return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined) return visitor.Tag(value.Tag);\n if (value.And !== undefined) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n\n MetricsFilter.filterSensitiveLog = function (obj) {\n var _a;\n\n if (obj.Prefix !== undefined) return {\n Prefix: obj.Prefix\n };\n if (obj.Tag !== undefined) return {\n Tag: Tag.filterSensitiveLog(obj.Tag)\n };\n if (obj.And !== undefined) return {\n And: MetricsAndOperator.filterSensitiveLog(obj.And)\n };\n if (obj.$unknown !== undefined) return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(MetricsFilter || (MetricsFilter = {}));\n\nexport var MetricsConfiguration;\n\n(function (MetricsConfiguration) {\n MetricsConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Filter && {\n Filter: MetricsFilter.filterSensitiveLog(obj.Filter)\n });\n };\n})(MetricsConfiguration || (MetricsConfiguration = {}));\n\nexport var GetBucketMetricsConfigurationOutput;\n\n(function (GetBucketMetricsConfigurationOutput) {\n GetBucketMetricsConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration)\n });\n };\n})(GetBucketMetricsConfigurationOutput || (GetBucketMetricsConfigurationOutput = {}));\n\nexport var GetBucketMetricsConfigurationRequest;\n\n(function (GetBucketMetricsConfigurationRequest) {\n GetBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketMetricsConfigurationRequest || (GetBucketMetricsConfigurationRequest = {}));\n\nexport var GetBucketNotificationConfigurationRequest;\n\n(function (GetBucketNotificationConfigurationRequest) {\n GetBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketNotificationConfigurationRequest || (GetBucketNotificationConfigurationRequest = {}));\n\nexport var FilterRule;\n\n(function (FilterRule) {\n FilterRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(FilterRule || (FilterRule = {}));\n\nexport var S3KeyFilter;\n\n(function (S3KeyFilter) {\n S3KeyFilter.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(S3KeyFilter || (S3KeyFilter = {}));\n\nexport var NotificationConfigurationFilter;\n\n(function (NotificationConfigurationFilter) {\n NotificationConfigurationFilter.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NotificationConfigurationFilter || (NotificationConfigurationFilter = {}));\n\nexport var LambdaFunctionConfiguration;\n\n(function (LambdaFunctionConfiguration) {\n LambdaFunctionConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LambdaFunctionConfiguration || (LambdaFunctionConfiguration = {}));\n\nexport var QueueConfiguration;\n\n(function (QueueConfiguration) {\n QueueConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(QueueConfiguration || (QueueConfiguration = {}));\n\nexport var TopicConfiguration;\n\n(function (TopicConfiguration) {\n TopicConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TopicConfiguration || (TopicConfiguration = {}));\n\nexport var NotificationConfiguration;\n\n(function (NotificationConfiguration) {\n NotificationConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NotificationConfiguration || (NotificationConfiguration = {}));\n\nexport var OwnershipControlsRule;\n\n(function (OwnershipControlsRule) {\n OwnershipControlsRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(OwnershipControlsRule || (OwnershipControlsRule = {}));\n\nexport var OwnershipControls;\n\n(function (OwnershipControls) {\n OwnershipControls.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(OwnershipControls || (OwnershipControls = {}));\n\nexport var GetBucketOwnershipControlsOutput;\n\n(function (GetBucketOwnershipControlsOutput) {\n GetBucketOwnershipControlsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketOwnershipControlsOutput || (GetBucketOwnershipControlsOutput = {}));\n\nexport var GetBucketOwnershipControlsRequest;\n\n(function (GetBucketOwnershipControlsRequest) {\n GetBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketOwnershipControlsRequest || (GetBucketOwnershipControlsRequest = {}));\n\nexport var GetBucketPolicyOutput;\n\n(function (GetBucketPolicyOutput) {\n GetBucketPolicyOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketPolicyOutput || (GetBucketPolicyOutput = {}));\n\nexport var GetBucketPolicyRequest;\n\n(function (GetBucketPolicyRequest) {\n GetBucketPolicyRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketPolicyRequest || (GetBucketPolicyRequest = {}));\n\nexport var PolicyStatus;\n\n(function (PolicyStatus) {\n PolicyStatus.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PolicyStatus || (PolicyStatus = {}));\n\nexport var GetBucketPolicyStatusOutput;\n\n(function (GetBucketPolicyStatusOutput) {\n GetBucketPolicyStatusOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketPolicyStatusOutput || (GetBucketPolicyStatusOutput = {}));\n\nexport var GetBucketPolicyStatusRequest;\n\n(function (GetBucketPolicyStatusRequest) {\n GetBucketPolicyStatusRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketPolicyStatusRequest || (GetBucketPolicyStatusRequest = {}));\n\nexport var DeleteMarkerReplication;\n\n(function (DeleteMarkerReplication) {\n DeleteMarkerReplication.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteMarkerReplication || (DeleteMarkerReplication = {}));\n\nexport var EncryptionConfiguration;\n\n(function (EncryptionConfiguration) {\n EncryptionConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(EncryptionConfiguration || (EncryptionConfiguration = {}));\n\nexport var ReplicationTimeValue;\n\n(function (ReplicationTimeValue) {\n ReplicationTimeValue.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ReplicationTimeValue || (ReplicationTimeValue = {}));\n\nexport var Metrics;\n\n(function (Metrics) {\n Metrics.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Metrics || (Metrics = {}));\n\nexport var ReplicationTime;\n\n(function (ReplicationTime) {\n ReplicationTime.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ReplicationTime || (ReplicationTime = {}));\n\nexport var Destination;\n\n(function (Destination) {\n Destination.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Destination || (Destination = {}));\n\nexport var ExistingObjectReplication;\n\n(function (ExistingObjectReplication) {\n ExistingObjectReplication.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ExistingObjectReplication || (ExistingObjectReplication = {}));\n\nexport var ReplicationRuleAndOperator;\n\n(function (ReplicationRuleAndOperator) {\n ReplicationRuleAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ReplicationRuleAndOperator || (ReplicationRuleAndOperator = {}));\n\nexport var ReplicationRuleFilter;\n\n(function (ReplicationRuleFilter) {\n ReplicationRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined) return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined) return visitor.Tag(value.Tag);\n if (value.And !== undefined) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n\n ReplicationRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n\n if (obj.Prefix !== undefined) return {\n Prefix: obj.Prefix\n };\n if (obj.Tag !== undefined) return {\n Tag: Tag.filterSensitiveLog(obj.Tag)\n };\n if (obj.And !== undefined) return {\n And: ReplicationRuleAndOperator.filterSensitiveLog(obj.And)\n };\n if (obj.$unknown !== undefined) return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(ReplicationRuleFilter || (ReplicationRuleFilter = {}));\n\nexport var ReplicaModifications;\n\n(function (ReplicaModifications) {\n ReplicaModifications.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ReplicaModifications || (ReplicaModifications = {}));\n\nexport var SseKmsEncryptedObjects;\n\n(function (SseKmsEncryptedObjects) {\n SseKmsEncryptedObjects.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SseKmsEncryptedObjects || (SseKmsEncryptedObjects = {}));\n\nexport var SourceSelectionCriteria;\n\n(function (SourceSelectionCriteria) {\n SourceSelectionCriteria.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SourceSelectionCriteria || (SourceSelectionCriteria = {}));\n\nexport var ReplicationRule;\n\n(function (ReplicationRule) {\n ReplicationRule.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Filter && {\n Filter: ReplicationRuleFilter.filterSensitiveLog(obj.Filter)\n });\n };\n})(ReplicationRule || (ReplicationRule = {}));\n\nexport var ReplicationConfiguration;\n\n(function (ReplicationConfiguration) {\n ReplicationConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Rules && {\n Rules: obj.Rules.map(function (item) {\n return ReplicationRule.filterSensitiveLog(item);\n })\n });\n };\n})(ReplicationConfiguration || (ReplicationConfiguration = {}));\n\nexport var GetBucketReplicationOutput;\n\n(function (GetBucketReplicationOutput) {\n GetBucketReplicationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration)\n });\n };\n})(GetBucketReplicationOutput || (GetBucketReplicationOutput = {}));\n\nexport var GetBucketReplicationRequest;\n\n(function (GetBucketReplicationRequest) {\n GetBucketReplicationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketReplicationRequest || (GetBucketReplicationRequest = {}));\n\nexport var GetBucketRequestPaymentOutput;\n\n(function (GetBucketRequestPaymentOutput) {\n GetBucketRequestPaymentOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketRequestPaymentOutput || (GetBucketRequestPaymentOutput = {}));\n\nexport var GetBucketRequestPaymentRequest;\n\n(function (GetBucketRequestPaymentRequest) {\n GetBucketRequestPaymentRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketRequestPaymentRequest || (GetBucketRequestPaymentRequest = {}));\n\nexport var GetBucketTaggingOutput;\n\n(function (GetBucketTaggingOutput) {\n GetBucketTaggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketTaggingOutput || (GetBucketTaggingOutput = {}));\n\nexport var GetBucketTaggingRequest;\n\n(function (GetBucketTaggingRequest) {\n GetBucketTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketTaggingRequest || (GetBucketTaggingRequest = {}));\n\nexport var GetBucketVersioningOutput;\n\n(function (GetBucketVersioningOutput) {\n GetBucketVersioningOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketVersioningOutput || (GetBucketVersioningOutput = {}));\n\nexport var GetBucketVersioningRequest;\n\n(function (GetBucketVersioningRequest) {\n GetBucketVersioningRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketVersioningRequest || (GetBucketVersioningRequest = {}));\n\nexport var ErrorDocument;\n\n(function (ErrorDocument) {\n ErrorDocument.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ErrorDocument || (ErrorDocument = {}));\n\nexport var IndexDocument;\n\n(function (IndexDocument) {\n IndexDocument.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IndexDocument || (IndexDocument = {}));\n\nexport var RedirectAllRequestsTo;\n\n(function (RedirectAllRequestsTo) {\n RedirectAllRequestsTo.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RedirectAllRequestsTo || (RedirectAllRequestsTo = {}));\n\nexport var Condition;\n\n(function (Condition) {\n Condition.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Condition || (Condition = {}));\n\nexport var Redirect;\n\n(function (Redirect) {\n Redirect.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Redirect || (Redirect = {}));\n\nexport var RoutingRule;\n\n(function (RoutingRule) {\n RoutingRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RoutingRule || (RoutingRule = {}));\n\nexport var GetBucketWebsiteOutput;\n\n(function (GetBucketWebsiteOutput) {\n GetBucketWebsiteOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketWebsiteOutput || (GetBucketWebsiteOutput = {}));\n\nexport var GetBucketWebsiteRequest;\n\n(function (GetBucketWebsiteRequest) {\n GetBucketWebsiteRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketWebsiteRequest || (GetBucketWebsiteRequest = {}));\n\nexport var GetObjectOutput;\n\n(function (GetObjectOutput) {\n GetObjectOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n });\n };\n})(GetObjectOutput || (GetObjectOutput = {}));\n\nexport var GetObjectRequest;\n\n(function (GetObjectRequest) {\n GetObjectRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n });\n };\n})(GetObjectRequest || (GetObjectRequest = {}));\n\nexport var InvalidObjectState;\n\n(function (InvalidObjectState) {\n InvalidObjectState.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InvalidObjectState || (InvalidObjectState = {}));\n\nexport var NoSuchKey;\n\n(function (NoSuchKey) {\n NoSuchKey.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoSuchKey || (NoSuchKey = {}));\n\nexport var GetObjectAclOutput;\n\n(function (GetObjectAclOutput) {\n GetObjectAclOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectAclOutput || (GetObjectAclOutput = {}));\n\nexport var GetObjectAclRequest;\n\n(function (GetObjectAclRequest) {\n GetObjectAclRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectAclRequest || (GetObjectAclRequest = {}));\n\nexport var ObjectLockLegalHold;\n\n(function (ObjectLockLegalHold) {\n ObjectLockLegalHold.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectLockLegalHold || (ObjectLockLegalHold = {}));\n\nexport var GetObjectLegalHoldOutput;\n\n(function (GetObjectLegalHoldOutput) {\n GetObjectLegalHoldOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectLegalHoldOutput || (GetObjectLegalHoldOutput = {}));\n\nexport var GetObjectLegalHoldRequest;\n\n(function (GetObjectLegalHoldRequest) {\n GetObjectLegalHoldRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectLegalHoldRequest || (GetObjectLegalHoldRequest = {}));\n\nexport var DefaultRetention;\n\n(function (DefaultRetention) {\n DefaultRetention.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DefaultRetention || (DefaultRetention = {}));\n\nexport var ObjectLockRule;\n\n(function (ObjectLockRule) {\n ObjectLockRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectLockRule || (ObjectLockRule = {}));\n\nexport var ObjectLockConfiguration;\n\n(function (ObjectLockConfiguration) {\n ObjectLockConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectLockConfiguration || (ObjectLockConfiguration = {}));\n\nexport var GetObjectLockConfigurationOutput;\n\n(function (GetObjectLockConfigurationOutput) {\n GetObjectLockConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectLockConfigurationOutput || (GetObjectLockConfigurationOutput = {}));\n\nexport var GetObjectLockConfigurationRequest;\n\n(function (GetObjectLockConfigurationRequest) {\n GetObjectLockConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectLockConfigurationRequest || (GetObjectLockConfigurationRequest = {}));\n\nexport var ObjectLockRetention;\n\n(function (ObjectLockRetention) {\n ObjectLockRetention.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectLockRetention || (ObjectLockRetention = {}));\n\nexport var GetObjectRetentionOutput;\n\n(function (GetObjectRetentionOutput) {\n GetObjectRetentionOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectRetentionOutput || (GetObjectRetentionOutput = {}));\n\nexport var GetObjectRetentionRequest;\n\n(function (GetObjectRetentionRequest) {\n GetObjectRetentionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectRetentionRequest || (GetObjectRetentionRequest = {}));\n\nexport var GetObjectTaggingOutput;\n\n(function (GetObjectTaggingOutput) {\n GetObjectTaggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectTaggingOutput || (GetObjectTaggingOutput = {}));\n\nexport var GetObjectTaggingRequest;\n\n(function (GetObjectTaggingRequest) {\n GetObjectTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectTaggingRequest || (GetObjectTaggingRequest = {}));\n\nexport var GetObjectTorrentOutput;\n\n(function (GetObjectTorrentOutput) {\n GetObjectTorrentOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectTorrentOutput || (GetObjectTorrentOutput = {}));\n\nexport var GetObjectTorrentRequest;\n\n(function (GetObjectTorrentRequest) {\n GetObjectTorrentRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectTorrentRequest || (GetObjectTorrentRequest = {}));\n\nexport var PublicAccessBlockConfiguration;\n\n(function (PublicAccessBlockConfiguration) {\n PublicAccessBlockConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PublicAccessBlockConfiguration || (PublicAccessBlockConfiguration = {}));\n\nexport var GetPublicAccessBlockOutput;\n\n(function (GetPublicAccessBlockOutput) {\n GetPublicAccessBlockOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetPublicAccessBlockOutput || (GetPublicAccessBlockOutput = {}));\n\nexport var GetPublicAccessBlockRequest;\n\n(function (GetPublicAccessBlockRequest) {\n GetPublicAccessBlockRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetPublicAccessBlockRequest || (GetPublicAccessBlockRequest = {}));\n\nexport var HeadBucketRequest;\n\n(function (HeadBucketRequest) {\n HeadBucketRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(HeadBucketRequest || (HeadBucketRequest = {}));\n\nexport var NoSuchBucket;\n\n(function (NoSuchBucket) {\n NoSuchBucket.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoSuchBucket || (NoSuchBucket = {}));\n\nexport var HeadObjectOutput;\n\n(function (HeadObjectOutput) {\n HeadObjectOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n });\n };\n})(HeadObjectOutput || (HeadObjectOutput = {}));\n\nexport var HeadObjectRequest;\n\n(function (HeadObjectRequest) {\n HeadObjectRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n });\n };\n})(HeadObjectRequest || (HeadObjectRequest = {}));\n\nexport var ListBucketAnalyticsConfigurationsOutput;\n\n(function (ListBucketAnalyticsConfigurationsOutput) {\n ListBucketAnalyticsConfigurationsOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.AnalyticsConfigurationList && {\n AnalyticsConfigurationList: obj.AnalyticsConfigurationList.map(function (item) {\n return AnalyticsConfiguration.filterSensitiveLog(item);\n })\n });\n };\n})(ListBucketAnalyticsConfigurationsOutput || (ListBucketAnalyticsConfigurationsOutput = {}));\n\nexport var ListBucketAnalyticsConfigurationsRequest;\n\n(function (ListBucketAnalyticsConfigurationsRequest) {\n ListBucketAnalyticsConfigurationsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketAnalyticsConfigurationsRequest || (ListBucketAnalyticsConfigurationsRequest = {}));\n\nexport var ListBucketIntelligentTieringConfigurationsOutput;\n\n(function (ListBucketIntelligentTieringConfigurationsOutput) {\n ListBucketIntelligentTieringConfigurationsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketIntelligentTieringConfigurationsOutput || (ListBucketIntelligentTieringConfigurationsOutput = {}));\n\nexport var ListBucketIntelligentTieringConfigurationsRequest;\n\n(function (ListBucketIntelligentTieringConfigurationsRequest) {\n ListBucketIntelligentTieringConfigurationsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketIntelligentTieringConfigurationsRequest || (ListBucketIntelligentTieringConfigurationsRequest = {}));\n\nexport var ListBucketInventoryConfigurationsOutput;\n\n(function (ListBucketInventoryConfigurationsOutput) {\n ListBucketInventoryConfigurationsOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map(function (item) {\n return InventoryConfiguration.filterSensitiveLog(item);\n })\n });\n };\n})(ListBucketInventoryConfigurationsOutput || (ListBucketInventoryConfigurationsOutput = {}));\n\nexport var ListBucketInventoryConfigurationsRequest;\n\n(function (ListBucketInventoryConfigurationsRequest) {\n ListBucketInventoryConfigurationsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketInventoryConfigurationsRequest || (ListBucketInventoryConfigurationsRequest = {}));\n\nexport var ListBucketMetricsConfigurationsOutput;\n\n(function (ListBucketMetricsConfigurationsOutput) {\n ListBucketMetricsConfigurationsOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.MetricsConfigurationList && {\n MetricsConfigurationList: obj.MetricsConfigurationList.map(function (item) {\n return MetricsConfiguration.filterSensitiveLog(item);\n })\n });\n };\n})(ListBucketMetricsConfigurationsOutput || (ListBucketMetricsConfigurationsOutput = {}));\n\nexport var ListBucketMetricsConfigurationsRequest;\n\n(function (ListBucketMetricsConfigurationsRequest) {\n ListBucketMetricsConfigurationsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketMetricsConfigurationsRequest || (ListBucketMetricsConfigurationsRequest = {}));\n\nexport var Bucket;\n\n(function (Bucket) {\n Bucket.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Bucket || (Bucket = {}));\n\nexport var ListBucketsOutput;\n\n(function (ListBucketsOutput) {\n ListBucketsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketsOutput || (ListBucketsOutput = {}));\n\nexport var CommonPrefix;\n\n(function (CommonPrefix) {\n CommonPrefix.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CommonPrefix || (CommonPrefix = {}));\n\nexport var Initiator;\n\n(function (Initiator) {\n Initiator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Initiator || (Initiator = {}));\n\nexport var MultipartUpload;\n\n(function (MultipartUpload) {\n MultipartUpload.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MultipartUpload || (MultipartUpload = {}));\n\nexport var ListMultipartUploadsOutput;\n\n(function (ListMultipartUploadsOutput) {\n ListMultipartUploadsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListMultipartUploadsOutput || (ListMultipartUploadsOutput = {}));\n\nexport var ListMultipartUploadsRequest;\n\n(function (ListMultipartUploadsRequest) {\n ListMultipartUploadsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListMultipartUploadsRequest || (ListMultipartUploadsRequest = {}));\n\nexport var _Object;\n\n(function (_Object) {\n _Object.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(_Object || (_Object = {}));\n\nexport var ListObjectsOutput;\n\n(function (ListObjectsOutput) {\n ListObjectsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectsOutput || (ListObjectsOutput = {}));\n\nexport var ListObjectsRequest;\n\n(function (ListObjectsRequest) {\n ListObjectsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectsRequest || (ListObjectsRequest = {}));\n\nexport var ListObjectsV2Output;\n\n(function (ListObjectsV2Output) {\n ListObjectsV2Output.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectsV2Output || (ListObjectsV2Output = {}));\n\nexport var ListObjectsV2Request;\n\n(function (ListObjectsV2Request) {\n ListObjectsV2Request.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectsV2Request || (ListObjectsV2Request = {}));\n\nexport var DeleteMarkerEntry;\n\n(function (DeleteMarkerEntry) {\n DeleteMarkerEntry.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteMarkerEntry || (DeleteMarkerEntry = {}));\n\nexport var ObjectVersion;\n\n(function (ObjectVersion) {\n ObjectVersion.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectVersion || (ObjectVersion = {}));\n\nexport var ListObjectVersionsOutput;\n\n(function (ListObjectVersionsOutput) {\n ListObjectVersionsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectVersionsOutput || (ListObjectVersionsOutput = {}));\n\nexport var ListObjectVersionsRequest;\n\n(function (ListObjectVersionsRequest) {\n ListObjectVersionsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectVersionsRequest || (ListObjectVersionsRequest = {}));\n\nexport var Part;\n\n(function (Part) {\n Part.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Part || (Part = {}));\n\nexport var ListPartsOutput;\n\n(function (ListPartsOutput) {\n ListPartsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListPartsOutput || (ListPartsOutput = {}));\n\nexport var ListPartsRequest;\n\n(function (ListPartsRequest) {\n ListPartsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListPartsRequest || (ListPartsRequest = {}));\n\nexport var PutBucketAccelerateConfigurationRequest;\n\n(function (PutBucketAccelerateConfigurationRequest) {\n PutBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketAccelerateConfigurationRequest || (PutBucketAccelerateConfigurationRequest = {}));\n\nexport var PutBucketAclRequest;\n\n(function (PutBucketAclRequest) {\n PutBucketAclRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketAclRequest || (PutBucketAclRequest = {}));\n\nexport var PutBucketAnalyticsConfigurationRequest;\n\n(function (PutBucketAnalyticsConfigurationRequest) {\n PutBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration)\n });\n };\n})(PutBucketAnalyticsConfigurationRequest || (PutBucketAnalyticsConfigurationRequest = {}));\n\nexport var CORSConfiguration;\n\n(function (CORSConfiguration) {\n CORSConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CORSConfiguration || (CORSConfiguration = {}));\n\nexport var PutBucketCorsRequest;\n\n(function (PutBucketCorsRequest) {\n PutBucketCorsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketCorsRequest || (PutBucketCorsRequest = {}));\n\nexport var PutBucketEncryptionRequest;\n\n(function (PutBucketEncryptionRequest) {\n PutBucketEncryptionRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration)\n });\n };\n})(PutBucketEncryptionRequest || (PutBucketEncryptionRequest = {}));\n\nexport var PutBucketIntelligentTieringConfigurationRequest;\n\n(function (PutBucketIntelligentTieringConfigurationRequest) {\n PutBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketIntelligentTieringConfigurationRequest || (PutBucketIntelligentTieringConfigurationRequest = {}));\n\nexport var PutBucketInventoryConfigurationRequest;\n\n(function (PutBucketInventoryConfigurationRequest) {\n PutBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration)\n });\n };\n})(PutBucketInventoryConfigurationRequest || (PutBucketInventoryConfigurationRequest = {}));\n\nexport var BucketLifecycleConfiguration;\n\n(function (BucketLifecycleConfiguration) {\n BucketLifecycleConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Rules && {\n Rules: obj.Rules.map(function (item) {\n return LifecycleRule.filterSensitiveLog(item);\n })\n });\n };\n})(BucketLifecycleConfiguration || (BucketLifecycleConfiguration = {}));\n\nexport var PutBucketLifecycleConfigurationRequest;\n\n(function (PutBucketLifecycleConfigurationRequest) {\n PutBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.LifecycleConfiguration && {\n LifecycleConfiguration: BucketLifecycleConfiguration.filterSensitiveLog(obj.LifecycleConfiguration)\n });\n };\n})(PutBucketLifecycleConfigurationRequest || (PutBucketLifecycleConfigurationRequest = {}));\n\nexport var BucketLoggingStatus;\n\n(function (BucketLoggingStatus) {\n BucketLoggingStatus.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(BucketLoggingStatus || (BucketLoggingStatus = {}));\n\nexport var PutBucketLoggingRequest;\n\n(function (PutBucketLoggingRequest) {\n PutBucketLoggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketLoggingRequest || (PutBucketLoggingRequest = {}));\n\nexport var PutBucketMetricsConfigurationRequest;\n\n(function (PutBucketMetricsConfigurationRequest) {\n PutBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration)\n });\n };\n})(PutBucketMetricsConfigurationRequest || (PutBucketMetricsConfigurationRequest = {}));\n\nexport var PutBucketNotificationConfigurationRequest;\n\n(function (PutBucketNotificationConfigurationRequest) {\n PutBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketNotificationConfigurationRequest || (PutBucketNotificationConfigurationRequest = {}));\n\nexport var PutBucketOwnershipControlsRequest;\n\n(function (PutBucketOwnershipControlsRequest) {\n PutBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketOwnershipControlsRequest || (PutBucketOwnershipControlsRequest = {}));\n\nexport var PutBucketPolicyRequest;\n\n(function (PutBucketPolicyRequest) {\n PutBucketPolicyRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketPolicyRequest || (PutBucketPolicyRequest = {}));\n\nexport var PutBucketReplicationRequest;\n\n(function (PutBucketReplicationRequest) {\n PutBucketReplicationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration)\n });\n };\n})(PutBucketReplicationRequest || (PutBucketReplicationRequest = {}));\n\nexport var RequestPaymentConfiguration;\n\n(function (RequestPaymentConfiguration) {\n RequestPaymentConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RequestPaymentConfiguration || (RequestPaymentConfiguration = {}));\n\nexport var PutBucketRequestPaymentRequest;\n\n(function (PutBucketRequestPaymentRequest) {\n PutBucketRequestPaymentRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketRequestPaymentRequest || (PutBucketRequestPaymentRequest = {}));\n\nexport var Tagging;\n\n(function (Tagging) {\n Tagging.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Tagging || (Tagging = {}));\n\nexport var PutBucketTaggingRequest;\n\n(function (PutBucketTaggingRequest) {\n PutBucketTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketTaggingRequest || (PutBucketTaggingRequest = {}));\n\nexport var VersioningConfiguration;\n\n(function (VersioningConfiguration) {\n VersioningConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(VersioningConfiguration || (VersioningConfiguration = {}));\n\nexport var PutBucketVersioningRequest;\n\n(function (PutBucketVersioningRequest) {\n PutBucketVersioningRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketVersioningRequest || (PutBucketVersioningRequest = {}));\n\nexport var WebsiteConfiguration;\n\n(function (WebsiteConfiguration) {\n WebsiteConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(WebsiteConfiguration || (WebsiteConfiguration = {}));\n\nexport var PutBucketWebsiteRequest;\n\n(function (PutBucketWebsiteRequest) {\n PutBucketWebsiteRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketWebsiteRequest || (PutBucketWebsiteRequest = {}));\n\nexport var PutObjectOutput;\n\n(function (PutObjectOutput) {\n PutObjectOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(PutObjectOutput || (PutObjectOutput = {}));\n\nexport var PutObjectRequest;\n\n(function (PutObjectRequest) {\n PutObjectRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n }), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(PutObjectRequest || (PutObjectRequest = {}));\n\nexport var PutObjectAclOutput;\n\n(function (PutObjectAclOutput) {\n PutObjectAclOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectAclOutput || (PutObjectAclOutput = {}));\n\nexport var PutObjectAclRequest;\n\n(function (PutObjectAclRequest) {\n PutObjectAclRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectAclRequest || (PutObjectAclRequest = {}));\n\nexport var PutObjectLegalHoldOutput;\n\n(function (PutObjectLegalHoldOutput) {\n PutObjectLegalHoldOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectLegalHoldOutput || (PutObjectLegalHoldOutput = {}));\n\nexport var PutObjectLegalHoldRequest;\n\n(function (PutObjectLegalHoldRequest) {\n PutObjectLegalHoldRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectLegalHoldRequest || (PutObjectLegalHoldRequest = {}));\n\nexport var PutObjectLockConfigurationOutput;\n\n(function (PutObjectLockConfigurationOutput) {\n PutObjectLockConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectLockConfigurationOutput || (PutObjectLockConfigurationOutput = {}));\n\nexport var PutObjectLockConfigurationRequest;\n\n(function (PutObjectLockConfigurationRequest) {\n PutObjectLockConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectLockConfigurationRequest || (PutObjectLockConfigurationRequest = {}));\n\nexport var PutObjectRetentionOutput;\n\n(function (PutObjectRetentionOutput) {\n PutObjectRetentionOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectRetentionOutput || (PutObjectRetentionOutput = {}));\n\nexport var PutObjectRetentionRequest;\n\n(function (PutObjectRetentionRequest) {\n PutObjectRetentionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectRetentionRequest || (PutObjectRetentionRequest = {}));\n\nexport var PutObjectTaggingOutput;\n\n(function (PutObjectTaggingOutput) {\n PutObjectTaggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectTaggingOutput || (PutObjectTaggingOutput = {}));\n\nexport var PutObjectTaggingRequest;\n\n(function (PutObjectTaggingRequest) {\n PutObjectTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectTaggingRequest || (PutObjectTaggingRequest = {}));\n\nexport var PutPublicAccessBlockRequest;\n\n(function (PutPublicAccessBlockRequest) {\n PutPublicAccessBlockRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutPublicAccessBlockRequest || (PutPublicAccessBlockRequest = {}));\n\nexport var ObjectAlreadyInActiveTierError;\n\n(function (ObjectAlreadyInActiveTierError) {\n ObjectAlreadyInActiveTierError.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectAlreadyInActiveTierError || (ObjectAlreadyInActiveTierError = {}));\n\nexport var RestoreObjectOutput;\n\n(function (RestoreObjectOutput) {\n RestoreObjectOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RestoreObjectOutput || (RestoreObjectOutput = {}));\n\nexport var GlacierJobParameters;\n\n(function (GlacierJobParameters) {\n GlacierJobParameters.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GlacierJobParameters || (GlacierJobParameters = {}));\n\nexport var Encryption;\n\n(function (Encryption) {\n Encryption.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.KMSKeyId && {\n KMSKeyId: SENSITIVE_STRING\n });\n };\n})(Encryption || (Encryption = {}));","import { __read } from \"tslib\";\n/**\n * Validate whether a string is an ARN.\n */\n\nexport var validate = function validate(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 */\n\nexport var parse = function parse(arn) {\n var segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\") throw new Error(\"Malformed ARN\");\n\n var _a = __read(segments),\n //Skip \"arn\" literal\n partition = _a[1],\n service = _a[2],\n region = _a[3],\n accountId = _a[4],\n resource = _a.slice(5);\n\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 */\n\nexport var build = function build(arnObject) {\n var _a = arnObject.partition,\n partition = _a === void 0 ? \"aws\" : _a,\n service = arnObject.service,\n region = arnObject.region,\n accountId = arnObject.accountId,\n resource = arnObject.resource;\n\n if ([service, region, accountId, resource].some(function (segment) {\n return typeof segment !== \"string\";\n })) {\n throw new Error(\"Input ARN object is invalid\");\n }\n\n return \"arn:\" + partition + \":\" + service + \":\" + region + \":\" + accountId + \":\" + resource;\n};","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 isBucketNameOptions(options) {\n return typeof options.bucketName === \"string\";\n};\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 */\n\nexport var getPseudoRegion = function getPseudoRegion(region) {\n return isFipsRegion(region) ? region.replace(/fips-|-fips/, \"\") : region;\n};\n/**\n * Determines whether a given string is DNS compliant per the rules outlined by\n * S3. Length, capitaization, and leading dot restrictions are enforced by the\n * DOMAIN_PATTERN regular expression.\n * @internal\n *\n * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html\n */\n\nexport var isDnsCompatibleBucketName = function isDnsCompatibleBucketName(bucketName) {\n return DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\n};\n\nvar getRegionalSuffix = function getRegionalSuffix(hostname) {\n var parts = hostname.match(S3_HOSTNAME_PATTERN);\n return [parts[2], hostname.replace(new RegExp(\"^\" + parts[0]), \"\")];\n};\n\nexport var getSuffix = function getSuffix(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 */\n\nexport var getSuffixForArnEndpoint = function getSuffixForArnEndpoint(hostname) {\n return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [hostname.replace(\".\" + AWS_PARTITION_SUFFIX, \"\"), AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);\n};\nexport var validateArnEndpointOptions = function validateArnEndpointOptions(options) {\n if (options.pathStyleEndpoint) {\n throw new Error(\"Path-style S3 endpoint is not supported when bucket is an ARN\");\n }\n\n if (options.accelerateEndpoint) {\n throw new Error(\"Accelerate endpoint is not supported when bucket is an ARN\");\n }\n\n if (!options.tlsCompatible) {\n throw new Error(\"HTTPS is required when bucket is an ARN\");\n }\n};\nexport var validateService = function validateService(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 validateS3Service(service) {\n if (service !== \"s3\") {\n throw new Error(\"Expect 's3' in Accesspoint ARN service component\");\n }\n};\nexport var validateOutpostService = function validateOutpostService(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 */\n\nexport var validatePartition = function validatePartition(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 */\n\nexport var validateRegion = function validateRegion(region, options) {\n if (region === \"\") {\n throw new Error(\"ARN region is empty\");\n }\n\n if (!options.useArnRegion && !isEqualRegions(region, options.clientRegion) && !isEqualRegions(region, options.clientSigningRegion)) {\n throw new Error(\"Region in ARN is incompatible, got \" + region + \" but expected \" + options.clientRegion);\n }\n\n if (options.useArnRegion && isFipsRegion(region)) {\n throw new Error(\"Endpoint does not support FIPS region\");\n }\n};\n\nvar isFipsRegion = function isFipsRegion(region) {\n return region.startsWith(\"fips-\") || region.endsWith(\"-fips\");\n};\n\nvar isEqualRegions = function isEqualRegions(regionA, regionB) {\n return regionA === regionB || getPseudoRegion(regionA) === regionB || regionA === getPseudoRegion(regionB);\n};\n/**\n * Validate an account ID\n * @internal\n */\n\n\nexport var validateAccountId = function validateAccountId(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 */\n\nexport var validateDNSHostLabel = function validateDNSHostLabel(label, options) {\n if (options === void 0) {\n options = {\n tlsCompatible: true\n };\n } // reference: https://tools.ietf.org/html/rfc3986#section-3.2.2\n\n\n if (label.length >= 64 || !/^[a-z0-9][a-z0-9.-]+[a-z0-9]$/.test(label) || /(\\d+\\.){3}\\d+/.test(label) || /[.-]{2}/.test(label) || (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 */\n\nexport var getArnResources = function getArnResources(resource) {\n var delimiter = resource.includes(\":\") ? \":\" : \"/\";\n\n var _a = __read(resource.split(delimiter)),\n resourceType = _a[0],\n rest = _a.slice(1);\n\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\n return {\n 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\n var _b = __read(rest, 3),\n outpostId = _b[0],\n _ = _b[1],\n accesspointName = _b[2];\n\n return {\n outpostId: outpostId,\n 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 */\n\nexport var validateNoDualstack = function validateNoDualstack(dualstackEndpoint) {\n if (dualstackEndpoint) 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 */\n\nexport var validateNoFIPS = function validateNoFIPS(region) {\n if (isFipsRegion(region !== null && region !== void 0 ? region : \"\")) throw new Error(\"FIPS region is not supported with Outpost, got \" + region);\n};","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 bucketHostname(options) {\n var isCustomEndpoint = options.isCustomEndpoint,\n baseHostname = options.baseHostname,\n dualstackEndpoint = options.dualstackEndpoint,\n accelerateEndpoint = options.accelerateEndpoint;\n\n if (isCustomEndpoint) {\n if (dualstackEndpoint) throw new Error(\"Dualstack endpoint is not supported with custom endpoint\");\n if (accelerateEndpoint) throw new Error(\"Accelerate endpoint is not supported with custom endpoint\");\n }\n\n return isBucketNameOptions(options) ? // Construct endpoint when bucketName is a string referring to a bucket name\n getEndpointFromBucketName(__assign(__assign({}, options), {\n isCustomEndpoint: isCustomEndpoint\n })) : // Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point\n getEndpointFromArn(__assign(__assign({}, options), {\n isCustomEndpoint: isCustomEndpoint\n }));\n};\n\nvar getEndpointFromArn = function getEndpointFromArn(options) {\n var isCustomEndpoint = options.isCustomEndpoint,\n baseHostname = options.baseHostname;\n\n var _a = __read(isCustomEndpoint ? [options.clientRegion, baseHostname] : // Infer client region and hostname suffix from hostname from endpoints.json, like `s3.us-west-2.amazonaws.com`\n getSuffixForArnEndpoint(baseHostname), 2),\n clientRegion = _a[0],\n hostnameSuffix = _a[1];\n\n var pathStyleEndpoint = options.pathStyleEndpoint,\n _b = options.dualstackEndpoint,\n dualstackEndpoint = _b === void 0 ? false : _b,\n _c = options.accelerateEndpoint,\n accelerateEndpoint = _c === void 0 ? false : _c,\n _d = options.tlsCompatible,\n tlsCompatible = _d === void 0 ? true : _d,\n useArnRegion = options.useArnRegion,\n bucketName = options.bucketName,\n _e = options.clientPartition,\n clientPartition = _e === void 0 ? \"aws\" : _e,\n _f = options.clientSigningRegion,\n clientSigningRegion = _f === void 0 ? clientRegion : _f;\n validateArnEndpointOptions({\n pathStyleEndpoint: pathStyleEndpoint,\n accelerateEndpoint: accelerateEndpoint,\n tlsCompatible: tlsCompatible\n }); // Validate and parse the ARN supplied as a bucket name\n\n var service = bucketName.service,\n partition = bucketName.partition,\n accountId = bucketName.accountId,\n region = bucketName.region,\n resource = bucketName.resource;\n validateService(service);\n validatePartition(partition, {\n clientPartition: clientPartition\n });\n validateAccountId(accountId);\n validateRegion(region, {\n useArnRegion: useArnRegion,\n clientRegion: clientRegion,\n clientSigningRegion: clientSigningRegion\n });\n\n var _g = getArnResources(resource),\n accesspointName = _g.accesspointName,\n outpostId = _g.outpostId;\n\n validateDNSHostLabel(accesspointName + \"-\" + accountId, {\n tlsCompatible: tlsCompatible\n });\n var endpointRegion = useArnRegion ? region : clientRegion;\n var signingRegion = useArnRegion ? region : clientSigningRegion;\n\n if (outpostId) {\n // if this is an Outpost ARN\n validateOutpostService(service);\n validateDNSHostLabel(outpostId, {\n tlsCompatible: tlsCompatible\n });\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 } // construct endpoint from Accesspoint ARN\n\n\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};\n\nvar getEndpointFromBucketName = function getEndpointFromBucketName(_a) {\n var _b = _a.accelerateEndpoint,\n accelerateEndpoint = _b === void 0 ? false : _b,\n region = _a.clientRegion,\n baseHostname = _a.baseHostname,\n bucketName = _a.bucketName,\n _c = _a.dualstackEndpoint,\n dualstackEndpoint = _c === void 0 ? false : _c,\n _d = _a.pathStyleEndpoint,\n pathStyleEndpoint = _d === void 0 ? false : _d,\n _e = _a.tlsCompatible,\n tlsCompatible = _e === void 0 ? true : _e,\n _f = _a.isCustomEndpoint,\n isCustomEndpoint = _f === void 0 ? false : _f;\n\n var _g = __read(isCustomEndpoint ? [region, baseHostname] : getSuffix(baseHostname), 2),\n clientRegion = _g[0],\n hostnameSuffix = _g[1];\n\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\n if (accelerateEndpoint) {\n baseHostname = \"s3-accelerate\" + (dualstackEndpoint ? \".dualstack\" : \"\") + \".\" + hostnameSuffix;\n } else if (dualstackEndpoint) {\n baseHostname = \"s3.dualstack.\" + clientRegion + \".\" + hostnameSuffix;\n }\n\n return {\n bucketEndpoint: true,\n hostname: bucketName + \".\" + baseHostname\n };\n};","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 bucketEndpointMiddleware(options) {\n return function (next, context) {\n return function (args) {\n 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\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\n /*break*/\n , 8];\n if (!options.bucketEndpoint) return [3\n /*break*/\n , 1];\n request.hostname = bucketName;\n return [3\n /*break*/\n , 7];\n\n case 1:\n if (!validateArn(bucketName)) return [3\n /*break*/\n , 5];\n bucketArn = parseArn(bucketName);\n _a = getPseudoRegion;\n return [4\n /*yield*/\n , options.region()];\n\n case 2:\n clientRegion = _a.apply(void 0, [_g.sent()]);\n return [4\n /*yield*/\n , options.regionInfoProvider(clientRegion)];\n\n case 3:\n _b = _g.sent() || {}, partition = _b.partition, _c = _b.signingRegion, signingRegion = _c === void 0 ? clientRegion : _c;\n return [4\n /*yield*/\n , options.useArnRegion()];\n\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; // 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\n if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {\n context[\"signing_region\"] = modifiedSigningRegion;\n }\n\n if (signingService && signingService !== \"s3\") {\n context[\"signing_service\"] = signingService;\n }\n\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n return [3\n /*break*/\n , 7];\n\n case 5:\n _e = getPseudoRegion;\n return [4\n /*yield*/\n , options.region()];\n\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\n case 7:\n if (replaceBucketInPath) {\n request.path = request.path.replace(/^(\\/)?[^\\/]+/, \"\");\n\n if (request.path === \"\") {\n request.path = \"/\";\n }\n }\n\n _g.label = 8;\n\n case 8:\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n request: request\n }))];\n }\n });\n });\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 getBucketEndpointPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n }\n };\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { validate as validateArn } from \"@aws-sdk/util-arn-parser\";\n/**\n * @internal\n */\n\nexport function validateBucketNameMiddleware() {\n var _this = this;\n\n return function (next) {\n return function (args) {\n return __awaiter(_this, void 0, void 0, function () {\n var Bucket, err;\n return __generator(this, function (_a) {\n Bucket = args.input.Bucket;\n\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\n return [2\n /*return*/\n , next(__assign({}, args))];\n });\n });\n };\n };\n}\n/**\n * @internal\n */\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\n\nexport var getValidateBucketNamePlugin = function getValidateBucketNamePlugin(unused) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions);\n }\n };\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\n/**\n * @internal\n */\n\nexport var useRegionalEndpointMiddleware = function useRegionalEndpointMiddleware(config) {\n return function (next) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var request, _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request) || config.isCustomEndpoint) return [2\n /*return*/\n , next(__assign({}, args))];\n if (!(request.hostname === \"s3.amazonaws.com\")) return [3\n /*break*/\n , 1];\n request.hostname = \"s3.us-east-1.amazonaws.com\";\n return [3\n /*break*/\n , 3];\n\n case 1:\n _a = \"aws-global\";\n return [4\n /*yield*/\n , config.region()];\n\n case 2:\n if (_a === _b.sent()) {\n request.hostname = \"s3.amazonaws.com\";\n }\n\n _b.label = 3;\n\n case 3:\n return [2\n /*return*/\n , next(__assign({}, args))];\n }\n });\n });\n };\n };\n};\n/**\n * @internal\n */\n\nexport var useRegionalEndpointMiddlewareOptions = {\n step: \"build\",\n tags: [\"USE_REGIONAL_ENDPOINT\", \"S3\"],\n name: \"useRegionalEndpointMiddleware\",\n override: true\n};\n/**\n * @internal\n */\n\nexport var getUseRegionalEndpointPlugin = function getUseRegionalEndpointPlugin(config) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(useRegionalEndpointMiddleware(config), useRegionalEndpointMiddlewareOptions);\n }\n };\n};","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 */\n\nexport var throw200ExceptionsMiddleware = function throw200ExceptionsMiddleware(config) {\n return function (next) {\n return function (args) {\n 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:\n return [4\n /*yield*/\n , next(args)];\n\n case 1:\n result = _a.sent();\n response = result.response;\n if (!HttpResponse.isInstance(response)) return [2\n /*return*/\n , result];\n statusCode = response.statusCode, body = response.body;\n if (statusCode < 200 && statusCode >= 300) return [2\n /*return*/\n , result];\n return [4\n /*yield*/\n , collectBody(body, config)];\n\n case 2:\n bodyBytes = _a.sent();\n return [4\n /*yield*/\n , collectBodyString(bodyBytes, config)];\n\n case 3:\n bodyString = _a.sent();\n\n if (bodyBytes.length === 0) {\n err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\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 } // 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\n\n response.body = bodyBytes;\n return [2\n /*return*/\n , result];\n }\n });\n });\n };\n };\n}; // Collect low-level response body stream to Uint8Array.\n\nvar collectBody = function collectBody(streamBody, context) {\n if (streamBody === void 0) {\n streamBody = new Uint8Array();\n }\n\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n}; // Encode Uint8Array data into string with utf-8.\n\n\nvar collectBodyString = function collectBodyString(streamBody, context) {\n return collectBody(streamBody, context).then(function (body) {\n return context.utf8Encoder(body);\n });\n};\n/**\n * @internal\n */\n\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 */\n\nexport var getThrow200ExceptionsPlugin = function getThrow200ExceptionsPlugin(config) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n }\n };\n};","import { __assign, __awaiter, __generator, __values } from \"tslib\";\nexport function ssecMiddleware(options) {\n var _this = this;\n\n return function (next) {\n return function (args) {\n 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\n var e_1, _e, _f;\n\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n input = __assign({}, args.input);\n properties = [{\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\"\n }, {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\"\n }];\n _g.label = 1;\n\n case 1:\n _g.trys.push([1, 6, 7, 8]);\n\n properties_1 = __values(properties), properties_1_1 = properties_1.next();\n _g.label = 2;\n\n case 2:\n if (!!properties_1_1.done) return [3\n /*break*/\n , 5];\n prop = properties_1_1.value;\n value = input[prop.target];\n if (!value) return [3\n /*break*/\n , 4];\n valueView = ArrayBuffer.isView(value) ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength) : typeof value === \"string\" ? options.utf8Decoder(value) : 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\n /*yield*/\n , hash.digest()];\n\n case 3:\n input = __assign.apply(void 0, _a.concat([(_f[_b] = _d.apply(_c, [_g.sent()]), _f)]));\n _g.label = 4;\n\n case 4:\n properties_1_1 = properties_1.next();\n return [3\n /*break*/\n , 2];\n\n case 5:\n return [3\n /*break*/\n , 8];\n\n case 6:\n e_1_1 = _g.sent();\n e_1 = {\n error: e_1_1\n };\n return [3\n /*break*/\n , 8];\n\n case 7:\n try {\n if (properties_1_1 && !properties_1_1.done && (_e = properties_1.return)) _e.call(properties_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n\n return [7\n /*endfinally*/\n ];\n\n case 8:\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n input: input\n }))];\n }\n });\n });\n };\n };\n}\nexport var ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true\n};\nexport var getSsecPlugin = function getSsecPlugin(config) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n }\n };\n};","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 */\n\nvar CopyObjectCommand =\n/** @class */\nfunction (_super) {\n __extends(CopyObjectCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function CopyObjectCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n CopyObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCopyObjectCommand(input, context);\n };\n\n CopyObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCopyObjectCommand(output, context);\n };\n\n return CopyObjectCommand;\n}($Command);\n\nexport { CopyObjectCommand };","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 */\n\nvar GetObjectCommand =\n/** @class */\nfunction (_super) {\n __extends(GetObjectCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function GetObjectCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n GetObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlGetObjectCommand(input, context);\n };\n\n GetObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlGetObjectCommand(output, context);\n };\n\n return GetObjectCommand;\n}($Command);\n\nexport { GetObjectCommand };","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 */\n\nvar DeleteObjectCommand =\n/** @class */\nfunction (_super) {\n __extends(DeleteObjectCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function DeleteObjectCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n DeleteObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlDeleteObjectCommand(input, context);\n };\n\n DeleteObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlDeleteObjectCommand(output, context);\n };\n\n return DeleteObjectCommand;\n}($Command);\n\nexport { DeleteObjectCommand };","import { __extends } from \"tslib\";\nimport { ListObjectsOutput, ListObjectsRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlListObjectsCommand, serializeAws_restXmlListObjectsCommand } 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 OK\n * response can contain valid or invalid XML. Be sure to design your application to parse the\n * contents of the response and handle it appropriately.

\n * \n *

This API has been revised. We recommend that you use the newer version, ListObjectsV2, when developing applications. For backward compatibility,\n * Amazon S3 continues to support ListObjects.

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

The following operations are related to ListObjects:

\n * \n */\n\nvar ListObjectsCommand =\n/** @class */\nfunction (_super) {\n __extends(ListObjectsCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function ListObjectsCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\n\n ListObjectsCommand.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 = \"ListObjectsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: ListObjectsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: ListObjectsOutput.filterSensitiveLog\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n\n ListObjectsCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlListObjectsCommand(input, context);\n };\n\n ListObjectsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlListObjectsCommand(output, context);\n };\n\n return ListObjectsCommand;\n}($Command);\n\nexport { ListObjectsCommand };","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 */\n\nvar Int64 =\n/** @class */\nfunction () {\n function Int64(bytes) {\n this.bytes = bytes;\n\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\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\n var bytes = new Uint8Array(8);\n\n for (var i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n\n if (number < 0) {\n negate(bytes);\n }\n\n return new Int64(bytes);\n };\n /**\n * Called implicitly by infix arithmetic operators.\n */\n\n\n Int64.prototype.valueOf = function () {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n\n if (negative) {\n negate(bytes);\n }\n\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n };\n\n Int64.prototype.toString = function () {\n return String(this.valueOf());\n };\n\n return Int64;\n}();\n\nexport { Int64 };\n\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0) break;\n }\n}","import { __values } from \"tslib\";\nimport { fromHex, toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\n/**\n * @internal\n */\n\nvar HeaderMarshaller =\n/** @class */\nfunction () {\n function HeaderMarshaller(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n\n HeaderMarshaller.prototype.format = function (headers) {\n var e_1, _a, e_2, _b;\n\n var chunks = [];\n\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 } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var out = new Uint8Array(chunks.reduce(function (carry, bytes) {\n return carry + bytes.byteLength;\n }, 0));\n var position = 0;\n\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 } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (chunks_1_1 && !chunks_1_1.done && (_b = chunks_1.return)) _b.call(chunks_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return out;\n };\n\n HeaderMarshaller.prototype.formatHeaderValue = function (header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0\n /* boolTrue */\n : 1\n /* boolFalse */\n ]);\n\n case \"byte\":\n return Uint8Array.from([2\n /* byte */\n , header.value]);\n\n case \"short\":\n var shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3\n /* short */\n );\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n\n case \"integer\":\n var intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4\n /* integer */\n );\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n\n case \"long\":\n var longBytes = new Uint8Array(9);\n longBytes[0] = 5\n /* long */\n ;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n\n case \"binary\":\n var binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6\n /* byteArray */\n );\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\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\n /* string */\n );\n strView.setUint16(1, utf8Bytes.byteLength, false);\n var strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n\n case \"timestamp\":\n var tsBytes = new Uint8Array(9);\n tsBytes[0] = 8\n /* timestamp */\n ;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(\"Invalid UUID received: \" + header.value);\n }\n\n var uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9\n /* uuid */\n ;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n };\n\n HeaderMarshaller.prototype.parse = function (headers) {\n var out = {};\n var position = 0;\n\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\n switch (headers.getUint8(position++)) {\n case 0\n /* boolTrue */\n :\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n\n case 1\n /* boolFalse */\n :\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n\n case 2\n /* byte */\n :\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++)\n };\n break;\n\n case 3\n /* short */\n :\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false)\n };\n position += 2;\n break;\n\n case 4\n /* integer */\n :\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false)\n };\n position += 4;\n break;\n\n case 5\n /* long */\n :\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\n case 6\n /* byteArray */\n :\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\n case 7\n /* string */\n :\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\n case 8\n /* timestamp */\n :\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\n case 9\n /* uuid */\n :\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\n default:\n throw new Error(\"Unrecognized header type tag\");\n }\n }\n\n return out;\n };\n\n return HeaderMarshaller;\n}();\n\nexport { HeaderMarshaller };\nvar HEADER_VALUE_TYPE;\n\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 = {}));\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\";\nvar UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;","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 */\n\nvar EventStreamMarshaller =\n/** @class */\nfunction () {\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\n\n EventStreamMarshaller.prototype.marshall = function (_a) {\n var rawHeaders = _a.headers,\n 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(); // Format message\n\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); // Write trailing message checksum\n\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\n\n EventStreamMarshaller.prototype.unmarshall = function (message) {\n var _a = splitMessage(message),\n headers = _a.headers,\n body = _a.body;\n\n return {\n headers: this.headerMarshaller.parse(headers),\n body: body\n };\n };\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message header.\n */\n\n\n EventStreamMarshaller.prototype.formatHeaders = function (rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n };\n\n return EventStreamMarshaller;\n}();\n\nexport { EventStreamMarshaller };","import { Crc32 } from \"@aws-crypto/crc32\"; // All prelude components are unsigned, 32-bit integers\n\nvar PRELUDE_MEMBER_LENGTH = 4; // The prelude consists of two components\n\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2; // Checksums are always CRC32 hashes.\n\nvar CHECKSUM_LENGTH = 4; // Messages must include a full prelude, a prelude checksum, and a message checksum\n\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n/**\n * @internal\n */\n\nexport function splitMessage(_a) {\n var byteLength = _a.byteLength,\n byteOffset = _a.byteOffset,\n buffer = _a.buffer;\n\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n\n var view = new DataView(buffer, byteOffset, byteLength);\n var messageLength = view.getUint32(0, false);\n\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\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\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\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(\"The message checksum (\" + checksummer.digest() + \") did not match the expected value of \" + expectedMessageChecksum);\n }\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}","import { __asyncGenerator, __asyncValues, __await, __generator } from \"tslib\";\nimport { EventStreamMarshaller as EventMarshaller } from \"@aws-sdk/eventstream-marshaller\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getUnmarshalledStream } from \"./getUnmarshalledStream\";\n\nvar EventStreamMarshaller =\n/** @class */\nfunction () {\n function EventStreamMarshaller(_a) {\n var utf8Encoder = _a.utf8Encoder,\n utf8Decoder = _a.utf8Decoder;\n this.eventMarshaller = new EventMarshaller(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\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\n EventStreamMarshaller.prototype.serialize = function (input, serializer) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-this-alias\n\n\n var self = this;\n\n var serializedIterator = function serializedIterator() {\n return __asyncGenerator(this, arguments, function () {\n var input_1, input_1_1, chunk, payloadBuf, e_1_1;\n\n var e_1, _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 7, 8, 13]);\n\n input_1 = __asyncValues(input);\n _b.label = 1;\n\n case 1:\n return [4\n /*yield*/\n , __await(input_1.next())];\n\n case 2:\n if (!(input_1_1 = _b.sent(), !input_1_1.done)) return [3\n /*break*/\n , 6];\n chunk = input_1_1.value;\n payloadBuf = self.eventMarshaller.marshall(serializer(chunk));\n return [4\n /*yield*/\n , __await(payloadBuf)];\n\n case 3:\n return [4\n /*yield*/\n , _b.sent()];\n\n case 4:\n _b.sent();\n\n _b.label = 5;\n\n case 5:\n return [3\n /*break*/\n , 1];\n\n case 6:\n return [3\n /*break*/\n , 13];\n\n case 7:\n e_1_1 = _b.sent();\n e_1 = {\n error: e_1_1\n };\n return [3\n /*break*/\n , 13];\n\n case 8:\n _b.trys.push([8,, 11, 12]);\n\n if (!(input_1_1 && !input_1_1.done && (_a = input_1.return))) return [3\n /*break*/\n , 10];\n return [4\n /*yield*/\n , __await(_a.call(input_1))];\n\n case 9:\n _b.sent();\n\n _b.label = 10;\n\n case 10:\n return [3\n /*break*/\n , 12];\n\n case 11:\n if (e_1) throw e_1.error;\n return [7\n /*endfinally*/\n ];\n\n case 12:\n return [7\n /*endfinally*/\n ];\n\n case 13:\n return [4\n /*yield*/\n , __await(new Uint8Array(0))];\n\n case 14:\n // Ending frame\n return [4\n /*yield*/\n , _b.sent()];\n\n case 15:\n // Ending frame\n _b.sent();\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n return _a = {}, _a[Symbol.asyncIterator] = serializedIterator, _a;\n };\n\n return EventStreamMarshaller;\n}();\n\nexport { EventStreamMarshaller };","import { __asyncGenerator, __await, __generator } from \"tslib\";\nexport function getChunkedStream(source) {\n var _a;\n\n var currentMessageTotalLength = 0;\n var currentMessagePendingLength = 0;\n var currentMessage = null;\n var messageLengthBuffer = null;\n\n var allocateMessage = function allocateMessage(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\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\n var iterator = function iterator() {\n return __asyncGenerator(this, arguments, function () {\n var sourceIterator, _a, value, done, chunkLength, currentOffset, bytesRemaining, numBytesForTotal, numBytesToWrite;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n sourceIterator = source[Symbol.asyncIterator]();\n _b.label = 1;\n\n case 1:\n if (!true) return [3\n /*break*/\n , 16];\n return [4\n /*yield*/\n , __await(sourceIterator.next())];\n\n case 2:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3\n /*break*/\n , 10];\n if (!!currentMessageTotalLength) return [3\n /*break*/\n , 4];\n return [4\n /*yield*/\n , __await(void 0)];\n\n case 3:\n return [2\n /*return*/\n , _b.sent()];\n\n case 4:\n if (!(currentMessageTotalLength === currentMessagePendingLength)) return [3\n /*break*/\n , 7];\n return [4\n /*yield*/\n , __await(currentMessage)];\n\n case 5:\n return [4\n /*yield*/\n , _b.sent()];\n\n case 6:\n _b.sent();\n\n return [3\n /*break*/\n , 8];\n\n case 7:\n throw new Error(\"Truncated event message received.\");\n\n case 8:\n return [4\n /*yield*/\n , __await(void 0)];\n\n case 9:\n return [2\n /*return*/\n , _b.sent()];\n\n case 10:\n chunkLength = value.length;\n currentOffset = 0;\n _b.label = 11;\n\n case 11:\n if (!(currentOffset < chunkLength)) return [3\n /*break*/\n , 15]; // create new message if necessary\n\n if (!currentMessage) {\n bytesRemaining = chunkLength - currentOffset; // prevent edge case where total length spans 2 chunks\n\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n\n numBytesForTotal = Math.min(4 - currentMessagePendingLength, // remaining bytes to fill the messageLengthBuffer\n bytesRemaining // bytes left in chunk\n );\n messageLengthBuffer.set( // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n\n if (currentMessagePendingLength < 4) {\n // not enough information to create the current message\n return [3\n /*break*/\n , 15];\n }\n\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\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( // @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\n /*break*/\n , 14];\n return [4\n /*yield*/\n , __await(currentMessage)];\n\n case 12:\n // push out the message\n return [4\n /*yield*/\n , _b.sent()];\n\n case 13:\n // push out the message\n _b.sent(); // cleanup\n\n\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n _b.label = 14;\n\n case 14:\n return [3\n /*break*/\n , 11];\n\n case 15:\n return [3\n /*break*/\n , 1];\n\n case 16:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n return _a = {}, _a[Symbol.asyncIterator] = iterator, _a;\n}","import { __asyncGenerator, __asyncValues, __await, __generator } from \"tslib\";\nexport function getUnmarshalledStream(source, options) {\n var _a;\n\n return _a = {}, _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\n var _a, _b;\n\n var e_1, _c;\n\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 12, 13, 18]);\n\n source_1 = __asyncValues(source);\n _d.label = 1;\n\n case 1:\n return [4\n /*yield*/\n , __await(source_1.next())];\n\n case 2:\n if (!(source_1_1 = _d.sent(), !source_1_1.done)) return [3\n /*break*/\n , 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\n /*break*/\n , 3];\n unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n\n case 3:\n if (!(messageType === \"exception\")) return [3\n /*break*/\n , 5];\n code = message.headers[\":exception-type\"].value;\n exception = (_a = {}, _a[code] = message, _a);\n return [4\n /*yield*/\n , __await(options.deserializer(exception))];\n\n case 4:\n deserializedException = _d.sent();\n\n if (deserializedException.$unknown) {\n error = new Error(options.toUtf8(message.body));\n error.name = code;\n throw error;\n }\n\n throw deserializedException[code];\n\n case 5:\n if (!(messageType === \"event\")) return [3\n /*break*/\n , 9];\n event = (_b = {}, _b[message.headers[\":event-type\"].value] = message, _b);\n return [4\n /*yield*/\n , __await(options.deserializer(event))];\n\n case 6:\n deserialized = _d.sent();\n if (deserialized.$unknown) return [3\n /*break*/\n , 10];\n return [4\n /*yield*/\n , __await(deserialized)];\n\n case 7:\n return [4\n /*yield*/\n , _d.sent()];\n\n case 8:\n _d.sent();\n\n return [3\n /*break*/\n , 10];\n\n case 9:\n throw Error(\"Unrecognizable event type: \" + message.headers[\":event-type\"].value);\n\n case 10:\n return [3\n /*break*/\n , 1];\n\n case 11:\n return [3\n /*break*/\n , 18];\n\n case 12:\n e_1_1 = _d.sent();\n e_1 = {\n error: e_1_1\n };\n return [3\n /*break*/\n , 18];\n\n case 13:\n _d.trys.push([13,, 16, 17]);\n\n if (!(source_1_1 && !source_1_1.done && (_c = source_1.return))) return [3\n /*break*/\n , 15];\n return [4\n /*yield*/\n , __await(_c.call(source_1))];\n\n case 14:\n _d.sent();\n\n _d.label = 15;\n\n case 15:\n return [3\n /*break*/\n , 17];\n\n case 16:\n if (e_1) throw e_1.error;\n return [7\n /*endfinally*/\n ];\n\n case 17:\n return [7\n /*endfinally*/\n ];\n\n case 18:\n return [2\n /*return*/\n ];\n }\n });\n });\n }, _a;\n}","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 */\n\nvar EventStreamMarshaller =\n/** @class */\nfunction () {\n function EventStreamMarshaller(_a) {\n var utf8Encoder = _a.utf8Encoder,\n utf8Decoder = _a.utf8Decoder;\n this.eventMarshaller = new EventMarshaller(utf8Encoder, utf8Decoder);\n this.universalMarshaller = new UniversalEventStreamMarshaller({\n utf8Decoder: utf8Decoder,\n utf8Encoder: utf8Encoder\n });\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\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\n return EventStreamMarshaller;\n}();\n\nexport { EventStreamMarshaller };\n\nvar isReadableStream = function isReadableStream(body) {\n return typeof ReadableStream === \"function\" && body instanceof ReadableStream;\n};","import { __asyncGenerator, __await, __awaiter, __generator } from \"tslib\";\n/**\n * A util function converting ReadableStream into an async iterable.\n * Reference: https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate\n */\n\nexport var readableStreamtoIterable = function readableStreamtoIterable(readableStream) {\n var _a;\n\n return _a = {}, _a[Symbol.asyncIterator] = function () {\n return __asyncGenerator(this, arguments, function () {\n var reader, _a, done, value;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n\n case 1:\n _b.trys.push([1,, 9, 10]);\n\n _b.label = 2;\n\n case 2:\n if (!true) return [3\n /*break*/\n , 8];\n return [4\n /*yield*/\n , __await(reader.read())];\n\n case 3:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (!done) return [3\n /*break*/\n , 5];\n return [4\n /*yield*/\n , __await(void 0)];\n\n case 4:\n return [2\n /*return*/\n , _b.sent()];\n\n case 5:\n return [4\n /*yield*/\n , __await(value)];\n\n case 6:\n return [4\n /*yield*/\n , _b.sent()];\n\n case 7:\n _b.sent();\n\n return [3\n /*break*/\n , 2];\n\n case 8:\n return [3\n /*break*/\n , 10];\n\n case 9:\n reader.releaseLock();\n return [7\n /*endfinally*/\n ];\n\n case 10:\n return [2\n /*return*/\n ];\n }\n });\n });\n }, _a;\n};\n/**\n * A util function converting async iterable to a ReadableStream.\n */\n\nexport var iterableToReadableStream = function iterableToReadableStream(asyncIterable) {\n var iterator = asyncIterable[Symbol.asyncIterator]();\n return new ReadableStream({\n pull: function pull(controller) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, done, value;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , iterator.next()];\n\n case 1:\n _a = _b.sent(), done = _a.done, value = _a.value;\n\n if (done) {\n return [2\n /*return*/\n , controller.close()];\n }\n\n controller.enqueue(value);\n return [2\n /*return*/\n ];\n }\n });\n });\n }\n });\n};","export function blobReader(blob, onChunk, chunkSize) {\n if (chunkSize === void 0) {\n chunkSize = 1024 * 1024;\n }\n\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\n function read() {\n if (totalBytesRead >= size) {\n resolve();\n return;\n }\n\n fileReader.readAsArrayBuffer(blob.slice(totalBytesRead, Math.min(size, totalBytesRead + chunkSize)));\n }\n\n fileReader.addEventListener(\"load\", function (event) {\n var result = event.target.result;\n onChunk(new Uint8Array(result));\n totalBytesRead += result.byteLength; // read the next block\n\n read();\n }); // kick off the read\n\n read();\n });\n}","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\n /*yield*/\n , blobReader(blob, function (chunk) {\n hash.update(chunk);\n })];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , hash.digest()];\n }\n });\n });\n};","/**\n * @internal\n */\nexport var BLOCK_SIZE = 64;\n/**\n * @internal\n */\n\nexport var DIGEST_LENGTH = 16;\n/**\n * @internal\n */\n\nexport var INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];","import { __awaiter, __generator } from \"tslib\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { BLOCK_SIZE, DIGEST_LENGTH, INIT } from \"./constants\";\n\nvar Md5 =\n/** @class */\nfunction () {\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\n Md5.prototype.update = function (sourceData) {\n if (isEmptyData(sourceData)) {\n return;\n } else if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n var data = convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\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\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); // Ensure the final block has enough room for the hashed length\n\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\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\n out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n\n for (i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n\n return [2\n /*return*/\n , new Uint8Array(out.buffer, out.byteOffset, out.byteLength)];\n });\n });\n };\n\n Md5.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n\n var a = state[0],\n b = state[1],\n c = state[2],\n 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\n return Md5;\n}();\n\nexport { Md5 };\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\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return fromUtf8(data);\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}","import { __assign } from \"tslib\"; // Partition default templates\n\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\"; // Partition regions\n\nvar AWS_REGIONS = new Set([\"af-south-1\", \"ap-east-1\", \"ap-northeast-1\", \"ap-northeast-2\", \"ap-south-1\", \"ap-southeast-1\", \"ap-southeast-2\", \"ca-central-1\", \"eu-central-1\", \"eu-north-1\", \"eu-south-1\", \"eu-west-1\", \"eu-west-2\", \"eu-west-3\", \"me-south-1\", \"sa-east-1\", \"us-east-1\", \"us-east-2\", \"us-west-1\", \"us-west-2\"]);\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 defaultRegionInfoProvider(region, options) {\n var regionInfo = undefined;\n\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\n case \"ap-east-1\":\n regionInfo = {\n hostname: \"s3.ap-east-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"s3.ap-northeast-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"s3.ap-northeast-2.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"s3.ap-south-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"s3.ap-southeast-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"s3.ap-southeast-2.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"aws-global\":\n regionInfo = {\n hostname: \"s3.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\"\n };\n break;\n\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"s3.ca-central-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"s3.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\"\n };\n break;\n\n case \"cn-northwest-1\":\n regionInfo = {\n hostname: \"s3.cn-northwest-1.amazonaws.com.cn\",\n partition: \"aws-cn\"\n };\n break;\n\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"s3.eu-central-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"s3.eu-north-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"eu-south-1\":\n regionInfo = {\n hostname: \"s3.eu-south-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"s3.eu-west-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"s3.eu-west-2.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"s3.eu-west-3.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\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\n case \"me-south-1\":\n regionInfo = {\n hostname: \"s3.me-south-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\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\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"s3.sa-east-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"us-east-1\":\n regionInfo = {\n hostname: \"s3.us-east-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\n case \"us-east-2\":\n regionInfo = {\n hostname: \"s3.us-east-2.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\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\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\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\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\n case \"us-west-1\":\n regionInfo = {\n hostname: \"s3.us-west-1.amazonaws.com\",\n partition: \"aws\"\n };\n break;\n\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\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\"\n };\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\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\"\n };\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\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 } // Finally, assume it's an AWS partition endpoint.\n\n\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\"\n };\n }\n\n }\n\n return Promise.resolve(__assign({\n signingService: \"s3\"\n }, regionInfo));\n};","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\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};","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 */\n\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), {\n runtime: \"browser\",\n base64Decoder: fromBase64,\n base64Encoder: toBase64,\n bodyLengthChecker: calculateBodyLength,\n credentialDefaultProvider: function credentialDefaultProvider(_) {\n return function () {\n return Promise.reject(new Error(\"Credential is missing\"));\n };\n },\n defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version\n }),\n eventStreamSerdeProvider: eventStreamSerdeProvider,\n maxAttempts: DEFAULT_MAX_ATTEMPTS,\n md5: Md5,\n region: invalidProvider(\"Region is missing\"),\n requestHandler: new FetchHttpHandler(),\n sha256: Sha256,\n streamCollector: streamCollector,\n streamHasher: streamHasher,\n utf8Decoder: fromUtf8,\n utf8Encoder: toUtf8\n});","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\n/** browser event stream serde utils provider */\n\nexport var eventStreamSerdeProvider = function eventStreamSerdeProvider(options) {\n return new EventStreamMarshaller(options);\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function addExpectContinueMiddleware(options) {\n var _this = this;\n\n return function (next) {\n return function (args) {\n return __awaiter(_this, void 0, void 0, function () {\n var request;\n return __generator(this, function (_a) {\n request = args.request;\n\n if (HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n request.headers = __assign(__assign({}, request.headers), {\n Expect: \"100-continue\"\n });\n }\n\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n request: request\n }))];\n });\n });\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 getAddExpectContinuePlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n }\n };\n};","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 */\n\nvar S3Client =\n/** @class */\nfunction (_super) {\n __extends(S3Client, _super);\n\n function S3Client(configuration) {\n var _this = this;\n\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n\n var _config_1 = resolveRegionConfig(_config_0);\n\n var _config_2 = resolveEndpointsConfig(_config_1);\n\n var _config_3 = resolveAwsAuthConfig(_config_2);\n\n var _config_4 = resolveRetryConfig(_config_3);\n\n var _config_5 = resolveHostHeaderConfig(_config_4);\n\n var _config_6 = resolveBucketEndpointConfig(_config_5);\n\n var _config_7 = resolveUserAgentConfig(_config_6);\n\n var _config_8 = resolveEventStreamSerdeConfig(_config_7);\n\n _this = _super.call(this, _config_8) || this;\n _this.config = _config_8;\n\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n\n _this.middlewareStack.use(getValidateBucketNamePlugin(_this.config));\n\n _this.middlewareStack.use(getUseRegionalEndpointPlugin(_this.config));\n\n _this.middlewareStack.use(getAddExpectContinuePlugin(_this.config));\n\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n\n return _this;\n }\n\n S3Client.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n\n return S3Client;\n}(__Client);\n\nexport { S3Client };","import { __assign } from \"tslib\";\nexport function resolveBucketEndpointConfig(input) {\n var _a = input.bucketEndpoint,\n bucketEndpoint = _a === void 0 ? false : _a,\n _b = input.forcePathStyle,\n forcePathStyle = _b === void 0 ? false : _b,\n _c = input.useAccelerateEndpoint,\n useAccelerateEndpoint = _c === void 0 ? false : _c,\n _d = input.useDualstackEndpoint,\n useDualstackEndpoint = _d === void 0 ? false : _d,\n _e = input.useArnRegion,\n useArnRegion = _e === void 0 ? false : _e;\n return __assign(__assign({}, input), {\n bucketEndpoint: bucketEndpoint,\n forcePathStyle: forcePathStyle,\n useAccelerateEndpoint: useAccelerateEndpoint,\n useDualstackEndpoint: useDualstackEndpoint,\n useArnRegion: typeof useArnRegion === \"function\" ? useArnRegion : function () {\n return Promise.resolve(useArnRegion);\n }\n });\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 */\n\nexport var NODE_USE_ARN_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function environmentVariableSelector(env) {\n if (!Object.prototype.hasOwnProperty.call(env, NODE_USE_ARN_REGION_ENV_NAME)) return undefined;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"true\") return true;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"false\") 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 configFileSelector(profile) {\n if (!Object.prototype.hasOwnProperty.call(profile, NODE_USE_ARN_REGION_INI_NAME)) return undefined;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"true\") return true;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"false\") 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};","import { __assign } from \"tslib\";\nexport var resolveEventStreamSerdeConfig = function resolveEventStreamSerdeConfig(input) {\n return __assign(__assign({}, input), {\n eventStreamMarshaller: input.eventStreamSerdeProvider(input)\n });\n};","import { buildQueryString } from \"@aws-sdk/querystring-builder\";\nexport function formatUrl(request) {\n var port = request.port,\n query = request.query;\n var protocol = request.protocol,\n path = request.path,\n hostname = request.hostname;\n\n if (protocol && protocol.substr(-1) !== \":\") {\n protocol += \":\";\n }\n\n if (port) {\n hostname += \":\" + port;\n }\n\n if (path && path.charAt(0) !== \"/\") {\n path = \"/\" + path;\n }\n\n var queryString = query ? buildQueryString(query) : \"\";\n\n if (queryString && queryString[0] !== \"?\") {\n queryString = \"?\" + queryString;\n }\n\n return protocol + \"//\" + hostname + path + queryString;\n}","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\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n interceptMiddleware = function interceptMiddleware(next) {\n return function (args) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , {\n output: {\n request: args.request\n },\n response: undefined\n }];\n });\n });\n };\n };\n\n clientStack = client.middlewareStack.clone(); // @ts-ignore: add middleware to the last of 'build' step\n\n clientStack.add(interceptMiddleware, {\n step: \"build\",\n priority: \"low\"\n });\n handler = command.resolveMiddleware(clientStack, client.config, undefined);\n return [4\n /*yield*/\n , handler(command).then(function (output) {\n return output.output.request;\n })];\n\n case 1:\n // @ts-ignore\n return [2\n /*return*/\n , _a.sent()];\n }\n });\n });\n}","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\n\nvar S3RequestPresigner =\n/** @class */\nfunction () {\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\",\n uriEscapePath: options.uriEscapePath || false\n }, options);\n\n this.signer = new SignatureV4(resolvedOptions);\n }\n\n S3RequestPresigner.prototype.presign = function (requestToSign, _a) {\n if (_a === void 0) {\n _a = {};\n }\n\n var _b = _a.unsignableHeaders,\n unsignableHeaders = _b === void 0 ? new Set() : _b,\n _c = _a.unhoistableHeaders,\n unhoistableHeaders = _c === void 0 ? new Set() : _c,\n options = __rest(_a, [\"unsignableHeaders\", \"unhoistableHeaders\"]);\n\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_d) {\n unsignableHeaders.add(\"content-type\"); // 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\n Object.keys(requestToSign.headers).map(function (header) {\n return header.toLowerCase();\n }).filter(function (header) {\n 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\n if (!requestToSign.headers[\"host\"]) {\n requestToSign.headers.host = requestToSign.hostname;\n }\n\n return [2\n /*return*/\n , this.signer.presign(requestToSign, __assign({\n expiresIn: 900,\n unsignableHeaders: unsignableHeaders,\n unhoistableHeaders: unhoistableHeaders\n }, options))];\n });\n });\n };\n\n return S3RequestPresigner;\n}();\n\nexport { S3RequestPresigner };","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 * 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,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\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';\nvar logger = new Logger('axios-http-handler');\nexport var SEND_UPLOAD_PROGRESS_EVENT = 'sendUploadProgress';\nexport var SEND_DOWNLOAD_PROGRESS_EVENT = 'sendDownloadProgress';\n\nfunction isBlob(body) {\n return typeof Blob !== 'undefined' && body instanceof Blob;\n}\n\nvar normalizeHeaders = function normalizeHeaders(headers, normalizedName) {\n var e_1, _a;\n\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),\n k = _d[0],\n v = _d[1];\n\n if (k !== normalizedName && k.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = v;\n delete headers[k];\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n};\n\nexport var reactNativeRequestTransformer = [function (data, headers) {\n if (isBlob(data)) {\n normalizeHeaders(headers, 'Content-Type');\n normalizeHeaders(headers, 'Accept');\n return data;\n } // Axios' default transformRequest is an array\n\n\n return axios.defaults.transformRequest[0].call(null, data, headers);\n}];\n\nvar AxiosHttpHandler =\n/** @class */\nfunction () {\n function AxiosHttpHandler(httpOptions, emitter, cancelTokenSource) {\n if (httpOptions === void 0) {\n httpOptions = {};\n }\n\n this.httpOptions = httpOptions;\n this.emitter = emitter;\n this.cancelTokenSource = cancelTokenSource;\n }\n\n AxiosHttpHandler.prototype.destroy = function () {// Do nothing. TLS and HTTP/2 connection pooling is handled by the\n // browser.\n };\n\n AxiosHttpHandler.prototype.handle = function (request, options) {\n var requestTimeoutInMs = this.httpOptions.requestTimeout;\n var emitter = this.emitter;\n var path = request.path;\n\n if (request.query) {\n var queryString = buildQueryString(request.query);\n\n if (queryString) {\n path += \"?\" + queryString;\n }\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; // 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\n delete axiosRequest.headers['host'];\n\n if (request.body) {\n axiosRequest.data = request.body;\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['Content-Type']) {\n axiosRequest.data = null;\n }\n }\n\n if (emitter) {\n axiosRequest.onUploadProgress = function (event) {\n emitter.emit(SEND_UPLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n };\n\n axiosRequest.onDownloadProgress = function (event) {\n emitter.emit(SEND_DOWNLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n };\n } // If a cancel token source is passed down from the provider, allows cancellation of in-flight requests\n\n\n if (this.cancelTokenSource) {\n axiosRequest.cancelToken = this.cancelTokenSource.token;\n } // From gamma release, aws-sdk now expects all response type to be of blob or streams\n\n\n axiosRequest.responseType = 'blob'; // 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\n if (Platform.isReactNative) {\n axiosRequest.transformRequest = reactNativeRequestTransformer;\n }\n\n var raceOfPromises = [axios.request(axiosRequest).then(function (response) {\n return {\n response: new HttpResponse({\n headers: response.headers,\n statusCode: response.status,\n body: response.data\n })\n };\n }).catch(function (error) {\n // Error\n logger.error(error.message);\n throw error;\n }), requestTimeout(requestTimeoutInMs)];\n return Promise.race(raceOfPromises);\n };\n\n return AxiosHttpHandler;\n}();\n\nexport { AxiosHttpHandler };\n\nfunction requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) {\n timeoutInMs = 0;\n }\n\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}","export var StorageErrorStrings;\n\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 || (StorageErrorStrings = {}));\n\nexport var AWSS3ProviderMultipartCopierErrors;\n\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 = {}));","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 */\n\nvar PutObjectCommand =\n/** @class */\nfunction (_super) {\n __extends(PutObjectCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function PutObjectCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n PutObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlPutObjectCommand(input, context);\n };\n\n PutObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlPutObjectCommand(output, context);\n };\n\n return PutObjectCommand;\n}($Command);\n\nexport { PutObjectCommand };","import { __assign } from \"tslib\";\nimport { Encryption } from \"./models_0\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var MetadataEntry;\n\n(function (MetadataEntry) {\n MetadataEntry.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MetadataEntry || (MetadataEntry = {}));\n\nexport var S3Location;\n\n(function (S3Location) {\n S3Location.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Encryption && {\n Encryption: Encryption.filterSensitiveLog(obj.Encryption)\n });\n };\n})(S3Location || (S3Location = {}));\n\nexport var OutputLocation;\n\n(function (OutputLocation) {\n OutputLocation.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.S3 && {\n S3: S3Location.filterSensitiveLog(obj.S3)\n });\n };\n})(OutputLocation || (OutputLocation = {}));\n\nexport var FileHeaderInfo;\n\n(function (FileHeaderInfo) {\n FileHeaderInfo[\"IGNORE\"] = \"IGNORE\";\n FileHeaderInfo[\"NONE\"] = \"NONE\";\n FileHeaderInfo[\"USE\"] = \"USE\";\n})(FileHeaderInfo || (FileHeaderInfo = {}));\n\nexport var CSVInput;\n\n(function (CSVInput) {\n CSVInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CSVInput || (CSVInput = {}));\n\nexport var JSONType;\n\n(function (JSONType) {\n JSONType[\"DOCUMENT\"] = \"DOCUMENT\";\n JSONType[\"LINES\"] = \"LINES\";\n})(JSONType || (JSONType = {}));\n\nexport var JSONInput;\n\n(function (JSONInput) {\n JSONInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(JSONInput || (JSONInput = {}));\n\nexport var ParquetInput;\n\n(function (ParquetInput) {\n ParquetInput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ParquetInput || (ParquetInput = {}));\n\nexport var InputSerialization;\n\n(function (InputSerialization) {\n InputSerialization.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InputSerialization || (InputSerialization = {}));\n\nexport var QuoteFields;\n\n(function (QuoteFields) {\n QuoteFields[\"ALWAYS\"] = \"ALWAYS\";\n QuoteFields[\"ASNEEDED\"] = \"ASNEEDED\";\n})(QuoteFields || (QuoteFields = {}));\n\nexport var CSVOutput;\n\n(function (CSVOutput) {\n CSVOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CSVOutput || (CSVOutput = {}));\n\nexport var JSONOutput;\n\n(function (JSONOutput) {\n JSONOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(JSONOutput || (JSONOutput = {}));\n\nexport var OutputSerialization;\n\n(function (OutputSerialization) {\n OutputSerialization.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(OutputSerialization || (OutputSerialization = {}));\n\nexport var SelectParameters;\n\n(function (SelectParameters) {\n SelectParameters.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SelectParameters || (SelectParameters = {}));\n\nexport var RestoreRequestType;\n\n(function (RestoreRequestType) {\n RestoreRequestType[\"SELECT\"] = \"SELECT\";\n})(RestoreRequestType || (RestoreRequestType = {}));\n\nexport var RestoreRequest;\n\n(function (RestoreRequest) {\n RestoreRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.OutputLocation && {\n OutputLocation: OutputLocation.filterSensitiveLog(obj.OutputLocation)\n });\n };\n})(RestoreRequest || (RestoreRequest = {}));\n\nexport var RestoreObjectRequest;\n\n(function (RestoreObjectRequest) {\n RestoreObjectRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.RestoreRequest && {\n RestoreRequest: RestoreRequest.filterSensitiveLog(obj.RestoreRequest)\n });\n };\n})(RestoreObjectRequest || (RestoreObjectRequest = {}));\n\nexport var ContinuationEvent;\n\n(function (ContinuationEvent) {\n ContinuationEvent.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ContinuationEvent || (ContinuationEvent = {}));\n\nexport var EndEvent;\n\n(function (EndEvent) {\n EndEvent.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(EndEvent || (EndEvent = {}));\n\nexport var Progress;\n\n(function (Progress) {\n Progress.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Progress || (Progress = {}));\n\nexport var ProgressEvent;\n\n(function (ProgressEvent) {\n ProgressEvent.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ProgressEvent || (ProgressEvent = {}));\n\nexport var RecordsEvent;\n\n(function (RecordsEvent) {\n RecordsEvent.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RecordsEvent || (RecordsEvent = {}));\n\nexport var Stats;\n\n(function (Stats) {\n Stats.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Stats || (Stats = {}));\n\nexport var StatsEvent;\n\n(function (StatsEvent) {\n StatsEvent.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(StatsEvent || (StatsEvent = {}));\n\nexport var SelectObjectContentEventStream;\n\n(function (SelectObjectContentEventStream) {\n SelectObjectContentEventStream.visit = function (value, visitor) {\n if (value.Records !== undefined) return visitor.Records(value.Records);\n if (value.Stats !== undefined) return visitor.Stats(value.Stats);\n if (value.Progress !== undefined) return visitor.Progress(value.Progress);\n if (value.Cont !== undefined) return visitor.Cont(value.Cont);\n if (value.End !== undefined) return visitor.End(value.End);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n\n SelectObjectContentEventStream.filterSensitiveLog = function (obj) {\n var _a;\n\n if (obj.Records !== undefined) return {\n Records: RecordsEvent.filterSensitiveLog(obj.Records)\n };\n if (obj.Stats !== undefined) return {\n Stats: StatsEvent.filterSensitiveLog(obj.Stats)\n };\n if (obj.Progress !== undefined) return {\n Progress: ProgressEvent.filterSensitiveLog(obj.Progress)\n };\n if (obj.Cont !== undefined) return {\n Cont: ContinuationEvent.filterSensitiveLog(obj.Cont)\n };\n if (obj.End !== undefined) return {\n End: EndEvent.filterSensitiveLog(obj.End)\n };\n if (obj.$unknown !== undefined) return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(SelectObjectContentEventStream || (SelectObjectContentEventStream = {}));\n\nexport var SelectObjectContentOutput;\n\n(function (SelectObjectContentOutput) {\n SelectObjectContentOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Payload && {\n Payload: \"STREAMING_CONTENT\"\n });\n };\n})(SelectObjectContentOutput || (SelectObjectContentOutput = {}));\n\nexport var RequestProgress;\n\n(function (RequestProgress) {\n RequestProgress.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RequestProgress || (RequestProgress = {}));\n\nexport var ScanRange;\n\n(function (ScanRange) {\n ScanRange.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ScanRange || (ScanRange = {}));\n\nexport var SelectObjectContentRequest;\n\n(function (SelectObjectContentRequest) {\n SelectObjectContentRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n });\n };\n})(SelectObjectContentRequest || (SelectObjectContentRequest = {}));\n\nexport var UploadPartOutput;\n\n(function (UploadPartOutput) {\n UploadPartOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n });\n };\n})(UploadPartOutput || (UploadPartOutput = {}));\n\nexport var UploadPartRequest;\n\n(function (UploadPartRequest) {\n UploadPartRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n });\n };\n})(UploadPartRequest || (UploadPartRequest = {}));\n\nexport var CopyPartResult;\n\n(function (CopyPartResult) {\n CopyPartResult.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CopyPartResult || (CopyPartResult = {}));\n\nexport var UploadPartCopyOutput;\n\n(function (UploadPartCopyOutput) {\n UploadPartCopyOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n });\n };\n})(UploadPartCopyOutput || (UploadPartCopyOutput = {}));\n\nexport var UploadPartCopyRequest;\n\n(function (UploadPartCopyRequest) {\n UploadPartCopyRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n }), obj.CopySourceSSECustomerKey && {\n CopySourceSSECustomerKey: SENSITIVE_STRING\n });\n };\n})(UploadPartCopyRequest || (UploadPartCopyRequest = {}));","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 */\n\nvar CreateMultipartUploadCommand =\n/** @class */\nfunction (_super) {\n __extends(CreateMultipartUploadCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function CreateMultipartUploadCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n CreateMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCreateMultipartUploadCommand(input, context);\n };\n\n CreateMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCreateMultipartUploadCommand(output, context);\n };\n\n return CreateMultipartUploadCommand;\n}($Command);\n\nexport { CreateMultipartUploadCommand };","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 */\n\nvar UploadPartCommand =\n/** @class */\nfunction (_super) {\n __extends(UploadPartCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function UploadPartCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n UploadPartCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlUploadPartCommand(input, context);\n };\n\n UploadPartCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlUploadPartCommand(output, context);\n };\n\n return UploadPartCommand;\n}($Command);\n\nexport { UploadPartCommand };","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 */\n\nvar CompleteMultipartUploadCommand =\n/** @class */\nfunction (_super) {\n __extends(CompleteMultipartUploadCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function CompleteMultipartUploadCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n CompleteMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCompleteMultipartUploadCommand(input, context);\n };\n\n CompleteMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCompleteMultipartUploadCommand(output, context);\n };\n\n return CompleteMultipartUploadCommand;\n}($Command);\n\nexport { CompleteMultipartUploadCommand };","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 */\n\nvar AbortMultipartUploadCommand =\n/** @class */\nfunction (_super) {\n __extends(AbortMultipartUploadCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function AbortMultipartUploadCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n AbortMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlAbortMultipartUploadCommand(input, context);\n };\n\n AbortMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlAbortMultipartUploadCommand(output, context);\n };\n\n return AbortMultipartUploadCommand;\n}($Command);\n\nexport { AbortMultipartUploadCommand };","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 */\n\nvar ListPartsCommand =\n/** @class */\nfunction (_super) {\n __extends(ListPartsCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function ListPartsCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\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\n ListPartsCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlListPartsCommand(input, context);\n };\n\n ListPartsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlListPartsCommand(output, context);\n };\n\n return ListPartsCommand;\n}($Command);\n\nexport { ListPartsCommand };","/*\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { ConsoleLogger as Logger, getAmplifyUserAgent, Credentials } from '@aws-amplify/core';\nimport { S3Client, PutObjectCommand, CreateMultipartUploadCommand, UploadPartCommand, CompleteMultipartUploadCommand, ListPartsCommand, AbortMultipartUploadCommand } from '@aws-sdk/client-s3';\nimport { AxiosHttpHandler, SEND_UPLOAD_PROGRESS_EVENT, SEND_DOWNLOAD_PROGRESS_EVENT } from './axios-http-handler';\nimport * as events from 'events';\nvar logger = new Logger('AWSS3ProviderManagedUpload');\nvar localTestingStorageEndpoint = 'http://localhost:20005';\nvar SET_CONTENT_LENGTH_HEADER = 'contentLengthMiddleware';\n\nvar AWSS3ProviderManagedUpload =\n/** @class */\nfunction () {\n function AWSS3ProviderManagedUpload(params, opts, emitter) {\n // Defaults\n this.minPartSize = 5 * 1024 * 1024; // in MB\n\n this.queueSize = 4; // Data for current upload\n\n this.body = null;\n this.params = null;\n this.opts = null;\n this.completedParts = [];\n this.cancel = false; // Progress reporting\n\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 }\n\n AWSS3ProviderManagedUpload.prototype.upload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, putObjectCommand, s3, uploadId, numberOfPartsToUpload, parts, start;\n\n var _this = this;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4\n /*yield*/\n , this.validateAndSanitizeBody(this.params.Body)];\n\n case 1:\n _a.body = _b.sent();\n this.totalBytesToUpload = this.byteLength(this.body);\n if (!(this.totalBytesToUpload <= this.minPartSize)) return [3\n /*break*/\n , 3]; // Multipart upload is not required. Upload the sanitized body as is\n\n this.params.Body = this.body;\n putObjectCommand = new PutObjectCommand(this.params);\n return [4\n /*yield*/\n , this._createNewS3Client(this.opts, this.emitter)];\n\n case 2:\n s3 = _b.sent();\n return [2\n /*return*/\n , s3.send(putObjectCommand)];\n\n case 3:\n return [4\n /*yield*/\n , this.createMultiPartUpload()];\n\n case 4:\n uploadId = _b.sent();\n numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.minPartSize);\n parts = this.createParts();\n start = 0;\n _b.label = 5;\n\n case 5:\n if (!(start < numberOfPartsToUpload)) return [3\n /*break*/\n , 10];\n /** This first block will try to cancel the upload if the cancel\n *\trequest came before any parts uploads have started.\n **/\n\n return [4\n /*yield*/\n , this.checkIfUploadCancelled(uploadId)];\n\n case 6:\n /** This first block will try to cancel the upload if the cancel\n *\trequest came before any parts uploads have started.\n **/\n _b.sent(); // Upload as many as `queueSize` parts simultaneously\n\n\n return [4\n /*yield*/\n , this.uploadParts(uploadId, parts.slice(start, start + this.queueSize))];\n\n case 7:\n // Upload as many as `queueSize` parts simultaneously\n _b.sent();\n /** Call cleanup a second time in case there were part upload requests\n * in flight. This is to ensure that all parts are cleaned up.\n */\n\n\n return [4\n /*yield*/\n , this.checkIfUploadCancelled(uploadId)];\n\n case 8:\n /** Call cleanup a second time in case there were part upload requests\n * in flight. This is to ensure that all parts are cleaned up.\n */\n _b.sent();\n\n _b.label = 9;\n\n case 9:\n start += this.queueSize;\n return [3\n /*break*/\n , 5];\n\n case 10:\n parts.map(function (part) {\n _this.removeEventListener(part);\n });\n return [4\n /*yield*/\n , this.finishMultiPartUpload(uploadId)];\n\n case 11:\n // Step 3: Finalize the upload such that S3 can recreate the file\n return [2\n /*return*/\n , _b.sent()];\n }\n });\n });\n };\n\n AWSS3ProviderManagedUpload.prototype.createParts = function () {\n var parts = [];\n\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\n return parts;\n };\n\n AWSS3ProviderManagedUpload.prototype.createMultiPartUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var createMultiPartUploadCommand, s3, response;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n createMultiPartUploadCommand = new CreateMultipartUploadCommand(this.params);\n return [4\n /*yield*/\n , this._createNewS3Client(this.opts)];\n\n case 1:\n s3 = _a.sent(); // @aws-sdk/client-s3 seems to be ignoring the `ContentType` parameter, so we\n // are explicitly adding it via middleware.\n // https://github.com/aws/aws-sdk-js-v3/issues/2000\n\n s3.middlewareStack.add(function (next) {\n return function (args) {\n if (_this.params.ContentType && args && args.request && args.request.headers) {\n args.request.headers['Content-Type'] = _this.params.ContentType;\n }\n\n return next(args);\n };\n }, {\n step: 'build'\n });\n return [4\n /*yield*/\n , s3.send(createMultiPartUploadCommand)];\n\n case 2:\n response = _a.sent();\n logger.debug(response.UploadId);\n return [2\n /*return*/\n , response.UploadId];\n }\n });\n });\n };\n /**\n * @private Not to be extended outside of tests\n * @VisibleFotTesting\n */\n\n\n AWSS3ProviderManagedUpload.prototype.uploadParts = function (uploadId, parts) {\n return __awaiter(this, void 0, void 0, function () {\n var allResults, i, error_1;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4\n /*yield*/\n , Promise.all(parts.map(function (part) {\n return __awaiter(_this, void 0, void 0, function () {\n var s3, _a, Key, Bucket, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.setupEventListener(part);\n return [4\n /*yield*/\n , this._createNewS3Client(this.opts, part.emitter)];\n\n case 1:\n s3 = _b.sent();\n _a = this.params, Key = _a.Key, Bucket = _a.Bucket, SSECustomerAlgorithm = _a.SSECustomerAlgorithm, SSECustomerKey = _a.SSECustomerKey, SSECustomerKeyMD5 = _a.SSECustomerKeyMD5;\n return [2\n /*return*/\n , s3.send(new UploadPartCommand(__assign(__assign(__assign({\n PartNumber: part.partNumber,\n Body: part.bodyPart,\n UploadId: uploadId,\n Key: Key,\n Bucket: Bucket\n }, SSECustomerAlgorithm && {\n SSECustomerAlgorithm: SSECustomerAlgorithm\n }), SSECustomerKey && {\n SSECustomerKey: SSECustomerKey\n }), SSECustomerKeyMD5 && {\n SSECustomerKeyMD5: SSECustomerKeyMD5\n })))];\n }\n });\n });\n }))];\n\n case 1:\n allResults = _a.sent(); // The order of resolved promises is the same as input promise order.\n\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\n return [3\n /*break*/\n , 3];\n\n case 2:\n error_1 = _a.sent();\n logger.error('error happened while uploading a part. Cancelling the multipart upload', error_1);\n this.cancelUpload();\n return [2\n /*return*/\n ];\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AWSS3ProviderManagedUpload.prototype.finishMultiPartUpload = function (uploadId) {\n return __awaiter(this, void 0, void 0, function () {\n var input, completeUploadCommand, s3, data, error_2;\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: {\n Parts: this.completedParts\n }\n };\n completeUploadCommand = new CompleteMultipartUploadCommand(input);\n return [4\n /*yield*/\n , this._createNewS3Client(this.opts)];\n\n case 1:\n s3 = _a.sent();\n _a.label = 2;\n\n case 2:\n _a.trys.push([2, 4,, 5]);\n\n return [4\n /*yield*/\n , s3.send(completeUploadCommand)];\n\n case 3:\n data = _a.sent();\n return [2\n /*return*/\n , data.Key];\n\n case 4:\n error_2 = _a.sent();\n logger.error('error happened while finishing the upload. Cancelling the multipart upload', error_2);\n this.cancelUpload();\n return [2\n /*return*/\n ];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AWSS3ProviderManagedUpload.prototype.checkIfUploadCancelled = function (uploadId) {\n return __awaiter(this, void 0, void 0, function () {\n var errorMessage, error_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.cancel) return [3\n /*break*/\n , 5];\n errorMessage = 'Upload was cancelled.';\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this.cleanup(uploadId)];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n error_3 = _a.sent();\n errorMessage += \" \" + error_3.message;\n return [3\n /*break*/\n , 4];\n\n case 4:\n throw new Error(errorMessage);\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AWSS3ProviderManagedUpload.prototype.cancelUpload = function () {\n this.cancel = true;\n };\n\n AWSS3ProviderManagedUpload.prototype.cleanup = function (uploadId) {\n return __awaiter(this, void 0, void 0, function () {\n var input, s3, 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\n /*yield*/\n , this._createNewS3Client(this.opts)];\n\n case 1:\n s3 = _a.sent();\n return [4\n /*yield*/\n , s3.send(new AbortMultipartUploadCommand(input))];\n\n case 2:\n _a.sent();\n\n return [4\n /*yield*/\n , s3.send(new ListPartsCommand(input))];\n\n case 3:\n data = _a.sent();\n\n if (data && data.Parts && data.Parts.length > 0) {\n throw new Error('Multi Part upload clean up failed');\n }\n\n return [2\n /*return*/\n ];\n }\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\n AWSS3ProviderManagedUpload.prototype.setupEventListener = function (part) {\n var _this = this;\n\n part.emitter.on(SEND_UPLOAD_PROGRESS_EVENT, function (progress) {\n _this.progressChanged(part.partNumber, progress.loaded - part._lastUploadedBytes);\n\n part._lastUploadedBytes = progress.loaded;\n });\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\n AWSS3ProviderManagedUpload.prototype.byteLength = function (input) {\n if (input === null || input === undefined) return 0;\n\n if (typeof input.byteLength === 'number') {\n return input.byteLength;\n } else if (typeof input.length === 'number') {\n return input.length;\n } else if (typeof input.size === 'number') {\n return input.size;\n } else if (typeof input.path === 'string') {\n /* NodeJs Support\n return require('fs').lstatSync(input.path).size;\n */\n } else {\n throw new Error('Cannot determine length of ' + input);\n }\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\n /*return*/\n , JSON.stringify(body)];\n } else {\n // Files, arrayBuffer etc\n return [2\n /*return*/\n , body];\n }\n\n return [2\n /*return*/\n ];\n });\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 } 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\n return false;\n };\n /**\n * @private\n * creates an S3 client with new V3 aws sdk\n */\n\n\n AWSS3ProviderManagedUpload.prototype._createNewS3Client = function (config, emitter) {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, dangerouslyConnectToHttpEndpointForTesting, cancelTokenSource, useAccelerateEndpoint, localTestingConfig, client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this._getCredentials()];\n\n case 1:\n credentials = _a.sent();\n region = config.region, dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting, cancelTokenSource = config.cancelTokenSource, useAccelerateEndpoint = config.useAccelerateEndpoint;\n localTestingConfig = {};\n\n if (dangerouslyConnectToHttpEndpointForTesting) {\n localTestingConfig = {\n endpoint: localTestingStorageEndpoint,\n tls: false,\n bucketEndpoint: false,\n forcePathStyle: true\n };\n }\n\n client = new S3Client(__assign(__assign({\n region: region,\n credentials: credentials,\n useAccelerateEndpoint: useAccelerateEndpoint\n }, localTestingConfig), {\n requestHandler: new AxiosHttpHandler({}, emitter, cancelTokenSource),\n customUserAgent: getAmplifyUserAgent()\n }));\n client.middlewareStack.remove(SET_CONTENT_LENGTH_HEADER);\n return [2\n /*return*/\n , client];\n }\n });\n });\n };\n /**\n * @private\n */\n\n\n AWSS3ProviderManagedUpload.prototype._getCredentials = function () {\n return Credentials.get().then(function (credentials) {\n if (!credentials) return false;\n var cred = Credentials.shear(credentials);\n logger.debug('set credentials for storage', cred);\n return cred;\n }).catch(function (error) {\n logger.warn('ensure credentials error', error);\n return false;\n });\n };\n\n return AWSS3ProviderManagedUpload;\n}();\n\nexport { AWSS3ProviderManagedUpload };","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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\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 */\n\n\nimport { ConsoleLogger as Logger, Hub, Credentials, Parser, getAmplifyUserAgent } from '@aws-amplify/core';\nimport { S3Client, GetObjectCommand, DeleteObjectCommand, ListObjectsCommand, 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 { AxiosHttpHandler, SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT } from './axios-http-handler';\nimport { StorageErrorStrings } from '../common/StorageErrorStrings';\nimport { AWSS3ProviderManagedUpload } from './AWSS3ProviderManagedUpload';\nimport * as events from 'events';\nvar logger = new Logger('AWSS3Provider');\nvar AMPLIFY_SYMBOL = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default';\nvar SET_CONTENT_LENGTH_HEADER = 'contentLengthMiddleware';\nvar DEFAULT_STORAGE_LEVEL = 'public';\nvar DEFAULT_PRESIGN_EXPIRATION = 900;\n\nvar dispatchStorageEvent = function dispatchStorageEvent(track, event, attrs, metrics, message) {\n if (track) {\n var data = {\n attrs: attrs\n };\n\n if (metrics) {\n data['metrics'] = metrics;\n }\n\n Hub.dispatch('storage', {\n event: event,\n data: data,\n message: message\n }, 'Storage', AMPLIFY_SYMBOL);\n }\n};\n\nvar localTestingStorageEndpoint = 'http://localhost:20005';\n/**\n * Provide storage methods to use AWS S3\n */\n\nvar AWSS3Provider =\n/** @class */\nfunction () {\n /**\n * Initialize Storage with AWS configurations\n * @param {Object} config - Configuration object for storage\n */\n function AWSS3Provider(config) {\n this._config = config ? config : {};\n logger.debug('Storage Options', this._config);\n }\n /**\n * get the category of the plugin\n */\n\n\n AWSS3Provider.prototype.getCategory = function () {\n return AWSS3Provider.CATEGORY;\n };\n /**\n * get provider name of the plugin\n */\n\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\n\n AWSS3Provider.prototype.configure = function (config) {\n logger.debug('configure Storage', config);\n if (!config) return this._config;\n var amplifyConfig = Parser.parseMobilehubConfig(config);\n this._config = Object.assign({}, this._config, amplifyConfig.Storage);\n\n if (!this._config.bucket) {\n logger.debug('Do not have bucket yet');\n }\n\n return this._config;\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\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\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , this._ensureCredentials()];\n\n case 1:\n credentialsOK = _c.sent();\n\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\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\n if (!srcKey || typeof srcKey !== 'string') {\n throw new Error(StorageErrorStrings.NO_SRC_KEY);\n }\n\n if (!destKey || typeof destKey !== 'string') {\n throw new Error(StorageErrorStrings.NO_DEST_KEY);\n }\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\n srcPrefix = this._prefix(__assign(__assign(__assign({}, opt), {\n level: srcLevel\n }), srcIdentityId && {\n identityId: srcIdentityId\n }));\n destPrefix = this._prefix(__assign(__assign({}, opt), {\n level: destLevel\n }));\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) params.CacheControl = cacheControl;\n if (expires) params.Expires = expires;\n\n if (serverSideEncryption) {\n params.ServerSideEncryption = serverSideEncryption;\n }\n\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n\n if (SSEKMSKeyId) {\n params.SSEKMSKeyId = SSEKMSKeyId;\n }\n\n if (acl) params.ACL = acl;\n s3 = this._createNewS3Client(opt);\n s3.middlewareStack.remove(SET_CONTENT_LENGTH_HEADER);\n _c.label = 2;\n\n case 2:\n _c.trys.push([2, 4,, 5]);\n\n return [4\n /*yield*/\n , s3.send(new CopyObjectCommand(params))];\n\n case 3:\n _c.sent();\n\n dispatchStorageEvent(track, 'copy', {\n method: 'copy',\n result: 'success'\n }, null, \"Copy success from \" + srcKey + \" to \" + destKey);\n return [2\n /*return*/\n , {\n key: destKey\n }];\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\n case 5:\n return [2\n /*return*/\n ];\n }\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\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , this._ensureCredentials()];\n\n case 1:\n credentialsOK = _b.sent();\n\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\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 }; // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property\n\n if (cacheControl) params.ResponseCacheControl = cacheControl;\n if (contentDisposition) params.ResponseContentDisposition = contentDisposition;\n if (contentEncoding) params.ResponseContentEncoding = contentEncoding;\n if (contentLanguage) params.ResponseContentLanguage = contentLanguage;\n if (contentType) params.ResponseContentType = contentType;\n\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n\n if (!(download === true)) return [3\n /*break*/\n , 5];\n getObjectCommand = new GetObjectCommand(params);\n _b.label = 2;\n\n case 2:\n _b.trys.push([2, 4,, 5]);\n\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n emitter.on(SEND_DOWNLOAD_PROGRESS_EVENT, function (progress) {\n progressCallback(progress);\n });\n } else {\n logger.warn('progressCallback should be a function, not a ' + typeof progressCallback);\n }\n }\n\n return [4\n /*yield*/\n , s3.send(getObjectCommand)];\n\n case 3:\n response = _b.sent();\n emitter.removeAllListeners(SEND_DOWNLOAD_PROGRESS_EVENT);\n dispatchStorageEvent(track, 'download', {\n method: 'get',\n result: 'success'\n }, {\n fileSize: Number(response.Body['size'] || response.Body['length'])\n }, \"Download success for \" + key);\n return [2\n /*return*/\n , response];\n\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\n case 5:\n _b.trys.push([5, 8,, 9]);\n\n signer = new S3RequestPresigner(__assign({}, s3.config));\n return [4\n /*yield*/\n , createRequest(s3, new GetObjectCommand(params))];\n\n case 6:\n request = _b.sent();\n _a = formatUrl;\n return [4\n /*yield*/\n , signer.presign(request, {\n expiresIn: expires || DEFAULT_PRESIGN_EXPIRATION\n })];\n\n case 7:\n url = _a.apply(void 0, [_b.sent()]);\n dispatchStorageEvent(track, 'getSignedUrl', {\n method: 'get',\n result: 'success'\n }, null, \"Signed URL: \" + url);\n return [2\n /*return*/\n , url];\n\n case 8:\n error_3 = _b.sent();\n logger.warn('get signed url error', error_3);\n dispatchStorageEvent(track, 'getSignedUrl', {\n method: 'get',\n result: 'failed'\n }, null, \"Could not get a signed URL for \" + key);\n throw error_3;\n\n case 9:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * Put a file in S3 bucket specified to configure method\n * @param {string} key - key of the object\n * @param {PutObjectCommandInput[\"Body\"]} object - File to be put in Amazon S3 bucket\n * @param {S3ProviderPutConfig} [config] - Optional configuration for the underlying S3 command\n * @return {Promise} - promise resolves to an object with the new object's key on success\n */\n\n\n AWSS3Provider.prototype.put = function (key, object, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, track, progressCallback, contentType, contentDisposition, contentEncoding, cacheControl, expires, metadata, tagging, acl, serverSideEncryption, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, SSEKMSKeyId, type, prefix, final_key, params, emitter, uploader, response, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this._ensureCredentials()];\n\n case 1:\n credentialsOK = _a.sent();\n\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, track = opt.track, progressCallback = opt.progressCallback;\n 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 serverSideEncryption = opt.serverSideEncryption, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, SSEKMSKeyId = opt.SSEKMSKeyId;\n type = contentType ? contentType : 'binary/octet-stream';\n prefix = this._prefix(opt);\n final_key = prefix + key;\n logger.debug('put ' + key + ' to ' + final_key);\n params = {\n Bucket: bucket,\n Key: final_key,\n Body: object,\n ContentType: type\n };\n\n if (cacheControl) {\n params.CacheControl = cacheControl;\n }\n\n if (contentDisposition) {\n params.ContentDisposition = contentDisposition;\n }\n\n if (contentEncoding) {\n params.ContentEncoding = contentEncoding;\n }\n\n if (expires) {\n params.Expires = expires;\n }\n\n if (metadata) {\n params.Metadata = metadata;\n }\n\n if (tagging) {\n params.Tagging = tagging;\n }\n\n if (serverSideEncryption) {\n params.ServerSideEncryption = serverSideEncryption;\n }\n\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n\n if (SSEKMSKeyId) {\n params.SSEKMSKeyId = SSEKMSKeyId;\n }\n\n emitter = new events.EventEmitter();\n uploader = new AWSS3ProviderManagedUpload(params, opt, emitter);\n\n if (acl) {\n params.ACL = acl;\n }\n\n _a.label = 2;\n\n case 2:\n _a.trys.push([2, 4,, 5]);\n\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n emitter.on(SEND_UPLOAD_PROGRESS_EVENT, function (progress) {\n progressCallback(progress);\n });\n } else {\n logger.warn('progressCallback should be a function, not a ' + typeof progressCallback);\n }\n }\n\n return [4\n /*yield*/\n , uploader.upload()];\n\n case 3:\n response = _a.sent();\n logger.debug('upload result', response);\n dispatchStorageEvent(track, 'upload', {\n method: 'put',\n result: 'success'\n }, null, \"Upload success for \" + key);\n return [2\n /*return*/\n , {\n key: key\n }];\n\n case 4:\n error_4 = _a.sent();\n logger.warn('error uploading', error_4);\n dispatchStorageEvent(track, 'upload', {\n method: 'put',\n result: 'failed'\n }, null, \"Error uploading \" + key);\n throw error_4;\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\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\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_5;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this._ensureCredentials()];\n\n case 1:\n credentialsOK = _a.sent();\n\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\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\n case 2:\n _a.trys.push([2, 4,, 5]);\n\n return [4\n /*yield*/\n , s3.send(deleteObjectCommand)];\n\n case 3:\n response = _a.sent();\n dispatchStorageEvent(track, 'delete', {\n method: 'remove',\n result: 'success'\n }, null, \"Deleted \" + key + \" successfully\");\n return [2\n /*return*/\n , response];\n\n case 4:\n error_5 = _a.sent();\n dispatchStorageEvent(track, 'delete', {\n method: 'remove',\n result: 'failed'\n }, null, \"Deletion of \" + key + \" failed with \" + error_5);\n throw error_5;\n\n case 5:\n return [2\n /*return*/\n ];\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\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, s3, params, listObjectsCommand, response, list, error_6;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this._ensureCredentials()];\n\n case 1:\n credentialsOK = _a.sent();\n\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\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 s3 = this._createNewS3Client(opt);\n logger.debug('list ' + path + ' from ' + final_path);\n params = {\n Bucket: bucket,\n Prefix: final_path,\n MaxKeys: maxKeys\n };\n listObjectsCommand = new ListObjectsCommand(params);\n _a.label = 2;\n\n case 2:\n _a.trys.push([2, 4,, 5]);\n\n return [4\n /*yield*/\n , s3.send(listObjectsCommand)];\n\n case 3:\n response = _a.sent();\n list = [];\n\n if (response && response.Contents) {\n list = 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 }\n\n dispatchStorageEvent(track, 'list', {\n method: 'list',\n result: 'success'\n }, null, list.length + \" items returned from list operation\");\n logger.debug('list', list);\n return [2\n /*return*/\n , list];\n\n case 4:\n error_6 = _a.sent();\n logger.warn('list error', error_6);\n dispatchStorageEvent(track, 'list', {\n method: 'list',\n result: 'failed'\n }, null, \"Listing items failed: \" + error_6.message);\n throw error_6;\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AWSS3Provider.prototype._ensureCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, cred, error_7;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4\n /*yield*/\n , Credentials.get()];\n\n case 1:\n credentials = _a.sent();\n if (!credentials) return [2\n /*return*/\n , false];\n cred = Credentials.shear(credentials);\n logger.debug('set credentials for storage', cred);\n this._config.credentials = cred;\n return [2\n /*return*/\n , true];\n\n case 2:\n error_7 = _a.sent();\n logger.warn('ensure credentials error', error_7);\n return [2\n /*return*/\n , false];\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AWSS3Provider.prototype._isWithCredentials = function (config) {\n return typeof config === 'object' && config.hasOwnProperty('credentials');\n };\n\n AWSS3Provider.prototype._prefix = function (config) {\n var credentials = config.credentials,\n level = config.level;\n var customPrefix = config.customPrefix || {};\n var identityId = config.identityId || credentials.identityId;\n var privatePath = (customPrefix.private !== undefined ? customPrefix.private : 'private/') + identityId + '/';\n var protectedPath = (customPrefix.protected !== undefined ? customPrefix.protected : 'protected/') + identityId + '/';\n var publicPath = customPrefix.public !== undefined ? customPrefix.public : 'public/';\n\n switch (level) {\n case 'private':\n return privatePath;\n\n case 'protected':\n return protectedPath;\n\n default:\n return publicPath;\n }\n };\n /**\n * Creates an S3 client with new V3 aws sdk\n */\n\n\n AWSS3Provider.prototype._createNewS3Client = function (config, emitter) {\n var region = config.region,\n credentials = config.credentials,\n cancelTokenSource = config.cancelTokenSource,\n dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting;\n var localTestingConfig = {};\n\n if (dangerouslyConnectToHttpEndpointForTesting) {\n localTestingConfig = {\n endpoint: localTestingStorageEndpoint,\n tls: false,\n bucketEndpoint: false,\n forcePathStyle: true\n };\n }\n\n var s3client = new S3Client(__assign(__assign({\n region: region,\n credentials: credentials,\n customUserAgent: getAmplifyUserAgent()\n }, localTestingConfig), {\n requestHandler: new AxiosHttpHandler({}, emitter, cancelTokenSource)\n }));\n return s3client;\n };\n\n AWSS3Provider.CATEGORY = 'Storage';\n AWSS3Provider.PROVIDER_NAME = 'AWSS3';\n return AWSS3Provider;\n}();\n\nexport { AWSS3Provider };\n/**\n * @deprecated use named import\n */\n\nexport default AWSS3Provider;","/*\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { ConsoleLogger as Logger, Parser } from '@aws-amplify/core';\nimport { AWSS3Provider } from './providers';\nimport axios from 'axios';\nvar logger = new Logger('StorageClass');\nvar DEFAULT_PROVIDER = 'AWSS3';\n/**\n * Provide storage methods to use AWS S3\n */\n\nvar Storage =\n/** @class */\nfunction () {\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\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\n\n Storage.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategory() === 'Storage') {\n this._pluggables.push(pluggable);\n\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\n\n Storage.prototype.getPluggable = function (providerName) {\n var pluggable = this._pluggables.find(function (pluggable) {\n return pluggable.getProviderName() === providerName;\n });\n\n if (pluggable === undefined) {\n logger.debug('No plugin found with providerName', providerName);\n return null;\n } else return pluggable;\n };\n /**\n * Remove the plugin object\n * @param providerName - the name of the plugin\n */\n\n\n Storage.prototype.removePluggable = function (providerName) {\n this._pluggables = this._pluggables.filter(function (pluggable) {\n return pluggable.getProviderName() !== providerName;\n });\n return;\n };\n /**\n * Configure Storage\n * @param {Object} config - Configuration object for storage\n * @return {Object} - Current configuration\n */\n\n\n Storage.prototype.configure = function (config) {\n var _this = this;\n\n logger.debug('configure Storage');\n if (!config) return this._config;\n var amplifyConfig = Parser.parseMobilehubConfig(config);\n var storageKeysFromConfig = Object.keys(amplifyConfig.Storage);\n var storageArrayKeys = ['bucket', 'region', 'level', 'track', 'customPrefix', 'serverSideEncryption', 'SSECustomerAlgorithm', 'SSECustomerKey', 'SSECustomerKeyMD5', 'SSEKMSKeyId'];\n\n var isInStorageArrayKeys = function isInStorageArrayKeys(k) {\n return storageArrayKeys.some(function (x) {\n return x === k;\n });\n };\n\n var checkConfigKeysFromArray = function checkConfigKeysFromArray(k) {\n return k.find(function (k) {\n return isInStorageArrayKeys(k);\n });\n };\n\n if (storageKeysFromConfig && checkConfigKeysFromArray(storageKeysFromConfig) && !amplifyConfig.Storage[DEFAULT_PROVIDER]) {\n amplifyConfig.Storage[DEFAULT_PROVIDER] = {};\n }\n\n Object.entries(amplifyConfig.Storage).map(function (_a) {\n var _b = __read(_a, 2),\n key = _b[0],\n value = _b[1];\n\n if (key && isInStorageArrayKeys(key) && value !== undefined) {\n amplifyConfig.Storage[DEFAULT_PROVIDER][key] = value;\n delete amplifyConfig.Storage[key];\n }\n }); // only update new values for each provider\n\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\n this._pluggables.forEach(function (pluggable) {\n pluggable.configure(_this._config[pluggable.getProviderName()]);\n });\n\n if (this._pluggables.length === 0) {\n this.addPluggable(new AWSS3Provider());\n }\n\n return this._config;\n };\n\n Storage.prototype.getCancellableTokenSource = function () {\n return axios.CancelToken.source();\n };\n\n Storage.prototype.updateRequestToBeCancellable = function (request, cancelTokenSource) {\n this._cancelTokenSourceMap.set(request, cancelTokenSource);\n };\n /**\n * Cancels an inflight request\n *\n * @param request - The request to cancel\n * @param [message] - A message to include in the cancelation exception\n */\n\n\n Storage.prototype.cancel = function (request, message) {\n var cancelTokenSource = this._cancelTokenSourceMap.get(request);\n\n if (cancelTokenSource) {\n cancelTokenSource.cancel(message);\n } else {\n logger.debug('The request does not map to any cancel token');\n }\n };\n\n Storage.prototype.copy = function (src, dest, config) {\n var _a;\n\n var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;\n\n var prov = this._pluggables.find(function (pluggable) {\n return pluggable.getProviderName() === provider;\n });\n\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\n var cancelTokenSource = this.getCancellableTokenSource();\n\n if (typeof prov.copy !== 'function') {\n return Promise.reject(\".copy is not implemented on provider \" + prov.getProviderName());\n }\n\n var responsePromise = prov.copy(src, dest, __assign(__assign({}, config), {\n cancelTokenSource: cancelTokenSource\n }));\n this.updateRequestToBeCancellable(responsePromise, cancelTokenSource);\n return responsePromise;\n };\n\n Storage.prototype.get = function (key, config) {\n var _a;\n\n var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;\n\n var prov = this._pluggables.find(function (pluggable) {\n return pluggable.getProviderName() === provider;\n });\n\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\n var cancelTokenSource = this.getCancellableTokenSource();\n var responsePromise = prov.get(key, __assign(__assign({}, config), {\n cancelTokenSource: cancelTokenSource\n }));\n this.updateRequestToBeCancellable(responsePromise, cancelTokenSource);\n return responsePromise;\n };\n\n Storage.prototype.isCancelError = function (error) {\n return axios.isCancel(error);\n };\n\n Storage.prototype.put = function (key, object, config) {\n var _a;\n\n var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;\n\n var prov = this._pluggables.find(function (pluggable) {\n return pluggable.getProviderName() === provider;\n });\n\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\n var cancelTokenSource = this.getCancellableTokenSource();\n var responsePromise = prov.put(key, object, __assign(__assign({}, config), {\n cancelTokenSource: cancelTokenSource\n }));\n this.updateRequestToBeCancellable(responsePromise, cancelTokenSource);\n return responsePromise;\n };\n\n Storage.prototype.remove = function (key, config) {\n var _a;\n\n var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;\n\n var prov = this._pluggables.find(function (pluggable) {\n return pluggable.getProviderName() === provider;\n });\n\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\n return prov.remove(key, config);\n };\n\n Storage.prototype.list = function (path, config) {\n var _a;\n\n var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;\n\n var prov = this._pluggables.find(function (pluggable) {\n return pluggable.getProviderName() === provider;\n });\n\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\n return prov.list(path, config);\n };\n\n return Storage;\n}();\n\nexport { Storage };\n/**\n * @deprecated use named import\n */\n\nexport default Storage;","/*\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport { Storage as StorageClass } from './Storage';\nimport { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('Storage');\nvar _instance = null;\n\nvar getInstance = function getInstance() {\n if (_instance) {\n return _instance;\n }\n\n logger.debug('Create Storage Instance, debug');\n _instance = new StorageClass();\n _instance.vault = new StorageClass();\n var old_configure = _instance.configure;\n\n _instance.configure = function (options) {\n logger.debug('storage configure called');\n\n var vaultConfig = __assign({}, old_configure.call(_instance, options)); // set level private for each provider for the vault\n\n\n Object.keys(vaultConfig).forEach(function (providerName) {\n if (typeof vaultConfig[providerName] !== 'string') {\n vaultConfig[providerName] = __assign(__assign({}, vaultConfig[providerName]), {\n level: 'private'\n });\n }\n });\n logger.debug('storage vault configure called');\n\n _instance.vault.configure(vaultConfig);\n };\n\n return _instance;\n};\n\nexport var Storage = getInstance();\nAmplify.register(Storage);\n/**\n * @deprecated use named import\n */\n\nexport default Storage;\nexport { StorageClass };\nexport * from './providers';","!function (t, _) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = _() : \"function\" == typeof define && define.amd ? define(\"aws_amplify_ui\", [], _) : \"object\" == typeof exports ? exports.aws_amplify_ui = _() : t.aws_amplify_ui = _();\n}(this, function () {\n return function (t) {\n var _ = {};\n\n function n(o) {\n if (_[o]) return _[o].exports;\n var e = _[o] = {\n i: o,\n l: !1,\n exports: {}\n };\n return t[o].call(e.exports, e, e.exports, n), e.l = !0, e.exports;\n }\n\n return n.m = t, n.c = _, n.d = function (t, _, o) {\n n.o(t, _) || Object.defineProperty(t, _, {\n enumerable: !0,\n get: o\n });\n }, n.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, n.t = function (t, _) {\n if (1 & _ && (t = n(t)), 8 & _) return t;\n if (4 & _ && \"object\" == typeof t && t && t.__esModule) return t;\n var o = Object.create(null);\n if (n.r(o), Object.defineProperty(o, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & _ && \"string\" != typeof t) for (var e in t) {\n n.d(o, e, function (_) {\n return t[_];\n }.bind(null, e));\n }\n return o;\n }, n.n = function (t) {\n var _ = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n\n return n.d(_, \"a\", _), _;\n }, n.o = function (t, _) {\n return Object.prototype.hasOwnProperty.call(t, _);\n }, n.p = \"\", n(n.s = 0);\n }([function (t, _, n) {\n \"use strict\";\n\n function o(t) {\n for (var n in t) {\n _.hasOwnProperty(n) || (_[n] = t[n]);\n }\n }\n\n Object.defineProperty(_, \"__esModule\", {\n value: !0\n }), o(n(1)), o(n(2)), o(n(3)), o(n(4)), o(n(5)), o(n(6)), o(n(7)), o(n(8)), o(n(9)), o(n(10)), o(n(11)), o(n(12)), o(n(13));\n }, function (t, _, n) {\n t.exports = {\n a: \"Anchor__a___1_Iz8\"\n };\n }, function (t, _, n) {\n t.exports = {\n button: \"Button__button___vS7Mv\",\n signInButton: \"Button__signInButton___3bUH-\",\n googleSignInButton: \"Button__googleSignInButton___1YiCu\",\n signInButtonIcon: \"Button__signInButtonIcon___ihN75\",\n auth0SignInButton: \"Button__auth0SignInButton___znnCj\",\n facebookSignInButton: \"Button__facebookSignInButton___34Txh\",\n amazonSignInButton: \"Button__amazonSignInButton___2EMtl\",\n oAuthSignInButton: \"Button__oAuthSignInButton___3UGOl\",\n signInButtonContent: \"Button__signInButtonContent___xqTXJ\"\n };\n }, function (t, _, n) {\n t.exports = {\n formContainer: \"Form__formContainer___1GA3x\",\n formSection: \"Form__formSection___1PPvW\",\n formField: \"Form__formField___38Ikl\",\n formRow: \"Form__formRow___2mwRs\"\n };\n }, function (t, _, n) {\n t.exports = {\n hint: \"Hint__hint___2XngB\"\n };\n }, function (t, _, n) {\n t.exports = {\n input: \"Input__input___3e_bf\",\n inputLabel: \"Input__inputLabel___3VF0S\",\n label: \"Input__label___23sO8\",\n radio: \"Input__radio___2hllK\"\n };\n }, function (t, _, n) {\n t.exports = {\n navBar: \"Nav__navBar___xtCFA\",\n navRight: \"Nav__navRight___1QG2J\",\n nav: \"Nav__nav___2Dx2Y\",\n navItem: \"Nav__navItem___1LtFQ\"\n };\n }, function (t, _, n) {\n t.exports = {\n photoPickerButton: \"PhotoPicker__photoPickerButton___2XdVn\",\n photoPlaceholder: \"PhotoPicker__photoPlaceholder___2JXO4\",\n photoPlaceholderIcon: \"PhotoPicker__photoPlaceholderIcon___3Et71\"\n };\n }, function (t, _, n) {\n t.exports = {\n container: \"Section__container___3YYTG\",\n actionRow: \"Section__actionRow___2LWSU\",\n sectionHeader: \"Section__sectionHeader___2djyg\",\n sectionHeaderHint: \"Section__sectionHeaderHint___3Wxdc\",\n sectionBody: \"Section__sectionBody___ihqqd\",\n sectionHeaderContent: \"Section__sectionHeaderContent___1UCqa\",\n sectionFooter: \"Section__sectionFooter___1T54C\",\n sectionFooterPrimaryContent: \"Section__sectionFooterPrimaryContent___2r9ZX\",\n sectionFooterSecondaryContent: \"Section__sectionFooterSecondaryContent___Nj41Q\"\n };\n }, function (t, _, n) {\n t.exports = {\n selectInput: \"SelectInput__selectInput___3efO4\"\n };\n }, function (t, _, n) {\n t.exports = {\n strike: \"Strike__strike___1XV1b\",\n strikeContent: \"Strike__strikeContent___10gLb\"\n };\n }, function (t, _, n) {\n t.exports = {\n toast: \"Toast__toast___XXr3v\",\n toastClose: \"Toast__toastClose___18lU4\"\n };\n }, function (t, _, n) {\n t.exports = {\n totpQrcode: \"Totp__totpQrcode___1crLx\"\n };\n }, function (t, _, n) {\n t.exports = {\n sumerianSceneContainer: \"XR__sumerianSceneContainer___3nVMt\",\n sumerianScene: \"XR__sumerianScene___2Tt7-\",\n loadingOverlay: \"XR__loadingOverlay___IbqcI\",\n loadingContainer: \"XR__loadingContainer___2Itxb\",\n loadingLogo: \"XR__loadingLogo___Ub7xQ\",\n loadingSceneName: \"XR__loadingSceneName___3__ne\",\n loadingBar: \"XR__loadingBar___2vcke\",\n loadingBarFill: \"XR__loadingBarFill___3M-D9\",\n sceneErrorText: \"XR__sceneErrorText___2y0tp\",\n sceneBar: \"XR__sceneBar___2ShrP\",\n sceneName: \"XR__sceneName___1ApHr\",\n sceneActions: \"XR__sceneActions___7plGs\",\n actionButton: \"XR__actionButton___2poIM\",\n tooltip: \"XR__tooltip___UYyhn\",\n actionIcon: \"XR__actionIcon___2qnd2\",\n autoShowTooltip: \"XR__autoShowTooltip___V1QH7\"\n };\n }]);\n});","\"use strict\"; // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AwsCrc32 = void 0;\n\nvar tslib_1 = require(\"tslib\");\n\nvar util_1 = require(\"@aws-crypto/util\");\n\nvar index_1 = require(\"./index\");\n\nvar AwsCrc32 =\n/** @class */\nfunction () {\n function AwsCrc32() {\n this.crc32 = new index_1.Crc32();\n }\n\n AwsCrc32.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash)) return;\n this.crc32.update((0, util_1.convertToBuffer)(toHash));\n };\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\n /*return*/\n , (0, util_1.numToUint8)(this.crc32.digest())];\n });\n });\n };\n\n return AwsCrc32;\n}();\n\nexports.AwsCrc32 = AwsCrc32;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\n\nvar tslib_1 = require(\"tslib\");\n\nvar util_1 = require(\"@aws-crypto/util\");\n\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\n\nexports.crc32 = crc32;\n\nvar Crc32 =\n/** @class */\nfunction () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n\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 = this.checksum >>> 8 ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return this;\n };\n\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n\n return Crc32;\n}();\n\nexports.Crc32 = Crc32; // prettier-ignore\n\nvar a_lookUpTable = [0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\n\nvar aws_crc32_1 = require(\"./aws_crc32\");\n\nObject.defineProperty(exports, \"AwsCrc32\", {\n enumerable: true,\n get: function get() {\n return aws_crc32_1.AwsCrc32;\n }\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isMsWindow = void 0;\nvar msSubtleCryptoMethods = [\"decrypt\", \"digest\", \"encrypt\", \"exportKey\", \"generateKey\", \"importKey\", \"sign\", \"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 */\n\n\nfunction isMsWindow(window) {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n var _a = window.msCrypto,\n getRandomValues = _a.getRandomValues,\n subtle_1 = _a.subtle;\n return msSubtleCryptoMethods.map(function (methodName) {\n return subtle_1[methodName];\n }).concat(getRandomValues).every(function (method) {\n return typeof method === \"function\";\n });\n }\n\n return false;\n}\n\nexports.isMsWindow = isMsWindow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\ntslib_1.__exportStar(require(\"./CryptoOperation\"), exports);\n\ntslib_1.__exportStar(require(\"./Key\"), exports);\n\ntslib_1.__exportStar(require(\"./KeyOperation\"), exports);\n\ntslib_1.__exportStar(require(\"./MsSubtleCrypto\"), exports);\n\ntslib_1.__exportStar(require(\"./MsWindow\"), exports);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EMPTY_DATA_SHA_256 = exports.SHA_256_HMAC_ALGO = exports.SHA_256_HASH = void 0;\nexports.SHA_256_HASH = {\n name: \"SHA-256\"\n};\nexports.SHA_256_HMAC_ALGO = {\n name: \"HMAC\",\n hash: exports.SHA_256_HASH\n};\nexports.EMPTY_DATA_SHA_256 = new Uint8Array([227, 176, 196, 66, 152, 252, 28, 20, 154, 251, 244, 200, 153, 111, 185, 36, 39, 174, 65, 228, 100, 155, 147, 76, 164, 149, 153, 27, 120, 82, 184, 85]);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sha256 = void 0;\n\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\n\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\n\nvar sha256_js_1 = require(\"@aws-crypto/sha256-js\");\n\nvar supports_web_crypto_1 = require(\"@aws-crypto/supports-web-crypto\");\n\nvar ie11_detection_1 = require(\"@aws-crypto/ie11-detection\");\n\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\n\nvar Sha256 =\n/** @class */\nfunction () {\n function Sha256(secret) {\n if (supports_web_crypto_1.supportsWebCrypto(util_locate_window_1.locateWindow())) {\n this.hash = new webCryptoSha256_1.Sha256(secret);\n } else if (ie11_detection_1.isMsWindow(util_locate_window_1.locateWindow())) {\n this.hash = new ie11Sha256_1.Sha256(secret);\n } else {\n this.hash = new sha256_js_1.Sha256(secret);\n }\n }\n\n Sha256.prototype.update = function (data, encoding) {\n this.hash.update(data, encoding);\n };\n\n Sha256.prototype.digest = function () {\n return this.hash.digest();\n };\n\n return Sha256;\n}();\n\nexports.Sha256 = Sha256;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sha256 = void 0;\n\nvar isEmptyData_1 = require(\"./isEmptyData\");\n\nvar constants_1 = require(\"./constants\");\n\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\n\nvar Sha256 =\n/** @class */\nfunction () {\n function Sha256(secret) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(function (keyData) {\n return util_locate_window_1.locateWindow().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData);\n });\n this.operation.catch(function () {});\n } else {\n this.operation = Promise.resolve(util_locate_window_1.locateWindow().msCrypto.subtle.digest(\"SHA-256\"));\n }\n }\n\n Sha256.prototype.update = function (toHash) {\n var _this = this;\n\n if (isEmptyData_1.isEmptyData(toHash)) {\n return;\n }\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\n operation.process(toArrayBufferView(toHash));\n return operation;\n });\n this.operation.catch(function () {});\n };\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(\"Error encountered finalizing hash\");\n };\n\n operation.oncomplete = function () {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n\n reject(\"Error encountered finalizing hash\");\n };\n\n operation.finish();\n });\n });\n };\n\n return Sha256;\n}();\n\nexports.Sha256 = Sha256;\n\nfunction getKeyPromise(secret) {\n return new Promise(function (resolve, reject) {\n var keyOperation = util_locate_window_1.locateWindow().msCrypto.subtle.importKey(\"raw\", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]);\n\n keyOperation.oncomplete = function () {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n\n reject(\"ImportKey completed without importing key.\");\n };\n\n keyOperation.onerror = function () {\n reject(\"ImportKey failed to import key.\");\n };\n });\n}\n\nfunction toArrayBufferView(data) {\n if (typeof data === \"string\") {\n return util_utf8_browser_1.fromUtf8(data);\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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\n\nvar tslib_1 = require(\"tslib\");\n\ntslib_1.__exportStar(require(\"./crossPlatformSha256\"), exports);\n\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\n\nObject.defineProperty(exports, \"Ie11Sha256\", {\n enumerable: true,\n get: function get() {\n return ie11Sha256_1.Sha256;\n }\n});\n\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\n\nObject.defineProperty(exports, \"WebCryptoSha256\", {\n enumerable: true,\n get: function get() {\n return webCryptoSha256_1.Sha256;\n }\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isEmptyData = void 0;\n\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n\nexports.isEmptyData = isEmptyData;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sha256 = void 0;\n\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n\nvar isEmptyData_1 = require(\"./isEmptyData\");\n\nvar constants_1 = require(\"./constants\");\n\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\n\nvar Sha256 =\n/** @class */\nfunction () {\n function Sha256(secret) {\n this.toHash = new Uint8Array(0);\n\n if (secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n util_locate_window_1.locateWindow().crypto.subtle.importKey(\"raw\", convertToBuffer(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]).then(resolve, reject);\n });\n this.key.catch(function () {});\n }\n }\n\n Sha256.prototype.update = function (data) {\n if (isEmptyData_1.isEmptyData(data)) {\n return;\n }\n\n var update = 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\n Sha256.prototype.digest = function () {\n var _this = this;\n\n if (this.key) {\n return this.key.then(function (key) {\n return util_locate_window_1.locateWindow().crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash).then(function (data) {\n return new Uint8Array(data);\n });\n });\n }\n\n if (isEmptyData_1.isEmptyData(this.toHash)) {\n return Promise.resolve(constants_1.EMPTY_DATA_SHA_256);\n }\n\n return Promise.resolve().then(function () {\n return util_locate_window_1.locateWindow().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash);\n }).then(function (data) {\n return Promise.resolve(new Uint8Array(data));\n });\n };\n\n return Sha256;\n}();\n\nexports.Sha256 = Sha256;\n\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return util_utf8_browser_1.fromUtf8(data);\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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RawSha256 = void 0;\n\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\n\n\nvar RawSha256 =\n/** @class */\nfunction () {\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\n this.finished = false;\n }\n\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > constants_1.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\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\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); // Ensure the final block has enough room for the hashed length\n\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\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\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 } // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n\n\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n\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\n return out;\n };\n\n RawSha256.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n\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\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (buffer[i * 4] & 0xff) << 24 | (buffer[i * 4 + 1] & 0xff) << 16 | (buffer[i * 4 + 2] & 0xff) << 8 | buffer[i * 4 + 3] & 0xff;\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] = (t1_1 + this.temp[i - 7] | 0) + (t2_1 + this.temp[i - 16] | 0);\n }\n\n var t1 = (((state4 >>> 6 | state4 << 26) ^ (state4 >>> 11 | state4 << 21) ^ (state4 >>> 25 | state4 << 7)) + (state4 & state5 ^ ~state4 & state6) | 0) + (state7 + (constants_1.KEY[i] + this.temp[i] | 0) | 0) | 0;\n var t2 = ((state0 >>> 2 | state0 << 30) ^ (state0 >>> 13 | state0 << 19) ^ (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\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\n return RawSha256;\n}();\n\nexports.RawSha256 = RawSha256;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\n\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\n\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\n\nexports.KEY = new Uint32Array([0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]);\n/**\n * @internal\n */\n\nexports.INIT = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n/**\n * @internal\n */\n\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\ntslib_1.__exportStar(require(\"./jsSha256\"), exports);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sha256 = void 0;\n\nvar tslib_1 = require(\"tslib\");\n\nvar constants_1 = require(\"./constants\");\n\nvar RawSha256_1 = require(\"./RawSha256\");\n\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n\nvar Sha256 =\n/** @class */\nfunction () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n\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\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer); // overwrite the copied key in memory\n\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n Sha256.prototype.update = function (toHash) {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n\n\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\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\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\n /*return*/\n , this.digestSync()];\n });\n });\n };\n\n return Sha256;\n}();\n\nexports.Sha256 = Sha256;\n\nfunction bufferFromSecret(secret) {\n var input = convertToBuffer(secret);\n\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\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return util_utf8_browser_1.fromUtf8(data);\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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\ntslib_1.__exportStar(require(\"./supportsWebCrypto\"), exports);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.supportsZeroByteGCM = exports.supportsSubtleCrypto = exports.supportsSecureRandom = exports.supportsWebCrypto = void 0;\n\nvar tslib_1 = require(\"tslib\");\n\nvar subtleCryptoMethods = [\"decrypt\", \"digest\", \"encrypt\", \"exportKey\", \"generateKey\", \"importKey\", \"sign\", \"verify\"];\n\nfunction supportsWebCrypto(window) {\n if (supportsSecureRandom(window) && typeof window.crypto.subtle === \"object\") {\n var subtle = window.crypto.subtle;\n return supportsSubtleCrypto(subtle);\n }\n\n return false;\n}\n\nexports.supportsWebCrypto = supportsWebCrypto;\n\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\n return false;\n}\n\nexports.supportsSecureRandom = supportsSecureRandom;\n\nfunction supportsSubtleCrypto(subtle) {\n return subtle && subtleCryptoMethods.every(function (methodName) {\n return typeof subtle[methodName] === \"function\";\n });\n}\n\nexports.supportsSubtleCrypto = supportsSubtleCrypto;\n\nfunction supportsZeroByteGCM(subtle) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var key, zeroByteAuthTag, _a;\n\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!supportsSubtleCrypto(subtle)) return [2\n /*return*/\n , false];\n _b.label = 1;\n\n case 1:\n _b.trys.push([1, 4,, 5]);\n\n return [4\n /*yield*/\n , subtle.generateKey({\n name: \"AES-GCM\",\n length: 128\n }, false, [\"encrypt\"])];\n\n case 2:\n key = _b.sent();\n return [4\n /*yield*/\n , 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\n case 3:\n zeroByteAuthTag = _b.sent();\n return [2\n /*return*/\n , zeroByteAuthTag.byteLength === 16];\n\n case 4:\n _a = _b.sent();\n return [2\n /*return*/\n , false];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nexports.supportsZeroByteGCM = supportsZeroByteGCM;","\"use strict\"; // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.convertToBuffer = void 0;\n\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\"); // Quick polyfill\n\n\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from ? function (input) {\n return Buffer.from(input, \"utf8\");\n} : util_utf8_browser_1.fromUtf8;\n\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\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\nexports.convertToBuffer = convertToBuffer;","\"use strict\"; // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\n\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\n\nObject.defineProperty(exports, \"convertToBuffer\", {\n enumerable: true,\n get: function get() {\n return convertToBuffer_1.convertToBuffer;\n }\n});\n\nvar isEmptyData_1 = require(\"./isEmptyData\");\n\nObject.defineProperty(exports, \"isEmptyData\", {\n enumerable: true,\n get: function get() {\n return isEmptyData_1.isEmptyData;\n }\n});\n\nvar numToUint8_1 = require(\"./numToUint8\");\n\nObject.defineProperty(exports, \"numToUint8\", {\n enumerable: true,\n get: function get() {\n return numToUint8_1.numToUint8;\n }\n});\n\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\n\nObject.defineProperty(exports, \"uint32ArrayFrom\", {\n enumerable: true,\n get: function get() {\n return uint32ArrayFrom_1.uint32ArrayFrom;\n }\n});","\"use strict\"; // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isEmptyData = void 0;\n\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n\nexports.isEmptyData = isEmptyData;","\"use strict\"; // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.numToUint8 = void 0;\n\nfunction numToUint8(num) {\n return new Uint8Array([(num & 0xff000000) >> 24, (num & 0x00ff0000) >> 16, (num & 0x0000ff00) >> 8, num & 0x000000ff]);\n}\n\nexports.numToUint8 = numToUint8;","\"use strict\"; // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.uint32ArrayFrom = void 0; // IE 11 does not support Array.from, so we do it manually\n\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n }\n\n return return_array;\n }\n\n return Uint32Array.from(a_lookUpTable);\n}\n\nexports.uint32ArrayFrom = uint32ArrayFrom;","/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n 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,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\n}\nexport function __spreadArray(to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\n to[j] = from[i];\n }\n\n return to;\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\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 || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n 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) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : 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],\n 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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\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) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n 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}\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}","/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n 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,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\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}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\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 || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n 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) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : 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],\n 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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\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) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n 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}\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}","/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n 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,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\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}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\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 || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n 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) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : 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],\n 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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\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) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n 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}\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}","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var resolveEndpointsConfig = function resolveEndpointsConfig(input) {\n var _a;\n\n return __assign(__assign({}, input), {\n tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true,\n endpoint: input.endpoint ? normalizeEndpoint(input) : function () {\n return getEndPointFromRegion(input);\n },\n isCustomEndpoint: input.endpoint ? true : false\n });\n};\n\nvar normalizeEndpoint = function normalizeEndpoint(input) {\n var endpoint = input.endpoint,\n urlParser = input.urlParser;\n\n if (typeof endpoint === \"string\") {\n var promisified_1 = Promise.resolve(urlParser(endpoint));\n return function () {\n return promisified_1;\n };\n } else if (typeof endpoint === \"object\") {\n var promisified_2 = Promise.resolve(endpoint);\n return function () {\n return promisified_2;\n };\n }\n\n return endpoint;\n};\n\nvar getEndPointFromRegion = function getEndPointFromRegion(input) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, tls, region, dnsHostRegex, hostname;\n\n var _b;\n\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\n /*yield*/\n , input.region()];\n\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\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n\n return [4\n /*yield*/\n , input.regionInfoProvider(region)];\n\n case 2:\n hostname = ((_b = _c.sent()) !== null && _b !== void 0 ? _b : {}).hostname;\n\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n\n return [2\n /*return*/\n , input.urlParser((tls ? \"https:\" : \"http:\") + \"//\" + hostname)];\n }\n });\n });\n};","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 environmentVariableSelector(env) {\n return env[REGION_ENV_NAME];\n },\n configFileSelector: function configFileSelector(profile) {\n return profile[REGION_INI_NAME];\n },\n default: function _default() {\n throw new Error(\"Region is missing\");\n }\n};\nexport var NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\nexport var resolveRegionConfig = function resolveRegionConfig(input) {\n if (!input.region) {\n throw new Error(\"Region is missing\");\n }\n\n return __assign(__assign({}, input), {\n region: normalizeRegion(input.region)\n });\n};\n\nvar normalizeRegion = function normalizeRegion(region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () {\n return promisified_1;\n };\n }\n\n return region;\n};","import { __values } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\n\nvar FetchHttpHandler =\n/** @class */\nfunction () {\n function FetchHttpHandler(_a) {\n var _b = _a === void 0 ? {} : _a,\n requestTimeout = _b.requestTimeout;\n\n this.requestTimeout = requestTimeout;\n }\n\n FetchHttpHandler.prototype.destroy = function () {// Do nothing. TLS and HTTP/2 connection pooling is handled by the browser.\n };\n\n FetchHttpHandler.prototype.handle = function (request, _a) {\n var _b = _a === void 0 ? {} : _a,\n abortSignal = _b.abortSignal;\n\n var requestTimeoutInMs = this.requestTimeout; // if the request was already aborted, prevent doing extra work\n\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\n var path = request.path;\n\n if (request.query) {\n var queryString = buildQueryString(request.query);\n\n if (queryString) {\n path += \"?\" + queryString;\n }\n }\n\n var port = request.port,\n method = request.method;\n var url = request.protocol + \"//\" + request.hostname + (port ? \":\" + port : \"\") + path; // Request constructor doesn't allow GET/HEAD request with body\n // ref: https://github.com/whatwg/fetch/issues/551\n\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 }; // some browsers support abort signal\n\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n\n var fetchRequest = new Request(url, requestOptions);\n var raceOfPromises = [fetch(fetchRequest).then(function (response) {\n var e_1, _a;\n\n var fetchHeaders = response.headers;\n var transformedHeaders = {};\n\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 } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var hasReadableStream = response.body !== undefined; // Return the response with buffered body\n\n if (!hasReadableStream) {\n return response.blob().then(function (body) {\n 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\n\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body\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\n return Promise.race(raceOfPromises);\n };\n\n return FetchHttpHandler;\n}();\n\nexport { FetchHttpHandler };","export function requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) {\n timeoutInMs = 0;\n }\n\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}","import { __awaiter, __generator } from \"tslib\";\nimport { fromBase64 } from \"@aws-sdk/util-base64-browser\"; //reference: https://snack.expo.io/r1JCSWRGU\n\nexport var streamCollector = function streamCollector(stream) {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n\n return collectStream(stream);\n};\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:\n return [4\n /*yield*/\n , readToBase64(blob)];\n\n case 1:\n base64 = _a.sent();\n arrayBuffer = fromBase64(base64);\n return [2\n /*return*/\n , new Uint8Array(arrayBuffer)];\n }\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\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\n case 1:\n if (!!isDone) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , reader.read()];\n\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n\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\n isDone = done;\n return [3\n /*break*/\n , 1];\n\n case 3:\n return [2\n /*return*/\n , res];\n }\n });\n });\n}\n\nfunction readToBase64(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onloadend = function () {\n var _a; // reference: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n // response from readAsDataURL is always prepended with \"data:*/*;base64,\"\n\n\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n\n var result = (_a = reader.result) !== null && _a !== void 0 ? _a : \"\"; // Response can include only 'data:' for empty blob, return empty string in this case.\n // Otherwise, return the string after ','\n\n var commaIndex = result.indexOf(\",\");\n var dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n\n reader.onabort = function () {\n return reject(new Error(\"Read aborted\"));\n };\n\n reader.onerror = function () {\n return reject(reader.error);\n }; // reader.readAsArrayBuffer is not always available\n\n\n reader.readAsDataURL(blob);\n });\n}","export var invalidProvider = function invalidProvider(message) {\n return function () {\n return Promise.reject(message);\n };\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n var _this = this;\n\n return function (next) {\n return function (args) {\n return __awaiter(_this, void 0, void 0, function () {\n var request, body, headers, length;\n\n var _a;\n\n return __generator(this, function (_b) {\n request = args.request;\n\n if (HttpRequest.isInstance(request)) {\n body = request.body, headers = request.headers;\n\n if (body && Object.keys(headers).map(function (str) {\n return str.toLowerCase();\n }).indexOf(CONTENT_LENGTH_HEADER) === -1) {\n length = bodyLengthChecker(body);\n\n if (length !== undefined) {\n request.headers = __assign(__assign({}, request.headers), (_a = {}, _a[CONTENT_LENGTH_HEADER] = String(length), _a));\n }\n }\n }\n\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n request: request\n }))];\n });\n });\n };\n };\n}\nexport var contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true\n};\nexport var getContentLengthPlugin = function getContentLengthPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n }\n };\n};","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport var hostHeaderMiddleware = function hostHeaderMiddleware(options) {\n return function (next) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var request, _a, handlerProtocol;\n\n return __generator(this, function (_b) {\n if (!HttpRequest.isInstance(args.request)) return [2\n /*return*/\n , next(args)];\n request = args.request;\n _a = (options.requestHandler.metadata || {}).handlerProtocol, handlerProtocol = _a === void 0 ? \"\" : _a; //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\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\"; //non-H2 request and 'host' header is not set, set the 'host' header to request's hostname.\n } else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n\n return [2\n /*return*/\n , next(args)];\n });\n });\n };\n };\n};\nexport var hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nexport var getHostHeaderPlugin = function getHostHeaderPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }\n };\n};","import { __awaiter, __generator, __rest } from \"tslib\";\nexport var loggerMiddleware = function loggerMiddleware() {\n return function (next, context) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog, response, _a, $metadata, outputWithoutMetadata;\n\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\n /*yield*/\n , next(args)];\n\n case 1:\n response = _b.sent();\n\n if (!logger) {\n return [2\n /*return*/\n , response];\n }\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\n return [2\n /*return*/\n , response];\n }\n });\n });\n };\n };\n};\nexport var loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n}; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\nexport var getLoggerPlugin = function getLoggerPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }\n };\n};","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nexport var retryMiddleware = function retryMiddleware(options) {\n return function (next, context) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n\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) context.userAgent = __spread(context.userAgent || [], [[\"cfg/retry-mode\", options.retryStrategy.mode]]);\n return [2\n /*return*/\n , options.retryStrategy.retry(next, args)];\n });\n });\n };\n };\n};\nexport var retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true\n};\nexport var getRetryPlugin = function getRetryPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n }\n };\n};","/**\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 = [\"AuthFailure\", \"InvalidSignatureException\", \"RequestExpired\", \"RequestInTheFuture\", \"RequestTimeTooSkewed\", \"SignatureDoesNotMatch\"];\n/**\n * Errors that indicate the SDK is being throttled.\n *\n * These errors are always retryable.\n */\n\nexport var THROTTLING_ERROR_CODES = [\"BandwidthLimitExceeded\", \"EC2ThrottledException\", \"LimitExceededException\", \"PriorRequestNotComplete\", \"ProvisionedThroughputExceededException\", \"RequestLimitExceeded\", \"RequestThrottled\", \"RequestThrottledException\", \"SlowDown\", \"ThrottledException\", \"Throttling\", \"ThrottlingException\", \"TooManyRequestsException\", \"TransactionInProgressException\"];\n/**\n * Error codes that indicate transient issues\n */\n\nexport var TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\n/**\n * Error codes that indicate transient issues\n */\n\nexport var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];","import { CLOCK_SKEW_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES } from \"./constants\";\nexport var isRetryableByTrait = function isRetryableByTrait(error) {\n return error.$retryable !== undefined;\n};\nexport var isClockSkewError = function isClockSkewError(error) {\n return CLOCK_SKEW_ERROR_CODES.includes(error.name);\n};\nexport var isThrottlingError = function isThrottlingError(error) {\n var _a, _b;\n\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 || THROTTLING_ERROR_CODES.includes(error.name) || ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexport var isTransientError = function isTransientError(error) {\n var _a;\n\n return TRANSIENT_ERROR_CODES.includes(error.name) || TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\n/**\n * Calculate a capped, fully-jittered exponential backoff time.\n */\n\nexport var defaultDelayDecider = function defaultDelayDecider(delayBase, attempts) {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * Math.pow(2, attempts) * delayBase));\n};","/**\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 */\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 */\n\nexport var THROTTLING_RETRY_DELAY_BASE = 500;\n/**\n * Initial number of retry tokens in Retry Quota\n */\n\nexport var INITIAL_RETRY_TOKENS = 500;\n/**\n * The total amount of retry tokens to be decremented from retry token balance.\n */\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 */\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 */\n\nexport var NO_RETRY_INCREMENT = 1;\n/**\n * Header name for SDK invocation ID\n */\n\nexport var INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\n/**\n * Header name for request retry information.\n */\n\nexport var REQUEST_HEADER = \"amz-sdk-request\";","import { isClockSkewError, isRetryableByTrait, isThrottlingError, isTransientError } from \"@aws-sdk/service-error-classification\";\nexport var defaultRetryDecider = function defaultRetryDecider(error) {\n if (!error) {\n return false;\n }\n\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};","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 */\n\nexport var DEFAULT_MAX_ATTEMPTS = 3;\n/**\n * The default retry algorithm to use.\n */\n\nexport var DEFAULT_RETRY_MODE = \"standard\";\n\nvar StandardRetryStrategy =\n/** @class */\nfunction () {\n function StandardRetryStrategy(maxAttemptsProvider, options) {\n var _a, _b, _c;\n\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\n StandardRetryStrategy.prototype.shouldRetry = function (error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n };\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\n return [4\n /*yield*/\n , this.maxAttemptsProvider()];\n\n case 1:\n maxAttempts = _a.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n error_1 = _a.sent();\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n return [3\n /*break*/\n , 3];\n\n case 3:\n return [2\n /*return*/\n , maxAttempts];\n }\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\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempts = 0;\n totalDelay = 0;\n return [4\n /*yield*/\n , this.getMaxAttempts()];\n\n case 1:\n maxAttempts = _a.sent();\n request = args.request;\n\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n\n _loop_1 = function _loop_1() {\n var _a, response, output, err_1, delay_1;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2,, 5]);\n\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = \"attempt=\" + (attempts + 1) + \"; max=\" + maxAttempts;\n }\n\n return [4\n /*yield*/\n , next(args)];\n\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\n /*return*/\n , {\n value: {\n response: response,\n output: output\n }\n }];\n\n case 2:\n err_1 = _b.sent();\n attempts++;\n if (!this_1.shouldRetry(err_1, attempts, maxAttempts)) return [3\n /*break*/\n , 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\n /*yield*/\n , new Promise(function (resolve) {\n return setTimeout(resolve, delay_1);\n })];\n\n case 3:\n _b.sent();\n\n return [2\n /*return*/\n , \"continue\"];\n\n case 4:\n if (!err_1.$metadata) {\n err_1.$metadata = {};\n }\n\n err_1.$metadata.attempts = attempts;\n err_1.$metadata.totalRetryDelay = totalDelay;\n throw err_1;\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n };\n\n this_1 = this;\n _a.label = 2;\n\n case 2:\n if (!true) return [3\n /*break*/\n , 4];\n return [5\n /*yield**/\n , _loop_1()];\n\n case 3:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\") return [2\n /*return*/\n , state_1.value];\n return [3\n /*break*/\n , 2];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n return StandardRetryStrategy;\n}();\n\nexport { StandardRetryStrategy };","import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"./constants\";\nexport var getDefaultRetryQuota = function getDefaultRetryQuota(initialRetryTokens) {\n var MAX_CAPACITY = initialRetryTokens;\n var availableCapacity = initialRetryTokens;\n\n var getCapacityAmount = function getCapacityAmount(error) {\n return error.name === \"TimeoutError\" ? TIMEOUT_RETRY_COST : RETRY_COST;\n };\n\n var hasRetryTokens = function hasRetryTokens(error) {\n return getCapacityAmount(error) <= availableCapacity;\n };\n\n var retrieveRetryTokens = function retrieveRetryTokens(error) {\n if (!hasRetryTokens(error)) {\n // retryStrategy should stop retrying, and return last error\n throw new Error(\"No retry token available\");\n }\n\n var capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n\n var releaseRetryTokens = function releaseRetryTokens(capacityReleaseAmount) {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : NO_RETRY_INCREMENT;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n\n return Object.freeze({\n hasRetryTokens: hasRetryTokens,\n retrieveRetryTokens: retrieveRetryTokens,\n releaseRetryTokens: releaseRetryTokens\n });\n};","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 environmentVariableSelector(env) {\n var value = env[ENV_MAX_ATTEMPTS];\n if (!value) return undefined;\n var maxAttempt = parseInt(value);\n\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Environment variable \" + ENV_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n\n return maxAttempt;\n },\n configFileSelector: function configFileSelector(profile) {\n var value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value) return undefined;\n var maxAttempt = parseInt(value);\n\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Shared config file entry \" + CONFIG_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS\n};\nexport var resolveRetryConfig = function resolveRetryConfig(input) {\n var maxAttempts = normalizeMaxAttempts(input.maxAttempts);\n return __assign(__assign({}, input), {\n maxAttempts: maxAttempts,\n retryStrategy: input.retryStrategy || new StandardRetryStrategy(maxAttempts)\n });\n};\n\nvar normalizeMaxAttempts = function normalizeMaxAttempts(maxAttempts) {\n if (maxAttempts === void 0) {\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n }\n\n if (typeof maxAttempts === \"number\") {\n var promisified_1 = Promise.resolve(maxAttempts);\n return function () {\n return promisified_1;\n };\n }\n\n return maxAttempts;\n};\n\nexport var ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport var CONFIG_RETRY_MODE = \"retry_mode\";\nexport var NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: function environmentVariableSelector(env) {\n return env[ENV_RETRY_MODE];\n },\n configFileSelector: function configFileSelector(profile) {\n return profile[CONFIG_RETRY_MODE];\n },\n default: DEFAULT_RETRY_MODE\n};","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport var deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true\n};\nexport var serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: function applyToStack(commandStack) {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n }\n };\n}","import { __awaiter, __generator } from \"tslib\";\nexport var deserializerMiddleware = function deserializerMiddleware(options, deserializer) {\n return function (next, context) {\n return function (args) {\n 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:\n return [4\n /*yield*/\n , next(args)];\n\n case 1:\n response = _a.sent().response;\n return [4\n /*yield*/\n , deserializer(response, options)];\n\n case 2:\n parsed = _a.sent();\n return [2\n /*return*/\n , {\n response: response,\n output: parsed\n }];\n }\n });\n });\n };\n };\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var serializerMiddleware = function serializerMiddleware(options, serializer) {\n return function (next, context) {\n return function (args) {\n 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:\n return [4\n /*yield*/\n , serializer(args.input, options)];\n\n case 1:\n request = _a.sent();\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n request: request\n }))];\n }\n });\n });\n };\n };\n};","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nexport function resolveAwsAuthConfig(input) {\n var _this = this;\n\n var credentials = input.credentials || input.credentialDefaultProvider(input);\n var normalizedCreds = normalizeProvider(credentials);\n var _a = input.signingEscapePath,\n signingEscapePath = _a === void 0 ? true : _a,\n _b = input.systemClockOffset,\n systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b,\n sha256 = input.sha256;\n var signer;\n\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 } else {\n //construct a provider inferring signing from region.\n signer = function signer() {\n return normalizeProvider(input.region)().then(function (region) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , input.regionInfoProvider(region)];\n\n case 1:\n return [2\n /*return*/\n , [_a.sent() || {}, region]];\n }\n });\n });\n }).then(function (_a) {\n var _b = __read(_a, 2),\n regionInfo = _b[0],\n region = _b[1];\n\n var signingRegion = regionInfo.signingRegion,\n signingService = regionInfo.signingService; //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\n input.signingRegion = input.signingRegion || signingRegion || region; //signing name resolving order:\n //user supplied signingName -> endpoints.json inferred (credential scope -> model arnNamespace) -> model service id\n\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\n return __assign(__assign({}, input), {\n systemClockOffset: systemClockOffset,\n signingEscapePath: signingEscapePath,\n credentials: normalizedCreds,\n signer: signer\n });\n}\n\nfunction normalizeProvider(input) {\n if (typeof input === \"object\") {\n var promisified_1 = Promise.resolve(input);\n return function () {\n return promisified_1;\n };\n }\n\n return input;\n}","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\n\nvar isClockSkewed = function isClockSkewed(newServerTime, systemClockOffset) {\n return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - newServerTime) >= 300000;\n};\n\nvar getSkewCorrectedDate = function getSkewCorrectedDate(systemClockOffset) {\n return new Date(Date.now() + systemClockOffset);\n};\n\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\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!HttpRequest.isInstance(args.request)) return [2\n /*return*/\n , next(args)];\n if (!(typeof options.signer === \"function\")) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , options.signer()];\n\n case 1:\n _a = _e.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n _a = options.signer;\n _e.label = 3;\n\n case 3:\n signer = _a;\n _b = next;\n _c = [__assign({}, args)];\n _d = {};\n return [4\n /*yield*/\n , signer.sign(args.request, {\n signingDate: new Date(Date.now() + options.systemClockOffset),\n signingRegion: context[\"signing_region\"],\n signingService: context[\"signing_service\"]\n })];\n\n case 4:\n return [4\n /*yield*/\n , _b.apply(void 0, [__assign.apply(void 0, _c.concat([(_d.request = _e.sent(), _d)]))])];\n\n case 5:\n output = _e.sent();\n headers = output.response.headers;\n dateHeader = headers && (headers.date || headers.Date);\n\n if (dateHeader) {\n serverTime = Date.parse(dateHeader);\n\n if (isClockSkewed(serverTime, options.systemClockOffset)) {\n options.systemClockOffset = serverTime - Date.now();\n }\n }\n\n return [2\n /*return*/\n , 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 getAwsAuthPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\n }\n };\n};","import { __assign } from \"tslib\";\nexport function resolveUserAgentConfig(input) {\n return __assign(__assign({}, input), {\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent\n });\n}","export var USER_AGENT = \"user-agent\";\nexport var X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport var SPACE = \" \";\nexport var UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;","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 */\n\nexport var userAgentMiddleware = function userAgentMiddleware(options) {\n return function (next, context) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var request, headers, userAgent, defaultUserAgent, customUserAgent, normalUAValue;\n\n var _a, _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request)) return [2\n /*return*/\n , 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\n /*yield*/\n , options.defaultUserAgentProvider()];\n\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)) || []; // Set value to AWS-specific user agent header\n\n headers[X_AMZ_USER_AGENT] = __spread(defaultUserAgent, userAgent, customUserAgent).join(SPACE);\n normalUAValue = __spread(defaultUserAgent.filter(function (section) {\n return section.startsWith(\"aws-sdk-\");\n }), customUserAgent).join(SPACE);\n\n if (options.runtime !== \"browser\" && normalUAValue) {\n headers[USER_AGENT] = headers[USER_AGENT] ? headers[USER_AGENT] + \" \" + normalUAValue : normalUAValue;\n }\n\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n request: request\n }))];\n }\n });\n });\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 */\n\nvar escapeUserAgent = function escapeUserAgent(_a) {\n var _b = __read(_a, 2),\n name = _b[0],\n version = _b[1];\n\n var prefixSeparatorIndex = name.indexOf(\"/\");\n var prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just \"\"\n\n var uaName = name.substring(prefixSeparatorIndex + 1);\n\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n\n return [prefix, uaName, version].filter(function (item) {\n return item && item.length > 0;\n }).map(function (item) {\n return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, \"_\");\n }).join(\"/\");\n};\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 getUserAgentPlugin(config) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }\n };\n};","var HttpResponse =\n/** @class */\nfunction () {\n function HttpResponse(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n\n HttpResponse.isInstance = function (response) {\n //determine if response is a valid HttpResponse\n if (!response) return false;\n var resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n };\n\n return HttpResponse;\n}();\n\nexport { HttpResponse };","import { __assign, __read, __spread } from \"tslib\";\n\nvar HttpRequest =\n/** @class */\nfunction () {\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 ? options.protocol.substr(-1) !== \":\" ? options.protocol + \":\" : options.protocol : \"https:\";\n this.path = options.path ? options.path.charAt(0) !== \"/\" ? \"/\" + options.path : options.path : \"/\";\n }\n\n HttpRequest.isInstance = function (request) {\n //determine if request is a valid httpRequest\n if (!request) return false;\n var req = request;\n return \"method\" in req && \"protocol\" in req && \"hostname\" in req && \"path\" in req && typeof req[\"query\"] === \"object\" && typeof req[\"headers\"] === \"object\";\n };\n\n HttpRequest.prototype.clone = function () {\n var cloned = new HttpRequest(__assign(__assign({}, this), {\n headers: __assign({}, this.headers)\n }));\n if (cloned.query) cloned.query = cloneQuery(cloned.query);\n return cloned;\n };\n\n return HttpRequest;\n}();\n\nexport { HttpRequest };\n\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n var e_1, _a;\n\n var parts = [];\n\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\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 } else {\n var qsEntry = key;\n\n if (value || typeof value === \"string\") {\n qsEntry += \"=\" + escapeUri(value);\n }\n\n parts.push(qsEntry);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return parts.join(\"&\");\n}","export var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport var TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport var AUTH_HEADER = \"authorization\";\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var DATE_HEADER = \"date\";\nexport var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport var SHA256_HEADER = \"x-amz-content-sha256\";\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport var HOST_HEADER = \"host\";\nexport var ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true\n};\nexport var PROXY_HEADER_PATTERN = /^proxy-/;\nexport var SEC_HEADER_PATTERN = /^sec-/;\nexport var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport var EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var MAX_CACHE_SIZE = 50;\nexport var KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;","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 */\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 */\n\nexport var getSigningKey = function getSigningKey(sha256Constructor, credentials, shortDate, region, service) {\n return __awaiter(void 0, void 0, void 0, function () {\n var credsHash, cacheKey, key, _a, _b, signable, e_1_1;\n\n var e_1, _c;\n\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n return [4\n /*yield*/\n , hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId)];\n\n case 1:\n credsHash = _d.sent();\n cacheKey = shortDate + \":\" + region + \":\" + service + \":\" + toHex(credsHash) + \":\" + credentials.sessionToken;\n\n if (cacheKey in signingKeyCache) {\n return [2\n /*return*/\n , signingKeyCache[cacheKey]];\n }\n\n cacheQueue.push(cacheKey);\n\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n\n key = \"AWS4\" + credentials.secretAccessKey;\n _d.label = 2;\n\n case 2:\n _d.trys.push([2, 7, 8, 9]);\n\n _a = __values([shortDate, region, service, KEY_TYPE_IDENTIFIER]), _b = _a.next();\n _d.label = 3;\n\n case 3:\n if (!!_b.done) return [3\n /*break*/\n , 6];\n signable = _b.value;\n return [4\n /*yield*/\n , hmac(sha256Constructor, key, signable)];\n\n case 4:\n key = _d.sent();\n _d.label = 5;\n\n case 5:\n _b = _a.next();\n return [3\n /*break*/\n , 3];\n\n case 6:\n return [3\n /*break*/\n , 9];\n\n case 7:\n e_1_1 = _d.sent();\n e_1 = {\n error: e_1_1\n };\n return [3\n /*break*/\n , 9];\n\n case 8:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n } finally {\n if (e_1) throw e_1.error;\n }\n\n return [7\n /*endfinally*/\n ];\n\n case 9:\n return [2\n /*return*/\n , signingKeyCache[cacheKey] = key];\n }\n });\n });\n};\n/**\n * @internal\n */\n\nexport function clearCredentialCache() {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach(function (cacheKey) {\n delete signingKeyCache[cacheKey];\n });\n}\n\nfunction hmac(ctor, secret, data) {\n var hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n}","import { __values } from \"tslib\";\nimport { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\n/**\n * @internal\n */\n\nexport function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) {\n var e_1, _b;\n\n var headers = _a.headers;\n var canonical = {};\n\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\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) || PROXY_HEADER_PATTERN.test(canonicalHeaderName) || SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || signableHeaders && !signableHeaders.has(canonicalHeaderName)) {\n continue;\n }\n }\n\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return canonical;\n}","import { __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\n/**\n * @internal\n */\n\nexport function getPayloadHash(_a, hashConstructor) {\n var headers = _a.headers,\n body = _a.body;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, headerName, hashCtor, _d;\n\n var e_1, _e;\n\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\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return [2\n /*return*/\n , headers[headerName]];\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_e = _b.return)) _e.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n if (!(body == undefined)) return [3\n /*break*/\n , 1];\n return [2\n /*return*/\n , \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"];\n\n case 1:\n if (!(typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body))) return [3\n /*break*/\n , 3];\n hashCtor = new hashConstructor();\n hashCtor.update(body);\n _d = toHex;\n return [4\n /*yield*/\n , hashCtor.digest()];\n\n case 2:\n return [2\n /*return*/\n , _d.apply(void 0, [_f.sent()])];\n\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\n /*return*/\n , UNSIGNED_PAYLOAD];\n }\n });\n });\n}","export var isArrayBuffer = function isArrayBuffer(arg) {\n return typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n};","import { __assign, __read, __rest, __spread } from \"tslib\";\n/**\n * @internal\n */\n\nexport function cloneRequest(_a) {\n var headers = _a.headers,\n query = _a.query,\n rest = __rest(_a, [\"headers\", \"query\"]);\n\n return __assign(__assign({}, rest), {\n headers: __assign({}, headers),\n query: query ? cloneQuery(query) : undefined\n });\n}\n\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}","import { __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\n/**\n * @internal\n */\n\nexport function prepareRequest(request) {\n var e_1, _a; // Create a clone of the request object that does not clone the body\n\n\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n\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\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return request;\n}","export function iso8601(time) {\n return toDate(time).toISOString().replace(/\\.\\d{3}Z$/, \"Z\");\n}\nexport function toDate(time) {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n\n return new Date(time);\n }\n\n return time;\n}","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\";\n\nvar SignatureV4 =\n/** @class */\nfunction () {\n function SignatureV4(_a) {\n var applyChecksum = _a.applyChecksum,\n credentials = _a.credentials,\n region = _a.region,\n service = _a.service,\n sha256 = _a.sha256,\n _b = _a.uriEscapePath,\n uriEscapePath = _b === void 0 ? true : _b;\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath; // default to true if applyChecksum isn't set\n\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeRegionProvider(region);\n this.credentialProvider = normalizeCredentialsProvider(credentials);\n }\n\n SignatureV4.prototype.presign = function (originalRequest, options) {\n if (options === void 0) {\n options = {};\n }\n\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\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\n /*yield*/\n , this.credentialProvider()];\n\n case 1:\n credentials = _l.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3\n /*break*/\n , 2];\n _c = signingRegion;\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , this.regionProvider()];\n\n case 3:\n _c = _l.sent();\n _l.label = 4;\n\n case 4:\n region = _c;\n _d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return [2\n /*return*/\n , Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\")];\n }\n\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request = moveHeadersToQuery(prepareRequest(originalRequest), {\n unhoistableHeaders: unhoistableHeaders\n });\n\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\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, scope, this.getSigningKey(credentials, region, shortDate, signingService)];\n _j = this.createCanonicalRequest;\n _k = [request, canonicalHeaders];\n return [4\n /*yield*/\n , getPayloadHash(originalRequest, this.sha256)];\n\n case 5:\n return [4\n /*yield*/\n , _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))];\n\n case 6:\n _e[_f] = _l.sent();\n return [2\n /*return*/\n , request];\n }\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\n /*return*/\n , this.signString(toSign, options)];\n } else if (toSign.headers && toSign.payload) {\n return [2\n /*return*/\n , this.signEvent(toSign, options)];\n } else {\n return [2\n /*return*/\n , this.signRequest(toSign, options)];\n }\n\n return [2\n /*return*/\n ];\n });\n });\n };\n\n SignatureV4.prototype.signEvent = function (_a, _b) {\n var headers = _a.headers,\n payload = _a.payload;\n var _c = _b.signingDate,\n signingDate = _c === void 0 ? new Date() : _c,\n priorSignature = _b.priorSignature,\n signingRegion = _b.signingRegion,\n 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\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3\n /*break*/\n , 1];\n _d = signingRegion;\n return [3\n /*break*/\n , 3];\n\n case 1:\n return [4\n /*yield*/\n , this.regionProvider()];\n\n case 2:\n _d = _g.sent();\n _g.label = 3;\n\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\n /*yield*/\n , getPayloadHash({\n headers: {},\n body: payload\n }, this.sha256)];\n\n case 4:\n hashedPayload = _g.sent();\n hash = new this.sha256();\n hash.update(headers);\n _f = toHex;\n return [4\n /*yield*/\n , hash.digest()];\n\n case 5:\n hashedHeaders = _f.apply(void 0, [_g.sent()]);\n stringToSign = [EVENT_ALGORITHM_IDENTIFIER, longDate, scope, priorSignature, hashedHeaders, hashedPayload].join(\"\\n\");\n return [2\n /*return*/\n , this.signString(stringToSign, {\n signingDate: signingDate,\n signingRegion: region,\n signingService: signingService\n })];\n }\n });\n });\n };\n\n SignatureV4.prototype.signString = function (stringToSign, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.signingDate,\n signingDate = _c === void 0 ? new Date() : _c,\n signingRegion = _b.signingRegion,\n signingService = _b.signingService;\n\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, shortDate, hash, _e, _f, _g;\n\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n return [4\n /*yield*/\n , this.credentialProvider()];\n\n case 1:\n credentials = _h.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3\n /*break*/\n , 2];\n _d = signingRegion;\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , this.regionProvider()];\n\n case 3:\n _d = _h.sent();\n _h.label = 4;\n\n case 4:\n region = _d;\n shortDate = formatDate(signingDate).shortDate;\n _f = (_e = this.sha256).bind;\n return [4\n /*yield*/\n , this.getSigningKey(credentials, region, shortDate, signingService)];\n\n case 5:\n hash = new (_f.apply(_e, [void 0, _h.sent()]))();\n hash.update(stringToSign);\n _g = toHex;\n return [4\n /*yield*/\n , hash.digest()];\n\n case 6:\n return [2\n /*return*/\n , _g.apply(void 0, [_h.sent()])];\n }\n });\n });\n };\n\n SignatureV4.prototype.signRequest = function (requestToSign, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.signingDate,\n signingDate = _c === void 0 ? new Date() : _c,\n signableHeaders = _b.signableHeaders,\n unsignableHeaders = _b.unsignableHeaders,\n signingRegion = _b.signingRegion,\n signingService = _b.signingService;\n\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n return [4\n /*yield*/\n , this.credentialProvider()];\n\n case 1:\n credentials = _f.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3\n /*break*/\n , 2];\n _d = signingRegion;\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , this.regionProvider()];\n\n case 3:\n _d = _f.sent();\n _f.label = 4;\n\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\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n\n return [4\n /*yield*/\n , getPayloadHash(request, this.sha256)];\n\n case 5:\n payloadHash = _f.sent();\n\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n return [4\n /*yield*/\n , this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))];\n\n case 6:\n signature = _f.sent();\n request.headers[AUTH_HEADER] = ALGORITHM_IDENTIFIER + \" \" + (\"Credential=\" + credentials.accessKeyId + \"/\" + scope + \", \") + (\"SignedHeaders=\" + getCanonicalHeaderList(canonicalHeaders) + \", \") + (\"Signature=\" + signature);\n return [2\n /*return*/\n , request];\n }\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) {\n return name + \":\" + canonicalHeaders[name];\n }).join(\"\\n\") + \"\\n\\n\" + sortedHeaders.join(\";\") + \"\\n\" + payloadHash;\n };\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\n /*yield*/\n , hash.digest()];\n\n case 1:\n hashedRequest = _a.sent();\n return [2\n /*return*/\n , ALGORITHM_IDENTIFIER + \"\\n\" + longDate + \"\\n\" + credentialScope + \"\\n\" + toHex(hashedRequest)];\n }\n });\n });\n };\n\n SignatureV4.prototype.getCanonicalPath = function (_a) {\n var path = _a.path;\n\n if (this.uriEscapePath) {\n var doubleEncoded = encodeURIComponent(path.replace(/^\\//, \"\"));\n return \"/\" + doubleEncoded.replace(/%2F/g, \"/\");\n }\n\n return path;\n };\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\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n return [4\n /*yield*/\n , this.createStringToSign(longDate, credentialScope, canonicalRequest)];\n\n case 1:\n stringToSign = _d.sent();\n _b = (_a = this.sha256).bind;\n return [4\n /*yield*/\n , keyPromise];\n\n case 2:\n hash = new (_b.apply(_a, [void 0, _d.sent()]))();\n hash.update(stringToSign);\n _c = toHex;\n return [4\n /*yield*/\n , hash.digest()];\n\n case 3:\n return [2\n /*return*/\n , _c.apply(void 0, [_d.sent()])];\n }\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\n return SignatureV4;\n}();\n\nexport { SignatureV4 };\n\nvar formatDate = function formatDate(now) {\n var longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate: longDate,\n shortDate: longDate.substr(0, 8)\n };\n};\n\nvar getCanonicalHeaderList = function getCanonicalHeaderList(headers) {\n return Object.keys(headers).sort().join(\";\");\n};\n\nvar normalizeRegionProvider = function normalizeRegionProvider(region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () {\n return promisified_1;\n };\n } else {\n return region;\n }\n};\n\nvar normalizeCredentialsProvider = function normalizeCredentialsProvider(credentials) {\n if (typeof credentials === \"object\") {\n var promisified_2 = Promise.resolve(credentials);\n return function () {\n return promisified_2;\n };\n } else {\n return credentials;\n }\n};","import { __assign, __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\n/**\n * @internal\n */\n\nexport function moveHeadersToQuery(request, options) {\n var e_1, _a;\n\n var _b;\n\n if (options === void 0) {\n options = {};\n }\n\n var _c = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request),\n headers = _c.headers,\n _d = _c.query,\n query = _d === void 0 ? {} : _d;\n\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\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 } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return __assign(__assign({}, request), {\n headers: headers,\n query: query\n });\n}","import { __values } from \"tslib\";\nexport function hasHeader(soughtHeader, headers) {\n var e_1, _a;\n\n soughtHeader = soughtHeader.toLowerCase();\n\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return false;\n}","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\n/**\n * @internal\n */\n\nexport function getCanonicalQuery(_a) {\n var e_1, _b;\n\n var _c = _a.query,\n query = _c === void 0 ? {} : _c;\n var keys = [];\n var serialized = {};\n\n var _loop_1 = function _loop_1(key) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n return \"continue\";\n }\n\n keys.push(key);\n var value = query[key];\n\n if (typeof value === \"string\") {\n serialized[key] = escapeUri(key) + \"=\" + escapeUri(value);\n } else if (Array.isArray(value)) {\n serialized[key] = value.slice(0).sort().reduce(function (encoded, value) {\n return encoded.concat([escapeUri(key) + \"=\" + escapeUri(value)]);\n }, []).join(\"&\");\n }\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\n _loop_1(key);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return keys.map(function (key) {\n return serialized[key];\n }).filter(function (serialized) {\n return serialized;\n }) // omit any falsy values\n .join(\"&\");\n}","import { __assign, __read, __spread, __values } from \"tslib\";\nexport var constructStack = function constructStack() {\n var absoluteEntries = [];\n var relativeEntries = [];\n var entriesNameSet = new Set();\n\n var sort = function sort(entries) {\n return entries.sort(function (a, b) {\n return stepWeights[b.step] - stepWeights[a.step] || priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"];\n });\n };\n\n var removeByName = function removeByName(toRemove) {\n var isRemoved = false;\n\n var filterCb = function filterCb(entry) {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n\n return true;\n };\n\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n\n var removeByReference = function removeByReference(toRemove) {\n var isRemoved = false;\n\n var filterCb = function filterCb(entry) {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name) entriesNameSet.delete(entry.name);\n return false;\n }\n\n return true;\n };\n\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n\n var cloneTo = function cloneTo(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\n var expandRelativeMiddlewareList = function expandRelativeMiddlewareList(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 } 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 } 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\n\n var getMiddlewareList = function getMiddlewareList() {\n var normalizedAbsoluteEntries = [];\n var normalizedRelativeEntries = [];\n var normalizedEntriesNameMap = {};\n absoluteEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), {\n before: [],\n after: []\n });\n\n if (normalizedEntry.name) normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), {\n before: [],\n after: []\n });\n\n if (normalizedEntry.name) 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\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\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n var mainChain = sort(normalizedAbsoluteEntries).map(expandRelativeMiddlewareList).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) {\n return entry.middleware;\n });\n };\n\n var stack = {\n add: function add(middleware, options) {\n if (options === void 0) {\n options = {};\n }\n\n var name = options.name,\n override = options.override;\n\n var entry = __assign({\n step: \"initialize\",\n priority: \"normal\",\n middleware: middleware\n }, options);\n\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override) throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = absoluteEntries.findIndex(function (entry) {\n return entry.name === name;\n });\n var toOverride = absoluteEntries[toOverrideIndex];\n\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 \" + (\"overridden by same-name middleware with \" + entry.priority + \" priority in \" + entry.step + \" step.\"));\n }\n\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n\n entriesNameSet.add(name);\n }\n\n absoluteEntries.push(entry);\n },\n addRelativeTo: function addRelativeTo(middleware, options) {\n var name = options.name,\n override = options.override;\n\n var entry = __assign({\n middleware: middleware\n }, options);\n\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override) throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = relativeEntries.findIndex(function (entry) {\n return entry.name === name;\n });\n var toOverride = relativeEntries[toOverrideIndex];\n\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware \" + toOverride.relation + \" \\\"\" + toOverride.toMiddleware + \"\\\" middleware cannot be overridden \" + (\"by same-name middleware \" + entry.relation + \" \\\"\" + entry.toMiddleware + \"\\\" middleware.\"));\n }\n\n relativeEntries.splice(toOverrideIndex, 1);\n }\n\n entriesNameSet.add(name);\n }\n\n relativeEntries.push(entry);\n },\n clone: function clone() {\n return cloneTo(constructStack());\n },\n use: function use(plugin) {\n plugin.applyToStack(stack);\n },\n remove: function remove(toRemove) {\n if (typeof toRemove === \"string\") return removeByName(toRemove);else return removeByReference(toRemove);\n },\n removeByTag: function removeByTag(toRemove) {\n var isRemoved = false;\n\n var filterCb = function filterCb(entry) {\n var tags = entry.tags,\n name = entry.name;\n\n if (tags && tags.includes(toRemove)) {\n if (name) entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n\n return true;\n };\n\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: function concat(from) {\n var cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n resolve: function resolve(handler, context) {\n var e_1, _a;\n\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 } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\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};","import { constructStack } from \"@aws-sdk/middleware-stack\";\n\nvar Client =\n/** @class */\nfunction () {\n function Client(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\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\n if (callback) {\n handler(command).then(function (result) {\n return callback(null, result.output);\n }, function (err) {\n return callback(err);\n }).catch( // prevent any errors thrown in the callback from triggering an\n // unhandled promise rejection\n function () {});\n } else {\n return handler(command).then(function (result) {\n return result.output;\n });\n }\n };\n\n Client.prototype.destroy = function () {\n if (this.config.requestHandler.destroy) this.config.requestHandler.destroy();\n };\n\n return Client;\n}();\n\nexport { Client };","import { constructStack } from \"@aws-sdk/middleware-stack\";\n\nvar Command =\n/** @class */\nfunction () {\n function Command() {\n this.middlewareStack = constructStack();\n }\n\n return Command;\n}();\n\nexport { Command };","/**\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 * 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 getArrayIfSingleItem(mayBeArray) {\n return Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n};","/**\n * Recursively parses object and populates value is node from\n * \"#text\" key if it's available\n */\nexport var getValueFromTextNode = function getValueFromTextNode(obj) {\n var textNodeName = \"#text\";\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n } else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n\n return obj;\n};","/**\n * Lazy String holder for JSON typed contents.\n */\nimport { __extends, __read, __spread } from \"tslib\";\n/**\n * Because of https://github.com/microsoft/tslib/issues/95,\n * TS 'extends' shim doesn't support extending native types like String.\n * So here we create StringWrapper that duplicate everything from String\n * class including its prototype chain. So we can extend from here.\n */\n// @ts-ignore StringWrapper implementation is not a simple constructor\n\nexport var StringWrapper = function StringWrapper() {\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)); //@ts-ignore Call wrapped String constructor directly, don't bother typing it.\n\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);\n\nvar LazyJsonString =\n/** @class */\nfunction (_super) {\n __extends(LazyJsonString, _super);\n\n function LazyJsonString() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LazyJsonString.prototype.deserializeJSON = function () {\n return JSON.parse(_super.prototype.toString.call(this));\n };\n\n LazyJsonString.prototype.toJSON = function () {\n return _super.prototype.toString.call(this);\n };\n\n LazyJsonString.fromObject = function (object) {\n if (object instanceof LazyJsonString) {\n return object;\n } else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n\n return new LazyJsonString(JSON.stringify(object));\n };\n\n return LazyJsonString;\n}(StringWrapper);\n\nexport { LazyJsonString };","/**\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\"]; // prettier-ignore\n\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(); // Build 0 prefixed strings for contents that need to be\n // two digits and where we get an integer back.\n\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}","export var SENSITIVE_STRING = \"***SensitiveInformation***\";","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport var parseUrl = function parseUrl(url) {\n var _a = new URL(url),\n hostname = _a.hostname,\n pathname = _a.pathname,\n port = _a.port,\n protocol = _a.protocol,\n search = _a.search;\n\n var query;\n\n if (search) {\n query = parseQueryString(search);\n }\n\n return {\n hostname: hostname,\n port: port ? parseInt(port) : undefined,\n protocol: protocol,\n path: pathname,\n query: query\n };\n};","import { __read, __values } from \"tslib\";\nexport function parseQueryString(querystring) {\n var e_1, _a;\n\n var query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n\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\n var _d = __read(pair.split(\"=\"), 2),\n key = _d[0],\n _e = _d[1],\n value = _e === void 0 ? null : _e;\n\n key = decodeURIComponent(key);\n\n if (value) {\n value = decodeURIComponent(value);\n }\n\n if (!(key in query)) {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n\n return query;\n}","var alphabetByEncoding = {};\nvar alphabetByValue = new Array(64);\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 alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\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}\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}\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 */\n\nexport function fromBase64(input) {\n var totalByteLength = input.length / 4 * 3;\n\n if (input.substr(-2) === \"==\") {\n totalByteLength -= 2;\n } else if (input.substr(-1) === \"=\") {\n totalByteLength--;\n }\n\n var out = new ArrayBuffer(totalByteLength);\n var dataView = new DataView(out);\n\n for (var i = 0; i < input.length; i += 4) {\n var bits = 0;\n var bitLength = 0;\n\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 } else {\n bits >>= bitsPerLetter;\n }\n }\n\n var chunkOffset = i / 4 * 3;\n bits >>= bitLength % bitsPerByte;\n var byteLength = Math.floor(bitLength / bitsPerByte);\n\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\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 */\n\nexport function toBase64(input) {\n var str = \"\";\n\n for (var i = 0; i < input.length; i += 3) {\n var bits = 0;\n var bitLength = 0;\n\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\n var bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n\n for (var k = 1; k <= bitClusterCount; k++) {\n var offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & maxLetterValue << offset) >> offset];\n }\n\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n\n return str;\n}","export function calculateBodyLength(body) {\n if (typeof body === \"string\") {\n var len = body.length;\n\n for (var i = len - 1; i >= 0; i--) {\n var code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff) len++;else if (code > 0x7ff && code <= 0xffff) len += 2;\n }\n\n return len;\n } else if (typeof body.byteLength === \"number\") {\n // handles Uint8Array, ArrayBuffer, Buffer, and ArrayBufferView\n return body.byteLength;\n } else if (typeof body.size === \"number\") {\n // handles browser File object\n return body.size;\n }\n}","var SHORT_TO_HEX = {};\nvar HEX_TO_SHORT = {};\n\nfor (var i = 0; i < 256; i++) {\n var encodedByte = i.toString(16).toLowerCase();\n\n if (encodedByte.length === 1) {\n encodedByte = \"0\" + encodedByte;\n }\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 */\n\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\n var out = new Uint8Array(encoded.length / 2);\n\n for (var i = 0; i < encoded.length; i += 2) {\n var encodedByte = encoded.substr(i, 2).toLowerCase();\n\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n } else {\n throw new Error(\"Cannot decode unrecognized sequence \" + encodedByte + \" as hexadecimal\");\n }\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 */\n\nexport function toHex(bytes) {\n var out = \"\";\n\n for (var i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n\n return out;\n}","var fallbackWindow = {};\n/**\n * Locates the global scope for a browser or browser-like environment. If\n * neither `window` nor `self` is defined by the environment, the same object\n * will be returned on each invocation.\n */\n\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n } else if (typeof self !== \"undefined\") {\n return self;\n }\n\n return fallbackWindow;\n}","export var escapeUri = function escapeUri(uri) {\n // AWS percent-encodes some extra non-standard characters in a URI\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\n\nvar hexEncode = function hexEncode(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n};","import { __awaiter, __generator } from \"tslib\";\nimport bowser from \"bowser\";\n/**\n * Default provider to the user agent in browsers. It's a best effort to infer\n * the device information. It uses bowser library to detect the browser and virsion\n */\n\nexport var defaultUserAgent = function defaultUserAgent(_a) {\n var serviceId = _a.serviceId,\n clientVersion = _a.clientVersion;\n return function () {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedUA, sections;\n\n var _a, _b, _c, _d, _e, _f, _g;\n\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 = [// sdk-metadata\n [\"aws-sdk-js\", clientVersion], // 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], // language-metadata\n // ECMAScript edition doesn't matter in JS.\n [\"lang/js\"], // 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\n return [2\n /*return*/\n , sections];\n });\n });\n };\n};","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function fromUtf8(input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function toUtf8(input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}","/**\n * 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 fromUtf8(input) {\n var bytes = [];\n\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n\n if (value < 0x80) {\n bytes.push(value);\n } else if (value < 0x800) {\n bytes.push(value >> 6 | 192, value & 63 | 128);\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 } else {\n bytes.push(value >> 12 | 224, value >> 6 & 63 | 128, value & 63 | 128);\n }\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 */\n\nexport var toUtf8 = function toUtf8(input) {\n var decoded = \"\";\n\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n } else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode((byte & 31) << 6 | nextByte & 63);\n } else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) {\n return byteValue.toString(16);\n }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n } else {\n decoded += String.fromCharCode((byte & 15) << 12 | (input[++i] & 63) << 6 | input[++i] & 63);\n }\n }\n\n return decoded;\n};","import { __values } from \"tslib\";\nimport { escapeAttribute } from \"./escape-attribute\";\n/**\n * Represents an XML node.\n */\n\nvar XmlNode =\n/** @class */\nfunction () {\n function XmlNode(name, children) {\n if (children === void 0) {\n children = [];\n }\n\n this.name = name;\n this.children = children;\n this.attributes = {};\n }\n\n XmlNode.prototype.withName = function (name) {\n this.name = name;\n return this;\n };\n\n XmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n };\n\n XmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n };\n\n XmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n };\n\n XmlNode.prototype.toString = function () {\n var e_1, _a;\n\n var hasChildren = Boolean(this.children.length);\n var xmlText = \"<\" + this.name; // add attributes\n\n var attributes = this.attributes;\n\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\n if (typeof attribute !== \"undefined\" && attribute !== null) {\n xmlText += \" \" + attributeName + \"=\\\"\" + escapeAttribute(\"\" + attribute) + \"\\\"\";\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return xmlText += !hasChildren ? \"/>\" : \">\" + this.children.map(function (c) {\n return c.toString();\n }).join(\"\") + \"\";\n };\n\n return XmlNode;\n}();\n\nexport { XmlNode };","/**\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}","import { escapeElement } from \"./escape-element\";\n/**\n * Represents an XML text value.\n */\n\nvar XmlText =\n/** @class */\nfunction () {\n function XmlText(value) {\n this.value = value;\n }\n\n XmlText.prototype.toString = function () {\n return escapeElement(\"\" + this.value);\n };\n\n return XmlText;\n}();\n\nexport { XmlText };","/**\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 * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\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 _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\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 _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\n\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fak': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready(fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\n\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\n\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\n\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\n\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\n\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\n\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\n\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\n\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\n\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\n\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon(_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol(_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\n\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.3\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\n\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = ('far' in styles);\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\n\nbuild();\n\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\n\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\n\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\n\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\n\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\n\nvar disabled = false;\n\nfunction disableObservation() {\n disabled = true;\n}\n\nfunction enableObservation() {\n disabled = false;\n}\n\nvar mo = null;\n\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\n\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser(node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser(node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\n\nfunction transformParser(node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser(node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser(node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser(node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\n\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\n\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\nvar styles$2 = namespace.styles;\n\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\n\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\n\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\n\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\n\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\n\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\n\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\n\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823; // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\n\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.15.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\n\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\n\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // own script injection.\n\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\n\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nvar currentContext = null; // This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\n\nvar MISSING_VALUE = {};\nvar idCounter = 1; // Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\n\nvar makeSlotClass = function makeSlotClass() {\n return (\n /** @class */\n function () {\n function Slot() {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n this.id = [\"slot\", idCounter++, Date.now(), Math.random().toString(36).slice(2)].join(\":\");\n }\n\n Slot.prototype.hasValue = function () {\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context_1.slots) {\n var value = context_1.slots[this.id];\n if (value === MISSING_VALUE) break;\n\n if (context_1 !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext.slots[this.id] = value;\n }\n\n return true;\n }\n }\n\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n\n return false;\n };\n\n Slot.prototype.getValue = function () {\n if (this.hasValue()) {\n return currentContext.slots[this.id];\n }\n };\n\n Slot.prototype.withValue = function (value, callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n var _a;\n\n var slots = (_a = {\n __proto__: null\n }, _a[this.id] = value, _a);\n var parent = currentContext;\n currentContext = {\n parent: parent,\n slots: slots\n };\n\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n } finally {\n currentContext = parent;\n }\n }; // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n\n\n Slot.bind = function (callback) {\n var context = currentContext;\n return function () {\n var saved = currentContext;\n\n try {\n currentContext = context;\n return callback.apply(this, arguments);\n } finally {\n currentContext = saved;\n }\n };\n }; // Immediately run a callback function without any captured context.\n\n\n Slot.noContext = function (callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n if (currentContext) {\n var saved = currentContext;\n\n try {\n currentContext = null; // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n\n return callback.apply(thisArg, args);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg, args);\n }\n };\n\n return Slot;\n }()\n );\n}; // We store a single global implementation of the Slot class as a permanent\n// non-enumerable symbol property of the Array constructor. This obfuscation\n// does nothing to prevent access to the Slot class, but at least it ensures\n// the implementation (i.e. currentContext) cannot be tampered with, and all\n// copies of the @wry/context package (hopefully just one) will share the\n// same Slot implementation. Since the first copy of the @wry/context package\n// to be imported wins, this technique imposes a very high cost for any\n// future breaking changes to the Slot class.\n\n\nvar globalKey = \"@wry/context:Slot\";\nvar host = Array;\n\nvar Slot = host[globalKey] || function () {\n var Slot = makeSlotClass();\n\n try {\n Object.defineProperty(host, globalKey, {\n value: host[globalKey] = Slot,\n enumerable: false,\n writable: false,\n configurable: false\n });\n } finally {\n return Slot;\n }\n}();\n\nvar bind = Slot.bind,\n noContext = Slot.noContext;\n\nfunction setTimeoutWithContext(callback, delay) {\n return setTimeout(bind(callback), delay);\n} // Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\n\n\nfunction asyncFromGen(genFn) {\n return function () {\n var gen = genFn.apply(this, arguments);\n var boundNext = bind(gen.next);\n var boundThrow = bind(gen.throw);\n return new Promise(function (resolve, reject) {\n function invoke(method, argument) {\n try {\n var result = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n\n var next = result.done ? resolve : invokeNext;\n\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n\n var invokeNext = function invokeNext(value) {\n return invoke(boundNext, value);\n };\n\n var invokeThrow = function invokeThrow(error) {\n return invoke(boundThrow, error);\n };\n\n invokeNext();\n });\n };\n}\n\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n} // If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\n\n\nvar wrappedFibers = [];\n\nfunction wrapYieldingFiberMethods(Fiber) {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n var wrap = function wrap(obj, method) {\n var fn = obj[method];\n\n obj[method] = function () {\n return noContext(fn, arguments, this);\n };\n }; // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n\n\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n\n return Fiber;\n}\n\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };","var _a = Object.prototype,\n toString = _a.toString,\n hasOwnProperty = _a.hasOwnProperty;\nvar fnToStr = Function.prototype.toString;\nvar previousComparisons = new Map();\n/**\r\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\r\n */\n\nfunction equal(a, b) {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\nfunction check(a, b) {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n } // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n\n\n var aTag = toString.call(a);\n var bTag = toString.call(b); // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n\n if (aTag !== bTag) {\n return false;\n }\n\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length) return false;\n // Fall through to object case...\n\n case '[object Object]':\n {\n if (previouslyCompared(a, b)) return true;\n var aKeys = definedKeys(a);\n var bKeys = definedKeys(b); // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n\n var keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false; // Now make sure they have the same keys.\n\n for (var k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n } // Finally, check deep equality of all child properties.\n\n\n for (var k = 0; k < keyCount; ++k) {\n var key = aKeys[k];\n\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a) return b !== b;\n // Fall through to shared +a === +b case...\n\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n\n case '[object RegExp]':\n case '[object String]':\n return a == \"\" + b;\n\n case '[object Map]':\n case '[object Set]':\n {\n if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n var aIterator = a.entries();\n var isMap = aTag === '[object Map]';\n\n while (true) {\n var info = aIterator.next();\n if (info.done) break; // If a instanceof Set, aValue === aKey.\n\n var _a = info.value,\n aKey = _a[0],\n aValue = _a[1]; // So this works the same way for both Set and Map.\n\n if (!b.has(aKey)) {\n return false;\n } // However, we care about deep equality of values only when dealing\n // with Map structures.\n\n\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Uint16Array]':\n case '[object Uint8Array]': // Buffer, in Node.js.\n\n case '[object Uint32Array]':\n case '[object Int32Array]':\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object ArrayBuffer]':\n // DataView doesn't need these conversions, but the equality check is\n // otherwise the same.\n a = new Uint8Array(a);\n b = new Uint8Array(b);\n // Fall through...\n\n case '[object DataView]':\n {\n var len = a.byteLength;\n\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {// Keep looping as long as the bytes are equal.\n }\n }\n\n return len === -1;\n }\n\n case '[object AsyncFunction]':\n case '[object GeneratorFunction]':\n case '[object AsyncGeneratorFunction]':\n case '[object Function]':\n {\n var aCode = fnToStr.call(a);\n\n if (aCode !== fnToStr.call(b)) {\n return false;\n } // We consider non-native functions equal if they have the same code\n // (native functions require === because their code is censored).\n // Note that this behavior is not entirely sound, since !== function\n // objects with the same code can behave differently depending on\n // their closure scope. However, any function can behave differently\n // depending on the values of its input arguments (including this)\n // and its calling context (including its closure scope), even\n // though the function object is === to itself; and it is entirely\n // possible for functions that are not === to behave exactly the\n // same under all conceivable circumstances. Because none of these\n // factors are statically decidable in JavaScript, JS function\n // equality is not well-defined. This ambiguity allows us to\n // consider the best possible heuristic among various imperfect\n // options, and equating non-native functions that have the same\n // code has enormous practical benefits, such as when comparing\n // functions that are repeatedly passed as fresh function\n // expressions within objects that are otherwise deeply equal. Since\n // any function created from the same syntactic expression (in the\n // same code location) will always stringify to the same code\n // according to fnToStr.call, we can reasonably expect these\n // repeatedly passed function expressions to have the same code, and\n // thus behave \"the same\" (with all the caveats mentioned above),\n // even though the runtime function objects are !== to one another.\n\n\n return !endsWith(aCode, nativeCodeSuffix);\n }\n } // Otherwise the values are not equal.\n\n\n return false;\n}\n\nfunction definedKeys(obj) {\n // Remember that the second argument to Array.prototype.filter will be\n // used as `this` within the callback function.\n return Object.keys(obj).filter(isDefinedKey, obj);\n}\n\nfunction isDefinedKey(key) {\n return this[key] !== void 0;\n}\n\nvar nativeCodeSuffix = \"{ [native code] }\";\n\nfunction endsWith(full, suffix) {\n var fromIndex = full.length - suffix.length;\n return fromIndex >= 0 && full.indexOf(suffix, fromIndex) === fromIndex;\n}\n\nfunction previouslyCompared(a, b) {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n var bSet = previousComparisons.get(a);\n\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b)) return true;\n } else {\n previousComparisons.set(a, bSet = new Set());\n }\n\n bSet.add(b);\n return false;\n}\n\nexport { equal as default, equal };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\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\n this.validationData = ValidationData || {};\n this.authParameters = AuthParameters || {};\n this.clientMetadata = ClientMetadata || {};\n this.username = Username;\n this.password = Password;\n }\n /**\n * @returns {string} the record's username\n */\n\n\n var _proto = AuthenticationDetails.prototype;\n\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n /**\n * @returns {string} the record's password\n */\n ;\n\n _proto.getPassword = function getPassword() {\n return this.password;\n }\n /**\n * @returns {Array} the record's validationData\n */\n ;\n\n _proto.getValidationData = function getValidationData() {\n return this.validationData;\n }\n /**\n * @returns {Array} the record's authParameters\n */\n ;\n\n _proto.getAuthParameters = function getAuthParameters() {\n return this.authParameters;\n }\n /**\n * @returns {ClientMetadata} the clientMetadata for a Lambda trigger\n */\n ;\n\n _proto.getClientMetadata = function getClientMetadata() {\n return this.clientMetadata;\n };\n\n return AuthenticationDetails;\n}();\n\nexport { AuthenticationDetails as default };","var crypto; // Native crypto from window (Browser)\n\nif (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n} // Native (experimental IE 11) crypto from window (Browser)\n\n\nif (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n} // Native crypto from global (NodeJS)\n\n\nif (!crypto && typeof global !== 'undefined' && global.crypto) {\n crypto = global.crypto;\n} // Native crypto import via require (NodeJS)\n\n\nif (!crypto && typeof require === 'function') {\n try {\n crypto = require('crypto');\n } catch (err) {}\n}\n/*\n * Cryptographically secure pseudorandom number generator\n * As Math.random() is cryptographically not safe to use\n */\n\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 } // Use randomBytes method (NodeJS)\n\n\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\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 * 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 */\n\nfunction hexStringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var hexChars = [];\n\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\n return hexChars.join('');\n}\n\nvar WordArray = /*#__PURE__*/function () {\n function WordArray(words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n }\n\n var _proto = WordArray.prototype;\n\n _proto.random = function random(nBytes) {\n var words = [];\n\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n\n return new WordArray(words, nBytes);\n };\n\n _proto.toString = function toString() {\n return hexStringify(this);\n };\n\n return WordArray;\n}();\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\nexport default BigInteger;\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// (public) Constructor\n\nfunction BigInteger(a, b) {\n if (a != null) this.fromString(a, b);\n} // return new, unset BigInteger\n\n\nfunction nbi() {\n return new BigInteger(null);\n} // Bits per digit\n\n\nvar dbits; // JavaScript engine analysis\n\nvar canary = 0xdeadbeefcafe;\nvar j_lm = (canary & 0xffffff) == 0xefcafe; // 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// 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)\n\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\n return c;\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)\n\n\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff,\n xh = x >> 15;\n\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\n return c;\n} // Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\n\n\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff,\n xh = x >> 14;\n\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\n return c;\n}\n\nvar inBrowser = typeof navigator !== 'undefined';\n\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}\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; // Digit conversions\n\nvar BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz';\nvar BI_RC = new Array();\nvar rr, vv;\nrr = '0'.charCodeAt(0);\n\nfor (vv = 0; vv <= 9; ++vv) {\n BI_RC[rr++] = vv;\n}\n\nrr = 'a'.charCodeAt(0);\n\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\n\nrr = 'A'.charCodeAt(0);\n\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\n\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\n\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n} // (protected) copy this to r\n\n\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i) {\n r[i] = this[i];\n }\n\n r.t = this.t;\n r.s = this.s;\n} // (protected) set from integer value x, -DV <= x < DV\n\n\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} // return bigint initialized to value\n\n\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n} // (protected) set from string and radix\n\n\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\n while (--i >= 0) {\n var x = intAt(s, i);\n\n if (x < 0) {\n if (s.charAt(i) == '-') mi = true;\n continue;\n }\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\n this.clamp();\n if (mi) BigInteger.ZERO.subTo(this, this);\n} // (protected) clamp off excess high words\n\n\nfunction bnpClamp() {\n var c = this.s & this.DM;\n\n while (this.t > 0 && this[this.t - 1] == c) {\n --this.t;\n }\n} // (public) return string representation in given radix\n\n\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\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\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\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n\n if (d > 0) m = true;\n if (m) r += int2char(d);\n }\n }\n\n return m ? r : '0';\n} // (public) -this\n\n\nfunction bnNegate() {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n} // (public) |this|\n\n\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n} // (public) return + if this > a, - if this < a, 0 if equal\n\n\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\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) return r;\n }\n\n return 0;\n} // returns bit length of the integer x\n\n\nfunction nbits(x) {\n var r = 1,\n t;\n\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n\n return r;\n} // (public) return the number of bits in \"this\"\n\n\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} // (protected) r = this << n*DB\n\n\nfunction bnpDLShiftTo(n, r) {\n var i;\n\n for (i = this.t - 1; i >= 0; --i) {\n r[i + n] = this[i];\n }\n\n for (i = n - 1; i >= 0; --i) {\n r[i] = 0;\n }\n\n r.t = this.t + n;\n r.s = this.s;\n} // (protected) r = this >> n*DB\n\n\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i) {\n r[i - n] = this[i];\n }\n\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n} // (protected) r = this << n\n\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\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\n for (i = ds - 1; i >= 0; --i) {\n r[i] = 0;\n }\n\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n} // (protected) r = this >> n\n\n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\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\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\n if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n} // (protected) r = this - a\n\n\nfunction bnpSubTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n if (a.t < this.t) {\n c -= a.s;\n\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n c += this.s;\n } else {\n c += this.s;\n\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n c -= a.s;\n }\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} // (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\n\n\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\n while (--i >= 0) {\n r[i] = 0;\n }\n\n for (i = 0; i < y.t; ++i) {\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n }\n\n r.s = 0;\n r.clamp();\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n} // (protected) r = this^2, r != this (HAC 14.16)\n\n\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n\n while (--i >= 0) {\n r[i] = 0;\n }\n\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n\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\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} // (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.\n\n\nfunction bnpDivRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) return;\n var pt = this.abs();\n\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0);\n if (r != null) this.copyTo(r);\n return;\n }\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]); // normalize modulus\n\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\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\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y); // \"negative\" y so we can replace sub with am later\n\n while (y.t < ys) {\n y[y.t++] = 0;\n }\n\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\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\n while (r[i] < --qd) {\n r.subTo(t, r);\n }\n }\n }\n\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) BigInteger.ZERO.subTo(q, q);\n }\n\n r.t = ys;\n r.clamp();\n if (nsh > 0) r.rShiftTo(nsh, r); // Denormalize remainder\n\n if (ts < 0) BigInteger.ZERO.subTo(r, r);\n} // (public) this mod a\n\n\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} // (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.\n\n\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; // y == 1/x mod 2^2\n\n y = y * (2 - (x & 0xf) * y) & 0xf; // y == 1/x mod 2^4\n\n y = y * (2 - (x & 0xff) * y) & 0xff; // y == 1/x mod 2^8\n\n y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff; // 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\n y = y * (2 - x * y % this.DV) % this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n\n return y > 0 ? this.DV - y : -y;\n}\n\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n} // (protected) r = this + a\n\n\nfunction bnpAddTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n if (a.t < this.t) {\n c += a.s;\n\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n c += this.s;\n } else {\n c += this.s;\n\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n c += a.s;\n }\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} // (public) this + a\n\n\nfunction bnAdd(a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n} // (public) this - a\n\n\nfunction bnSubtract(a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n} // (public) this * a\n\n\nfunction bnMultiply(a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n} // (public) this / a\n\n\nfunction bnDivide(a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n} // Montgomery reduction\n\n\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} // xR mod m\n\n\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} // x/R mod m\n\n\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n} // x = x/R mod m (HAC 14.32)\n\n\nfunction montReduce(x) {\n while (x.t <= this.mt2) {\n // pad x so am has enough room later\n x[x.t++] = 0;\n }\n\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; // use am to combine the multiply-shift-add into one call\n\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t); // propagate carry\n\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\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} // r = \"x^2/R mod m\"; x != r\n\n\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n} // r = \"xy/R mod m\"; x,y != r\n\n\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\n\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo; // (public) this^e % m (HAC 14.85)\n\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; // precomputation\n\n var g = new Array(),\n n = 3,\n k1 = k - 1,\n km = (1 << k) - 1;\n g[1] = z.convert(this);\n\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\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\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\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\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\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\n while (j >= 0 && (e[j] & 1 << i) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n\n var result = z.revert(r);\n callback(null, result);\n return result;\n} // protected\n\n\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; // public\n\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; // \"constants\"\n\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport 'crypto-js/lib-typedarrays'; // necessary for crypto js\n\nimport SHA256 from 'crypto-js/sha256';\nimport HmacSHA256 from 'crypto-js/hmac-sha256';\nimport WordArray from './utils/WordArray';\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}\n\nimport BigInteger from './BigInteger';\n/**\n * Tests if a hex string has it most significant bit set (case-insensitive regex)\n */\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/** @class */\n\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 * @returns {BigInteger} small A, a random number\n */\n\n\n var _proto = AuthenticationHelper.prototype;\n\n _proto.getSmallAValue = function getSmallAValue() {\n return this.smallAValue;\n }\n /**\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n */\n ;\n\n _proto.getLargeAValue = function getLargeAValue(callback) {\n var _this = this;\n\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\n _this.largeAValue = largeAValue;\n callback(null, _this.largeAValue);\n });\n }\n }\n /**\n * helper function to generate a random big integer\n * @returns {BigInteger} a random value.\n * @private\n */\n ;\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); // 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 * helper function to generate a random string\n * @returns {string} a random value.\n * @private\n */\n ;\n\n _proto.generateRandomString = function generateRandomString() {\n return randomBytes(40).toString('base64');\n }\n /**\n * @returns {string} Generated random value included in password hash.\n */\n ;\n\n _proto.getRandomPassword = function getRandomPassword() {\n return this.randomPassword;\n }\n /**\n * @returns {string} Generated random value included in devices hash.\n */\n ;\n\n _proto.getSaltDevices = function getSaltDevices() {\n return this.SaltToHashDevices;\n }\n /**\n * @returns {string} Value used to verify devices.\n */\n ;\n\n _proto.getVerifierDevices = function getVerifierDevices() {\n return this.verifierDevices;\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 ;\n\n _proto.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) {\n var _this2 = this;\n\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'); // The random hex will be unambiguously represented as a postive integer\n\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\n _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded);\n callback(null, null);\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 ;\n\n _proto.calculateA = function calculateA(a, callback) {\n var _this3 = this;\n\n this.g.modPow(a, this.N, function (err, A) {\n if (err) {\n callback(err, null);\n }\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\n callback(null, A);\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 ;\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 * Calculate a hash from a bitArray\n * @param {Buffer} buf Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */\n ;\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 * Calculate a hash from a hex string\n * @param {String} hexStr Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */\n ;\n\n _proto.hexHash = function hexHash(hexStr) {\n return this.hash(Buffer.from(hexStr, 'hex'));\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 ;\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 * 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 ;\n\n _proto.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\n var _this4 = this;\n\n if (serverBValue.mod(this.N).equals(BigInteger.ZERO)) {\n throw new Error('B cannot be zero.');\n }\n\n this.UValue = this.calculateU(this.largeAValue, serverBValue);\n\n if (this.UValue.equals(BigInteger.ZERO)) {\n throw new Error('U cannot be zero.');\n }\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\n var hkdf = _this4.computehkdf(Buffer.from(_this4.padHex(sValue), 'hex'), Buffer.from(_this4.padHex(_this4.UValue), 'hex'));\n\n callback(null, hkdf);\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 ;\n\n _proto.calculateS = function calculateS(xValue, serverBValue, callback) {\n var _this5 = this;\n\n this.g.modPow(xValue, this.N, function (err, gModPowXN) {\n if (err) {\n callback(err, null);\n }\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\n callback(null, result.mod(_this5.N));\n });\n });\n }\n /**\n * Return constant newPasswordRequiredChallengeUserAttributePrefix\n * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n */\n ;\n\n _proto.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() {\n return newPasswordRequiredChallengeUserAttributePrefix;\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 ;\n\n _proto.padHex = function padHex(bigInt) {\n if (!(bigInt instanceof BigInteger)) {\n throw new Error('Not a BigInteger');\n }\n\n var isNegative = bigInt.compareTo(BigInteger.ZERO) < 0;\n /* Get a hex string for abs(bigInt) */\n\n var hexStr = bigInt.abs().toString(16);\n /* Pad hex to even length if needed */\n\n hexStr = hexStr.length % 2 !== 0 ? \"0\" + hexStr : hexStr;\n /* Prepend \"00\" if the most significant bit is set */\n\n hexStr = HEX_MSB_REGEX.test(hexStr) ? \"00\" + hexStr : hexStr;\n\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 /* After flipping the bits, add one to get the 2's complement representation */\n\n var flippedBitsBI = new BigInteger(invertedNibbles, 16).add(BigInteger.ONE);\n hexStr = flippedBitsBI.toString(16);\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\n if (hexStr.toUpperCase().startsWith('FF8')) {\n hexStr = hexStr.substring(2);\n }\n }\n\n return hexStr;\n };\n\n return AuthenticationHelper;\n}();\n\nexport { AuthenticationHelper as default };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Buffer } from 'buffer';\n/** @class */\n\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 * @returns {string} the record's token.\n */\n\n\n var _proto = CognitoJwtToken.prototype;\n\n _proto.getJwtToken = function getJwtToken() {\n return this.jwtToken;\n }\n /**\n * @returns {int} the token's expiration (exp member).\n */\n ;\n\n _proto.getExpiration = function getExpiration() {\n return this.payload.exp;\n }\n /**\n * @returns {int} the token's \"issued at\" (iat member).\n */\n ;\n\n _proto.getIssuedAt = function getIssuedAt() {\n return this.payload.iat;\n }\n /**\n * @returns {object} the token's payload.\n */\n ;\n\n _proto.decodePayload = function decodePayload() {\n var payload = this.jwtToken.split('.')[1];\n\n try {\n return JSON.parse(Buffer.from(payload, 'base64').toString('utf8'));\n } catch (err) {\n return {};\n }\n };\n\n return CognitoJwtToken;\n}();\n\nexport { CognitoJwtToken as default };","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n/*\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nimport CognitoJwtToken from './CognitoJwtToken';\n/** @class */\n\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\n\n function CognitoAccessToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n AccessToken = _ref.AccessToken;\n\n return _CognitoJwtToken.call(this, AccessToken || '') || this;\n }\n\n return CognitoAccessToken;\n}(CognitoJwtToken);\n\nexport { CognitoAccessToken as default };","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nimport CognitoJwtToken from './CognitoJwtToken';\n/** @class */\n\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\n\n function CognitoIdToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken;\n\n return _CognitoJwtToken.call(this, IdToken || '') || this;\n }\n\n return CognitoIdToken;\n}(CognitoJwtToken);\n\nexport { CognitoIdToken as default };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\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; // Assign object\n\n\n this.token = RefreshToken || '';\n }\n /**\n * @returns {string} the record's token.\n */\n\n\n var _proto = CognitoRefreshToken.prototype;\n\n _proto.getToken = function getToken() {\n return this.token;\n };\n\n return CognitoRefreshToken;\n}();\n\nexport { CognitoRefreshToken as default };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\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\n if (AccessToken == null || IdToken == null) {\n throw new Error('Id token and Access Token must be present.');\n }\n\n this.idToken = IdToken;\n this.refreshToken = RefreshToken;\n this.accessToken = AccessToken;\n this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift;\n }\n /**\n * @returns {CognitoIdToken} the session's Id token\n */\n\n\n var _proto = CognitoUserSession.prototype;\n\n _proto.getIdToken = function getIdToken() {\n return this.idToken;\n }\n /**\n * @returns {CognitoRefreshToken} the session's refresh token\n */\n ;\n\n _proto.getRefreshToken = function getRefreshToken() {\n return this.refreshToken;\n }\n /**\n * @returns {CognitoAccessToken} the session's access token\n */\n ;\n\n _proto.getAccessToken = function getAccessToken() {\n return this.accessToken;\n }\n /**\n * @returns {int} the session's clock drift\n */\n ;\n\n _proto.getClockDrift = function getClockDrift() {\n return this.clockDrift;\n }\n /**\n * @returns {int} the computer's clock drift\n */\n ;\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 * 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 ;\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\n return CognitoUserSession;\n}();\n\nexport { CognitoUserSession as default };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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/** @class */\n\nvar DateHelper = /*#__PURE__*/function () {\n function DateHelper() {}\n\n var _proto = DateHelper.prototype;\n /**\n * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n */\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\n if (hours < 10) {\n hours = \"0\" + hours;\n }\n\n var minutes = now.getUTCMinutes();\n\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n\n var seconds = now.getUTCSeconds();\n\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n\n var year = now.getUTCFullYear(); // ddd MMM D HH:mm:ss UTC YYYY\n\n var dateNow = weekDay + \" \" + month + \" \" + day + \" \" + hours + \":\" + minutes + \":\" + seconds + \" UTC \" + year;\n return dateNow;\n };\n\n return DateHelper;\n}();\n\nexport { DateHelper as default };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\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\n this.Name = Name || '';\n this.Value = Value || '';\n }\n /**\n * @returns {string} the record's value.\n */\n\n\n var _proto = CognitoUserAttribute.prototype;\n\n _proto.getValue = function getValue() {\n return this.Value;\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 ;\n\n _proto.setValue = function setValue(value) {\n this.Value = value;\n return this;\n }\n /**\n * @returns {string} the record's name.\n */\n ;\n\n _proto.getName = function getName() {\n return this.Name;\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 ;\n\n _proto.setName = function setName(name) {\n this.Name = name;\n return this;\n }\n /**\n * @returns {string} a string representation of the record.\n */\n ;\n\n _proto.toString = function toString() {\n return JSON.stringify(this);\n }\n /**\n * @returns {object} a flat object representing the record.\n */\n ;\n\n _proto.toJSON = function toJSON() {\n return {\n Name: this.Name,\n Value: this.Value\n };\n };\n\n return CognitoUserAttribute;\n}();\n\nexport { CognitoUserAttribute as default };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\nvar dataMemory = {};\n/** @class */\n\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\n\n MemoryStorage.setItem = function setItem(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 ;\n\n MemoryStorage.getItem = function getItem(key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\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 ;\n\n MemoryStorage.removeItem = function removeItem(key) {\n return delete dataMemory[key];\n }\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n ;\n\n MemoryStorage.clear = function clear() {\n dataMemory = {};\n return dataMemory;\n };\n\n return MemoryStorage;\n}();\n/** @class */\n\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 * This is used to return the storage\n * @returns {object} the storage\n */\n\n\n var _proto = StorageHelper.prototype;\n\n _proto.getStorage = function getStorage() {\n return this.storageWindow;\n };\n\n return StorageHelper;\n}();\n\nexport { StorageHelper as default };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport TypedArrays from 'crypto-js/lib-typedarrays'; // necessary for crypto js\n\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 * @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/** @class */\n\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\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 this.uploadProgressKey = '__uploadInProgress';\n }\n /**\n * Sets the session for this user\n * @param {CognitoUserSession} signInUserSession the session\n * @returns {void}\n */\n\n\n var _proto = CognitoUser.prototype;\n\n _proto.setSignInUserSession = function setSignInUserSession(signInUserSession) {\n this.clearCachedUserData();\n this.signInUserSession = signInUserSession;\n this.cacheTokens();\n }\n /**\n * @returns {CognitoUserSession} the current session for this user\n */\n ;\n\n _proto.getSignInUserSession = function getSignInUserSession() {\n return this.signInUserSession;\n }\n /**\n * @returns {string} the user's username\n */\n ;\n\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n /**\n * @returns {String} the authentication flow type\n */\n ;\n\n _proto.getAuthenticationFlowType = function getAuthenticationFlowType() {\n return this.authenticationFlowType;\n }\n /**\n * sets authentication flow type\n * @param {string} authenticationFlowType New value.\n * @returns {void}\n */\n ;\n\n _proto.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) {\n this.authenticationFlowType = authenticationFlowType;\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 ;\n\n _proto.initiateAuth = function initiateAuth(authDetails, callback) {\n var _this = this;\n\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\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n var challengeName = data.ChallengeName;\n var challengeParameters = data.ChallengeParameters;\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n _this.Session = data.Session;\n return callback.customChallenge(challengeParameters);\n }\n\n _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult);\n\n _this.cacheTokens();\n\n return callback.onSuccess(_this.signInUserSession);\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 ;\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\n return callback.onFailure(new Error('Authentication flow type is invalid.'));\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 ;\n\n _proto.authenticateUserDefaultAuth = function authenticateUserDefaultAuth(authDetails, callback) {\n var _this2 = this;\n\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolId().split('_')[1]);\n var dateHelper = new DateHelper();\n var serverBValue;\n var salt;\n var authParameters = {};\n\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\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\n authParameters.SRP_A = aValue.toString(16);\n\n if (_this2.authenticationFlowType === 'CUSTOM_AUTH') {\n authParameters.CHALLENGE_NAME = 'SRP_A';\n }\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\n if (_this2.getUserContextData(_this2.username)) {\n jsonReq.UserContextData = _this2.getUserContextData(_this2.username);\n }\n\n _this2.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\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\n _this2.getCachedDeviceKeyAndPassword();\n\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\n var dateNow = dateHelper.getNowString();\n var message = CryptoJS.lib.WordArray.create(Buffer.concat([Buffer.from(_this2.pool.getUserPoolId().split('_')[1], '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\n if (_this2.deviceKey != null) {\n challengeResponses.DEVICE_KEY = _this2.deviceKey;\n }\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\n _this2.clearCachedDeviceKeyAndPassword();\n\n return respondToAuthChallenge(challenge, challengeCallback);\n }\n\n return challengeCallback(errChallenge, dataChallenge);\n });\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\n if (_this2.getUserContextData()) {\n jsonReqResp.UserContextData = _this2.getUserContextData();\n }\n\n respondToAuthChallenge(jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined; // getPasswordAuthenticationKey callback end\n });\n return undefined;\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 ;\n\n _proto.authenticateUserPlainUsernamePassword = function authenticateUserPlainUsernamePassword(authDetails, callback) {\n var _this3 = this;\n\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.PASSWORD = authDetails.getPassword();\n\n if (!authParameters.PASSWORD) {\n callback.onFailure(new Error('PASSWORD parameter is required'));\n return;\n }\n\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolId().split('_')[1]);\n this.getCachedDeviceKeyAndPassword();\n\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\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\n if (this.getUserContextData(this.username)) {\n jsonReq.UserContextData = this.getUserContextData(this.username);\n } // USER_PASSWORD_AUTH happens in a single round-trip: client sends userName and password,\n // Cognito UserPools verifies password and returns tokens.\n\n\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return _this3.authenticateUserInternal(authResult, authenticationHelper, callback);\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 ;\n\n _proto.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n var _this4 = this;\n\n var challengeName = dataAuthenticate.ChallengeName;\n var challengeParameters = dataAuthenticate.ChallengeParameters;\n\n if (challengeName === 'SMS_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaRequired(challengeName, challengeParameters);\n }\n\n if (challengeName === 'SELECT_MFA_TYPE') {\n this.Session = dataAuthenticate.Session;\n return callback.selectMFAType(challengeName, challengeParameters);\n }\n\n if (challengeName === 'MFA_SETUP') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaSetup(challengeName, challengeParameters);\n }\n\n if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.totpRequired(challengeName, challengeParameters);\n }\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = dataAuthenticate.Session;\n return callback.customChallenge(challengeParameters);\n }\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\n if (challengeParameters) {\n userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes);\n rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes);\n }\n\n if (rawRequiredAttributes) {\n for (var i = 0; i < rawRequiredAttributes.length; i++) {\n requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length);\n }\n }\n\n return callback.newPasswordRequired(userAttributes, requiredAttributes);\n }\n\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.Session = dataAuthenticate.Session;\n this.getDeviceResponse(callback);\n return undefined;\n }\n\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.challengeName = challengeName;\n this.cacheTokens();\n var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n\n if (newDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\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\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\n _this4.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n\n _this4.cacheDeviceKeyAndPassword();\n\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this4.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n\n return callback.onSuccess(_this4.signInUserSession);\n });\n\n return undefined;\n });\n return undefined;\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 ;\n\n _proto.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback, clientMetadata) {\n var _this5 = this;\n\n if (!newPassword) {\n return callback.onFailure(new Error('New password is required.'));\n }\n\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolId().split('_')[1]);\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n var finalUserAttributes = {};\n\n if (requiredAttributeData) {\n Object.keys(requiredAttributeData).forEach(function (key) {\n finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n });\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\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('RespondToAuthChallenge', jsonReq, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n return _this5.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\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 ;\n\n _proto.getDeviceResponse = function getDeviceResponse(callback, clientMetadata) {\n var _this6 = this;\n\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\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\n if (_this6.getUserContextData()) {\n jsonReq.UserContextData = _this6.getUserContextData();\n }\n\n _this6.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\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\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\n if (_this6.getUserContextData()) {\n jsonReqResp.UserContextData = _this6.getUserContextData();\n }\n\n _this6.client.request('RespondToAuthChallenge', jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n _this6.signInUserSession = _this6.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\n _this6.cacheTokens();\n\n return callback.onSuccess(_this6.signInUserSession);\n });\n\n return undefined; // getPasswordAuthenticationKey callback end\n });\n return undefined;\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 ;\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\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('ConfirmSignUp', jsonReq, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, 'SUCCESS');\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 ;\n\n _proto.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback, clientMetadata) {\n var _this7 = this;\n\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolId().split('_')[1]);\n this.getCachedDeviceKeyAndPassword();\n\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\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\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return _this7.authenticateUserInternal(data, authenticationHelper, callback);\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 ;\n\n _proto.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType, clientMetadata) {\n var _this8 = this;\n\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.SMS_MFA_CODE = confirmationCode;\n var mfaTypeSelection = mfaType || 'SMS_MFA';\n\n if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') {\n challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode;\n }\n\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n\n var jsonReq = {\n ChallengeName: mfaTypeSelection,\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, dataAuthenticate) {\n if (err) {\n return callback.onFailure(err);\n }\n\n var challengeName = dataAuthenticate.ChallengeName;\n\n if (challengeName === 'DEVICE_SRP_AUTH') {\n _this8.getDeviceResponse(callback);\n\n return undefined;\n }\n\n _this8.signInUserSession = _this8.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\n _this8.cacheTokens();\n\n if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n return callback.onSuccess(_this8.signInUserSession);\n }\n\n var authenticationHelper = new AuthenticationHelper(_this8.pool.getUserPoolId().split('_')[1]);\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\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\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\n _this8.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n\n _this8.cacheDeviceKeyAndPassword();\n\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this8.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n\n return callback.onSuccess(_this8.signInUserSession);\n });\n\n return undefined;\n });\n return undefined;\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 ;\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\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\n return callback(null, 'SUCCESS');\n });\n return undefined;\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 ;\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\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\n return callback(null, 'SUCCESS');\n });\n return undefined;\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 ;\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\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\n return callback(null, 'SUCCESS');\n });\n return undefined;\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 ;\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\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\n return callback(null, 'SUCCESS');\n });\n return undefined;\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 ;\n\n _proto.deleteUser = function deleteUser(callback, clientMetadata) {\n var _this9 = this;\n\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\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\n _this9.clearCachedUser();\n\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n /**\n * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n */\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 ;\n\n _proto.updateAttributes = function updateAttributes(attributes, callback, clientMetadata) {\n var _this10 = this;\n\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\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 } // update cached user\n\n\n return _this10.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\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 ;\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\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\n var attributeList = [];\n\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\n return callback(null, attributeList);\n });\n return undefined;\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 ;\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\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\n return callback(null, userData.MFAOptions);\n });\n return undefined;\n }\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */\n ;\n\n _proto.createGetUserRequest = function createGetUserRequest() {\n return this.client.promisifyRequest('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n });\n }\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */\n ;\n\n _proto.refreshSessionIfPossible = function refreshSessionIfPossible(options) {\n var _this11 = this;\n\n if (options === void 0) {\n options = {};\n } // best effort, if not possible\n\n\n return new Promise(function (resolve) {\n var refresh = _this11.signInUserSession.getRefreshToken();\n\n if (refresh && refresh.getToken()) {\n _this11.refreshSession(refresh, resolve, options.clientMetadata);\n } else {\n resolve();\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 ;\n\n _proto.getUserData = function getUserData(callback, params) {\n var _this12 = this;\n\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.clearCachedUserData();\n return callback(new Error('User is not authenticated'), null);\n }\n\n var userData = this.getUserDataFromCache();\n\n if (!userData) {\n this.fetchUserData().then(function (data) {\n callback(null, data);\n })[\"catch\"](callback);\n return;\n }\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\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 * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */\n ;\n\n _proto.getUserDataFromCache = function getUserDataFromCache() {\n var userData = this.storage.getItem(this.userDataKey);\n return userData;\n }\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */\n ;\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\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 ;\n\n _proto.fetchUserData = function fetchUserData() {\n var _this13 = this;\n\n return this.createGetUserRequest().then(function (data) {\n _this13.cacheUserData(data);\n\n return data;\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 ;\n\n _proto.deleteAttributes = function deleteAttributes(attributeList, callback) {\n var _this14 = this;\n\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\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 } // update cached user\n\n\n return _this14.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\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 ;\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\n return callback(null, result);\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 ;\n\n _proto.getSession = function getSession(callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (this.username == null) {\n return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n }\n\n if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n return callback(null, this.signInUserSession);\n }\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\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\n if (cachedSession.isValid()) {\n this.signInUserSession = cachedSession;\n return callback(null, this.signInUserSession);\n }\n\n if (!refreshToken.getToken()) {\n return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n }\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\n return undefined;\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 ;\n\n _proto.refreshSession = function refreshSession(refreshToken, callback, clientMetadata) {\n var _this15 = this;\n\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\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\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n if (err.code === 'NotAuthorizedException') {\n _this15.clearCachedUser();\n }\n\n return wrappedCallback(err, null);\n }\n\n if (authResult) {\n var authenticationResult = authResult.AuthenticationResult;\n\n if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n authenticationResult.RefreshToken = refreshToken.getToken();\n }\n\n _this15.signInUserSession = _this15.getCognitoUserSession(authenticationResult);\n\n _this15.cacheTokens();\n\n return wrappedCallback(null, _this15.signInUserSession);\n }\n\n return undefined;\n });\n }\n /**\n * This is used to save the session tokens to local storage\n * @returns {void}\n */\n ;\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 * This is to cache user data\n */\n ;\n\n _proto.cacheUserData = function cacheUserData(userData) {\n this.storage.setItem(this.userDataKey, JSON.stringify(userData));\n }\n /**\n * This is to remove cached user data\n */\n ;\n\n _proto.clearCachedUserData = function clearCachedUserData() {\n this.storage.removeItem(this.userDataKey);\n this.storage.removeItem(this.uploadProgressKey);\n };\n\n _proto.clearCachedUser = function clearCachedUser() {\n this.clearCachedTokens();\n this.clearCachedUserData();\n }\n /**\n * This is used to cache the device key and device group and device password\n * @returns {void}\n */\n ;\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 * This is used to get current device key and device group and device password\n * @returns {void}\n */\n ;\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\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 * This is used to clear the device key info from local storage\n * @returns {void}\n */\n ;\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 * This is used to clear the session tokens from local storage\n * @returns {void}\n */\n ;\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 * 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 ;\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 * 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 ;\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\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('ForgotPassword', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n\n return callback.onSuccess(data);\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 ;\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\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('ConfirmForgotPassword', jsonReq, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess('SUCCESS');\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 ;\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\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\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\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 ;\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\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\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\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 ;\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\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\n return callback.onSuccess(data);\n });\n return undefined;\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 ;\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\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\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\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 ;\n\n _proto.forgetDevice = function forgetDevice(callback) {\n var _this16 = this;\n\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\n _this16.clearCachedDeviceKeyAndPassword();\n\n return callback.onSuccess(result);\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 ;\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\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\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\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 ;\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\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\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\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 ;\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\n var requestParams = {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n Limit: limit\n };\n\n if (paginationToken) {\n requestParams.PaginationToken = paginationToken;\n }\n\n this.client.request('ListDevices', requestParams, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess(data);\n });\n return undefined;\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 ;\n\n _proto.globalSignOut = function globalSignOut(callback) {\n var _this17 = this;\n\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\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\n _this17.clearCachedUser();\n\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used for the user to signOut of the application and clear the cached tokens.\n * @returns {void}\n */\n ;\n\n _proto.signOut = function signOut(revokeTokenCallback) {\n var _this18 = this; // If tokens won't be revoked, we just clean the client data.\n\n\n if (!revokeTokenCallback || typeof revokeTokenCallback !== 'function') {\n this.cleanClientData();\n return;\n }\n\n this.getSession(function (error, _session) {\n if (error) {\n return revokeTokenCallback(error);\n }\n\n _this18.revokeTokens(function (err) {\n _this18.cleanClientData();\n\n revokeTokenCallback(err);\n });\n });\n };\n\n _proto.revokeTokens = function revokeTokens(revokeTokenCallback) {\n if (revokeTokenCallback === void 0) {\n revokeTokenCallback = function revokeTokenCallback() {};\n }\n\n if (typeof revokeTokenCallback !== 'function') {\n throw new Error('Invalid revokeTokenCallback. It should be a function.');\n }\n\n var tokensToBeRevoked = [];\n\n if (!this.signInUserSession) {\n var error = new Error('User is not authenticated');\n return revokeTokenCallback(error);\n }\n\n if (!this.signInUserSession.getAccessToken()) {\n var _error = new Error('No Access token available');\n\n return revokeTokenCallback(_error);\n }\n\n var refreshToken = this.signInUserSession.getRefreshToken().getToken();\n var accessToken = this.signInUserSession.getAccessToken();\n\n if (this.isSessionRevocable(accessToken)) {\n if (refreshToken) {\n return this.revokeToken({\n token: refreshToken,\n callback: revokeTokenCallback\n });\n }\n }\n\n revokeTokenCallback();\n };\n\n _proto.isSessionRevocable = function isSessionRevocable(token) {\n if (token && typeof token.decodePayload === 'function') {\n try {\n var _token$decodePayload = token.decodePayload(),\n origin_jti = _token$decodePayload.origin_jti;\n\n return !!origin_jti;\n } catch (err) {// Nothing to do, token doesnt have origin_jti claim\n }\n }\n\n return false;\n };\n\n _proto.cleanClientData = function cleanClientData() {\n this.signInUserSession = null;\n this.clearCachedUser();\n };\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\n callback();\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 ;\n\n _proto.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) {\n var _this19 = this;\n\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\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n _this19.Session = data.Session;\n\n if (answerChallenge === 'SMS_MFA') {\n return callback.mfaRequired(data.ChallengeName, data.ChallengeParameters);\n }\n\n if (answerChallenge === 'SOFTWARE_TOKEN_MFA') {\n return callback.totpRequired(data.ChallengeName, data.ChallengeParameters);\n }\n\n return undefined;\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 ;\n\n _proto.getUserContextData = function getUserContextData() {\n var pool = this.pool;\n return pool.getUserContextData(this.username);\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 ;\n\n _proto.associateSoftwareToken = function associateSoftwareToken(callback) {\n var _this20 = this;\n\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\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\n return callback.associateSecretCode(data.SecretCode);\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 ;\n\n _proto.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) {\n var _this21 = this;\n\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\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\n if (_this21.getUserContextData()) {\n jsonReq.UserContextData = _this21.getUserContextData();\n }\n\n _this21.client.request('RespondToAuthChallenge', jsonReq, function (errRespond, dataRespond) {\n if (errRespond) {\n return callback.onFailure(errRespond);\n }\n\n _this21.signInUserSession = _this21.getCognitoUserSession(dataRespond.AuthenticationResult);\n\n _this21.cacheTokens();\n\n return callback.onSuccess(_this21.signInUserSession);\n });\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\n return callback.onSuccess(data);\n });\n }\n };\n\n return CognitoUser;\n}();\n\nexport { CognitoUser as default };","/*\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};\n\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\n\nexport var getUserAgent = function getUserAgent() {\n return Platform.userAgent;\n};\n/**\n * @deprecated use named import\n */\n\nexport default Platform;","import { getUserAgent } from \"./Platform\"; // constructor\n\nfunction UserAgent() {} // public\n\n\nUserAgent.prototype.userAgent = getUserAgent();\nexport var appendToCognitoUserAgent = function appendToCognitoUserAgent(content) {\n if (!content) {\n return;\n }\n\n if (UserAgent.prototype.userAgent && !UserAgent.prototype.userAgent.includes(content)) {\n UserAgent.prototype.userAgent = UserAgent.prototype.userAgent.concat(' ', content);\n }\n\n if (!UserAgent.prototype.userAgent || UserAgent.prototype.userAgent === '') {\n UserAgent.prototype.userAgent = content;\n }\n}; // class for defining the amzn user-agent\n\nexport default UserAgent;","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport 'isomorphic-unfetch';\nimport UserAgent from './UserAgent';\n\nvar CognitoError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(CognitoError, _Error);\n\n function CognitoError(message, code, name, statusCode) {\n var _this;\n\n _this = _Error.call(this, message) || this;\n _this.code = code;\n _this.name = name;\n _this.statusCode = statusCode;\n return _this;\n }\n\n return CognitoError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/** @class */\n\n\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\n var _ref = fetchOptions || {},\n credentials = _ref.credentials;\n\n this.fetchOptions = credentials ? {\n credentials: credentials\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\n\n var _proto = Client.prototype;\n\n _proto.promisifyRequest = function promisifyRequest(operation, params) {\n var _this2 = this;\n\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\n _proto.requestWithRetry = function requestWithRetry(operation, params, callback) {\n var _this3 = this;\n\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 * 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 ;\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 };\n var options = Object.assign({}, this.fetchOptions, {\n headers: headers,\n method: 'POST',\n mode: 'cors',\n cache: 'no-cache',\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\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; // Taken from aws-sdk-js/lib/protocol/json.js\n // eslint-disable-next-line no-underscore-dangle\n\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 } // otherwise check if error is Network error\n\n } else if (err instanceof Error && err.message === 'Network error') {\n err.code = 'NetworkError';\n }\n\n return callback(err);\n });\n };\n\n return Client;\n}();\n\nexport { Client as default };\nvar logger = {\n debug: function debug() {// Intentionally blank. This package doesn't have logging\n }\n};\n/**\n * For now, all errors are retryable.\n */\n\nvar NonRetryableError = /*#__PURE__*/function (_Error2) {\n _inheritsLoose(NonRetryableError, _Error2);\n\n function NonRetryableError(message) {\n var _this4;\n\n _this4 = _Error2.call(this, message) || this;\n _this4.nonRetryable = true;\n return _this4;\n }\n\n return NonRetryableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar isNonRetryableError = function isNonRetryableError(obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\n\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) {\n attempt = 1;\n }\n\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\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\n if (isNonRetryableError(err)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err);\n throw err;\n }\n\n var retryIn = delayFn(attempt, args, err);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn + \" ms\");\n\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}\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}\n\nvar MAX_DELAY_MS = 5 * 60 * 1000;\n\nfunction jitteredExponentialRetry(functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) {\n maxDelayMs = MAX_DELAY_MS;\n }\n\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n}\n\n;","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n * http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\nimport Client from './Client';\nimport CognitoUser from './CognitoUser';\nimport StorageHelper from './StorageHelper';\nvar USER_POOL_ID_MAX_LENGTH = 55;\n/** @class */\n\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\n if (!UserPoolId || !ClientId) {\n throw new Error('Both UserPoolId and ClientId are required.');\n }\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\n var region = UserPoolId.split('_')[0];\n this.userPoolId = UserPoolId;\n this.clientId = ClientId;\n this.client = new Client(region, endpoint, fetchOptions);\n /**\n * By default, AdvancedSecurityDataCollectionFlag is set to true,\n * if no input value is provided.\n */\n\n this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag !== false;\n this.storage = data.Storage || new StorageHelper().getStorage();\n\n if (wrapRefreshSessionCallback) {\n this.wrapRefreshSessionCallback = wrapRefreshSessionCallback;\n }\n }\n /**\n * @returns {string} the user pool id\n */\n\n\n var _proto = CognitoUserPool.prototype;\n\n _proto.getUserPoolId = function getUserPoolId() {\n return this.userPoolId;\n }\n /**\n * @returns {string} the client id\n */\n ;\n\n _proto.getClientId = function getClientId() {\n return this.clientId;\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 /**\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 ;\n\n _proto.signUp = function signUp(username, password, userAttributes, validationData, callback, clientMetadata) {\n var _this = this;\n\n var jsonReq = {\n ClientId: this.clientId,\n Username: username,\n Password: password,\n UserAttributes: userAttributes,\n ValidationData: validationData,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData(username)) {\n jsonReq.UserContextData = this.getUserContextData(username);\n }\n\n this.client.request('SignUp', jsonReq, function (err, data) {\n if (err) {\n return callback(err, null);\n }\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 * method for getting the current user of the application from the local storage\n *\n * @returns {CognitoUser} the user retrieved from storage\n */\n ;\n\n _proto.getCurrentUser = function getCurrentUser() {\n var lastUserKey = \"CognitoIdentityServiceProvider.\" + this.clientId + \".LastAuthUser\";\n var lastAuthUser = this.storage.getItem(lastUserKey);\n\n if (lastAuthUser) {\n var cognitoUser = {\n Username: lastAuthUser,\n Pool: this,\n Storage: this.storage\n };\n return new CognitoUser(cognitoUser);\n }\n\n return null;\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 ;\n\n _proto.getUserContextData = function getUserContextData(username) {\n if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') {\n return undefined;\n }\n /* eslint-disable */\n\n\n var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData;\n /* eslint-enable */\n\n if (this.advancedSecurityDataCollectionFlag) {\n var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId);\n\n if (advancedSecurityData) {\n var userContextData = {\n EncodedData: advancedSecurityData\n };\n return userContextData;\n }\n }\n\n return {};\n };\n\n return CognitoUserPool;\n}();\n\nexport { CognitoUserPool as default };","import * as Cookies from 'js-cookie';\n/** @class */\n\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\n if (data.path) {\n this.path = data.path;\n } else {\n this.path = '/';\n }\n\n if (Object.prototype.hasOwnProperty.call(data, 'expires')) {\n this.expires = data.expires;\n } else {\n this.expires = 365;\n }\n\n if (Object.prototype.hasOwnProperty.call(data, 'secure')) {\n this.secure = data.secure;\n } else {\n this.secure = true;\n }\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\n if (data.sameSite === 'none' && !this.secure) {\n throw new Error('sameSite = None requires the Secure attribute in latest browser versions.');\n }\n\n this.sameSite = data.sameSite;\n } else {\n this.sameSite = null;\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\n\n var _proto = CookieStorage.prototype;\n\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\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n\n Cookies.set(key, value, options);\n return Cookies.get(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 ;\n\n _proto.getItem = function getItem(key) {\n return Cookies.get(key);\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 ;\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\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n\n return Cookies.remove(key, options);\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 ;\n\n _proto.clear = function clear() {\n var cookies = Cookies.get();\n var numKeys = Object.keys(cookies).length;\n\n for (var index = 0; index < numKeys; ++index) {\n this.removeItem(Object.keys(cookies)[index]);\n }\n\n return {};\n };\n\n return CookieStorage;\n}();\n\nexport { CookieStorage as default };","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\n\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\n\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n}\n\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n}\n\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n};\n\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n};\n\nBuffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n};\n\nBuffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\n\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n}\n\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","import { tuple } from './type';\nexport var PresetStatusColorTypes = tuple('success', 'processing', 'error', 'default', 'warning'); // eslint-disable-next-line import/prefer-default-export\n\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","import devWarning, { resetWarned } from \"rc-util/es/warning\";\nexport { resetWarned };\nexport default (function (valid, component, message) {\n devWarning(valid, \"[antd: \".concat(component, \"] \").concat(message));\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useForceUpdate() {\n var _React$useReducer = React.useReducer(function (x) {\n return x + 1;\n }, 0),\n _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n forceUpdate = _React$useReducer2[1];\n\n return forceUpdate;\n}","// ================== Collapse Motion ==================\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\n\nvar getRealHeight = function getRealHeight(node) {\n return {\n height: node.scrollHeight,\n opacity: 1\n };\n};\n\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: node.offsetHeight\n };\n};\n\nvar skipOpacityTransition = function skipOpacityTransition(_, event) {\n return event.propertyName === 'height';\n};\n\nvar collapseMotion = {\n motionName: 'ant-motion-collapse',\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n};\n\nvar getTransitionName = function getTransitionName(rootPrefixCls, motion, transitionName) {\n if (transitionName !== undefined) {\n return transitionName;\n }\n\n return \"\".concat(rootPrefixCls, \"-\").concat(motion);\n};\n\nexport { getTransitionName };\nexport default collapseMotion;","import * as React from 'react';\nvar isValidElement = React.isValidElement;\nexport { isValidElement };\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) return replacement;\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport var responsiveMap = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)'\n};\nvar subscribers = new Map();\nvar subUid = -1;\nvar screens = {};\nvar responsiveObserve = {\n matchHandlers: {},\n dispatch: function dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(function (func) {\n return func(screens);\n });\n return subscribers.size >= 1;\n },\n subscribe: function subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe: function unsubscribe(token) {\n subscribers[\"delete\"](token);\n if (!subscribers.size) this.unregister();\n },\n unregister: function unregister() {\n var _this = this;\n\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var handler = _this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register: function register() {\n var _this2 = this;\n\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n\n var listener = function listener(_ref) {\n var matches = _ref.matches;\n\n _this2.dispatch(_extends(_extends({}, screens), _defineProperty({}, screen, matches)));\n };\n\n var mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n _this2.matchHandlers[matchMediaQuery] = {\n mql: mql,\n listener: listener\n };\n listener(mql);\n });\n }\n};\nexport default responsiveObserve;","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args;\n};\nexport var tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args;\n};","import raf from \"rc-util/es/raf\";\nvar id = 0;\nvar ids = {}; // Support call raf with delay specified frame\n\nexport default function wrapperRaf(callback) {\n var delayFrames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var myId = id++;\n var restFrames = delayFrames;\n\n function internalCallback() {\n restFrames -= 1;\n\n if (restFrames <= 0) {\n callback();\n delete ids[myId];\n } else {\n ids[myId] = raf(internalCallback);\n }\n }\n\n ids[myId] = raf(internalCallback);\n return myId;\n}\n\nwrapperRaf.cancel = function cancel(pid) {\n if (pid === undefined) return;\n raf.cancel(ids[pid]);\n delete ids[pid];\n};\n\nwrapperRaf.ids = ids; // export this for test usage","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { supportRef, composeRef } from \"rc-util/es/ref\";\nimport raf from './raf';\nimport { ConfigConsumer, ConfigContext } from '../config-provider';\nimport { cloneElement } from './reactNode';\nvar styleForPseudo; // Where el is the DOM element you'd like to test for visibility\n\nfunction isHidden(element) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n\n return !element || element.offsetParent === null || element.hidden;\n}\n\nfunction isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n var match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\d.]*)?\\)/);\n\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n\n return true;\n}\n\nvar Wave = /*#__PURE__*/function (_React$Component) {\n _inherits(Wave, _React$Component);\n\n var _super = _createSuper(Wave);\n\n function Wave() {\n var _this;\n\n _classCallCheck(this, Wave);\n\n _this = _super.apply(this, arguments);\n _this.containerRef = /*#__PURE__*/React.createRef();\n _this.animationStart = false;\n _this.destroyed = false;\n\n _this.onClick = function (node, waveColor) {\n var _a, _b;\n\n if (!node || isHidden(node) || node.className.indexOf('-leave') >= 0) {\n return;\n }\n\n var insertExtraNode = _this.props.insertExtraNode;\n _this.extraNode = document.createElement('div');\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n extraNode = _assertThisInitialize.extraNode;\n\n var getPrefixCls = _this.context.getPrefixCls;\n extraNode.className = \"\".concat(getPrefixCls(''), \"-click-animating-node\");\n\n var attributeName = _this.getAttributeName();\n\n node.setAttribute(attributeName, 'true'); // Not white or transparent or grey\n\n if (waveColor && waveColor !== '#ffffff' && waveColor !== 'rgb(255, 255, 255)' && isNotGrey(waveColor) && !/rgba\\((?:\\d*, ){3}0\\)/.test(waveColor) && // any transparent rgba color\n waveColor !== 'transparent') {\n extraNode.style.borderColor = waveColor;\n var nodeRoot = ((_a = node.getRootNode) === null || _a === void 0 ? void 0 : _a.call(node)) || node.ownerDocument;\n var nodeBody = nodeRoot instanceof Document ? nodeRoot.body : (_b = nodeRoot.firstChild) !== null && _b !== void 0 ? _b : nodeRoot;\n styleForPseudo = updateCSS(\"\\n [\".concat(getPrefixCls(''), \"-click-animating-without-extra-node='true']::after, .\").concat(getPrefixCls(''), \"-click-animating-node {\\n --antd-wave-shadow-color: \").concat(waveColor, \";\\n }\"), 'antd-wave', {\n csp: _this.csp,\n attachTo: nodeBody\n });\n }\n\n if (insertExtraNode) {\n node.appendChild(extraNode);\n }\n\n ['transition', 'animation'].forEach(function (name) {\n node.addEventListener(\"\".concat(name, \"start\"), _this.onTransitionStart);\n node.addEventListener(\"\".concat(name, \"end\"), _this.onTransitionEnd);\n });\n };\n\n _this.onTransitionStart = function (e) {\n if (_this.destroyed) {\n return;\n }\n\n var node = _this.containerRef.current;\n\n if (!e || e.target !== node || _this.animationStart) {\n return;\n }\n\n _this.resetEffect(node);\n };\n\n _this.onTransitionEnd = function (e) {\n if (!e || e.animationName !== 'fadeEffect') {\n return;\n }\n\n _this.resetEffect(e.target);\n };\n\n _this.bindAnimationEvent = function (node) {\n if (!node || !node.getAttribute || node.getAttribute('disabled') || node.className.indexOf('disabled') >= 0) {\n return;\n }\n\n var onClick = function onClick(e) {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || isHidden(e.target)) {\n return;\n }\n\n _this.resetEffect(node); // Get wave color from target\n\n\n var waveColor = getComputedStyle(node).getPropertyValue('border-top-color') || // Firefox Compatible\n getComputedStyle(node).getPropertyValue('border-color') || getComputedStyle(node).getPropertyValue('background-color');\n _this.clickWaveTimeoutId = window.setTimeout(function () {\n return _this.onClick(node, waveColor);\n }, 0);\n raf.cancel(_this.animationStartId);\n _this.animationStart = true; // Render to trigger transition event cost 3 frames. Let's delay 10 frames to reset this.\n\n _this.animationStartId = raf(function () {\n _this.animationStart = false;\n }, 10);\n };\n\n node.addEventListener('click', onClick, true);\n return {\n cancel: function cancel() {\n node.removeEventListener('click', onClick, true);\n }\n };\n };\n\n _this.renderWave = function (_ref) {\n var csp = _ref.csp;\n var children = _this.props.children;\n _this.csp = csp;\n if (! /*#__PURE__*/React.isValidElement(children)) return children;\n var ref = _this.containerRef;\n\n if (supportRef(children)) {\n ref = composeRef(children.ref, _this.containerRef);\n }\n\n return cloneElement(children, {\n ref: ref\n });\n };\n\n return _this;\n }\n\n _createClass(Wave, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var node = this.containerRef.current;\n\n if (!node || node.nodeType !== 1) {\n return;\n }\n\n this.instance = this.bindAnimationEvent(node);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.instance) {\n this.instance.cancel();\n }\n\n if (this.clickWaveTimeoutId) {\n clearTimeout(this.clickWaveTimeoutId);\n }\n\n this.destroyed = true;\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName() {\n var getPrefixCls = this.context.getPrefixCls;\n var insertExtraNode = this.props.insertExtraNode;\n return insertExtraNode ? \"\".concat(getPrefixCls(''), \"-click-animating\") : \"\".concat(getPrefixCls(''), \"-click-animating-without-extra-node\");\n }\n }, {\n key: \"resetEffect\",\n value: function resetEffect(node) {\n var _this2 = this;\n\n if (!node || node === this.extraNode || !(node instanceof Element)) {\n return;\n }\n\n var insertExtraNode = this.props.insertExtraNode;\n var attributeName = this.getAttributeName();\n node.setAttribute(attributeName, 'false'); // edge has bug on `removeAttribute` #14466\n\n if (styleForPseudo) {\n styleForPseudo.innerHTML = '';\n }\n\n if (insertExtraNode && this.extraNode && node.contains(this.extraNode)) {\n node.removeChild(this.extraNode);\n }\n\n ['transition', 'animation'].forEach(function (name) {\n node.removeEventListener(\"\".concat(name, \"start\"), _this2.onTransitionStart);\n node.removeEventListener(\"\".concat(name, \"end\"), _this2.onTransitionEnd);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderWave);\n }\n }]);\n\n return Wave;\n}(React.Component);\n\nexport { Wave as default };\nWave.contextType = ConfigContext;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\nvar UnreachableException = function UnreachableException(value) {\n _classCallCheck(this, UnreachableException);\n\n return new Error(\"unreachable case: \".concat(JSON.stringify(value)));\n};\n\nexport { UnreachableException as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\nimport UnreachableException from '../_util/unreachableException';\n\nvar ButtonGroup = function ButtonGroup(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction;\n\n var customizePrefixCls = props.prefixCls,\n size = props.size,\n className = props.className,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n\n var prefixCls = getPrefixCls('btn-group', customizePrefixCls); // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n case 'middle':\n case undefined:\n break;\n\n default:\n // eslint-disable-next-line no-console\n console.warn(new UnreachableException(size));\n }\n\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes\n }));\n });\n};\n\nexport default ButtonGroup;","import React from 'react';\nimport CSSMotion from 'rc-motion';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\n\nvar getCollapsedWidth = function getCollapsedWidth() {\n return {\n width: 0,\n opacity: 0,\n transform: 'scale(0)'\n };\n};\n\nvar getRealWidth = function getRealWidth(node) {\n return {\n width: node.scrollWidth,\n opacity: 1,\n transform: 'scale(1)'\n };\n};\n\nvar LoadingIcon = function LoadingIcon(_ref) {\n var prefixCls = _ref.prefixCls,\n loading = _ref.loading,\n existIcon = _ref.existIcon;\n var visible = !!loading;\n\n if (existIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\")\n }, /*#__PURE__*/React.createElement(LoadingOutlined, null));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible // We do not really use this motionName\n ,\n motionName: \"\".concat(prefixCls, \"-loading-icon-motion\"),\n removeOnLeave: true,\n onAppearStart: getCollapsedWidth,\n onAppearActive: getRealWidth,\n onEnterStart: getCollapsedWidth,\n onEnterActive: getRealWidth,\n onLeaveStart: getRealWidth,\n onLeaveActive: getCollapsedWidth\n }, function (_ref2, ref) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\"),\n style: style,\n ref: ref\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: className\n }));\n });\n};\n\nexport default LoadingIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable react/button-has-type */\n\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport Group from './button-group';\nimport { ConfigContext } from '../config-provider';\nimport Wave from '../_util/wave';\nimport { tuple } from '../_util/type';\nimport devWarning from '../_util/devWarning';\nimport SizeContext from '../config-provider/SizeContext';\nimport LoadingIcon from './LoadingIcon';\nimport { cloneElement } from '../_util/reactNode';\nvar rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nvar isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\n\nfunction isString(str) {\n return typeof str === 'string';\n}\n\nfunction isUnborderedButtonType(type) {\n return type === 'text' || type === 'link';\n} // Insert one space between two chinese characters automatically.\n\n\nfunction insertSpace(child, needInserted) {\n // Check the child if is undefined or null.\n if (child == null) {\n return;\n }\n\n var SPACE = needInserted ? ' ' : ''; // strictNullChecks oops.\n\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return cloneElement(child, {\n children: child.props.children.split('').join(SPACE)\n });\n }\n\n if (typeof child === 'string') {\n if (isTwoCNChar(child)) {\n child = child.split('').join(SPACE);\n }\n\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n\n return child;\n}\n\nfunction spaceChildren(children, needInserted) {\n var isPrevChildPure = false;\n var childList = [];\n React.Children.forEach(children, function (child) {\n var type = _typeof(child);\n\n var isCurrentChildPure = type === 'string' || type === 'number';\n\n if (isPrevChildPure && isCurrentChildPure) {\n var lastIndex = childList.length - 1;\n var lastChild = childList[lastIndex];\n childList[lastIndex] = \"\".concat(lastChild).concat(child);\n } else {\n childList.push(child);\n }\n\n isPrevChildPure = isCurrentChildPure;\n }); // Pass to React.Children.map to auto fill key\n\n return React.Children.map(childList, function (child) {\n return insertSpace(child, needInserted);\n });\n}\n\nvar ButtonTypes = tuple('default', 'primary', 'ghost', 'dashed', 'link', 'text');\nvar ButtonShapes = tuple('circle', 'round');\nvar ButtonHTMLTypes = tuple('submit', 'button', 'reset');\nexport function convertLegacyProps(type) {\n if (type === 'danger') {\n return {\n danger: true\n };\n }\n\n return {\n type: type\n };\n}\n\nvar InternalButton = function InternalButton(props, ref) {\n var _classNames;\n\n var _props$loading = props.loading,\n loading = _props$loading === void 0 ? false : _props$loading,\n customizePrefixCls = props.prefixCls,\n type = props.type,\n danger = props.danger,\n shape = props.shape,\n customizeSize = props.size,\n className = props.className,\n children = props.children,\n icon = props.icon,\n _props$ghost = props.ghost,\n ghost = _props$ghost === void 0 ? false : _props$ghost,\n _props$block = props.block,\n block = _props$block === void 0 ? false : _props$block,\n _props$htmlType = props.htmlType,\n htmlType = _props$htmlType === void 0 ? 'button' : _props$htmlType,\n rest = __rest(props, [\"loading\", \"prefixCls\", \"type\", \"danger\", \"shape\", \"size\", \"className\", \"children\", \"icon\", \"ghost\", \"block\", \"htmlType\"]);\n\n var size = React.useContext(SizeContext);\n\n var _React$useState = React.useState(!!loading),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerLoading = _React$useState2[0],\n setLoading = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n hasTwoCNChar = _React$useState4[0],\n setHasTwoCNChar = _React$useState4[1];\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n autoInsertSpaceInButton = _React$useContext.autoInsertSpaceInButton,\n direction = _React$useContext.direction;\n\n var buttonRef = ref || /*#__PURE__*/React.createRef();\n var delayTimeoutRef = React.useRef();\n\n var isNeedInserted = function isNeedInserted() {\n return React.Children.count(children) === 1 && !icon && !isUnborderedButtonType(type);\n };\n\n var fixTwoCNChar = function fixTwoCNChar() {\n // Fix for HOC usage like \n if (!buttonRef || !buttonRef.current || autoInsertSpaceInButton === false) {\n return;\n }\n\n var buttonText = buttonRef.current.textContent;\n\n if (isNeedInserted() && isTwoCNChar(buttonText)) {\n if (!hasTwoCNChar) {\n setHasTwoCNChar(true);\n }\n } else if (hasTwoCNChar) {\n setHasTwoCNChar(false);\n }\n }; // =============== Update Loading ===============\n\n\n var loadingOrDelay;\n\n if (_typeof(loading) === 'object' && loading.delay) {\n loadingOrDelay = loading.delay || true;\n } else {\n loadingOrDelay = !!loading;\n }\n\n React.useEffect(function () {\n clearTimeout(delayTimeoutRef.current);\n\n if (typeof loadingOrDelay === 'number') {\n delayTimeoutRef.current = window.setTimeout(function () {\n setLoading(loadingOrDelay);\n }, loadingOrDelay);\n } else {\n setLoading(loadingOrDelay);\n }\n }, [loadingOrDelay]);\n React.useEffect(fixTwoCNChar, [buttonRef]);\n\n var handleClick = function handleClick(e) {\n var _a;\n\n var onClick = props.onClick,\n disabled = props.disabled; // https://github.com/ant-design/ant-design/issues/30207\n\n if (innerLoading || disabled) {\n e.preventDefault();\n return;\n }\n\n (_a = onClick) === null || _a === void 0 ? void 0 : _a(e);\n };\n\n devWarning(!(typeof icon === 'string' && icon.length > 2), 'Button', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\"));\n devWarning(!(ghost && isUnborderedButtonType(type)), 'Button', \"`link` or `text` button can't be a `ghost` button.\");\n var prefixCls = getPrefixCls('btn', customizePrefixCls);\n var autoInsertSpace = autoInsertSpaceInButton !== false; // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (customizeSize || size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n default:\n break;\n }\n\n var iconType = innerLoading ? 'loading' : icon;\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type), type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(shape), shape), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-icon-only\"), !children && children !== 0 && !!iconType), _defineProperty(_classNames, \"\".concat(prefixCls, \"-background-ghost\"), ghost && !isUnborderedButtonType(type)), _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), innerLoading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-two-chinese-chars\"), hasTwoCNChar && autoInsertSpace), _defineProperty(_classNames, \"\".concat(prefixCls, \"-block\"), block), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dangerous\"), !!danger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n var iconNode = icon && !innerLoading ? icon : /*#__PURE__*/React.createElement(LoadingIcon, {\n existIcon: !!icon,\n prefixCls: prefixCls,\n loading: !!innerLoading\n });\n var kids = children || children === 0 ? spaceChildren(children, isNeedInserted() && autoInsertSpace) : null;\n var linkButtonRestProps = omit(rest, ['navigate']);\n\n if (linkButtonRestProps.href !== undefined) {\n return /*#__PURE__*/React.createElement(\"a\", _extends({}, linkButtonRestProps, {\n className: classes,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids);\n }\n\n var buttonNode = /*#__PURE__*/React.createElement(\"button\", _extends({}, rest, {\n type: htmlType,\n className: classes,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids);\n\n if (isUnborderedButtonType(type)) {\n return buttonNode;\n }\n\n return /*#__PURE__*/React.createElement(Wave, null, buttonNode);\n};\n\nvar Button = /*#__PURE__*/React.forwardRef(InternalButton);\nButton.displayName = 'Button';\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nexport default Button;","import Button from './button';\nexport default Button;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport Checkbox from './Checkbox';\nimport { ConfigContext } from '../config-provider';\nexport var GroupContext = /*#__PURE__*/React.createContext(null);\n\nvar InternalCheckboxGroup = function InternalCheckboxGroup(_a, ref) {\n var defaultValue = _a.defaultValue,\n children = _a.children,\n _a$options = _a.options,\n options = _a$options === void 0 ? [] : _a$options,\n customizePrefixCls = _a.prefixCls,\n className = _a.className,\n style = _a.style,\n onChange = _a.onChange,\n restProps = __rest(_a, [\"defaultValue\", \"children\", \"options\", \"prefixCls\", \"className\", \"style\", \"onChange\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var _React$useState = React.useState(restProps.value || defaultValue || []),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n registeredValues = _React$useState4[0],\n setRegisteredValues = _React$useState4[1];\n\n React.useEffect(function () {\n if ('value' in restProps) {\n setValue(restProps.value || []);\n }\n }, [restProps.value]);\n\n var getOptions = function getOptions() {\n return options.map(function (option) {\n if (typeof option === 'string') {\n return {\n label: option,\n value: option\n };\n }\n\n return option;\n });\n };\n\n var cancelValue = function cancelValue(val) {\n setRegisteredValues(function (prevValues) {\n return prevValues.filter(function (v) {\n return v !== val;\n });\n });\n };\n\n var registerValue = function registerValue(val) {\n setRegisteredValues(function (prevValues) {\n return [].concat(_toConsumableArray(prevValues), [val]);\n });\n };\n\n var toggleOption = function toggleOption(option) {\n var optionIndex = value.indexOf(option.value);\n\n var newValue = _toConsumableArray(value);\n\n if (optionIndex === -1) {\n newValue.push(option.value);\n } else {\n newValue.splice(optionIndex, 1);\n }\n\n if (!('value' in restProps)) {\n setValue(newValue);\n }\n\n var opts = getOptions();\n onChange === null || onChange === void 0 ? void 0 : onChange(newValue.filter(function (val) {\n return registeredValues.indexOf(val) !== -1;\n }).sort(function (a, b) {\n var indexA = opts.findIndex(function (opt) {\n return opt.value === a;\n });\n var indexB = opts.findIndex(function (opt) {\n return opt.value === b;\n });\n return indexA - indexB;\n }));\n };\n\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var domProps = omit(restProps, ['value', 'disabled']);\n\n if (options && options.length > 0) {\n children = getOptions().map(function (option) {\n return /*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: prefixCls,\n key: option.value.toString(),\n disabled: 'disabled' in option ? option.disabled : restProps.disabled,\n value: option.value,\n checked: value.indexOf(option.value) !== -1,\n onChange: option.onChange,\n className: \"\".concat(groupPrefixCls, \"-item\"),\n style: option.style\n }, option.label);\n });\n }\n\n var context = {\n toggleOption: toggleOption,\n value: value,\n disabled: restProps.disabled,\n name: restProps.name,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue: registerValue,\n cancelValue: cancelValue\n };\n var classString = classNames(groupPrefixCls, _defineProperty({}, \"\".concat(groupPrefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString,\n style: style\n }, domProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(GroupContext.Provider, {\n value: context\n }, children));\n};\n\nvar CheckboxGroup = /*#__PURE__*/React.forwardRef(InternalCheckboxGroup);\nexport default /*#__PURE__*/React.memo(CheckboxGroup);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { GroupContext } from './Group';\nimport { ConfigContext } from '../config-provider';\nimport devWarning from '../_util/devWarning';\n\nvar InternalCheckbox = function InternalCheckbox(_a, ref) {\n var _classNames;\n\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n children = _a.children,\n _a$indeterminate = _a.indeterminate,\n indeterminate = _a$indeterminate === void 0 ? false : _a$indeterminate,\n style = _a.style,\n onMouseEnter = _a.onMouseEnter,\n onMouseLeave = _a.onMouseLeave,\n _a$skipGroup = _a.skipGroup,\n skipGroup = _a$skipGroup === void 0 ? false : _a$skipGroup,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"skipGroup\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var checkboxGroup = React.useContext(GroupContext);\n var prevValue = React.useRef(restProps.value);\n React.useEffect(function () {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n devWarning('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'Checkbox', '`value` is not a valid prop, do you mean `checked`?');\n }, []);\n React.useEffect(function () {\n if (skipGroup) {\n return;\n }\n\n if (restProps.value !== prevValue.current) {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current);\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n }\n\n return function () {\n return checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value);\n };\n }, [restProps.value]);\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n\n var checkboxProps = _extends({}, restProps);\n\n if (checkboxGroup && !skipGroup) {\n checkboxProps.onChange = function () {\n if (restProps.onChange) {\n restProps.onChange.apply(restProps, arguments);\n }\n\n if (checkboxGroup.toggleOption) {\n checkboxGroup.toggleOption({\n label: children,\n value: restProps.value\n });\n }\n };\n\n checkboxProps.name = checkboxGroup.name;\n checkboxProps.checked = checkboxGroup.value.indexOf(restProps.value) !== -1;\n checkboxProps.disabled = restProps.disabled || checkboxGroup.disabled;\n }\n\n var classString = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-checked\"), checkboxProps.checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-disabled\"), checkboxProps.disabled), _classNames), className);\n var checkboxClass = classNames(_defineProperty({}, \"\".concat(prefixCls, \"-indeterminate\"), indeterminate));\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, _extends({}, checkboxProps, {\n prefixCls: prefixCls,\n className: checkboxClass,\n ref: ref\n })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children))\n );\n};\n\nvar Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox);\nCheckbox.displayName = 'Checkbox';\nexport default Checkbox;","import InternalCheckbox from './Checkbox';\nimport Group from './Group';\nvar Checkbox = InternalCheckbox;\nCheckbox.Group = Group;\nCheckbox.__ANT_CHECKBOX = true;\nexport default Checkbox;","import { Col } from '../grid';\nexport default Col;","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","import * as React from 'react';\nimport Empty from '../empty';\nimport { ConfigConsumer } from '.';\n\nvar renderEmpty = function renderEmpty(componentName) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('empty');\n\n switch (componentName) {\n case 'Table':\n case 'List':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE\n });\n\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n className: \"\".concat(prefix, \"-small\")\n });\n\n default:\n return /*#__PURE__*/React.createElement(Empty, null);\n }\n });\n};\n\nexport default renderEmpty;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport defaultRenderEmpty from './renderEmpty';\n\nvar defaultGetPrefixCls = function defaultGetPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n};\n\nexport var ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls,\n renderEmpty: defaultRenderEmpty\n});\nexport var ConfigConsumer = ConfigContext.Consumer;\n/** @deprecated Use hooks instead. This is a legacy function */\n\nexport function withConfigConsumer(config) {\n return function withConfigConsumerFunc(Component) {\n // Wrap with ConfigConsumer. Since we need compatible with react 15, be care when using ref methods\n var SFC = function SFC(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (configProps) {\n var basicPrefixCls = config.prefixCls;\n var getPrefixCls = configProps.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(basicPrefixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(Component, _extends({}, configProps, props, {\n prefixCls: prefixCls\n }));\n });\n };\n\n var cons = Component.constructor;\n var name = cons && cons.displayName || Component.name || 'Component';\n SFC.displayName = \"withConfigConsumer(\".concat(name, \")\");\n return SFC;\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/default';\n\nvar runtimeLocale = _extends({}, defaultLocale.Modal);\n\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport devWarning from '../_util/devWarning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport var ANT_MARK = 'internalMark';\n\nvar LocaleProvider = /*#__PURE__*/function (_React$Component) {\n _inherits(LocaleProvider, _React$Component);\n\n var _super = _createSuper(LocaleProvider);\n\n function LocaleProvider(props) {\n var _this;\n\n _classCallCheck(this, LocaleProvider);\n\n _this = _super.call(this, props);\n changeConfirmLocale(props.locale && props.locale.Modal);\n devWarning(props._ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale');\n return _this;\n }\n\n _createClass(LocaleProvider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n changeConfirmLocale(this.props.locale && this.props.locale.Modal);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var locale = this.props.locale;\n\n if (prevProps.locale !== locale) {\n changeConfirmLocale(locale && locale.Modal);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n changeConfirmLocale();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n locale = _this$props.locale,\n children = _this$props.children;\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: _extends(_extends({}, locale), {\n exist: true\n })\n }, children);\n }\n }]);\n\n return LocaleProvider;\n}(React.Component);\n\nexport { LocaleProvider as default };\nLocaleProvider.defaultProps = {\n locale: {}\n};","// This icon file is generated automatically.\nvar InfoCircleFilled = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\"\n }\n }]\n },\n \"name\": \"info-circle\",\n \"theme\": \"filled\"\n};\nexport default InfoCircleFilled;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: InfoCircleFilledSvg\n }));\n};\n\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleFilled);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RCNotification from 'rc-notification';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport createUseMessage from './hooks/useMessage';\nimport { globalConfig } from '../config-provider';\nvar messageInstance;\nvar defaultDuration = 3;\nvar defaultTop;\nvar key = 1;\nvar localPrefixCls = '';\nvar transitionName = 'move-up';\nvar hasTransitionName = false;\nvar getContainer;\nvar maxCount;\nvar rtl = false;\nexport function getKeyThenIncreaseKey() {\n return key++;\n}\n\nfunction setMessageConfig(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n\n if (options.prefixCls !== undefined) {\n localPrefixCls = options.prefixCls;\n }\n\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n }\n\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n\n hasTransitionName = true;\n }\n\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\n\nfunction getRCNotificationInstance(args, callback) {\n var customizePrefixCls = args.prefixCls;\n\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getRootPrefixCls = _globalConfig.getRootPrefixCls;\n\n var prefixCls = getPrefixCls('message', customizePrefixCls || localPrefixCls);\n var rootPrefixCls = getRootPrefixCls(args.rootPrefixCls, prefixCls);\n\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n instance: messageInstance\n });\n return;\n }\n\n var instanceConfig = {\n prefixCls: prefixCls,\n transitionName: hasTransitionName ? transitionName : \"\".concat(rootPrefixCls, \"-\").concat(transitionName),\n style: {\n top: defaultTop\n },\n getContainer: getContainer,\n maxCount: maxCount\n };\n RCNotification.newInstance(instanceConfig, function (instance) {\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n instance: messageInstance\n });\n return;\n }\n\n messageInstance = instance;\n\n if (process.env.NODE_ENV === 'test') {\n messageInstance.config = instanceConfig;\n }\n\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n instance: instance\n });\n });\n}\n\nvar typeToIcon = {\n info: InfoCircleFilled,\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled,\n loading: LoadingOutlined\n};\n\nfunction getRCNoticeProps(args, prefixCls) {\n var _classNames;\n\n var duration = args.duration !== undefined ? args.duration : defaultDuration;\n var IconComponent = typeToIcon[args.type];\n var messageClass = classNames(\"\".concat(prefixCls, \"-custom-content\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(args.type), args.type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl === true), _classNames));\n return {\n key: args.key,\n duration: duration,\n style: args.style || {},\n className: args.className,\n content: /*#__PURE__*/React.createElement(\"div\", {\n className: messageClass\n }, args.icon || IconComponent && /*#__PURE__*/React.createElement(IconComponent, null), /*#__PURE__*/React.createElement(\"span\", null, args.content)),\n onClose: args.onClose,\n onClick: args.onClick\n };\n}\n\nfunction notice(args) {\n var target = args.key || key++;\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n\n return resolve(true);\n };\n\n getRCNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls));\n });\n });\n\n var result = function result() {\n if (messageInstance) {\n messageInstance.removeNotice(target);\n }\n };\n\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n\n result.promise = closePromise;\n return result;\n}\n\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\n\nvar api = {\n open: notice,\n config: setMessageConfig,\n destroy: function destroy(messageKey) {\n if (messageInstance) {\n if (messageKey) {\n var _messageInstance = messageInstance,\n removeNotice = _messageInstance.removeNotice;\n removeNotice(messageKey);\n } else {\n var _messageInstance2 = messageInstance,\n destroy = _messageInstance2.destroy;\n destroy();\n messageInstance = null;\n }\n }\n }\n};\nexport function attachTypeApi(originalApi, type) {\n originalApi[type] = function (content, duration, onClose) {\n if (isArgsProps(content)) {\n return originalApi.open(_extends(_extends({}, content), {\n type: type\n }));\n }\n\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n\n return originalApi.open({\n content: content,\n duration: duration,\n type: type,\n onClose: onClose\n });\n };\n}\n['success', 'info', 'warning', 'error', 'loading'].forEach(function (type) {\n return attachTypeApi(api, type);\n});\napi.warn = api.warning;\napi.useMessage = createUseMessage(getRCNotificationInstance, getRCNoticeProps);\n/** @private test Only function. Not work on production */\n\nexport var getInstance = function getInstance() {\n return process.env.NODE_ENV === 'test' ? messageInstance : null;\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport { ConfigConsumer } from '../../config-provider';\nimport { attachTypeApi, getKeyThenIncreaseKey } from '..';\nexport default function createUseMessage(getRcNotificationInstance, getRCNoticeProps) {\n var useMessage = function useMessage() {\n // We can only get content by render\n var getPrefixCls; // We create a proxy to handle delay created instance\n\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('message', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n\n return resolve(true);\n };\n\n getRcNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls,\n rootPrefixCls: rootPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls));\n });\n });\n\n var result = function result() {\n if (innerInstance) {\n innerInstance.removeNotice(target);\n }\n };\n\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n\n result.promise = closePromise;\n return result;\n } // Fill functions\n\n\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error', 'loading'].forEach(function (type) {\n return attachTypeApi(hookApiRef.current, type);\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n\n return useMessage;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport message from '../message';\nimport notification from '../notification';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader']; // These props is used by `useContext` directly in sub component\n\nvar PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'form'];\nexport var defaultPrefixCls = 'ant';\nvar globalPrefixCls;\n\nvar setGlobalConfig = function setGlobalConfig(params) {\n if (params.prefixCls !== undefined) {\n globalPrefixCls = params.prefixCls;\n }\n};\n\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\n\nexport var globalConfig = function globalConfig() {\n return {\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(getGlobalPrefixCls(), \"-\").concat(suffixCls) : getGlobalPrefixCls();\n },\n getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {\n // Customize rootPrefixCls is first priority\n if (rootPrefixCls) {\n return rootPrefixCls;\n } // If Global prefixCls provided, use this\n\n\n if (globalPrefixCls) {\n return globalPrefixCls;\n } // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls\n\n\n if (customizePrefixCls && customizePrefixCls.includes('-')) {\n return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');\n } // Fallback to default prefixCls\n\n\n return getGlobalPrefixCls();\n }\n };\n};\n\nvar ProviderChildren = function ProviderChildren(props) {\n var children = props.children,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n locale = props.locale,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n legacyLocale = props.legacyLocale,\n parentContext = props.parentContext,\n iconPrefixCls = props.iconPrefixCls;\n var getPrefixCls = React.useCallback(function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n }, [parentContext.getPrefixCls]);\n\n var config = _extends(_extends({}, parentContext), {\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n getPrefixCls: getPrefixCls\n }); // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n\n\n PASSED_PROPS.forEach(function (propName) {\n var propValue = props[propName];\n\n if (propValue) {\n config[propName] = propValue;\n }\n }); // https://github.com/ant-design/ant-design/issues/27617\n\n var memoedConfig = useMemo(function () {\n return config;\n }, config, function (prevConfig, currentConfig) {\n var prevKeys = Object.keys(prevConfig);\n var currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) {\n return prevConfig[key] !== currentConfig[key];\n });\n });\n var memoIconContextValue = React.useMemo(function () {\n return {\n prefixCls: iconPrefixCls,\n csp: csp\n };\n }, [iconPrefixCls]);\n var childNode = children; // Additional Form provider\n\n var validateMessages = {};\n\n if (locale && locale.Form && locale.Form.defaultValidateMessages) {\n validateMessages = locale.Form.defaultValidateMessages;\n }\n\n if (form && form.validateMessages) {\n validateMessages = _extends(_extends({}, validateMessages), form.validateMessages);\n }\n\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n\n if (iconPrefixCls) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\n\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n message.config({\n rtl: props.direction === 'rtl'\n });\n notification.config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ProviderChildren, _extends({\n parentContext: context,\n legacyLocale: legacyLocale\n }, props));\n });\n });\n};\n/** @private internal Usage. do not use in your production */\n\n\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nexport default ConfigProvider;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\n\nvar Empty = function Empty() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('empty-img-default');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"184\",\n height: \"152\",\n viewBox: \"0 0 184 152\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(24 31.67)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-1\"),\n d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-2\"),\n d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-3\"),\n d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-4\"),\n d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-5\"),\n d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n transform: \"translate(149.65 15.383)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: \"20.654\",\n cy: \"3.167\",\n rx: \"2.849\",\n ry: \"2.815\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }))));\n};\n\nexport default Empty;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\n\nvar Simple = function Simple() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('empty-img-simple');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"64\",\n height: \"41\",\n viewBox: \"0 0 64 41\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n className: \"\".concat(prefixCls, \"-path\")\n }))));\n};\n\nexport default Simple;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nvar defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nvar simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\n\nvar Empty = function Empty(_a) {\n var className = _a.className,\n customizePrefixCls = _a.prefixCls,\n _a$image = _a.image,\n image = _a$image === void 0 ? defaultEmptyImg : _a$image,\n description = _a.description,\n children = _a.children,\n imageStyle = _a.imageStyle,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Empty\"\n }, function (locale) {\n var _classNames;\n\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var des = typeof description !== 'undefined' ? description : locale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var imageNode = null;\n\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-image\"),\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, children));\n });\n};\n\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nexport default Empty;","import { createContext } from 'react';\nvar RowContext = /*#__PURE__*/createContext({});\nexport default RowContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RowContext from './RowContext';\nimport { ConfigContext } from '../config-provider';\n\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return \"\".concat(flex, \" \").concat(flex, \" auto\");\n }\n\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return \"0 0 \".concat(flex);\n }\n\n return flex;\n}\n\nvar sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nvar Col = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var _React$useContext2 = React.useContext(RowContext),\n gutter = _React$useContext2.gutter,\n wrap = _React$useContext2.wrap,\n supportFlexGap = _React$useContext2.supportFlexGap;\n\n var customizePrefixCls = props.prefixCls,\n span = props.span,\n order = props.order,\n offset = props.offset,\n push = props.push,\n pull = props.pull,\n className = props.className,\n children = props.children,\n flex = props.flex,\n style = props.style,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\", \"flex\", \"style\"]);\n\n var prefixCls = getPrefixCls('col', customizePrefixCls);\n var sizeClassObj = {};\n sizes.forEach(function (size) {\n var _extends2;\n\n var sizeProps = {};\n var propSize = props[size];\n\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (_typeof(propSize) === 'object') {\n sizeProps = propSize || {};\n }\n\n delete others[size];\n sizeClassObj = _extends(_extends({}, sizeClassObj), (_extends2 = {}, _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-\").concat(sizeProps.span), sizeProps.span !== undefined), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-order-\").concat(sizeProps.order), sizeProps.order || sizeProps.order === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-offset-\").concat(sizeProps.offset), sizeProps.offset || sizeProps.offset === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-push-\").concat(sizeProps.push), sizeProps.push || sizeProps.push === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-pull-\").concat(sizeProps.pull), sizeProps.pull || sizeProps.pull === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _extends2));\n });\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(span), span !== undefined), _defineProperty(_classNames, \"\".concat(prefixCls, \"-order-\").concat(order), order), _defineProperty(_classNames, \"\".concat(prefixCls, \"-offset-\").concat(offset), offset), _defineProperty(_classNames, \"\".concat(prefixCls, \"-push-\").concat(push), push), _defineProperty(_classNames, \"\".concat(prefixCls, \"-pull-\").concat(pull), pull), _classNames), className, sizeClassObj);\n var mergedStyle = {}; // Horizontal gutter use padding\n\n if (gutter && gutter[0] > 0) {\n var horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n } // Vertical gutter use padding when gap not support\n\n\n if (gutter && gutter[1] > 0 && !supportFlexGap) {\n var verticalGutter = gutter[1] / 2;\n mergedStyle.paddingTop = verticalGutter;\n mergedStyle.paddingBottom = verticalGutter;\n }\n\n if (flex) {\n mergedStyle.flex = parseFlex(flex); // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n\n if (flex === 'auto' && wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n style: _extends(_extends({}, mergedStyle), style),\n className: classes,\n ref: ref\n }), children);\n});\nCol.displayName = 'Col';\nexport default Col;","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nexport var canUseDocElement = function canUseDocElement() {\n return canUseDom() && window.document.documentElement;\n};\nexport var isStyleSupport = function isStyleSupport(styleName) {\n if (canUseDocElement()) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n\n return false;\n};\nvar flexGapSupported;\nexport var detectFlexGapSupported = function detectFlexGapSupported() {\n if (!canUseDocElement()) {\n return false;\n }\n\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n } // create flex container with row-gap set\n\n\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px'; // create two, elements inside it\n\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div')); // append to the DOM (needed to obtain scrollHeight)\n\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n\n document.body.removeChild(flex);\n return flexGapSupported;\n};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { detectFlexGapSupported } from '../../_util/styleChecker';\nexport default (function () {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n flexible = _React$useState2[0],\n setFlexible = _React$useState2[1];\n\n React.useEffect(function () {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nimport { tuple } from '../_util/type';\nimport ResponsiveObserve, { responsiveArray } from '../_util/responsiveObserve';\nimport useFlexGapSupport from './hooks/useFlexGapSupport';\nvar RowAligns = tuple('top', 'middle', 'bottom', 'stretch');\nvar RowJustify = tuple('start', 'end', 'center', 'space-around', 'space-between');\nvar Row = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var customizePrefixCls = props.prefixCls,\n justify = props.justify,\n align = props.align,\n className = props.className,\n style = props.style,\n children = props.children,\n _props$gutter = props.gutter,\n gutter = _props$gutter === void 0 ? 0 : _props$gutter,\n wrap = props.wrap,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var _React$useState = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n screens = _React$useState2[0],\n setScreens = _React$useState2[1];\n\n var supportFlexGap = useFlexGapSupport();\n var gutterRef = React.useRef(gutter); // ================================== Effect ==================================\n\n React.useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (screen) {\n var currentGutter = gutterRef.current || 0;\n\n if (!Array.isArray(currentGutter) && _typeof(currentGutter) === 'object' || Array.isArray(currentGutter) && (_typeof(currentGutter[0]) === 'object' || _typeof(currentGutter[1]) === 'object')) {\n setScreens(screen);\n }\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []); // ================================== Render ==================================\n\n var getGutter = function getGutter() {\n var results = [0, 0];\n var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, 0];\n normalizedGutter.forEach(function (g, index) {\n if (_typeof(g) === 'object') {\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g || 0;\n }\n });\n return results;\n };\n\n var prefixCls = getPrefixCls('row', customizePrefixCls);\n var gutters = getGutter();\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-no-wrap\"), wrap === false), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(justify), justify), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(align), align), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className); // Add gutter related style\n\n var rowStyle = {};\n var horizontalGutter = gutters[0] > 0 ? gutters[0] / -2 : undefined;\n var verticalGutter = gutters[1] > 0 ? gutters[1] / -2 : undefined;\n\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n var _gutters = _slicedToArray(gutters, 2);\n\n rowStyle.rowGap = _gutters[1];\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n }\n\n var rowContext = React.useMemo(function () {\n return {\n gutter: gutters,\n wrap: wrap,\n supportFlexGap: supportFlexGap\n };\n }, [gutters, wrap, supportFlexGap]);\n return /*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes,\n style: _extends(_extends({}, rowStyle), style),\n ref: ref\n }), children));\n});\nRow.displayName = 'Row';\nexport default Row;","import locale from '../locale/default';\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport defaultLocaleData from './default';\nimport LocaleContext from './context';\n\nvar LocaleReceiver = /*#__PURE__*/function (_React$Component) {\n _inherits(LocaleReceiver, _React$Component);\n\n var _super = _createSuper(LocaleReceiver);\n\n function LocaleReceiver() {\n _classCallCheck(this, LocaleReceiver);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(LocaleReceiver, [{\n key: \"getLocale\",\n value: function getLocale() {\n var _this$props = this.props,\n componentName = _this$props.componentName,\n defaultLocale = _this$props.defaultLocale;\n var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n var antLocale = this.context;\n var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }\n }, {\n key: \"getLocaleCode\",\n value: function getLocaleCode() {\n var antLocale = this.context;\n var localeCode = antLocale && antLocale.locale; // Had use LocaleProvide but didn't set locale\n\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n\n return localeCode;\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children(this.getLocale(), this.getLocaleCode(), this.context);\n }\n }]);\n\n return LocaleReceiver;\n}(React.Component);\n\nexport { LocaleReceiver as default };\nLocaleReceiver.defaultProps = {\n componentName: 'global'\n};\nLocaleReceiver.contextType = LocaleContext;\nexport function useLocaleReceiver(componentName, defaultLocale) {\n var antLocale = React.useContext(LocaleContext);\n var componentLocale = React.useMemo(function () {\n var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n return [componentLocale];\n}","import { createContext } from 'react';\nvar LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","var locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US'; // Merge into a locale object\n\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nimport Calendar from '../calendar/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n \"default\": 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};\nexport default localeValues;","// This icon file is generated automatically.\nvar CheckCircleOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\"\n }\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"\n }\n }]\n },\n \"name\": \"check-circle\",\n \"theme\": \"outlined\"\n};\nexport default CheckCircleOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleOutlined = function CheckCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: CheckCircleOutlinedSvg\n }));\n};\n\nCheckCircleOutlined.displayName = 'CheckCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleOutlined);","// This icon file is generated automatically.\nvar CloseCircleOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z\"\n }\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"\n }\n }]\n },\n \"name\": \"close-circle\",\n \"theme\": \"outlined\"\n};\nexport default CloseCircleOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseCircleOutlined = function CloseCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: CloseCircleOutlinedSvg\n }));\n};\n\nCloseCircleOutlined.displayName = 'CloseCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"\n }\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\"\n }\n }]\n },\n \"name\": \"exclamation-circle\",\n \"theme\": \"outlined\"\n};\nexport default ExclamationCircleOutlined;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: ExclamationCircleOutlinedSvg\n }));\n};\n\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport * as React from 'react';\nimport Notification from 'rc-notification';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport createUseNotification from './hooks/useNotification';\nimport { globalConfig } from '../config-provider';\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = '';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\nvar rtl = false;\n\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon,\n prefixCls = options.prefixCls;\n\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n\n if (placement !== undefined) {\n defaultPlacement = placement;\n } else if (options.rtl) {\n defaultPlacement = 'topLeft';\n }\n\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n\n if (top !== undefined) {\n defaultTop = top;\n }\n\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\n\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n var style;\n\n switch (placement) {\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n\n return style;\n}\n\nfunction getNotificationInstance(args, callback) {\n var _args$placement = args.placement,\n placement = _args$placement === void 0 ? defaultPlacement : _args$placement,\n top = args.top,\n bottom = args.bottom,\n _args$getContainer = args.getContainer,\n getContainer = _args$getContainer === void 0 ? defaultGetContainer : _args$getContainer,\n _args$closeIcon = args.closeIcon,\n closeIcon = _args$closeIcon === void 0 ? defaultCloseIcon : _args$closeIcon,\n customizePrefixCls = args.prefixCls;\n\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls;\n\n var prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n var cacheInstance = notificationInstance[cacheKey];\n\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(function (instance) {\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n instance: instance\n });\n });\n return;\n }\n\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }));\n var notificationClass = classNames(\"\".concat(prefixCls, \"-\").concat(placement), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n notificationInstance[cacheKey] = new Promise(function (resolve) {\n Notification.newInstance({\n prefixCls: prefixCls,\n className: notificationClass,\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n closeIcon: closeIconToRender\n }, function (notification) {\n resolve(notification);\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n instance: notification\n });\n });\n });\n}\n\nvar typeToIcon = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\n\nfunction getRCNoticeProps(args, prefixCls) {\n var durationArg = args.duration,\n icon = args.icon,\n type = args.type,\n description = args.description,\n message = args.message,\n btn = args.btn,\n onClose = args.onClose,\n onClick = args.onClick,\n key = args.key,\n style = args.style,\n className = args.className;\n var duration = durationArg === undefined ? defaultDuration : durationArg;\n var iconNode = null;\n\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(type)\n });\n }\n\n var autoMarginTag = !description && iconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n }) : null;\n return {\n content: /*#__PURE__*/React.createElement(\"div\", {\n className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : '',\n role: \"alert\"\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, autoMarginTag, message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, btn) : null),\n duration: duration,\n closable: true,\n onClose: onClose,\n onClick: onClick,\n key: key,\n style: style || {},\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type), !!type))\n };\n}\n\nfunction notice(args) {\n getNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(args, prefixCls));\n });\n}\n\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.removeNotice(key);\n });\n });\n },\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n});\napi.warn = api.warning;\napi.useNotification = createUseNotification(getNotificationInstance, getRCNoticeProps);\n/** @private test Only function. Not work on production */\n\nexport var getInstance = function getInstance(cacheKey) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null);\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseNotification(getNotificationInstance, getRCNoticeProps) {\n var useNotification = function useNotification() {\n // We can only get content by render\n var getPrefixCls; // We create a proxy to handle delay created instance\n\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('notification', customizePrefixCls);\n getNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(args, prefixCls));\n });\n } // Fill functions\n\n\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error'].forEach(function (type) {\n hookApiRef.current[type] = function (args) {\n return hookApiRef.current.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n\n return useNotification;\n}","import devWarning from '../_util/devWarning';\nexport function validProgress(progress) {\n if (!progress || progress < 0) {\n return 0;\n }\n\n if (progress > 100) {\n return 100;\n }\n\n return progress;\n}\nexport function getSuccessPercent(_ref) {\n var success = _ref.success,\n successPercent = _ref.successPercent;\n var percent = successPercent;\n /** @deprecated Use `percent` instead */\n\n if (success && 'progress' in success) {\n devWarning(false, 'Progress', '`success.progress` is deprecated. Please use `success.percent` instead.');\n percent = success.progress;\n }\n\n if (success && 'percent' in success) {\n percent = success.percent;\n }\n\n return percent;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport { validProgress, getSuccessPercent } from './utils';\n/**\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"75%\": \"#009900\",\n * \"50%\": \"green\", // ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'\n * \"25%\": \"#66FF00\",\n * \"100%\": \"#ffffff\"\n * }\n */\n\nexport var sortGradient = function sortGradient(gradients) {\n var tempArr = [];\n Object.keys(gradients).forEach(function (key) {\n var formattedKey = parseFloat(key.replace(/%/g, ''));\n\n if (!isNaN(formattedKey)) {\n tempArr.push({\n key: formattedKey,\n value: gradients[key]\n });\n }\n });\n tempArr = tempArr.sort(function (a, b) {\n return a.key - b.key;\n });\n return tempArr.map(function (_ref) {\n var key = _ref.key,\n value = _ref.value;\n return \"\".concat(value, \" \").concat(key, \"%\");\n }).join(', ');\n};\n/**\n * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and\n * butter, there is the bug. And... Besides women, there is the code.\n *\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"25%\": \"#66FF00\",\n * \"50%\": \"#00CC00\", // ====> linear-gradient(to right, #afc163 0%, #66FF00 25%,\n * \"75%\": \"#009900\", // #00CC00 50%, #009900 75%, #ffffff 100%)\n * \"100%\": \"#ffffff\"\n * }\n */\n\nexport var handleGradient = function handleGradient(strokeColor, directionConfig) {\n var _strokeColor$from = strokeColor.from,\n from = _strokeColor$from === void 0 ? presetPrimaryColors.blue : _strokeColor$from,\n _strokeColor$to = strokeColor.to,\n to = _strokeColor$to === void 0 ? presetPrimaryColors.blue : _strokeColor$to,\n _strokeColor$directio = strokeColor.direction,\n direction = _strokeColor$directio === void 0 ? directionConfig === 'rtl' ? 'to left' : 'to right' : _strokeColor$directio,\n rest = __rest(strokeColor, [\"from\", \"to\", \"direction\"]);\n\n if (Object.keys(rest).length !== 0) {\n var sortedGradients = sortGradient(rest);\n return {\n backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(sortedGradients, \")\")\n };\n }\n\n return {\n backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(from, \", \").concat(to, \")\")\n };\n};\n\nvar Line = function Line(props) {\n var prefixCls = props.prefixCls,\n directionConfig = props.direction,\n percent = props.percent,\n strokeWidth = props.strokeWidth,\n size = props.size,\n strokeColor = props.strokeColor,\n strokeLinecap = props.strokeLinecap,\n children = props.children,\n trailColor = props.trailColor,\n success = props.success;\n var backgroundProps = strokeColor && typeof strokeColor !== 'string' ? handleGradient(strokeColor, directionConfig) : {\n background: strokeColor\n };\n var trailStyle = trailColor ? {\n backgroundColor: trailColor\n } : undefined;\n\n var percentStyle = _extends({\n width: \"\".concat(validProgress(percent), \"%\"),\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius: strokeLinecap === 'square' ? 0 : ''\n }, backgroundProps);\n\n var successPercent = getSuccessPercent(props);\n var successPercentStyle = {\n width: \"\".concat(validProgress(successPercent), \"%\"),\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius: strokeLinecap === 'square' ? 0 : '',\n backgroundColor: success === null || success === void 0 ? void 0 : success.strokeColor\n };\n var successSegment = successPercent !== undefined ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-success-bg\"),\n style: successPercentStyle\n }) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-outer\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n style: trailStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-bg\"),\n style: percentStyle\n }), successSegment)), children);\n};\n\nexport default Line;","import { useRef, useEffect } from 'react';\nexport var defaultProps = {\n className: '',\n percent: 0,\n prefixCls: 'rc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n style: {},\n trailColor: '#D9D9D9',\n trailWidth: 1\n};\nexport var useTransitionDuration = function useTransitionDuration(percentList) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var paths = percentList.map(function () {\n return useRef();\n });\n var prevTimeStamp = useRef(null);\n useEffect(function () {\n var now = Date.now();\n var updated = false;\n Object.keys(paths).forEach(function (key) {\n var path = paths[key].current;\n\n if (!path) {\n return;\n }\n\n updated = true;\n var pathStyle = path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n\n if (prevTimeStamp.current && now - prevTimeStamp.current < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n });\n\n if (updated) {\n prevTimeStamp.current = Date.now();\n }\n });\n return [paths];\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\n\nvar Line = function Line(_ref) {\n var className = _ref.className,\n percent = _ref.percent,\n prefixCls = _ref.prefixCls,\n strokeColor = _ref.strokeColor,\n strokeLinecap = _ref.strokeLinecap,\n strokeWidth = _ref.strokeWidth,\n style = _ref.style,\n trailColor = _ref.trailColor,\n trailWidth = _ref.trailWidth,\n transition = _ref.transition,\n restProps = _objectWithoutProperties(_ref, [\"className\", \"percent\", \"prefixCls\", \"strokeColor\", \"strokeLinecap\", \"strokeWidth\", \"style\", \"trailColor\", \"trailWidth\", \"transition\"]); // eslint-disable-next-line no-param-reassign\n\n\n delete restProps.gapPosition;\n var percentList = Array.isArray(percent) ? percent : [percent];\n var strokeColorList = Array.isArray(strokeColor) ? strokeColor : [strokeColor];\n\n var _useTransitionDuratio = useTransitionDuration(percentList),\n _useTransitionDuratio2 = _slicedToArray(_useTransitionDuratio, 1),\n paths = _useTransitionDuratio2[0];\n\n var center = strokeWidth / 2;\n var right = 100 - strokeWidth / 2;\n var pathString = \"M \".concat(strokeLinecap === 'round' ? center : 0, \",\").concat(center, \"\\n L \").concat(strokeLinecap === 'round' ? right : 100, \",\").concat(center);\n var viewBoxString = \"0 0 100 \".concat(strokeWidth);\n var stackPtg = 0;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-line\"), className),\n viewBox: viewBoxString,\n preserveAspectRatio: \"none\",\n style: style\n }, restProps), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-line-trail\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: trailColor,\n strokeWidth: trailWidth || strokeWidth,\n fillOpacity: \"0\"\n }), percentList.map(function (ptg, index) {\n var dashPercent = 1;\n\n switch (strokeLinecap) {\n case 'round':\n dashPercent = 1 - strokeWidth / 100;\n break;\n\n case 'square':\n dashPercent = 1 - strokeWidth / 2 / 100;\n break;\n\n default:\n dashPercent = 1;\n break;\n }\n\n var pathStyle = {\n strokeDasharray: \"\".concat(ptg * dashPercent, \"px, 100px\"),\n strokeDashoffset: \"-\".concat(stackPtg, \"px\"),\n transition: transition || 'stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear'\n };\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"path\", {\n key: index,\n className: \"\".concat(prefixCls, \"-line-path\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: color,\n strokeWidth: strokeWidth,\n fillOpacity: \"0\",\n ref: paths[index],\n style: pathStyle\n });\n }));\n};\n\nLine.defaultProps = defaultProps;\nLine.displayName = 'Line';\nexport default Line;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\nvar gradientSeed = 0;\n\nfunction stripPercentToNumber(percent) {\n return +percent.replace('%', '');\n}\n\nfunction toArray(symArray) {\n return Array.isArray(symArray) ? symArray : [symArray];\n}\n\nfunction getPathStyles(offset, percent, strokeColor, strokeWidth) {\n var gapDegree = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var gapPosition = arguments.length > 5 ? arguments[5] : undefined;\n var radius = 50 - strokeWidth / 2;\n var beginPositionX = 0;\n var beginPositionY = -radius;\n var endPositionX = 0;\n var endPositionY = -2 * radius;\n\n switch (gapPosition) {\n case 'left':\n beginPositionX = -radius;\n beginPositionY = 0;\n endPositionX = 2 * radius;\n endPositionY = 0;\n break;\n\n case 'right':\n beginPositionX = radius;\n beginPositionY = 0;\n endPositionX = -2 * radius;\n endPositionY = 0;\n break;\n\n case 'bottom':\n beginPositionY = radius;\n endPositionY = 2 * radius;\n break;\n\n default:\n }\n\n var pathString = \"M 50,50 m \".concat(beginPositionX, \",\").concat(beginPositionY, \"\\n a \").concat(radius, \",\").concat(radius, \" 0 1 1 \").concat(endPositionX, \",\").concat(-endPositionY, \"\\n a \").concat(radius, \",\").concat(radius, \" 0 1 1 \").concat(-endPositionX, \",\").concat(endPositionY);\n var len = Math.PI * 2 * radius;\n var pathStyle = {\n stroke: strokeColor,\n strokeDasharray: \"\".concat(percent / 100 * (len - gapDegree), \"px \").concat(len, \"px\"),\n strokeDashoffset: \"-\".concat(gapDegree / 2 + offset / 100 * (len - gapDegree), \"px\"),\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s'\n };\n return {\n pathString: pathString,\n pathStyle: pathStyle\n };\n}\n\nvar Circle = function Circle(_ref) {\n var prefixCls = _ref.prefixCls,\n strokeWidth = _ref.strokeWidth,\n trailWidth = _ref.trailWidth,\n gapDegree = _ref.gapDegree,\n gapPosition = _ref.gapPosition,\n trailColor = _ref.trailColor,\n strokeLinecap = _ref.strokeLinecap,\n style = _ref.style,\n className = _ref.className,\n strokeColor = _ref.strokeColor,\n percent = _ref.percent,\n restProps = _objectWithoutProperties(_ref, [\"prefixCls\", \"strokeWidth\", \"trailWidth\", \"gapDegree\", \"gapPosition\", \"trailColor\", \"strokeLinecap\", \"style\", \"className\", \"strokeColor\", \"percent\"]);\n\n var gradientId = React.useMemo(function () {\n gradientSeed += 1;\n return gradientSeed;\n }, []);\n\n var _getPathStyles = getPathStyles(0, 100, trailColor, strokeWidth, gapDegree, gapPosition),\n pathString = _getPathStyles.pathString,\n pathStyle = _getPathStyles.pathStyle;\n\n var percentList = toArray(percent);\n var strokeColorList = toArray(strokeColor);\n var gradient = strokeColorList.find(function (color) {\n return Object.prototype.toString.call(color) === '[object Object]';\n });\n\n var _useTransitionDuratio = useTransitionDuration(percentList),\n _useTransitionDuratio2 = _slicedToArray(_useTransitionDuratio, 1),\n paths = _useTransitionDuratio2[0];\n\n var getStokeList = function getStokeList() {\n var stackPtg = 0;\n return percentList.map(function (ptg, index) {\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n var stroke = Object.prototype.toString.call(color) === '[object Object]' ? \"url(#\".concat(prefixCls, \"-gradient-\").concat(gradientId, \")\") : '';\n var pathStyles = getPathStyles(stackPtg, ptg, color, strokeWidth, gapDegree, gapPosition);\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"path\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n d: pathStyles.pathString,\n stroke: stroke,\n strokeLinecap: strokeLinecap,\n strokeWidth: strokeWidth,\n opacity: ptg === 0 ? 0 : 1,\n fillOpacity: \"0\",\n style: pathStyles.pathStyle,\n ref: paths[index]\n });\n });\n };\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-circle\"), className),\n viewBox: \"0 0 100 100\",\n style: style\n }, restProps), gradient && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"\".concat(prefixCls, \"-gradient-\").concat(gradientId),\n x1: \"100%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"0%\"\n }, Object.keys(gradient).sort(function (a, b) {\n return stripPercentToNumber(a) - stripPercentToNumber(b);\n }).map(function (key, index) {\n return /*#__PURE__*/React.createElement(\"stop\", {\n key: index,\n offset: key,\n stopColor: gradient[key]\n });\n }))), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-circle-trail\"),\n d: pathString,\n stroke: trailColor,\n strokeLinecap: strokeLinecap,\n strokeWidth: trailWidth || strokeWidth,\n fillOpacity: \"0\",\n style: pathStyle\n }), getStokeList().reverse());\n};\n\nCircle.defaultProps = defaultProps;\nCircle.displayName = 'Circle';\nexport default Circle;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { Circle as RCCircle } from 'rc-progress';\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport classNames from 'classnames';\nimport { validProgress, getSuccessPercent } from './utils';\n\nfunction getPercentage(_ref) {\n var percent = _ref.percent,\n success = _ref.success,\n successPercent = _ref.successPercent;\n var ptg = validProgress(percent);\n var realSuccessPercent = getSuccessPercent({\n success: success,\n successPercent: successPercent\n });\n\n if (!realSuccessPercent) {\n return ptg;\n }\n\n return [validProgress(realSuccessPercent), validProgress(ptg - validProgress(realSuccessPercent))];\n}\n\nfunction getStrokeColor(_ref2) {\n var success = _ref2.success,\n strokeColor = _ref2.strokeColor,\n successPercent = _ref2.successPercent;\n var color = strokeColor || null;\n var realSuccessPercent = getSuccessPercent({\n success: success,\n successPercent: successPercent\n });\n\n if (!realSuccessPercent) {\n return color;\n }\n\n return [presetPrimaryColors.green, color];\n}\n\nvar Circle = function Circle(props) {\n var prefixCls = props.prefixCls,\n width = props.width,\n strokeWidth = props.strokeWidth,\n trailColor = props.trailColor,\n strokeLinecap = props.strokeLinecap,\n gapPosition = props.gapPosition,\n gapDegree = props.gapDegree,\n type = props.type,\n children = props.children;\n var circleSize = width || 120;\n var circleStyle = {\n width: circleSize,\n height: circleSize,\n fontSize: circleSize * 0.15 + 6\n };\n var circleWidth = strokeWidth || 6;\n var gapPos = gapPosition || type === 'dashboard' && 'bottom' || 'top';\n\n var getGapDegree = function getGapDegree() {\n // Support gapDeg = 0 when type = 'dashboard'\n if (gapDegree || gapDegree === 0) {\n return gapDegree;\n }\n\n if (type === 'dashboard') {\n return 75;\n }\n\n return undefined;\n }; // using className to style stroke color\n\n\n var strokeColor = getStrokeColor(props);\n var isGradient = Object.prototype.toString.call(strokeColor) === '[object Object]';\n var wrapperClassName = classNames(\"\".concat(prefixCls, \"-inner\"), _defineProperty({}, \"\".concat(prefixCls, \"-circle-gradient\"), isGradient));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName,\n style: circleStyle\n }, /*#__PURE__*/React.createElement(RCCircle, {\n percent: getPercentage(props),\n strokeWidth: circleWidth,\n trailWidth: circleWidth,\n strokeColor: strokeColor,\n strokeLinecap: strokeLinecap,\n trailColor: trailColor,\n prefixCls: prefixCls,\n gapDegree: getGapDegree(),\n gapPosition: gapPos\n }), children);\n};\n\nexport default Circle;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nvar Steps = function Steps(props) {\n var size = props.size,\n steps = props.steps,\n _props$percent = props.percent,\n percent = _props$percent === void 0 ? 0 : _props$percent,\n _props$strokeWidth = props.strokeWidth,\n strokeWidth = _props$strokeWidth === void 0 ? 8 : _props$strokeWidth,\n strokeColor = props.strokeColor,\n trailColor = props.trailColor,\n prefixCls = props.prefixCls,\n children = props.children;\n var current = Math.round(steps * (percent / 100));\n var stepWidth = size === 'small' ? 2 : 14;\n var styledSteps = [];\n\n for (var i = 0; i < steps; i += 1) {\n styledSteps.push( /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n className: classNames(\"\".concat(prefixCls, \"-steps-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-steps-item-active\"), i <= current - 1)),\n style: {\n backgroundColor: i <= current - 1 ? strokeColor : trailColor,\n width: stepWidth,\n height: strokeWidth\n }\n }));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-steps-outer\")\n }, styledSteps, children);\n};\n\nexport default Steps;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport { ConfigConsumer } from '../config-provider';\nimport { tuple } from '../_util/type';\nimport devWarning from '../_util/devWarning';\nimport Line from './Line';\nimport Circle from './Circle';\nimport Steps from './Steps';\nimport { validProgress, getSuccessPercent } from './utils';\nvar ProgressTypes = tuple('line', 'circle', 'dashboard');\nvar ProgressStatuses = tuple('normal', 'exception', 'active', 'success');\n\nvar Progress = /*#__PURE__*/function (_React$Component) {\n _inherits(Progress, _React$Component);\n\n var _super = _createSuper(Progress);\n\n function Progress() {\n var _this;\n\n _classCallCheck(this, Progress);\n\n _this = _super.apply(this, arguments);\n\n _this.renderProgress = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n size = props.size,\n type = props.type,\n steps = props.steps,\n showInfo = props.showInfo,\n strokeColor = props.strokeColor,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"size\", \"type\", \"steps\", \"showInfo\", \"strokeColor\"]);\n\n var prefixCls = getPrefixCls('progress', customizePrefixCls);\n\n var progressStatus = _this.getProgressStatus();\n\n var progressInfo = _this.renderProcessInfo(prefixCls, progressStatus);\n\n devWarning(!('successPercent' in props), 'Progress', '`successPercent` is deprecated. Please use `success.percent` instead.');\n var progress; // Render progress shape\n\n if (type === 'line') {\n progress = steps ? /*#__PURE__*/React.createElement(Steps, _extends({}, _this.props, {\n strokeColor: typeof strokeColor === 'string' ? strokeColor : undefined,\n prefixCls: prefixCls,\n steps: steps\n }), progressInfo) : /*#__PURE__*/React.createElement(Line, _extends({}, _this.props, {\n prefixCls: prefixCls,\n direction: direction\n }), progressInfo);\n } else if (type === 'circle' || type === 'dashboard') {\n progress = /*#__PURE__*/React.createElement(Circle, _extends({}, _this.props, {\n prefixCls: prefixCls,\n progressStatus: progressStatus\n }), progressInfo);\n }\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type === 'dashboard' && 'circle' || steps && 'steps' || type), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-\").concat(progressStatus), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-info\"), showInfo), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, omit(restProps, ['status', 'format', 'trailColor', 'strokeWidth', 'width', 'gapDegree', 'gapPosition', 'strokeLinecap', 'percent', 'success', 'successPercent']), {\n className: classString\n }), progress);\n };\n\n return _this;\n }\n\n _createClass(Progress, [{\n key: \"getPercentNumber\",\n value: function getPercentNumber() {\n var _this$props$percent = this.props.percent,\n percent = _this$props$percent === void 0 ? 0 : _this$props$percent;\n var successPercent = getSuccessPercent(this.props);\n return parseInt(successPercent !== undefined ? successPercent.toString() : percent.toString(), 10);\n }\n }, {\n key: \"getProgressStatus\",\n value: function getProgressStatus() {\n var status = this.props.status;\n\n if (ProgressStatuses.indexOf(status) < 0 && this.getPercentNumber() >= 100) {\n return 'success';\n }\n\n return status || 'normal';\n }\n }, {\n key: \"renderProcessInfo\",\n value: function renderProcessInfo(prefixCls, progressStatus) {\n var _this$props = this.props,\n showInfo = _this$props.showInfo,\n format = _this$props.format,\n type = _this$props.type,\n percent = _this$props.percent;\n var successPercent = getSuccessPercent(this.props);\n if (!showInfo) return null;\n var text;\n\n var textFormatter = format || function (percentNumber) {\n return \"\".concat(percentNumber, \"%\");\n };\n\n var isLineType = type === 'line';\n\n if (format || progressStatus !== 'exception' && progressStatus !== 'success') {\n text = textFormatter(validProgress(percent), validProgress(successPercent));\n } else if (progressStatus === 'exception') {\n text = isLineType ? /*#__PURE__*/React.createElement(CloseCircleFilled, null) : /*#__PURE__*/React.createElement(CloseOutlined, null);\n } else if (progressStatus === 'success') {\n text = isLineType ? /*#__PURE__*/React.createElement(CheckCircleFilled, null) : /*#__PURE__*/React.createElement(CheckOutlined, null);\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-text\"),\n title: typeof text === 'string' ? text : undefined\n }, text);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderProgress);\n }\n }]);\n\n return Progress;\n}(React.Component);\n\nexport { Progress as default };\nProgress.defaultProps = {\n type: 'line',\n percent: 0,\n showInfo: true,\n // null for different theme definition\n trailColor: null,\n size: 'default',\n gapDegree: undefined,\n strokeLinecap: 'round'\n};","import Progress from './progress';\nexport default Progress;","import * as React from 'react';\nvar RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport var RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport RcCheckbox from 'rc-checkbox';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { ConfigContext } from '../config-provider';\nimport RadioGroupContext from './context';\nimport devWarning from '../_util/devWarning';\n\nvar InternalRadio = function InternalRadio(props, ref) {\n var _classNames;\n\n var context = React.useContext(RadioGroupContext);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var innerRef = React.useRef();\n var mergedRef = composeRef(ref, innerRef);\n React.useEffect(function () {\n devWarning(!('optionType' in props), 'Radio', '`optionType` is only support in Radio.Group.');\n }, []);\n\n var onChange = function onChange(e) {\n var _a, _b;\n\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n (_b = context === null || context === void 0 ? void 0 : context.onChange) === null || _b === void 0 ? void 0 : _b.call(context, e);\n };\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n style = props.style,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"children\", \"style\"]);\n\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n\n var radioProps = _extends({}, restProps);\n\n if (context) {\n radioProps.name = context.name;\n radioProps.onChange = onChange;\n radioProps.checked = props.value === context.value;\n radioProps.disabled = props.disabled || context.disabled;\n }\n\n var wrapperClassString = classNames(\"\".concat(prefixCls, \"-wrapper\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-checked\"), radioProps.checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-disabled\"), radioProps.disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-rtl\"), direction === 'rtl'), _classNames), className);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: wrapperClassString,\n style: style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, _extends({}, radioProps, {\n prefixCls: prefixCls,\n ref: mergedRef\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null)\n );\n};\n\nvar Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nRadio.displayName = 'Radio';\nRadio.defaultProps = {\n type: 'radio'\n};\nexport default Radio;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Radio from './radio';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport { RadioGroupContextProvider } from './context';\nvar RadioGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var size = React.useContext(SizeContext);\n\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n\n var onRadioChange = function onRadioChange(ev) {\n var lastValue = value;\n var val = ev.target.value;\n\n if (!('value' in props)) {\n setValue(val);\n }\n\n var onChange = props.onChange;\n\n if (onChange && val !== lastValue) {\n onChange(ev);\n }\n };\n\n var renderGroup = function renderGroup() {\n var _classNames;\n\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n options = props.options,\n optionType = props.optionType,\n _props$buttonStyle = props.buttonStyle,\n buttonStyle = _props$buttonStyle === void 0 ? 'outline' : _props$buttonStyle,\n disabled = props.disabled,\n children = props.children,\n customizeSize = props.size,\n style = props.style,\n id = props.id,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave;\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var childrenToRender = children; // 如果存在 options, 优先使用\n\n if (options && options.length > 0) {\n var optionsPrefixCls = optionType === 'button' ? \"\".concat(prefixCls, \"-button\") : prefixCls;\n childrenToRender = options.map(function (option) {\n if (typeof option === 'string') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(Radio, {\n key: option,\n prefixCls: optionsPrefixCls,\n disabled: disabled,\n value: option,\n checked: value === option\n }, option);\n } // 此处类型自动推导为 { label: string value: string }\n\n\n return /*#__PURE__*/React.createElement(Radio, {\n key: \"radio-group-value-options-\".concat(option.value),\n prefixCls: optionsPrefixCls,\n disabled: option.disabled || disabled,\n value: option.value,\n checked: value === option.value,\n style: option.style\n }, option.label);\n });\n }\n\n var mergedSize = customizeSize || size;\n var classString = classNames(groupPrefixCls, \"\".concat(groupPrefixCls, \"-\").concat(buttonStyle), (_classNames = {}, _defineProperty(_classNames, \"\".concat(groupPrefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(groupPrefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n id: id,\n ref: ref\n }, childrenToRender);\n };\n\n return /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n value: {\n onChange: onRadioChange,\n value: value,\n disabled: props.disabled,\n name: props.name\n }\n }, renderGroup());\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport Radio from './radio';\nimport { ConfigContext } from '../config-provider';\nimport RadioGroupContext from './context';\n\nvar RadioButton = function RadioButton(props, ref) {\n var radioGroupContext = React.useContext(RadioGroupContext);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls,\n radioProps = __rest(props, [\"prefixCls\"]);\n\n var prefixCls = getPrefixCls('radio-button', customizePrefixCls);\n\n if (radioGroupContext) {\n radioProps.checked = props.value === radioGroupContext.value;\n radioProps.disabled = props.disabled || radioGroupContext.disabled;\n }\n\n return /*#__PURE__*/React.createElement(Radio, _extends({\n prefixCls: prefixCls\n }, radioProps, {\n type: \"radio\",\n ref: ref\n }));\n};\n\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","import InternalRadio from './radio';\nimport Group from './group';\nimport Button from './radioButton';\nvar Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nexport { Button, Group };\nexport default Radio;","import { Row } from '../grid';\nexport default Row;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n/* eslint-enable max-len */\n\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\n\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\n\n\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if ( // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) || // Data\n mergedConfig.data && match(key, dataPrefix) || // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\n\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var height = _ref.height,\n offset = _ref.offset,\n children = _ref.children,\n prefixCls = _ref.prefixCls,\n onInnerResize = _ref.onInnerResize;\n var outerStyle = {};\n var innerStyle = {\n display: 'flex',\n flexDirection: 'column'\n };\n\n if (offset !== undefined) {\n outerStyle = {\n height: height,\n position: 'relative',\n overflow: 'hidden'\n };\n innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, {\n transform: \"translateY(\".concat(offset, \"px)\"),\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: outerStyle\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref2) {\n var offsetHeight = _ref2.offsetHeight;\n\n if (offsetHeight && onInnerResize) {\n onInnerResize();\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: innerStyle,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n ref: ref\n }, children)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nvar MIN_SIZE = 20;\n\nfunction getPageY(e) {\n return 'touches' in e ? e.touches[0].pageY : e.pageY;\n}\n\nvar ScrollBar = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollBar, _React$Component);\n\n var _super = _createSuper(ScrollBar);\n\n function ScrollBar() {\n var _this;\n\n _classCallCheck(this, ScrollBar);\n\n _this = _super.apply(this, arguments);\n _this.moveRaf = null;\n _this.scrollbarRef = /*#__PURE__*/React.createRef();\n _this.thumbRef = /*#__PURE__*/React.createRef();\n _this.visibleTimeout = null;\n _this.state = {\n dragging: false,\n pageY: null,\n startTop: null,\n visible: false\n };\n\n _this.delayHidden = function () {\n clearTimeout(_this.visibleTimeout);\n\n _this.setState({\n visible: true\n });\n\n _this.visibleTimeout = setTimeout(function () {\n _this.setState({\n visible: false\n });\n }, 2000);\n };\n\n _this.onScrollbarTouchStart = function (e) {\n e.preventDefault();\n };\n\n _this.onContainerMouseDown = function (e) {\n e.stopPropagation();\n e.preventDefault();\n }; // ======================= Clean =======================\n\n\n _this.patchEvents = function () {\n window.addEventListener('mousemove', _this.onMouseMove);\n window.addEventListener('mouseup', _this.onMouseUp);\n\n _this.thumbRef.current.addEventListener('touchmove', _this.onMouseMove);\n\n _this.thumbRef.current.addEventListener('touchend', _this.onMouseUp);\n };\n\n _this.removeEvents = function () {\n window.removeEventListener('mousemove', _this.onMouseMove);\n window.removeEventListener('mouseup', _this.onMouseUp);\n\n _this.scrollbarRef.current.removeEventListener('touchstart', _this.onScrollbarTouchStart);\n\n _this.thumbRef.current.removeEventListener('touchstart', _this.onMouseDown);\n\n _this.thumbRef.current.removeEventListener('touchmove', _this.onMouseMove);\n\n _this.thumbRef.current.removeEventListener('touchend', _this.onMouseUp);\n\n raf.cancel(_this.moveRaf);\n }; // ======================= Thumb =======================\n\n\n _this.onMouseDown = function (e) {\n var onStartMove = _this.props.onStartMove;\n\n _this.setState({\n dragging: true,\n pageY: getPageY(e),\n startTop: _this.getTop()\n });\n\n onStartMove();\n\n _this.patchEvents();\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n _this.onMouseMove = function (e) {\n var _this$state = _this.state,\n dragging = _this$state.dragging,\n pageY = _this$state.pageY,\n startTop = _this$state.startTop;\n var onScroll = _this.props.onScroll;\n raf.cancel(_this.moveRaf);\n\n if (dragging) {\n var offsetY = getPageY(e) - pageY;\n var newTop = startTop + offsetY;\n\n var enableScrollRange = _this.getEnableScrollRange();\n\n var enableHeightRange = _this.getEnableHeightRange();\n\n var ptg = enableHeightRange ? newTop / enableHeightRange : 0;\n var newScrollTop = Math.ceil(ptg * enableScrollRange);\n _this.moveRaf = raf(function () {\n onScroll(newScrollTop);\n });\n }\n };\n\n _this.onMouseUp = function () {\n var onStopMove = _this.props.onStopMove;\n\n _this.setState({\n dragging: false\n });\n\n onStopMove();\n\n _this.removeEvents();\n }; // ===================== Calculate =====================\n\n\n _this.getSpinHeight = function () {\n var _this$props = _this.props,\n height = _this$props.height,\n count = _this$props.count;\n var baseHeight = height / count * 10;\n baseHeight = Math.max(baseHeight, MIN_SIZE);\n baseHeight = Math.min(baseHeight, height / 2);\n return Math.floor(baseHeight);\n };\n\n _this.getEnableScrollRange = function () {\n var _this$props2 = _this.props,\n scrollHeight = _this$props2.scrollHeight,\n height = _this$props2.height;\n return scrollHeight - height || 0;\n };\n\n _this.getEnableHeightRange = function () {\n var height = _this.props.height;\n\n var spinHeight = _this.getSpinHeight();\n\n return height - spinHeight || 0;\n };\n\n _this.getTop = function () {\n var scrollTop = _this.props.scrollTop;\n\n var enableScrollRange = _this.getEnableScrollRange();\n\n var enableHeightRange = _this.getEnableHeightRange();\n\n if (scrollTop === 0 || enableScrollRange === 0) {\n return 0;\n }\n\n var ptg = scrollTop / enableScrollRange;\n return ptg * enableHeightRange;\n }; // Not show scrollbar when height is large thane scrollHeight\n\n\n _this.getVisible = function () {\n var visible = _this.state.visible;\n var _this$props3 = _this.props,\n height = _this$props3.height,\n scrollHeight = _this$props3.scrollHeight;\n\n if (height >= scrollHeight) {\n return false;\n }\n\n return visible;\n };\n\n return _this;\n }\n\n _createClass(ScrollBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollbarRef.current.addEventListener('touchstart', this.onScrollbarTouchStart);\n this.thumbRef.current.addEventListener('touchstart', this.onMouseDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.scrollTop !== this.props.scrollTop) {\n this.delayHidden();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeEvents();\n clearTimeout(this.visibleTimeout);\n } // ====================== Render =======================\n\n }, {\n key: \"render\",\n value: function render() {\n var dragging = this.state.dragging;\n var prefixCls = this.props.prefixCls;\n var spinHeight = this.getSpinHeight();\n var top = this.getTop();\n var visible = this.getVisible();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.scrollbarRef,\n className: \"\".concat(prefixCls, \"-scrollbar\"),\n style: {\n width: 8,\n top: 0,\n bottom: 0,\n right: 0,\n position: 'absolute',\n display: visible ? null : 'none'\n },\n onMouseDown: this.onContainerMouseDown,\n onMouseMove: this.delayHidden\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.thumbRef,\n className: classNames(\"\".concat(prefixCls, \"-scrollbar-thumb\"), _defineProperty({}, \"\".concat(prefixCls, \"-scrollbar-thumb-moving\"), dragging)),\n style: {\n width: '100%',\n height: spinHeight,\n top: top,\n left: 0,\n position: 'absolute',\n background: 'rgba(0, 0, 0, 0.5)',\n borderRadius: 99,\n cursor: 'pointer',\n userSelect: 'none'\n },\n onMouseDown: this.onMouseDown\n }));\n }\n }]);\n\n return ScrollBar;\n}(React.Component);\n\nexport { ScrollBar as default };","import * as React from 'react';\nexport function Item(_ref) {\n var children = _ref.children,\n setRef = _ref.setRef;\n var refFunc = React.useCallback(function (node) {\n setRef(node);\n }, []);\n return /*#__PURE__*/React.cloneElement(children, {\n ref: refFunc\n });\n}","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n} // Firefox has low performance of map.\n\n\nvar CacheMap = /*#__PURE__*/function () {\n function CacheMap() {\n _classCallCheck(this, CacheMap);\n\n this.maps = {};\n this.maps.prototype = null;\n }\n\n _createClass(CacheMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.maps[key] = value;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.maps[key];\n }\n }]);\n\n return CacheMap;\n}();\n\nexport default CacheMap;","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport CacheMap from '../utils/CacheMap';\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n updatedMark = _React$useState2[0],\n setUpdatedMark = _React$useState2[1];\n\n var instanceRef = useRef(new Map());\n var heightsRef = useRef(new CacheMap());\n var heightUpdateIdRef = useRef(0);\n\n function collectHeight() {\n heightUpdateIdRef.current += 1;\n var currentId = heightUpdateIdRef.current;\n Promise.resolve().then(function () {\n // Only collect when it's latest call\n if (currentId !== heightUpdateIdRef.current) return;\n instanceRef.current.forEach(function (element, key) {\n if (element && element.offsetParent) {\n var htmlElement = findDOMNode(element);\n var offsetHeight = htmlElement.offsetHeight;\n\n if (heightsRef.current.get(key) !== offsetHeight) {\n heightsRef.current.set(key, htmlElement.offsetHeight);\n }\n }\n }); // Always trigger update mark to tell parent that should re-calculate heights when resized\n\n setUpdatedMark(function (c) {\n return c + 1;\n });\n });\n }\n\n function setInstanceRef(item, instance) {\n var key = getKey(item);\n var origin = instanceRef.current.get(key);\n\n if (instance) {\n instanceRef.current.set(key, instance);\n collectHeight();\n } else {\n instanceRef.current.delete(key);\n } // Instance changed\n\n\n if (!origin !== !instance) {\n if (instance) {\n onItemAdd === null || onItemAdd === void 0 ? void 0 : onItemAdd(item);\n } else {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(item);\n }\n }\n }\n\n return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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/* eslint-disable no-param-reassign */\n\n\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n var scrollRef = React.useRef();\n return function (arg) {\n // When not argument provided, we think dev may want to show the scrollbar\n if (arg === null || arg === undefined) {\n triggerFlash();\n return;\n } // Normal scroll logic\n\n\n raf.cancel(scrollRef.current);\n\n if (typeof arg === 'number') {\n syncScrollTop(arg);\n } else if (arg && _typeof(arg) === 'object') {\n var index;\n var align = arg.align;\n\n if ('index' in arg) {\n index = arg.index;\n } else {\n index = data.findIndex(function (item) {\n return getKey(item) === arg.key;\n });\n }\n\n var _arg$offset = arg.offset,\n offset = _arg$offset === void 0 ? 0 : _arg$offset; // We will retry 3 times in case dynamic height shaking\n\n var syncScroll = function syncScroll(times, targetAlign) {\n if (times < 0 || !containerRef.current) return;\n var height = containerRef.current.clientHeight;\n var needCollectHeight = false;\n var newTargetAlign = targetAlign; // Go to next frame if height not exist\n\n if (height) {\n var mergedAlign = targetAlign || align; // Get top & bottom\n\n var stackTop = 0;\n var itemTop = 0;\n var itemBottom = 0;\n var maxLen = Math.min(data.length, index);\n\n for (var i = 0; i <= maxLen; i += 1) {\n var key = getKey(data[i]);\n itemTop = stackTop;\n var cacheHeight = heights.get(key);\n itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n stackTop = itemBottom;\n\n if (i === index && cacheHeight === undefined) {\n needCollectHeight = true;\n }\n } // Scroll to\n\n\n var targetTop = null;\n\n switch (mergedAlign) {\n case 'top':\n targetTop = itemTop - offset;\n break;\n\n case 'bottom':\n targetTop = itemBottom - height + offset;\n break;\n\n default:\n {\n var scrollTop = containerRef.current.scrollTop;\n var scrollBottom = scrollTop + height;\n\n if (itemTop < scrollTop) {\n newTargetAlign = 'top';\n } else if (itemBottom > scrollBottom) {\n newTargetAlign = 'bottom';\n }\n }\n }\n\n if (targetTop !== null && targetTop !== containerRef.current.scrollTop) {\n syncScrollTop(targetTop);\n }\n } // We will retry since element may not sync height as it described\n\n\n scrollRef.current = raf(function () {\n if (needCollectHeight) {\n collectHeight();\n }\n\n syncScroll(times - 1, newTargetAlign);\n });\n };\n\n syncScroll(3);\n }\n };\n}","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport * as React from 'react';\nimport { findListDiffIndex } from '../utils/algorithmUtil';\nexport default function useDiffItem(data, getKey, onDiff) {\n var _React$useState = React.useState(data),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevData = _React$useState2[0],\n setPrevData = _React$useState2[1];\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n diffItem = _React$useState4[0],\n setDiffItem = _React$useState4[1];\n\n React.useEffect(function () {\n var diff = findListDiffIndex(prevData || [], data || [], getKey);\n\n if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n onDiff === null || onDiff === void 0 ? void 0 : onDiff(diff.index);\n setDiffItem(data[diff.index]);\n }\n\n setPrevData(data);\n }, [data]);\n return [diffItem];\n}","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n var beforeCount = start - min;\n var afterCount = max - start;\n var balanceCount = Math.min(beforeCount, afterCount) * 2; // Balance\n\n if (index <= balanceCount) {\n var stepIndex = Math.floor(index / 2);\n\n if (index % 2) {\n return start + stepIndex + 1;\n }\n\n return start - stepIndex;\n } // One is out of range\n\n\n if (beforeCount > afterCount) {\n return start - (index - afterCount);\n }\n\n return start + (index - beforeCount);\n}\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\n\nexport function findListDiffIndex(originList, targetList, getKey) {\n var originLen = originList.length;\n var targetLen = targetList.length;\n var shortList;\n var longList;\n\n if (originLen === 0 && targetLen === 0) {\n return null;\n }\n\n if (originLen < targetLen) {\n shortList = originList;\n longList = targetList;\n } else {\n shortList = targetList;\n longList = originList;\n }\n\n var notExistKey = {\n __EMPTY_ITEM__: true\n };\n\n function getItemKey(item) {\n if (item !== undefined) {\n return getKey(item);\n }\n\n return notExistKey;\n } // Loop to find diff one\n\n\n var diffIndex = null;\n var multiple = Math.abs(originLen - targetLen) !== 1;\n\n for (var i = 0; i < longList.length; i += 1) {\n var shortKey = getItemKey(shortList[i]);\n var longKey = getItemKey(longList[i]);\n\n if (shortKey !== longKey) {\n diffIndex = i;\n multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n break;\n }\n }\n\n return diffIndex === null ? null : {\n index: diffIndex,\n multiple: multiple\n };\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom) {\n // Do lock for a wheel when scrolling\n var lockRef = useRef(false);\n var lockTimeoutRef = useRef(null);\n\n function lockScroll() {\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = true;\n lockTimeoutRef.current = setTimeout(function () {\n lockRef.current = false;\n }, 50);\n } // Pass to ref since global add is in closure\n\n\n var scrollPingRef = useRef({\n top: isScrollAtTop,\n bottom: isScrollAtBottom\n });\n scrollPingRef.current.top = isScrollAtTop;\n scrollPingRef.current.bottom = isScrollAtBottom;\n return function (deltaY) {\n var smoothOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var originScroll = // Pass origin wheel when on the top\n deltaY < 0 && scrollPingRef.current.top || // Pass origin wheel when on the bottom\n deltaY > 0 && scrollPingRef.current.bottom;\n\n if (smoothOffset && originScroll) {\n // No need lock anymore when it's smooth offset from touchMove interval\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = false;\n } else if (!originScroll || lockRef.current) {\n lockScroll();\n }\n\n return !lockRef.current && originScroll;\n };\n});","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport Filler from './Filler';\nimport ScrollBar from './ScrollBar';\nimport useChildren from './hooks/useChildren';\nimport useHeights from './hooks/useHeights';\nimport useScrollTo from './hooks/useScrollTo';\nimport useDiffItem from './hooks/useDiffItem';\nimport useFrameWheel from './hooks/useFrameWheel';\nimport useMobileTouchMove from './hooks/useMobileTouchMove';\nimport useOriginScroll from './hooks/useOriginScroll';\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n overflowY: 'auto',\n overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n className = props.className,\n height = props.height,\n itemHeight = props.itemHeight,\n _props$fullHeight = props.fullHeight,\n fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n style = props.style,\n data = props.data,\n children = props.children,\n itemKey = props.itemKey,\n virtual = props.virtual,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n onScroll = props.onScroll,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"component\", \"onScroll\"]); // ================================= MISC =================================\n\n\n var useVirtual = !!(virtual !== false && height && itemHeight);\n var inVirtual = useVirtual && data && itemHeight * data.length > height;\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n scrollTop = _useState2[0],\n setScrollTop = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n scrollMoving = _useState4[0],\n setScrollMoving = _useState4[1];\n\n var mergedClassName = classNames(prefixCls, className);\n var mergedData = data || EMPTY_DATA;\n var componentRef = useRef();\n var fillerInnerRef = useRef();\n var scrollBarRef = useRef(); // Hack on scrollbar to enable flash call\n // =============================== Item Key ===============================\n\n var getKey = React.useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n\n return item === null || item === void 0 ? void 0 : item[itemKey];\n }, [itemKey]);\n var sharedConfig = {\n getKey: getKey\n }; // ================================ Scroll ================================\n\n function syncScrollTop(newTop) {\n setScrollTop(function (origin) {\n var value;\n\n if (typeof newTop === 'function') {\n value = newTop(origin);\n } else {\n value = newTop;\n }\n\n var alignedTop = keepInRange(value);\n componentRef.current.scrollTop = alignedTop;\n return alignedTop;\n });\n } // ================================ Legacy ================================\n // Put ref here since the range is generate by follow\n\n\n var rangeRef = useRef({\n start: 0,\n end: mergedData.length\n });\n var diffItemRef = useRef();\n\n var _useDiffItem = useDiffItem(mergedData, getKey),\n _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n diffItem = _useDiffItem2[0];\n\n diffItemRef.current = diffItem; // ================================ Height ================================\n\n var _useHeights = useHeights(getKey, null, null),\n _useHeights2 = _slicedToArray(_useHeights, 4),\n setInstanceRef = _useHeights2[0],\n collectHeight = _useHeights2[1],\n heights = _useHeights2[2],\n heightUpdatedMark = _useHeights2[3]; // ========================== Visible Calculation =========================\n\n\n var _React$useMemo = React.useMemo(function () {\n if (!useVirtual) {\n return {\n scrollHeight: undefined,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n } // Always use virtual scroll bar in avoid shaking\n\n\n if (!inVirtual) {\n var _fillerInnerRef$curre;\n\n return {\n scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n\n var itemTop = 0;\n var startIndex;\n var startOffset;\n var endIndex;\n var dataLen = mergedData.length;\n\n for (var i = 0; i < dataLen; i += 1) {\n var item = mergedData[i];\n var key = getKey(item);\n var cacheHeight = heights.get(key);\n var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight); // Check item top in the range\n\n if (currentItemBottom >= scrollTop && startIndex === undefined) {\n startIndex = i;\n startOffset = itemTop;\n } // Check item bottom in the range. We will render additional one item for motion usage\n\n\n if (currentItemBottom > scrollTop + height && endIndex === undefined) {\n endIndex = i;\n }\n\n itemTop = currentItemBottom;\n } // Fallback to normal if not match. This code should never reach\n\n /* istanbul ignore next */\n\n\n if (startIndex === undefined) {\n startIndex = 0;\n startOffset = 0;\n }\n\n if (endIndex === undefined) {\n endIndex = mergedData.length - 1;\n } // Give cache to improve scroll experience\n\n\n endIndex = Math.min(endIndex + 1, mergedData.length);\n return {\n scrollHeight: itemTop,\n start: startIndex,\n end: endIndex,\n offset: startOffset\n };\n }, [inVirtual, useVirtual, scrollTop, mergedData, heightUpdatedMark, height]),\n scrollHeight = _React$useMemo.scrollHeight,\n start = _React$useMemo.start,\n end = _React$useMemo.end,\n offset = _React$useMemo.offset;\n\n rangeRef.current.start = start;\n rangeRef.current.end = end; // =============================== In Range ===============================\n\n var maxScrollHeight = scrollHeight - height;\n var maxScrollHeightRef = useRef(maxScrollHeight);\n maxScrollHeightRef.current = maxScrollHeight;\n\n function keepInRange(newScrollTop) {\n var newTop = newScrollTop;\n\n if (!Number.isNaN(maxScrollHeightRef.current)) {\n newTop = Math.min(newTop, maxScrollHeightRef.current);\n }\n\n newTop = Math.max(newTop, 0);\n return newTop;\n }\n\n var isScrollAtTop = scrollTop <= 0;\n var isScrollAtBottom = scrollTop >= maxScrollHeight;\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom); // ================================ Scroll ================================\n\n function onScrollBar(newScrollTop) {\n var newTop = newScrollTop;\n syncScrollTop(newTop);\n } // When data size reduce. It may trigger native scroll event back to fit scroll position\n\n\n function onFallbackScroll(e) {\n var newScrollTop = e.currentTarget.scrollTop;\n\n if (newScrollTop !== scrollTop) {\n syncScrollTop(newScrollTop);\n } // Trigger origin onScroll\n\n\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n } // Since this added in global,should use ref to keep update\n\n\n var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, function (offsetY) {\n syncScrollTop(function (top) {\n var newTop = top + offsetY;\n return newTop;\n });\n }),\n _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n onRawWheel = _useFrameWheel2[0],\n onFireFoxScroll = _useFrameWheel2[1]; // Mobile touch move\n\n\n useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n if (originScroll(deltaY, smoothOffset)) {\n return false;\n }\n\n onRawWheel({\n preventDefault: function preventDefault() {},\n deltaY: deltaY\n });\n return true;\n });\n React.useLayoutEffect(function () {\n // Firefox only\n function onMozMousePixelScroll(e) {\n if (useVirtual) {\n e.preventDefault();\n }\n }\n\n componentRef.current.addEventListener('wheel', onRawWheel);\n componentRef.current.addEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n return function () {\n componentRef.current.removeEventListener('wheel', onRawWheel);\n componentRef.current.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n };\n }, [useVirtual]); // ================================= Ref ==================================\n\n var scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, collectHeight, syncScrollTop, function () {\n var _scrollBarRef$current;\n\n (_scrollBarRef$current = scrollBarRef.current) === null || _scrollBarRef$current === void 0 ? void 0 : _scrollBarRef$current.delayHidden();\n });\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: scrollTo\n };\n }); // ================================ Render ================================\n\n var listChildren = useChildren(mergedData, start, end, setInstanceRef, children, sharedConfig);\n var componentStyle = null;\n\n if (height) {\n componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n\n if (useVirtual) {\n componentStyle.overflowY = 'hidden';\n\n if (scrollMoving) {\n componentStyle.pointerEvents = 'none';\n }\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative'\n }),\n className: mergedClassName\n }, restProps), /*#__PURE__*/React.createElement(Component, {\n className: \"\".concat(prefixCls, \"-holder\"),\n style: componentStyle,\n ref: componentRef,\n onScroll: onFallbackScroll\n }, /*#__PURE__*/React.createElement(Filler, {\n prefixCls: prefixCls,\n height: scrollHeight,\n offset: offset,\n onInnerResize: collectHeight,\n ref: fillerInnerRef\n }, listChildren)), useVirtual && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: scrollBarRef,\n prefixCls: prefixCls,\n scrollTop: scrollTop,\n height: height,\n scrollHeight: scrollHeight,\n count: mergedData.length,\n onScroll: onScrollBar,\n onStartMove: function onStartMove() {\n setScrollMoving(true);\n },\n onStopMove: function onStopMove() {\n setScrollMoving(false);\n }\n }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","import { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport isFF from '../utils/isFirefox';\nimport useOriginScroll from './useOriginScroll';\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, onWheelDelta) {\n var offsetRef = useRef(0);\n var nextFrameRef = useRef(null); // Firefox patch\n\n var wheelValueRef = useRef(null);\n var isMouseScrollRef = useRef(false); // Scroll status sync\n\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n\n function onWheel(event) {\n if (!inVirtual) return;\n raf.cancel(nextFrameRef.current);\n var deltaY = event.deltaY;\n offsetRef.current += deltaY;\n wheelValueRef.current = deltaY; // Do nothing when scroll at the edge, Skip check when is in scroll\n\n if (originScroll(deltaY)) return; // Proxy of scroll events\n\n if (!isFF) {\n event.preventDefault();\n }\n\n nextFrameRef.current = raf(function () {\n // Patch a multiple for Firefox to fix wheel number too small\n // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n onWheelDelta(offsetRef.current * patchMultiple);\n offsetRef.current = 0;\n });\n } // A patch for firefox\n\n\n function onFireFoxScroll(event) {\n if (!inVirtual) return;\n isMouseScrollRef.current = event.detail === wheelValueRef.current;\n }\n\n return [onWheel, onFireFoxScroll];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n var touchedRef = useRef(false);\n var touchYRef = useRef(0);\n var elementRef = useRef(null); // Smooth scroll\n\n var intervalRef = useRef(null);\n var cleanUpEvents;\n\n var onTouchMove = function onTouchMove(e) {\n if (touchedRef.current) {\n var currentY = Math.ceil(e.touches[0].pageY);\n var offsetY = touchYRef.current - currentY;\n touchYRef.current = currentY;\n\n if (callback(offsetY)) {\n e.preventDefault();\n } // Smooth interval\n\n\n clearInterval(intervalRef.current);\n intervalRef.current = setInterval(function () {\n offsetY *= SMOOTH_PTG;\n\n if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {\n clearInterval(intervalRef.current);\n }\n }, 16);\n }\n };\n\n var onTouchEnd = function onTouchEnd() {\n touchedRef.current = false;\n cleanUpEvents();\n };\n\n var onTouchStart = function onTouchStart(e) {\n cleanUpEvents();\n\n if (e.touches.length === 1 && !touchedRef.current) {\n touchedRef.current = true;\n touchYRef.current = Math.ceil(e.touches[0].pageY);\n elementRef.current = e.target;\n elementRef.current.addEventListener('touchmove', onTouchMove);\n elementRef.current.addEventListener('touchend', onTouchEnd);\n }\n };\n\n cleanUpEvents = function cleanUpEvents() {\n if (elementRef.current) {\n elementRef.current.removeEventListener('touchmove', onTouchMove);\n elementRef.current.removeEventListener('touchend', onTouchEnd);\n }\n };\n\n React.useLayoutEffect(function () {\n if (inVirtual) {\n listRef.current.addEventListener('touchstart', onTouchStart);\n }\n\n return function () {\n listRef.current.removeEventListener('touchstart', onTouchStart);\n cleanUpEvents();\n clearInterval(intervalRef.current);\n };\n }, [inVirtual]);\n}","import * as React from 'react';\nimport { Item } from '../Item';\nexport default function useChildren(list, startIndex, endIndex, setNodeRef, renderFunc, _ref) {\n var getKey = _ref.getKey;\n return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n var eleIndex = startIndex + index;\n var node = renderFunc(item, eleIndex, {// style: status === 'MEASURE_START' ? { visibility: 'hidden' } : {},\n });\n var key = getKey(item);\n return /*#__PURE__*/React.createElement(Item, {\n key: key,\n setRef: function setRef(ele) {\n return setNodeRef(item, ele);\n }\n }, node);\n });\n}","import List from './List';\nexport default List;","import * as React from 'react';\nimport classNames from 'classnames';\n\nvar TransBtn = function TransBtn(_ref) {\n var className = _ref.className,\n customizeIcon = _ref.customizeIcon,\n customizeIconProps = _ref.customizeIconProps,\n _onMouseDown = _ref.onMouseDown,\n onClick = _ref.onClick,\n children = _ref.children;\n var icon;\n\n if (typeof customizeIcon === 'function') {\n icon = customizeIcon(customizeIconProps);\n } else {\n icon = customizeIcon;\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className,\n onMouseDown: function onMouseDown(event) {\n event.preventDefault();\n\n if (_onMouseDown) {\n _onMouseDown(event);\n }\n },\n style: {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n },\n unselectable: \"on\",\n onClick: onClick,\n \"aria-hidden\": true\n }, icon !== undefined ? icon : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(className.split(/\\s+/).map(function (cls) {\n return \"\".concat(cls, \"-icon\");\n }))\n }, children));\n};\n\nexport default TransBtn;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport classNames from 'classnames';\nimport List from 'rc-virtual-list';\nimport TransBtn from './TransBtn';\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\n\nvar OptionList = function OptionList(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n flattenOptions = _ref.flattenOptions,\n childrenAsData = _ref.childrenAsData,\n values = _ref.values,\n searchValue = _ref.searchValue,\n multiple = _ref.multiple,\n defaultActiveFirstOption = _ref.defaultActiveFirstOption,\n height = _ref.height,\n itemHeight = _ref.itemHeight,\n notFoundContent = _ref.notFoundContent,\n open = _ref.open,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n virtual = _ref.virtual,\n onSelect = _ref.onSelect,\n onToggleOpen = _ref.onToggleOpen,\n onActiveValue = _ref.onActiveValue,\n onScroll = _ref.onScroll,\n onMouseEnter = _ref.onMouseEnter;\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var memoFlattenOptions = useMemo(function () {\n return flattenOptions;\n }, [open, flattenOptions], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n }); // =========================== List ===========================\n\n var listRef = React.useRef(null);\n\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n\n var scrollIntoView = function scrollIntoView(index) {\n if (listRef.current) {\n listRef.current.scrollTo({\n index: index\n });\n }\n }; // ========================== Active ==========================\n\n\n var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var len = memoFlattenOptions.length;\n\n for (var i = 0; i < len; i += 1) {\n var current = (index + i * offset + len) % len;\n var _memoFlattenOptions$c = memoFlattenOptions[current],\n group = _memoFlattenOptions$c.group,\n data = _memoFlattenOptions$c.data;\n\n if (!group && !data.disabled) {\n return current;\n }\n }\n\n return -1;\n };\n\n var _React$useState = React.useState(function () {\n return getEnabledActiveIndex(0);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n\n var setActive = function setActive(index) {\n var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setActiveIndex(index);\n var info = {\n source: fromKeyboard ? 'keyboard' : 'mouse'\n }; // Trigger active event\n\n var flattenItem = memoFlattenOptions[index];\n\n if (!flattenItem) {\n onActiveValue(null, -1, info);\n return;\n }\n\n onActiveValue(flattenItem.data.value, index, info);\n }; // Auto active first item when list length or searchValue changed\n\n\n React.useEffect(function () {\n setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n }, [memoFlattenOptions.length, searchValue]); // Auto scroll to item position in single mode\n\n React.useEffect(function () {\n /**\n * React will skip `onChange` when component update.\n * `setActive` function will call root accessibility state update which makes re-render.\n * So we need to delay to let Input component trigger onChange first.\n */\n var timeoutId = setTimeout(function () {\n if (!multiple && open && values.size === 1) {\n var value = Array.from(values)[0];\n var index = memoFlattenOptions.findIndex(function (_ref2) {\n var data = _ref2.data;\n return data.value === value;\n });\n setActive(index);\n scrollIntoView(index);\n }\n }); // Force trigger scrollbar visible when open\n\n if (open) {\n var _listRef$current;\n\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(undefined);\n }\n\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [open]); // ========================== Values ==========================\n\n var onSelectValue = function onSelectValue(value) {\n if (value !== undefined) {\n onSelect(value, {\n selected: !values.has(value)\n });\n } // Single mode should always close by select\n\n\n if (!multiple) {\n onToggleOpen(false);\n }\n }; // ========================= Keyboard =========================\n\n\n React.useImperativeHandle(ref, function () {\n return {\n onKeyDown: function onKeyDown(event) {\n var which = event.which;\n\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n }\n\n if (offset !== 0) {\n var nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset);\n scrollIntoView(nextActiveIndex);\n setActive(nextActiveIndex, true);\n }\n\n break;\n }\n // >>> Select\n\n case KeyCode.ENTER:\n {\n // value\n var item = memoFlattenOptions[activeIndex];\n\n if (item && !item.data.disabled) {\n onSelectValue(item.data.value);\n } else {\n onSelectValue(undefined);\n }\n\n if (open) {\n event.preventDefault();\n }\n\n break;\n }\n // >>> Close\n\n case KeyCode.ESC:\n {\n onToggleOpen(false);\n\n if (open) {\n event.stopPropagation();\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {},\n scrollTo: function scrollTo(index) {\n scrollIntoView(index);\n }\n };\n }); // ========================== Render ==========================\n\n if (memoFlattenOptions.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n className: \"\".concat(itemPrefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n\n function renderItem(index) {\n var item = memoFlattenOptions[index];\n if (!item) return null;\n var itemData = item.data || {};\n var value = itemData.value,\n label = itemData.label,\n children = itemData.children;\n var attrs = pickAttrs(itemData, true);\n var mergedLabel = childrenAsData ? children : label;\n return item ? /*#__PURE__*/React.createElement(\"div\", _extends({\n \"aria-label\": typeof mergedLabel === 'string' ? mergedLabel : null\n }, attrs, {\n key: index,\n role: \"option\",\n id: \"\".concat(id, \"_list_\").concat(index),\n \"aria-selected\": values.has(value)\n }), value) : null;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n style: {\n height: 0,\n width: 0,\n overflow: 'hidden'\n }\n }, renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), /*#__PURE__*/React.createElement(List, {\n itemKey: \"key\",\n ref: listRef,\n data: memoFlattenOptions,\n height: height,\n itemHeight: itemHeight,\n fullHeight: false,\n onMouseDown: onListMouseDown,\n onScroll: onScroll,\n virtual: virtual,\n onMouseEnter: onMouseEnter\n }, function (_ref3, itemIndex) {\n var _classNames;\n\n var group = _ref3.group,\n groupOption = _ref3.groupOption,\n data = _ref3.data;\n var label = data.label,\n key = data.key; // Group\n\n if (group) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\"))\n }, label !== undefined ? label : key);\n }\n\n var disabled = data.disabled,\n value = data.value,\n title = data.title,\n children = data.children,\n style = data.style,\n className = data.className,\n otherProps = _objectWithoutProperties(data, [\"disabled\", \"value\", \"title\", \"children\", \"style\", \"className\"]); // Option\n\n\n var selected = values.has(value);\n var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n var optionClassName = classNames(itemPrefixCls, optionPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-selected\"), selected), _classNames));\n var mergedLabel = childrenAsData ? children : label;\n var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n var content = mergedLabel || value; // https://github.com/ant-design/ant-design/issues/26717\n\n var optionTitle = typeof content === 'string' || typeof content === 'number' ? content.toString() : undefined;\n\n if (title !== undefined) {\n optionTitle = title;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, otherProps, {\n \"aria-selected\": selected,\n className: optionClassName,\n title: optionTitle,\n onMouseMove: function onMouseMove() {\n if (activeIndex === itemIndex || disabled) {\n return;\n }\n\n setActive(itemIndex);\n },\n onClick: function onClick() {\n if (!disabled) {\n onSelectValue(value);\n }\n },\n style: style\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(optionPrefixCls, \"-content\")\n }, content), /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(itemPrefixCls, \"-option-state\"),\n customizeIcon: menuItemSelectedIcon,\n customizeIconProps: {\n isSelected: selected\n }\n }, selected ? '✓' : null));\n }));\n};\n\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n return null;\n};\n\nOption.isSelectOption = true;\nexport default Option;","/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n return null;\n};\n\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\n\nfunction convertNodeToOption(node) {\n var key = node.key,\n _node$props = node.props,\n children = _node$props.children,\n value = _node$props.value,\n restProps = _objectWithoutProperties(_node$props, [\"children\", \"value\"]);\n\n return _objectSpread({\n key: key,\n value: value !== undefined ? value : key,\n children: children\n }, restProps);\n}\n\nexport function convertChildrenToData(nodes) {\n var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return toArray(nodes).map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n\n var isSelectOptGroup = node.type.isSelectOptGroup,\n key = node.key,\n _node$props2 = node.props,\n children = _node$props2.children,\n restProps = _objectWithoutProperties(_node$props2, [\"children\"]);\n\n if (optionOnly || !isSelectOptGroup) {\n return convertNodeToOption(node);\n }\n\n return _objectSpread(_objectSpread({\n key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n label: key\n }, restProps), {}, {\n options: convertChildrenToData(children)\n });\n }).filter(function (data) {\n return data;\n });\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n return value !== undefined ? [value] : [];\n}\n/**\n * Convert outer props value into internal value\n */\n\nexport function toInnerValue(value, _ref) {\n var labelInValue = _ref.labelInValue,\n combobox = _ref.combobox;\n var valueMap = new Map();\n\n if (value === undefined || value === '' && combobox) {\n return [[], valueMap];\n }\n\n var values = Array.isArray(value) ? value : [value];\n var rawValues = values;\n\n if (labelInValue) {\n rawValues = values.filter(function (item) {\n return item !== null;\n }).map(function (itemValue) {\n var key = itemValue.key,\n val = itemValue.value;\n var finalVal = val !== undefined ? val : key;\n valueMap.set(finalVal, itemValue);\n return finalVal;\n });\n }\n\n return [rawValues, valueMap];\n}\n/**\n * Convert internal value into out event value\n */\n\nexport function toOuterValues(valueList, _ref2) {\n var optionLabelProp = _ref2.optionLabelProp,\n labelInValue = _ref2.labelInValue,\n prevValueMap = _ref2.prevValueMap,\n options = _ref2.options,\n getLabeledValue = _ref2.getLabeledValue;\n var values = valueList;\n\n if (labelInValue) {\n values = values.map(function (val) {\n return getLabeledValue(val, {\n options: options,\n prevValueMap: prevValueMap,\n labelInValue: labelInValue,\n optionLabelProp: optionLabelProp\n });\n });\n }\n\n return values;\n}\nexport function removeLastEnabledValue(measureValues, values) {\n var newValues = _toConsumableArray(values);\n\n var removeIndex;\n\n for (removeIndex = measureValues.length - 1; removeIndex >= 0; removeIndex -= 1) {\n if (!measureValues[removeIndex].disabled) {\n break;\n }\n }\n\n var removedValue = null;\n\n if (removeIndex !== -1) {\n removedValue = newValues[removeIndex];\n newValues.splice(removeIndex, 1);\n }\n\n return {\n values: newValues,\n removedValue: removedValue\n };\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n/** Is client side and not jsdom */\n\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nvar uuid = 0;\n/** Get unique id for accessibility usage */\n\nexport function getUUID() {\n var retId; // Test never reach\n\n /* istanbul ignore if */\n\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n\n return retId;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from './commonUtil';\n\nfunction getKey(data, index) {\n var key = data.key;\n var value;\n\n if ('value' in data) {\n value = data.value;\n }\n\n if (key !== null && key !== undefined) {\n return key;\n }\n\n if (value !== undefined) {\n return value;\n }\n\n return \"rc-index-key-\".concat(index);\n}\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\n\n\nexport function flattenOptions(options) {\n var flattenList = [];\n\n function dig(list, isGroupOption) {\n list.forEach(function (data) {\n if (isGroupOption || !('options' in data)) {\n // Option\n flattenList.push({\n key: getKey(data, flattenList.length),\n groupOption: isGroupOption,\n data: data\n });\n } else {\n // Option Group\n flattenList.push({\n key: getKey(data, flattenList.length),\n group: true,\n data: data\n });\n dig(data.options, true);\n }\n });\n }\n\n dig(options, false);\n return flattenList;\n}\n/**\n * Inject `props` into `option` for legacy usage\n */\n\nfunction injectPropsWithOption(option) {\n var newOption = _objectSpread({}, option);\n\n if (!('props' in newOption)) {\n Object.defineProperty(newOption, 'props', {\n get: function get() {\n warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n return newOption;\n }\n });\n }\n\n return newOption;\n}\n\nexport function findValueOption(values, options) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$prevValueOptions = _ref.prevValueOptions,\n prevValueOptions = _ref$prevValueOptions === void 0 ? [] : _ref$prevValueOptions;\n\n var optionMap = new Map();\n options.forEach(function (flattenItem) {\n if (!flattenItem.group) {\n var data = flattenItem.data; // Check if match\n\n optionMap.set(data.value, data);\n }\n });\n return values.map(function (val) {\n var option = optionMap.get(val); // Fallback to try to find prev options\n\n if (!option) {\n option = _objectSpread({}, prevValueOptions.find(function (opt) {\n return opt._INTERNAL_OPTION_VALUE_ === val;\n }));\n }\n\n return injectPropsWithOption(option);\n });\n}\nexport var getLabeledValue = function getLabeledValue(value, _ref2) {\n var options = _ref2.options,\n prevValueMap = _ref2.prevValueMap,\n labelInValue = _ref2.labelInValue,\n optionLabelProp = _ref2.optionLabelProp;\n var item = findValueOption([value], options)[0];\n var result = {\n value: value\n };\n var prevValItem = labelInValue ? prevValueMap.get(value) : undefined;\n\n if (prevValItem && _typeof(prevValItem) === 'object' && 'label' in prevValItem) {\n result.label = prevValItem.label;\n\n if (item && typeof prevValItem.label === 'string' && typeof item[optionLabelProp] === 'string' && prevValItem.label.trim() !== item[optionLabelProp].trim()) {\n warning(false, '`label` of `value` is not same as `label` in Select options.');\n }\n } else if (item && optionLabelProp in item) {\n result.label = item[optionLabelProp];\n } else {\n result.label = value;\n result.isCacheable = true;\n } // Used for motion control\n\n\n result.key = result.value;\n return result;\n};\n\nfunction toRawString(content) {\n return toArray(content).join('');\n}\n/** Filter single option if match the search text */\n\n\nfunction getFilterFunction(optionFilterProp) {\n return function (searchValue, option) {\n var lowerSearchText = searchValue.toLowerCase(); // Group label search\n\n if ('options' in option) {\n return toRawString(option.label).toLowerCase().includes(lowerSearchText);\n } // Option value search\n\n\n var rawValue = option[optionFilterProp];\n var value = toRawString(rawValue).toLowerCase();\n return value.includes(lowerSearchText);\n };\n}\n/** Filter options and return a new options by the search text */\n\n\nexport function filterOptions(searchValue, options, _ref3) {\n var optionFilterProp = _ref3.optionFilterProp,\n filterOption = _ref3.filterOption;\n var filteredOptions = [];\n var filterFunc;\n\n if (filterOption === false) {\n return _toConsumableArray(options);\n }\n\n if (typeof filterOption === 'function') {\n filterFunc = filterOption;\n } else {\n filterFunc = getFilterFunction(optionFilterProp);\n }\n\n options.forEach(function (item) {\n // Group should check child options\n if ('options' in item) {\n // Check group first\n var matchGroup = filterFunc(searchValue, item);\n\n if (matchGroup) {\n filteredOptions.push(item);\n } else {\n // Check option\n var subOptions = item.options.filter(function (subItem) {\n return filterFunc(searchValue, subItem);\n });\n\n if (subOptions.length) {\n filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, {\n options: subOptions\n }));\n }\n }\n\n return;\n }\n\n if (filterFunc(searchValue, injectPropsWithOption(item))) {\n filteredOptions.push(item);\n }\n });\n return filteredOptions;\n}\nexport function getSeparatedContent(text, tokens) {\n if (!tokens || !tokens.length) {\n return null;\n }\n\n var match = false;\n\n function separate(str, _ref4) {\n var _ref5 = _toArray(_ref4),\n token = _ref5[0],\n restTokens = _ref5.slice(1);\n\n if (!token) {\n return [str];\n }\n\n var list = str.split(token);\n match = match || list.length > 1;\n return list.reduce(function (prevList, unitStr) {\n return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n }, []).filter(function (unit) {\n return unit;\n });\n }\n\n var list = separate(text, tokens);\n return match ? list : null;\n}\nexport function isValueDisabled(value, options) {\n var option = findValueOption([value], options)[0];\n return option.disabled;\n}\n/**\n * `tags` mode should fill un-list item into the option list\n */\n\nexport function fillOptionsWithMissingValue(options, value, optionLabelProp, labelInValue) {\n var values = toArray(value).slice().sort();\n\n var cloneOptions = _toConsumableArray(options); // Convert options value to set\n\n\n var optionValues = new Set();\n options.forEach(function (opt) {\n if (opt.options) {\n opt.options.forEach(function (subOpt) {\n optionValues.add(subOpt.value);\n });\n } else {\n optionValues.add(opt.value);\n }\n }); // Fill missing value\n\n values.forEach(function (item) {\n var val = labelInValue ? item.value : item;\n\n if (!optionValues.has(val)) {\n var _ref6;\n\n cloneOptions.push(labelInValue ? (_ref6 = {}, _defineProperty(_ref6, optionLabelProp, item.label), _defineProperty(_ref6, \"value\", val), _ref6) : {\n value: val\n });\n }\n });\n return cloneOptions;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nexport default function Item(props) {\n var prefixCls = props.prefixCls,\n item = props.item,\n renderItem = props.renderItem,\n responsive = props.responsive,\n registerSize = props.registerSize,\n itemKey = props.itemKey,\n className = props.className,\n style = props.style,\n children = props.children,\n display = props.display,\n order = props.order,\n Component = props.component,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"item\", \"renderItem\", \"responsive\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"]);\n\n var mergedHidden = responsive && !display; // ================================ Effect ================================\n\n function internalRegisterSize(width) {\n registerSize(itemKey, width);\n }\n\n React.useEffect(function () {\n return function () {\n internalRegisterSize(null);\n };\n }, []); // ================================ Render ================================\n\n var childNode = item !== undefined ? renderItem(item) : children;\n var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(prefixCls, className),\n style: _objectSpread({\n opacity: mergedHidden ? 0.2 : 1,\n height: mergedHidden ? 0 : undefined,\n overflowY: mergedHidden ? 'hidden' : undefined,\n order: responsive ? order : undefined,\n pointerEvents: mergedHidden ? 'none' : undefined\n }, style)\n }, restProps), childNode);\n\n if (responsive) {\n itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref) {\n var offsetWidth = _ref.offsetWidth;\n internalRegisterSize(offsetWidth);\n }\n }, itemNode);\n }\n\n return itemNode;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport Item from './Item';\nimport { useBatchFrameState } from './hooks/useBatchFrameState';\nvar RESPONSIVE = 'responsive';\n\nfunction defaultRenderRest(omittedItems) {\n return \"+ \".concat(omittedItems.length, \" ...\");\n}\n\nfunction Overflow(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n _props$data = props.data,\n data = _props$data === void 0 ? [] : _props$data,\n renderItem = props.renderItem,\n itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n _props$renderRest = props.renderRest,\n renderRest = _props$renderRest === void 0 ? defaultRenderRest : _props$renderRest,\n renderItemProps = props.renderItemProps,\n suffix = props.suffix,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$itemComponent = props.itemComponent,\n itemComponent = _props$itemComponent === void 0 ? 'div' : _props$itemComponent,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"data\", \"renderItem\", \"itemKey\", \"itemWidth\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderItemProps\", \"suffix\", \"component\", \"itemComponent\"]);\n\n var createUseState = useBatchFrameState();\n\n var _createUseState = createUseState(0),\n _createUseState2 = _slicedToArray(_createUseState, 2),\n containerWidth = _createUseState2[0],\n setContainerWidth = _createUseState2[1];\n\n var _createUseState3 = createUseState(new Map()),\n _createUseState4 = _slicedToArray(_createUseState3, 2),\n itemWidths = _createUseState4[0],\n setItemWidths = _createUseState4[1];\n\n var _createUseState5 = createUseState(0),\n _createUseState6 = _slicedToArray(_createUseState5, 2),\n prevRestWidth = _createUseState6[0],\n setPrevRestWidth = _createUseState6[1];\n\n var _createUseState7 = createUseState(0),\n _createUseState8 = _slicedToArray(_createUseState7, 2),\n restWidth = _createUseState8[0],\n setRestWidth = _createUseState8[1];\n\n var _createUseState9 = createUseState(0),\n _createUseState10 = _slicedToArray(_createUseState9, 2),\n suffixWidth = _createUseState10[0],\n setSuffixWidth = _createUseState10[1];\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n suffixFixedStart = _useState2[0],\n setSuffixFixedStart = _useState2[1];\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n restReady = _useState6[0],\n setRestReady = _useState6[1];\n\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\"); // Always use the max width to avoid blink\n\n var mergedRestWidth = Math.max(prevRestWidth, restWidth); // ================================= Data =================================\n\n var isResponsive = data.length && maxCount === RESPONSIVE;\n /**\n * When is `responsive`, we will always render rest node to get the real width of it for calculation\n */\n\n var showRest = isResponsive || typeof maxCount === 'number' && data.length > maxCount;\n var mergedData = useMemo(function () {\n var items = data;\n\n if (isResponsive) {\n items = data.slice(0, Math.min(data.length, containerWidth / itemWidth));\n } else if (typeof maxCount === 'number') {\n items = data.slice(0, maxCount);\n }\n\n return items;\n }, [data, itemWidth, containerWidth, maxCount, isResponsive]);\n var omittedItems = useMemo(function () {\n if (isResponsive) {\n return data.slice(displayCount + 1);\n }\n\n return data.slice(mergedData.length);\n }, [data, mergedData, isResponsive, displayCount]); // ================================= Item =================================\n\n var getKey = useCallback(function (item, index) {\n var _ref;\n\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n\n return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n }, [itemKey]);\n var mergedRenderItem = useCallback(renderItem || function (item) {\n return item;\n }, [renderItem]);\n\n function updateDisplayCount(count, notReady) {\n setDisplayCount(count);\n\n if (!notReady) {\n setRestReady(count < data.length - 1);\n }\n } // ================================= Size =================================\n\n\n function onOverflowResize(_, element) {\n setContainerWidth(element.clientWidth);\n }\n\n function registerSize(key, width) {\n setItemWidths(function (origin) {\n var clone = new Map(origin);\n\n if (width === null) {\n clone.delete(key);\n } else {\n clone.set(key, width);\n }\n\n return clone;\n });\n }\n\n function registerOverflowSize(_, width) {\n setRestWidth(width);\n setPrevRestWidth(restWidth);\n }\n\n function registerSuffixSize(_, width) {\n setSuffixWidth(width);\n } // ================================ Effect ================================\n\n\n function getItemWidth(index) {\n return itemWidths.get(getKey(mergedData[index], index));\n }\n\n React.useLayoutEffect(function () {\n if (containerWidth && mergedRestWidth && mergedData) {\n var totalWidth = suffixWidth;\n var len = mergedData.length;\n var lastIndex = len - 1; // When data count change to 0, reset this since not loop will reach\n\n if (!len) {\n updateDisplayCount(0);\n setSuffixFixedStart(null);\n return;\n }\n\n for (var i = 0; i < len; i += 1) {\n var currentItemWidth = getItemWidth(i); // Break since data not ready\n\n if (currentItemWidth === undefined) {\n updateDisplayCount(i - 1, true);\n break;\n } // Find best match\n\n\n totalWidth += currentItemWidth;\n\n if (i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= containerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex);\n setSuffixFixedStart(null);\n break;\n } else if (totalWidth + mergedRestWidth > containerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1);\n setSuffixFixedStart(totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n } else if (i === lastIndex) {\n // Reach the end\n updateDisplayCount(lastIndex);\n setSuffixFixedStart(totalWidth - suffixWidth);\n break;\n }\n }\n\n if (suffix && getItemWidth(0) + suffixWidth > containerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [containerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]); // ================================ Render ================================\n\n var displayRest = restReady && !!omittedItems.length;\n var suffixStyle = {};\n\n if (suffixFixedStart !== null && isResponsive) {\n suffixStyle = {\n position: 'absolute',\n left: suffixFixedStart,\n top: 0\n };\n }\n\n var itemSharedProps = {\n prefixCls: itemPrefixCls,\n responsive: isResponsive,\n component: itemComponent\n };\n var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(prefixCls, className),\n style: style,\n ref: ref\n }, restProps), mergedData.map(function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: index,\n key: key,\n item: item,\n renderItem: mergedRenderItem,\n itemKey: key,\n registerSize: registerSize,\n display: index <= displayCount\n }, renderItemProps === null || renderItemProps === void 0 ? void 0 : renderItemProps(item)));\n }), showRest ? /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n // When not show, order should be the last\n order: displayRest ? displayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n }), typeof renderRest === 'function' ? renderRest(omittedItems) : renderRest) : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: displayCount,\n className: \"\".concat(itemPrefixCls, \"-suffix\"),\n registerSize: registerSuffixSize,\n display: true,\n style: suffixStyle\n }), suffix));\n\n if (isResponsive) {\n overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onOverflowResize\n }, overflowNode);\n }\n\n return overflowNode;\n}\n\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow'; // Convert to generic type\n\nexport default ForwardOverflow;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\n/**\n * State generate. Return a `setState` but it will flush all state with one render to save perf.\n * This is not a realization of `unstable_batchedUpdates`.\n */\n\nexport function useBatchFrameState() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var statesRef = useRef([]);\n var destroyRef = useRef(false);\n var walkingIndex = 0;\n var beforeFrameId = 0;\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n\n function createState(defaultValue) {\n var myIndex = walkingIndex;\n walkingIndex += 1; // Fill value if not exist yet\n\n if (statesRef.current.length < myIndex + 1) {\n statesRef.current[myIndex] = defaultValue;\n } // Return filled as `setState`\n\n\n var value = statesRef.current[myIndex];\n\n function setValue(val) {\n statesRef.current[myIndex] = typeof val === 'function' ? val(statesRef.current[myIndex]) : val;\n raf.cancel(beforeFrameId); // Flush with batch\n\n beforeFrameId = raf(function () {\n if (!destroyRef.current) {\n forceUpdate({});\n }\n });\n }\n\n return [value, setValue];\n }\n\n return createState;\n}","import Overflow from './Overflow';\nexport default Overflow;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\n\nvar Input = function Input(_ref, ref) {\n var _inputNode2, _inputNode2$props;\n\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n inputElement = _ref.inputElement,\n disabled = _ref.disabled,\n tabIndex = _ref.tabIndex,\n autoFocus = _ref.autoFocus,\n autoComplete = _ref.autoComplete,\n editable = _ref.editable,\n accessibilityIndex = _ref.accessibilityIndex,\n value = _ref.value,\n maxLength = _ref.maxLength,\n _onKeyDown = _ref.onKeyDown,\n _onMouseDown = _ref.onMouseDown,\n _onChange = _ref.onChange,\n onPaste = _ref.onPaste,\n _onCompositionStart = _ref.onCompositionStart,\n _onCompositionEnd = _ref.onCompositionEnd,\n open = _ref.open,\n attrs = _ref.attrs;\n var inputNode = inputElement || /*#__PURE__*/React.createElement(\"input\", null);\n var _inputNode = inputNode,\n originRef = _inputNode.ref,\n _inputNode$props = _inputNode.props,\n onOriginKeyDown = _inputNode$props.onKeyDown,\n onOriginChange = _inputNode$props.onChange,\n onOriginMouseDown = _inputNode$props.onMouseDown,\n onOriginCompositionStart = _inputNode$props.onCompositionStart,\n onOriginCompositionEnd = _inputNode$props.onCompositionEnd,\n style = _inputNode$props.style;\n inputNode = /*#__PURE__*/React.cloneElement(inputNode, _objectSpread(_objectSpread({\n id: id,\n ref: composeRef(ref, originRef),\n disabled: disabled,\n tabIndex: tabIndex,\n autoComplete: autoComplete || 'off',\n type: 'search',\n autoFocus: autoFocus,\n className: classNames(\"\".concat(prefixCls, \"-selection-search-input\"), (_inputNode2 = inputNode) === null || _inputNode2 === void 0 ? void 0 : (_inputNode2$props = _inputNode2.props) === null || _inputNode2$props === void 0 ? void 0 : _inputNode2$props.className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n opacity: editable ? null : 0\n }),\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-haspopup': 'listbox',\n 'aria-owns': \"\".concat(id, \"_list\"),\n 'aria-autocomplete': 'list',\n 'aria-controls': \"\".concat(id, \"_list\"),\n 'aria-activedescendant': \"\".concat(id, \"_list_\").concat(accessibilityIndex)\n }, attrs), {}, {\n value: editable ? value : '',\n maxLength: maxLength,\n readOnly: !editable,\n unselectable: !editable ? 'on' : null,\n onKeyDown: function onKeyDown(event) {\n _onKeyDown(event);\n\n if (onOriginKeyDown) {\n onOriginKeyDown(event);\n }\n },\n onMouseDown: function onMouseDown(event) {\n _onMouseDown(event);\n\n if (onOriginMouseDown) {\n onOriginMouseDown(event);\n }\n },\n onChange: function onChange(event) {\n _onChange(event);\n\n if (onOriginChange) {\n onOriginChange(event);\n }\n },\n onCompositionStart: function onCompositionStart(event) {\n _onCompositionStart(event);\n\n if (onOriginCompositionStart) {\n onOriginCompositionStart(event);\n }\n },\n onCompositionEnd: function onCompositionEnd(event) {\n _onCompositionEnd(event);\n\n if (onOriginCompositionEnd) {\n onOriginCompositionEnd(event);\n }\n },\n onPaste: onPaste\n }));\n return inputNode;\n};\n\nvar RefInput = /*#__PURE__*/React.forwardRef(Input);\nRefInput.displayName = 'Input';\nexport default RefInput;","/* eslint-disable react-hooks/rules-of-hooks */\nimport * as React from 'react';\nimport { isBrowserClient } from '../utils/commonUtil';\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\n\nexport default function useLayoutEffect(effect, deps) {\n // Never happen in test env\n if (isBrowserClient) {\n /* istanbul ignore next */\n React.useLayoutEffect(effect, deps);\n } else {\n React.useEffect(effect, deps);\n }\n}\n/* eslint-enable */","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Overflow from 'rc-overflow';\nimport TransBtn from '../TransBtn';\nimport Input from './Input';\nimport useLayoutEffect from '../hooks/useLayoutEffect';\n\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n};\n\nvar SelectSelector = function SelectSelector(props) {\n var id = props.id,\n prefixCls = props.prefixCls,\n values = props.values,\n open = props.open,\n searchValue = props.searchValue,\n inputRef = props.inputRef,\n placeholder = props.placeholder,\n disabled = props.disabled,\n mode = props.mode,\n showSearch = props.showSearch,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n accessibilityIndex = props.accessibilityIndex,\n tabIndex = props.tabIndex,\n removeIcon = props.removeIcon,\n maxTagCount = props.maxTagCount,\n maxTagTextLength = props.maxTagTextLength,\n _props$maxTagPlacehol = props.maxTagPlaceholder,\n maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n return \"+ \".concat(omittedValues.length, \" ...\");\n } : _props$maxTagPlacehol,\n tagRender = props.tagRender,\n onToggleOpen = props.onToggleOpen,\n onSelect = props.onSelect,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var measureRef = React.useRef(null);\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n inputWidth = _useState2[0],\n setInputWidth = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n\n var selectionPrefixCls = \"\".concat(prefixCls, \"-selection\"); // ===================== Search ======================\n\n var inputValue = open || mode === 'tags' ? searchValue : '';\n var inputEditable = mode === 'tags' || showSearch && (open || focused); // We measure width and set to the input immediately\n\n useLayoutEffect(function () {\n setInputWidth(measureRef.current.scrollWidth);\n }, [inputValue]); // ===================== Render ======================\n // >>> Render Selector Node. Includes Item & Rest\n\n function defaultRenderSelector(content, itemDisabled, closable, onClose) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(selectionPrefixCls, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls, \"-item-disabled\"), itemDisabled))\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-item-content\")\n }, content), closable && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(selectionPrefixCls, \"-item-remove\"),\n onMouseDown: onPreventMouseDown,\n onClick: onClose,\n customizeIcon: removeIcon\n }, \"\\xD7\"));\n }\n\n function customizeRenderSelector(value, content, itemDisabled, closable, onClose) {\n var onMouseDown = function onMouseDown(e) {\n onPreventMouseDown(e);\n onToggleOpen(!open);\n };\n\n return /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: onMouseDown\n }, tagRender({\n label: content,\n value: value,\n disabled: itemDisabled,\n closable: closable,\n onClose: onClose\n }));\n }\n\n function renderItem(_ref) {\n var itemDisabled = _ref.disabled,\n label = _ref.label,\n value = _ref.value;\n var closable = !disabled && !itemDisabled;\n var displayLabel = label;\n\n if (typeof maxTagTextLength === 'number') {\n if (typeof label === 'string' || typeof label === 'number') {\n var strLabel = String(displayLabel);\n\n if (strLabel.length > maxTagTextLength) {\n displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n }\n }\n }\n\n var onClose = function onClose(event) {\n if (event) event.stopPropagation();\n onSelect(value, {\n selected: false\n });\n };\n\n return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(displayLabel, itemDisabled, closable, onClose);\n }\n\n function renderRest(omittedValues) {\n var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n return defaultRenderSelector(content, false);\n } // >>> Input Node\n\n\n var inputNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(selectionPrefixCls, \"-search\"),\n style: {\n width: inputWidth\n },\n onFocus: function onFocus() {\n setFocused(true);\n },\n onBlur: function onBlur() {\n setFocused(false);\n }\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n open: open,\n prefixCls: prefixCls,\n id: id,\n inputElement: null,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n accessibilityIndex: accessibilityIndex,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: onInputChange,\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true)\n }), /*#__PURE__*/React.createElement(\"span\", {\n ref: measureRef,\n className: \"\".concat(selectionPrefixCls, \"-search-mirror\"),\n \"aria-hidden\": true\n }, inputValue, \"\\xA0\")); // >>> Selections\n\n var selectionNode = /*#__PURE__*/React.createElement(Overflow, {\n prefixCls: \"\".concat(selectionPrefixCls, \"-overflow\"),\n data: values,\n renderItem: renderItem,\n renderRest: renderRest,\n suffix: inputNode,\n itemKey: \"key\",\n maxCount: maxTagCount\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, selectionNode, !values.length && !inputValue && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-placeholder\")\n }, placeholder));\n};\n\nexport default SelectSelector;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Input from './Input';\n\nvar SingleSelector = function SingleSelector(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n id = props.id,\n inputRef = props.inputRef,\n disabled = props.disabled,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n accessibilityIndex = props.accessibilityIndex,\n mode = props.mode,\n open = props.open,\n values = props.values,\n placeholder = props.placeholder,\n tabIndex = props.tabIndex,\n showSearch = props.showSearch,\n searchValue = props.searchValue,\n activeValue = props.activeValue,\n maxLength = props.maxLength,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n inputChanged = _React$useState2[0],\n setInputChanged = _React$useState2[1];\n\n var combobox = mode === 'combobox';\n var inputEditable = combobox || showSearch;\n var item = values[0];\n var inputValue = searchValue || '';\n\n if (combobox && activeValue && !inputChanged) {\n inputValue = activeValue;\n }\n\n React.useEffect(function () {\n if (combobox) {\n setInputChanged(false);\n }\n }, [combobox, activeValue]); // Not show text when closed expect combobox mode\n\n var hasTextInput = mode !== 'combobox' && !open ? false : !!inputValue;\n var title = item && (typeof item.label === 'string' || typeof item.label === 'number') ? item.label.toString() : undefined;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n prefixCls: prefixCls,\n id: id,\n open: open,\n inputElement: inputElement,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n accessibilityIndex: accessibilityIndex,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: function onChange(e) {\n setInputChanged(true);\n onInputChange(e);\n },\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true),\n maxLength: combobox ? maxLength : undefined\n })), !combobox && item && !hasTextInput && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-item\"),\n title: title\n }, item.label), !item && !hasTextInput && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-placeholder\")\n }, placeholder));\n};\n\nexport default SingleSelector;","import * as React from 'react';\n/**\n * Locker return cached mark.\n * If set to `true`, will return `true` in a short time even if set `false`.\n * If set to `false` and then set to `true`, will change to `true`.\n * And after time duration, it will back to `null` automatically.\n */\n\nexport default function useLock() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n var lockRef = React.useRef(null);\n var timeoutRef = React.useRef(null); // Clean up\n\n React.useEffect(function () {\n return function () {\n window.clearTimeout(timeoutRef.current);\n };\n }, []);\n\n function doLock(locked) {\n if (locked || lockRef.current === null) {\n lockRef.current = locked;\n }\n\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(function () {\n lockRef.current = null;\n }, duration);\n }\n\n return [function () {\n return lockRef.current;\n }, doLock];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport MultipleSelector from './MultipleSelector';\nimport SingleSelector from './SingleSelector';\nimport useLock from '../hooks/useLock';\n\nvar Selector = function Selector(props, ref) {\n var inputRef = useRef(null);\n var compositionStatusRef = useRef(false);\n var prefixCls = props.prefixCls,\n multiple = props.multiple,\n open = props.open,\n mode = props.mode,\n showSearch = props.showSearch,\n tokenWithEnter = props.tokenWithEnter,\n onSearch = props.onSearch,\n onSearchSubmit = props.onSearchSubmit,\n onToggleOpen = props.onToggleOpen,\n onInputKeyDown = props.onInputKeyDown,\n domRef = props.domRef; // ======================= Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n inputRef.current.focus();\n },\n blur: function blur() {\n inputRef.current.blur();\n }\n };\n }); // ====================== Input ======================\n\n var _useLock = useLock(0),\n _useLock2 = _slicedToArray(_useLock, 2),\n getInputMouseDown = _useLock2[0],\n setInputMouseDown = _useLock2[1];\n\n var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n var which = event.which;\n\n if (which === KeyCode.UP || which === KeyCode.DOWN) {\n event.preventDefault();\n }\n\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n\n if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n // When menu isn't open, OptionList won't trigger a value change\n // So when enter is pressed, the tag's input value should be emitted here to let selector know\n onSearchSubmit(event.target.value);\n }\n\n if (![KeyCode.SHIFT, KeyCode.TAB, KeyCode.BACKSPACE, KeyCode.ESC].includes(which)) {\n onToggleOpen(true);\n }\n };\n /**\n * We can not use `findDOMNode` sine it will get warning,\n * have to use timer to check if is input element.\n */\n\n\n var onInternalInputMouseDown = function onInternalInputMouseDown() {\n setInputMouseDown(true);\n }; // When paste come, ignore next onChange\n\n\n var pastedTextRef = useRef(null);\n\n var triggerOnSearch = function triggerOnSearch(value) {\n if (onSearch(value, true, compositionStatusRef.current) !== false) {\n onToggleOpen(true);\n }\n };\n\n var onInputCompositionStart = function onInputCompositionStart() {\n compositionStatusRef.current = true;\n };\n\n var onInputCompositionEnd = function onInputCompositionEnd(e) {\n compositionStatusRef.current = false; // Trigger search again to support `tokenSeparators` with typewriting\n\n if (mode !== 'combobox') {\n triggerOnSearch(e.target.value);\n }\n };\n\n var onInputChange = function onInputChange(event) {\n var value = event.target.value; // Pasted text should replace back to origin content\n\n if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n // CRLF will be treated as a single space for input element\n var replacedText = pastedTextRef.current.replace(/[\\r\\n]+$/, '').replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n value = value.replace(replacedText, pastedTextRef.current);\n }\n\n pastedTextRef.current = null;\n triggerOnSearch(value);\n };\n\n var onInputPaste = function onInputPaste(e) {\n var clipboardData = e.clipboardData;\n var value = clipboardData.getData('text');\n pastedTextRef.current = value;\n };\n\n var onClick = function onClick(_ref) {\n var target = _ref.target;\n\n if (target !== inputRef.current) {\n // Should focus input if click the selector\n var isIE = document.body.style.msTouchAction !== undefined;\n\n if (isIE) {\n setTimeout(function () {\n inputRef.current.focus();\n });\n } else {\n inputRef.current.focus();\n }\n }\n };\n\n var onMouseDown = function onMouseDown(event) {\n var inputMouseDown = getInputMouseDown();\n\n if (event.target !== inputRef.current && !inputMouseDown) {\n event.preventDefault();\n }\n\n if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n if (open) {\n onSearch('', true, false);\n }\n\n onToggleOpen();\n }\n }; // ================= Inner Selector ==================\n\n\n var sharedProps = {\n inputRef: inputRef,\n onInputKeyDown: onInternalInputKeyDown,\n onInputMouseDown: onInternalInputMouseDown,\n onInputChange: onInputChange,\n onInputPaste: onInputPaste,\n onInputCompositionStart: onInputCompositionStart,\n onInputCompositionEnd: onInputCompositionEnd\n };\n var selectNode = multiple ? /*#__PURE__*/React.createElement(MultipleSelector, _extends({}, props, sharedProps)) : /*#__PURE__*/React.createElement(SingleSelector, _extends({}, props, sharedProps));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domRef,\n className: \"\".concat(prefixCls, \"-selector\"),\n onClick: onClick,\n onMouseDown: onMouseDown\n }, selectNode);\n};\n\nvar ForwardSelector = /*#__PURE__*/React.forwardRef(Selector);\nForwardSelector.displayName = 'Selector';\nexport default ForwardSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\n\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n var adjustX = typeof dropdownMatchSelectWidth !== 'number' ? 0 : 1;\n return {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n }\n };\n};\n\nvar SelectTrigger = function SelectTrigger(props, ref) {\n var prefixCls = props.prefixCls,\n disabled = props.disabled,\n visible = props.visible,\n children = props.children,\n popupElement = props.popupElement,\n containerWidth = props.containerWidth,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n getPopupContainer = props.getPopupContainer,\n empty = props.empty,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"disabled\", \"visible\", \"children\", \"popupElement\", \"containerWidth\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"direction\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"getPopupContainer\", \"empty\", \"getTriggerDOMNode\"]);\n\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var popupNode = popupElement;\n\n if (dropdownRender) {\n popupNode = dropdownRender(popupElement);\n }\n\n var builtInPlacements = React.useMemo(function () {\n return getBuiltInPlacements(dropdownMatchSelectWidth);\n }, [dropdownMatchSelectWidth]); // ===================== Motion ======================\n\n var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName; // ======================= Ref =======================\n\n var popupRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n getPopupElement: function getPopupElement() {\n return popupRef.current;\n }\n };\n });\n\n var popupStyle = _objectSpread({\n minWidth: containerWidth\n }, dropdownStyle);\n\n if (typeof dropdownMatchSelectWidth === 'number') {\n popupStyle.width = dropdownMatchSelectWidth;\n } else if (dropdownMatchSelectWidth) {\n popupStyle.width = containerWidth;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({}, restProps, {\n showAction: [],\n hideAction: [],\n popupPlacement: direction === 'rtl' ? 'bottomRight' : 'bottomLeft',\n builtinPlacements: builtInPlacements,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: mergedTransitionName,\n popup: /*#__PURE__*/React.createElement(\"div\", {\n ref: popupRef\n }, popupNode),\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: getPopupContainer,\n popupClassName: classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n popupStyle: popupStyle,\n getTriggerDOMNode: getTriggerDOMNode\n }), children);\n};\n\nvar RefSelectTrigger = /*#__PURE__*/React.forwardRef(SelectTrigger);\nRefSelectTrigger.displayName = 'SelectTrigger';\nexport default RefSelectTrigger;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n */\n\nimport * as React from 'react';\nimport { useState, useRef, useEffect, useMemo } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Selector from './Selector';\nimport SelectTrigger from './SelectTrigger';\nimport { INTERNAL_PROPS_MARK } from './interface/generator';\nimport { toInnerValue, toOuterValues, removeLastEnabledValue, getUUID } from './utils/commonUtil';\nimport TransBtn from './TransBtn';\nimport useLock from './hooks/useLock';\nimport useDelayReset from './hooks/useDelayReset';\nimport useLayoutEffect from './hooks/useLayoutEffect';\nimport { getSeparatedContent } from './utils/valueUtil';\nimport useSelectTriggerControl from './hooks/useSelectTriggerControl';\nimport useCacheDisplayValue from './hooks/useCacheDisplayValue';\nimport useCacheOptions from './hooks/useCacheOptions';\nvar DEFAULT_OMIT_PROPS = ['removeIcon', 'placeholder', 'autoFocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'tabIndex'];\n/**\n * This function is in internal usage.\n * Do not use it in your prod env since we may refactor this.\n */\n\nexport default function generateSelector(config) {\n var defaultPrefixCls = config.prefixCls,\n OptionList = config.components.optionList,\n convertChildrenToData = config.convertChildrenToData,\n flattenOptions = config.flattenOptions,\n getLabeledValue = config.getLabeledValue,\n filterOptions = config.filterOptions,\n isValueDisabled = config.isValueDisabled,\n findValueOption = config.findValueOption,\n warningProps = config.warningProps,\n fillOptionsWithMissingValue = config.fillOptionsWithMissingValue,\n omitDOMProps = config.omitDOMProps; // Use raw define since `React.FC` not support generic\n\n function Select(props, ref) {\n var _classNames2;\n\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? defaultPrefixCls : _props$prefixCls,\n className = props.className,\n id = props.id,\n open = props.open,\n defaultOpen = props.defaultOpen,\n options = props.options,\n children = props.children,\n mode = props.mode,\n value = props.value,\n defaultValue = props.defaultValue,\n labelInValue = props.labelInValue,\n showSearch = props.showSearch,\n inputValue = props.inputValue,\n searchValue = props.searchValue,\n filterOption = props.filterOption,\n filterSort = props.filterSort,\n _props$optionFilterPr = props.optionFilterProp,\n optionFilterProp = _props$optionFilterPr === void 0 ? 'value' : _props$optionFilterPr,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n onSearch = props.onSearch,\n allowClear = props.allowClear,\n clearIcon = props.clearIcon,\n showArrow = props.showArrow,\n inputIcon = props.inputIcon,\n menuItemSelectedIcon = props.menuItemSelectedIcon,\n disabled = props.disabled,\n loading = props.loading,\n defaultActiveFirstOption = props.defaultActiveFirstOption,\n _props$notFoundConten = props.notFoundContent,\n notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n optionLabelProp = props.optionLabelProp,\n backfill = props.backfill,\n tabIndex = props.tabIndex,\n getInputElement = props.getInputElement,\n getPopupContainer = props.getPopupContainer,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n animation = props.animation,\n transitionName = props.transitionName,\n virtual = props.virtual,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n _props$showAction = props.showAction,\n showAction = _props$showAction === void 0 ? [] : _props$showAction,\n direction = props.direction,\n tokenSeparators = props.tokenSeparators,\n tagRender = props.tagRender,\n onPopupScroll = props.onPopupScroll,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyUp = props.onKeyUp,\n onKeyDown = props.onKeyDown,\n onMouseDown = props.onMouseDown,\n onChange = props.onChange,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n onClear = props.onClear,\n _props$internalProps = props.internalProps,\n internalProps = _props$internalProps === void 0 ? {} : _props$internalProps,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"className\", \"id\", \"open\", \"defaultOpen\", \"options\", \"children\", \"mode\", \"value\", \"defaultValue\", \"labelInValue\", \"showSearch\", \"inputValue\", \"searchValue\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"autoClearSearchValue\", \"onSearch\", \"allowClear\", \"clearIcon\", \"showArrow\", \"inputIcon\", \"menuItemSelectedIcon\", \"disabled\", \"loading\", \"defaultActiveFirstOption\", \"notFoundContent\", \"optionLabelProp\", \"backfill\", \"tabIndex\", \"getInputElement\", \"getPopupContainer\", \"listHeight\", \"listItemHeight\", \"animation\", \"transitionName\", \"virtual\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"showAction\", \"direction\", \"tokenSeparators\", \"tagRender\", \"onPopupScroll\", \"onDropdownVisibleChange\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onMouseDown\", \"onChange\", \"onSelect\", \"onDeselect\", \"onClear\", \"internalProps\"]);\n\n var useInternalProps = internalProps.mark === INTERNAL_PROPS_MARK;\n var domProps = omitDOMProps ? omitDOMProps(restProps) : restProps;\n DEFAULT_OMIT_PROPS.forEach(function (prop) {\n delete domProps[prop];\n });\n var containerRef = useRef(null);\n var triggerRef = useRef(null);\n var selectorRef = useRef(null);\n var listRef = useRef(null);\n var tokenWithEnter = useMemo(function () {\n return (tokenSeparators || []).some(function (tokenSeparator) {\n return ['\\n', '\\r\\n'].includes(tokenSeparator);\n });\n }, [tokenSeparators]);\n /** Used for component focused management */\n\n var _useDelayReset = useDelayReset(),\n _useDelayReset2 = _slicedToArray(_useDelayReset, 3),\n mockFocused = _useDelayReset2[0],\n setMockFocused = _useDelayReset2[1],\n cancelSetMockFocused = _useDelayReset2[2]; // Inner id for accessibility usage. Only work in client side\n\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n innerId = _useState2[0],\n setInnerId = _useState2[1];\n\n useEffect(function () {\n setInnerId(\"rc_select_\".concat(getUUID()));\n }, []);\n var mergedId = id || innerId; // optionLabelProp\n\n var mergedOptionLabelProp = optionLabelProp;\n\n if (mergedOptionLabelProp === undefined) {\n mergedOptionLabelProp = options ? 'label' : 'children';\n } // labelInValue\n\n\n var mergedLabelInValue = mode === 'combobox' ? false : labelInValue;\n var isMultiple = mode === 'tags' || mode === 'multiple';\n var mergedShowSearch = showSearch !== undefined ? showSearch : isMultiple || mode === 'combobox'; // ======================== Mobile ========================\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n mobile = _useState4[0],\n setMobile = _useState4[1];\n\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []); // ============================== Ref ===============================\n\n var selectorDomRef = useRef(null);\n React.useImperativeHandle(ref, function () {\n var _selectorRef$current, _selectorRef$current2, _listRef$current;\n\n return {\n focus: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.focus,\n blur: (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 ? void 0 : _selectorRef$current2.blur,\n scrollTo: (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo\n };\n }); // ============================= Value ==============================\n\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n /** Unique raw values */\n\n\n var _useMemo = useMemo(function () {\n return toInnerValue(mergedValue, {\n labelInValue: mergedLabelInValue,\n combobox: mode === 'combobox'\n });\n }, [mergedValue, mergedLabelInValue]),\n _useMemo2 = _slicedToArray(_useMemo, 2),\n mergedRawValue = _useMemo2[0],\n mergedValueMap = _useMemo2[1];\n /** We cache a set of raw values to speed up check */\n\n\n var rawValues = useMemo(function () {\n return new Set(mergedRawValue);\n }, [mergedRawValue]); // ============================= Option =============================\n // Set by option list active, it will merge into search input when mode is `combobox`\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n activeValue = _useState6[0],\n setActiveValue = _useState6[1];\n\n var _useState7 = useState(''),\n _useState8 = _slicedToArray(_useState7, 2),\n innerSearchValue = _useState8[0],\n setInnerSearchValue = _useState8[1];\n\n var mergedSearchValue = innerSearchValue;\n\n if (mode === 'combobox' && mergedValue !== undefined) {\n mergedSearchValue = mergedValue;\n } else if (searchValue !== undefined) {\n mergedSearchValue = searchValue;\n } else if (inputValue) {\n mergedSearchValue = inputValue;\n }\n\n var mergedOptions = useMemo(function () {\n var newOptions = options;\n\n if (newOptions === undefined) {\n newOptions = convertChildrenToData(children);\n }\n /**\n * `tags` should fill un-list item.\n * This is not cool here since TreeSelect do not need this\n */\n\n\n if (mode === 'tags' && fillOptionsWithMissingValue) {\n newOptions = fillOptionsWithMissingValue(newOptions, mergedValue, mergedOptionLabelProp, labelInValue);\n }\n\n return newOptions || [];\n }, [options, children, mode, mergedValue]);\n var mergedFlattenOptions = useMemo(function () {\n return flattenOptions(mergedOptions, props);\n }, [mergedOptions]);\n var getValueOption = useCacheOptions(mergedFlattenOptions); // Display options for OptionList\n\n var displayOptions = useMemo(function () {\n if (!mergedSearchValue || !mergedShowSearch) {\n return _toConsumableArray(mergedOptions);\n }\n\n var filteredOptions = filterOptions(mergedSearchValue, mergedOptions, {\n optionFilterProp: optionFilterProp,\n filterOption: mode === 'combobox' && filterOption === undefined ? function () {\n return true;\n } : filterOption\n });\n\n if (mode === 'tags' && filteredOptions.every(function (opt) {\n return opt[optionFilterProp] !== mergedSearchValue;\n })) {\n filteredOptions.unshift({\n value: mergedSearchValue,\n label: mergedSearchValue,\n key: '__RC_SELECT_TAG_PLACEHOLDER__'\n });\n }\n\n if (filterSort && Array.isArray(filteredOptions)) {\n return _toConsumableArray(filteredOptions).sort(filterSort);\n }\n\n return filteredOptions;\n }, [mergedOptions, mergedSearchValue, mode, mergedShowSearch, filterSort]);\n var displayFlattenOptions = useMemo(function () {\n return flattenOptions(displayOptions, props);\n }, [displayOptions]);\n useEffect(function () {\n if (listRef.current && listRef.current.scrollTo) {\n listRef.current.scrollTo(0);\n }\n }, [mergedSearchValue]); // ============================ Selector ============================\n\n var displayValues = useMemo(function () {\n var tmpValues = mergedRawValue.map(function (val) {\n var valueOptions = getValueOption([val]);\n var displayValue = getLabeledValue(val, {\n options: valueOptions,\n prevValueMap: mergedValueMap,\n labelInValue: mergedLabelInValue,\n optionLabelProp: mergedOptionLabelProp\n });\n return _objectSpread(_objectSpread({}, displayValue), {}, {\n disabled: isValueDisabled(val, valueOptions)\n });\n });\n\n if (!mode && tmpValues.length === 1 && tmpValues[0].value === null && tmpValues[0].label === null) {\n return [];\n }\n\n return tmpValues;\n }, [mergedValue, mergedOptions, mode]); // Polyfill with cache label\n\n displayValues = useCacheDisplayValue(displayValues);\n\n var triggerSelect = function triggerSelect(newValue, isSelect, source) {\n var newValueOption = getValueOption([newValue]);\n var outOption = findValueOption([newValue], newValueOption)[0];\n\n if (!internalProps.skipTriggerSelect) {\n // Skip trigger `onSelect` or `onDeselect` if configured\n var selectValue = mergedLabelInValue ? getLabeledValue(newValue, {\n options: newValueOption,\n prevValueMap: mergedValueMap,\n labelInValue: mergedLabelInValue,\n optionLabelProp: mergedOptionLabelProp\n }) : newValue;\n\n if (isSelect && onSelect) {\n onSelect(selectValue, outOption);\n } else if (!isSelect && onDeselect) {\n onDeselect(selectValue, outOption);\n }\n } // Trigger internal event\n\n\n if (useInternalProps) {\n if (isSelect && internalProps.onRawSelect) {\n internalProps.onRawSelect(newValue, outOption, source);\n } else if (!isSelect && internalProps.onRawDeselect) {\n internalProps.onRawDeselect(newValue, outOption, source);\n }\n }\n }; // We need cache options here in case user update the option list\n\n\n var _useState9 = useState([]),\n _useState10 = _slicedToArray(_useState9, 2),\n prevValueOptions = _useState10[0],\n setPrevValueOptions = _useState10[1];\n\n var triggerChange = function triggerChange(newRawValues) {\n if (useInternalProps && internalProps.skipTriggerChange) {\n return;\n }\n\n var newRawValuesOptions = getValueOption(newRawValues);\n var outValues = toOuterValues(Array.from(newRawValues), {\n labelInValue: mergedLabelInValue,\n options: newRawValuesOptions,\n getLabeledValue: getLabeledValue,\n prevValueMap: mergedValueMap,\n optionLabelProp: mergedOptionLabelProp\n });\n var outValue = isMultiple ? outValues : outValues[0]; // Skip trigger if prev & current value is both empty\n\n if (onChange && (mergedRawValue.length !== 0 || outValues.length !== 0)) {\n var outOptions = findValueOption(newRawValues, newRawValuesOptions, {\n prevValueOptions: prevValueOptions\n }); // We will cache option in case it removed by ajax\n\n setPrevValueOptions(outOptions.map(function (option, index) {\n var clone = _objectSpread({}, option);\n\n Object.defineProperty(clone, '_INTERNAL_OPTION_VALUE_', {\n get: function get() {\n return newRawValues[index];\n }\n });\n return clone;\n }));\n onChange(outValue, isMultiple ? outOptions : outOptions[0]);\n }\n\n setMergedValue(outValue);\n };\n\n var onInternalSelect = function onInternalSelect(newValue, _ref) {\n var selected = _ref.selected,\n source = _ref.source;\n\n if (disabled) {\n return;\n }\n\n var newRawValue;\n\n if (isMultiple) {\n newRawValue = new Set(mergedRawValue);\n\n if (selected) {\n newRawValue.add(newValue);\n } else {\n newRawValue.delete(newValue);\n }\n } else {\n newRawValue = new Set();\n newRawValue.add(newValue);\n } // Multiple always trigger change and single should change if value changed\n\n\n if (isMultiple || !isMultiple && Array.from(mergedRawValue)[0] !== newValue) {\n triggerChange(Array.from(newRawValue));\n } // Trigger `onSelect`. Single mode always trigger select\n\n\n triggerSelect(newValue, !isMultiple || selected, source); // Clean search value if single or configured\n\n if (mode === 'combobox') {\n setInnerSearchValue(String(newValue));\n setActiveValue('');\n } else if (!isMultiple || autoClearSearchValue) {\n setInnerSearchValue('');\n setActiveValue('');\n }\n };\n\n var onInternalOptionSelect = function onInternalOptionSelect(newValue, info) {\n onInternalSelect(newValue, _objectSpread(_objectSpread({}, info), {}, {\n source: 'option'\n }));\n };\n\n var onInternalSelectionSelect = function onInternalSelectionSelect(newValue, info) {\n onInternalSelect(newValue, _objectSpread(_objectSpread({}, info), {}, {\n source: 'selection'\n }));\n }; // ============================= Input ==============================\n // Only works in `combobox`\n\n\n var customizeInputElement = mode === 'combobox' && getInputElement && getInputElement() || null; // ============================== Open ==============================\n\n var _useMergedState3 = useMergedState(undefined, {\n defaultValue: defaultOpen,\n value: open\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n innerOpen = _useMergedState4[0],\n setInnerOpen = _useMergedState4[1];\n\n var mergedOpen = innerOpen; // Not trigger `open` in `combobox` when `notFoundContent` is empty\n\n var emptyListContent = !notFoundContent && !displayOptions.length;\n\n if (disabled || emptyListContent && mergedOpen && mode === 'combobox') {\n mergedOpen = false;\n }\n\n var triggerOpen = emptyListContent ? false : mergedOpen;\n\n var onToggleOpen = function onToggleOpen(newOpen) {\n var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n\n if (innerOpen !== nextOpen && !disabled) {\n setInnerOpen(nextOpen);\n\n if (onDropdownVisibleChange) {\n onDropdownVisibleChange(nextOpen);\n }\n }\n };\n\n useSelectTriggerControl([containerRef.current, triggerRef.current && triggerRef.current.getPopupElement()], triggerOpen, onToggleOpen); // ============================= Search =============================\n\n var triggerSearch = function triggerSearch(searchText, fromTyping, isCompositing) {\n var ret = true;\n var newSearchText = searchText;\n setActiveValue(null); // Check if match the `tokenSeparators`\n\n var patchLabels = isCompositing ? null : getSeparatedContent(searchText, tokenSeparators);\n var patchRawValues = patchLabels;\n\n if (mode === 'combobox') {\n // Only typing will trigger onChange\n if (fromTyping) {\n triggerChange([newSearchText]);\n }\n } else if (patchLabels) {\n newSearchText = '';\n\n if (mode !== 'tags') {\n patchRawValues = patchLabels.map(function (label) {\n var item = mergedFlattenOptions.find(function (_ref2) {\n var data = _ref2.data;\n return data[mergedOptionLabelProp] === label;\n });\n return item ? item.data.value : null;\n }).filter(function (val) {\n return val !== null;\n });\n }\n\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(mergedRawValue), _toConsumableArray(patchRawValues))));\n triggerChange(newRawValues);\n newRawValues.forEach(function (newRawValue) {\n triggerSelect(newRawValue, true, 'input');\n }); // Should close when paste finish\n\n onToggleOpen(false); // Tell Selector that break next actions\n\n ret = false;\n }\n\n setInnerSearchValue(newSearchText);\n\n if (onSearch && mergedSearchValue !== newSearchText) {\n onSearch(newSearchText);\n }\n\n return ret;\n }; // Only triggered when menu is closed & mode is tags\n // If menu is open, OptionList will take charge\n // If mode isn't tags, press enter is not meaningful when you can't see any option\n\n\n var onSearchSubmit = function onSearchSubmit(searchText) {\n // prevent empty tags from appearing when you click the Enter button\n if (!searchText || !searchText.trim()) {\n return;\n }\n\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(mergedRawValue), [searchText])));\n triggerChange(newRawValues);\n newRawValues.forEach(function (newRawValue) {\n triggerSelect(newRawValue, true, 'input');\n });\n setInnerSearchValue('');\n }; // Close dropdown when disabled change\n\n\n useEffect(function () {\n if (innerOpen && !!disabled) {\n setInnerOpen(false);\n }\n }, [disabled]); // Close will clean up single mode search text\n\n useEffect(function () {\n if (!mergedOpen && !isMultiple && mode !== 'combobox') {\n triggerSearch('', false, false);\n }\n }, [mergedOpen]); // ============================ Keyboard ============================\n\n /**\n * We record input value here to check if can press to clean up by backspace\n * - null: Key is not down, this is reset by key up\n * - true: Search text is empty when first time backspace down\n * - false: Search text is not empty when first time backspace down\n */\n\n var _useLock = useLock(),\n _useLock2 = _slicedToArray(_useLock, 2),\n getClearLock = _useLock2[0],\n setClearLock = _useLock2[1]; // KeyDown\n\n\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var clearLock = getClearLock();\n var which = event.which;\n\n if (which === KeyCode.ENTER) {\n // Do not submit form when type in the input\n if (mode !== 'combobox') {\n event.preventDefault();\n } // We only manage open state here, close logic should handle by list component\n\n\n if (!mergedOpen) {\n onToggleOpen(true);\n }\n }\n\n setClearLock(!!mergedSearchValue); // Remove value by `backspace`\n\n if (which === KeyCode.BACKSPACE && !clearLock && isMultiple && !mergedSearchValue && mergedRawValue.length) {\n var removeInfo = removeLastEnabledValue(displayValues, mergedRawValue);\n\n if (removeInfo.removedValue !== null) {\n triggerChange(removeInfo.values);\n triggerSelect(removeInfo.removedValue, false, 'input');\n }\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n if (mergedOpen && listRef.current) {\n var _listRef$current2;\n\n (_listRef$current2 = listRef.current).onKeyDown.apply(_listRef$current2, [event].concat(rest));\n }\n\n if (onKeyDown) {\n onKeyDown.apply(void 0, [event].concat(rest));\n }\n }; // KeyUp\n\n\n var onInternalKeyUp = function onInternalKeyUp(event) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n\n if (mergedOpen && listRef.current) {\n var _listRef$current3;\n\n (_listRef$current3 = listRef.current).onKeyUp.apply(_listRef$current3, [event].concat(rest));\n }\n\n if (onKeyUp) {\n onKeyUp.apply(void 0, [event].concat(rest));\n }\n }; // ========================== Focus / Blur ==========================\n\n /** Record real focus status */\n\n\n var focusRef = useRef(false);\n\n var onContainerFocus = function onContainerFocus() {\n setMockFocused(true);\n\n if (!disabled) {\n if (onFocus && !focusRef.current) {\n onFocus.apply(void 0, arguments);\n } // `showAction` should handle `focus` if set\n\n\n if (showAction.includes('focus')) {\n onToggleOpen(true);\n }\n }\n\n focusRef.current = true;\n };\n\n var onContainerBlur = function onContainerBlur() {\n setMockFocused(false, function () {\n focusRef.current = false;\n onToggleOpen(false);\n });\n\n if (disabled) {\n return;\n }\n\n if (mergedSearchValue) {\n // `tags` mode should move `searchValue` into values\n if (mode === 'tags') {\n triggerSearch('', false, false);\n triggerChange(Array.from(new Set([].concat(_toConsumableArray(mergedRawValue), [mergedSearchValue]))));\n } else if (mode === 'multiple') {\n // `multiple` mode only clean the search value but not trigger event\n setInnerSearchValue('');\n }\n }\n\n if (onBlur) {\n onBlur.apply(void 0, arguments);\n }\n };\n\n var activeTimeoutIds = [];\n useEffect(function () {\n return function () {\n activeTimeoutIds.forEach(function (timeoutId) {\n return clearTimeout(timeoutId);\n });\n activeTimeoutIds.splice(0, activeTimeoutIds.length);\n };\n }, []);\n\n var onInternalMouseDown = function onInternalMouseDown(event) {\n var target = event.target;\n var popupElement = triggerRef.current && triggerRef.current.getPopupElement(); // We should give focus back to selector if clicked item is not focusable\n\n if (popupElement && popupElement.contains(target)) {\n var timeoutId = setTimeout(function () {\n var index = activeTimeoutIds.indexOf(timeoutId);\n\n if (index !== -1) {\n activeTimeoutIds.splice(index, 1);\n }\n\n cancelSetMockFocused();\n\n if (!mobile && !popupElement.contains(document.activeElement)) {\n var _selectorRef$current3;\n\n (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 ? void 0 : _selectorRef$current3.focus();\n }\n });\n activeTimeoutIds.push(timeoutId);\n }\n\n if (onMouseDown) {\n for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n restArgs[_key3 - 1] = arguments[_key3];\n }\n\n onMouseDown.apply(void 0, [event].concat(restArgs));\n }\n }; // ========================= Accessibility ==========================\n\n\n var _useState11 = useState(0),\n _useState12 = _slicedToArray(_useState11, 2),\n accessibilityIndex = _useState12[0],\n setAccessibilityIndex = _useState12[1];\n\n var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n\n var onActiveValue = function onActiveValue(active, index) {\n var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref3$source = _ref3.source,\n source = _ref3$source === void 0 ? 'keyboard' : _ref3$source;\n\n setAccessibilityIndex(index);\n\n if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n setActiveValue(String(active));\n }\n }; // ============================= Popup ==============================\n\n\n var _useState13 = useState(null),\n _useState14 = _slicedToArray(_useState13, 2),\n containerWidth = _useState14[0],\n setContainerWidth = _useState14[1];\n\n var _useState15 = useState({}),\n _useState16 = _slicedToArray(_useState15, 2),\n forceUpdate = _useState16[1]; // We need force update here since popup dom is render async\n\n\n function onPopupMouseEnter() {\n forceUpdate({});\n }\n\n useLayoutEffect(function () {\n if (triggerOpen) {\n var newWidth = Math.ceil(containerRef.current.offsetWidth);\n\n if (containerWidth !== newWidth) {\n setContainerWidth(newWidth);\n }\n }\n }, [triggerOpen]);\n var popupNode = /*#__PURE__*/React.createElement(OptionList, {\n ref: listRef,\n prefixCls: prefixCls,\n id: mergedId,\n open: mergedOpen,\n childrenAsData: !options,\n options: displayOptions,\n flattenOptions: displayFlattenOptions,\n multiple: isMultiple,\n values: rawValues,\n height: listHeight,\n itemHeight: listItemHeight,\n onSelect: onInternalOptionSelect,\n onToggleOpen: onToggleOpen,\n onActiveValue: onActiveValue,\n defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n notFoundContent: notFoundContent,\n onScroll: onPopupScroll,\n searchValue: mergedSearchValue,\n menuItemSelectedIcon: menuItemSelectedIcon,\n virtual: virtual !== false && dropdownMatchSelectWidth !== false,\n onMouseEnter: onPopupMouseEnter\n }); // ============================= Clear ==============================\n\n var clearNode;\n\n var onClearMouseDown = function onClearMouseDown() {\n // Trigger internal `onClear` event\n if (useInternalProps && internalProps.onClear) {\n internalProps.onClear();\n }\n\n if (onClear) {\n onClear();\n }\n\n triggerChange([]);\n triggerSearch('', false, false);\n };\n\n if (!disabled && allowClear && (mergedRawValue.length || mergedSearchValue)) {\n clearNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(prefixCls, \"-clear\"),\n onMouseDown: onClearMouseDown,\n customizeIcon: clearIcon\n }, \"\\xD7\");\n } // ============================= Arrow ==============================\n\n\n var mergedShowArrow = showArrow !== undefined ? showArrow : loading || !isMultiple && mode !== 'combobox';\n var arrowNode;\n\n if (mergedShowArrow) {\n arrowNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), _defineProperty({}, \"\".concat(prefixCls, \"-arrow-loading\"), loading)),\n customizeIcon: inputIcon,\n customizeIconProps: {\n loading: loading,\n searchValue: mergedSearchValue,\n open: mergedOpen,\n focused: mockFocused,\n showSearch: mergedShowSearch\n }\n });\n } // ============================ Warning =============================\n\n\n if (process.env.NODE_ENV !== 'production' && warningProps) {\n warningProps(props);\n } // ============================= Render =============================\n\n\n var mergedClassName = classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mockFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-multiple\"), isMultiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-single\"), !isMultiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-allow-clear\"), allowClear), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-arrow\"), mergedShowArrow), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-open\"), mergedOpen), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-customize-input\"), customizeInputElement), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-search\"), mergedShowSearch), _classNames2));\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergedClassName\n }, domProps, {\n ref: containerRef,\n onMouseDown: onInternalMouseDown,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onFocus: onContainerFocus,\n onBlur: onContainerBlur\n }), mockFocused && !mergedOpen && /*#__PURE__*/React.createElement(\"span\", {\n style: {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0\n },\n \"aria-live\": \"polite\"\n }, \"\".concat(mergedRawValue.join(', '))), /*#__PURE__*/React.createElement(SelectTrigger, {\n ref: triggerRef,\n disabled: disabled,\n prefixCls: prefixCls,\n visible: triggerOpen,\n popupElement: popupNode,\n containerWidth: containerWidth,\n animation: animation,\n transitionName: transitionName,\n dropdownStyle: dropdownStyle,\n dropdownClassName: dropdownClassName,\n direction: direction,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n dropdownRender: dropdownRender,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n empty: !mergedOptions.length,\n getTriggerDOMNode: function getTriggerDOMNode() {\n return selectorDomRef.current;\n }\n }, /*#__PURE__*/React.createElement(Selector, _extends({}, props, {\n domRef: selectorDomRef,\n prefixCls: prefixCls,\n inputElement: customizeInputElement,\n ref: selectorRef,\n id: mergedId,\n showSearch: mergedShowSearch,\n mode: mode,\n accessibilityIndex: accessibilityIndex,\n multiple: isMultiple,\n tagRender: tagRender,\n values: displayValues,\n open: mergedOpen,\n onToggleOpen: onToggleOpen,\n searchValue: mergedSearchValue,\n activeValue: activeValue,\n onSearch: triggerSearch,\n onSearchSubmit: onSearchSubmit,\n onSelect: onInternalSelectionSelect,\n tokenWithEnter: tokenWithEnter\n }))), arrowNode, clearNode);\n }\n\n var RefSelect = /*#__PURE__*/React.forwardRef(Select);\n return RefSelect;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport warning, { noteOnce } from \"rc-util/es/warning\";\nimport toNodeArray from \"rc-util/es/Children/toArray\";\nimport { convertChildrenToData } from './legacyUtil';\nimport { toArray } from './commonUtil';\n\nfunction warningProps(props) {\n var mode = props.mode,\n options = props.options,\n children = props.children,\n backfill = props.backfill,\n allowClear = props.allowClear,\n placeholder = props.placeholder,\n getInputElement = props.getInputElement,\n showSearch = props.showSearch,\n onSearch = props.onSearch,\n defaultOpen = props.defaultOpen,\n autoFocus = props.autoFocus,\n labelInValue = props.labelInValue,\n value = props.value,\n inputValue = props.inputValue,\n optionLabelProp = props.optionLabelProp;\n var multiple = mode === 'multiple' || mode === 'tags';\n var mergedShowSearch = showSearch !== undefined ? showSearch : multiple || mode === 'combobox';\n var mergedOptions = options || convertChildrenToData(children); // `tags` should not set option as disabled\n\n warning(mode !== 'tags' || mergedOptions.every(function (opt) {\n return !opt.disabled;\n }), 'Please avoid setting option to disabled in tags mode since user can always type text as tag.'); // `combobox` & `tags` should option be `string` type\n\n if (mode === 'tags' || mode === 'combobox') {\n var hasNumberValue = mergedOptions.some(function (item) {\n if (item.options) {\n return item.options.some(function (opt) {\n return typeof ('value' in opt ? opt.value : opt.key) === 'number';\n });\n }\n\n return typeof ('value' in item ? item.value : item.key) === 'number';\n });\n warning(!hasNumberValue, '`value` of Option should not use number type when `mode` is `tags` or `combobox`.');\n } // `combobox` should not use `optionLabelProp`\n\n\n warning(mode !== 'combobox' || !optionLabelProp, '`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly.'); // Only `combobox` support `backfill`\n\n warning(mode === 'combobox' || !backfill, '`backfill` only works with `combobox` mode.'); // Only `combobox` support `getInputElement`\n\n warning(mode === 'combobox' || !getInputElement, '`getInputElement` only work with `combobox` mode.'); // Customize `getInputElement` should not use `allowClear` & `placeholder`\n\n noteOnce(mode !== 'combobox' || !getInputElement || !allowClear || !placeholder, 'Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`.'); // `onSearch` should use in `combobox` or `showSearch`\n\n if (onSearch && !mergedShowSearch && mode !== 'combobox' && mode !== 'tags') {\n warning(false, '`onSearch` should work with `showSearch` instead of use alone.');\n }\n\n noteOnce(!defaultOpen || autoFocus, '`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed.');\n\n if (value !== undefined && value !== null) {\n var values = toArray(value);\n warning(!labelInValue || values.every(function (val) {\n return _typeof(val) === 'object' && ('key' in val || 'value' in val);\n }), '`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`');\n warning(!multiple || Array.isArray(value), '`value` should be array when `mode` is `multiple` or `tags`');\n } // Syntactic sugar should use correct children type\n\n\n if (children) {\n var invalidateChildType = null;\n toNodeArray(children).some(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return false;\n }\n\n var type = node.type;\n\n if (type.isSelectOption) {\n return false;\n }\n\n if (type.isSelectOptGroup) {\n var allChildrenValid = toNodeArray(node.props.children).every(function (subNode) {\n if (! /*#__PURE__*/React.isValidElement(subNode) || !node.type || subNode.type.isSelectOption) {\n return true;\n }\n\n invalidateChildType = subNode.type;\n return false;\n });\n\n if (allChildrenValid) {\n return false;\n }\n\n return true;\n }\n\n invalidateChildType = type;\n return true;\n });\n\n if (invalidateChildType) {\n warning(false, \"`children` should be `Select.Option` or `Select.OptGroup` instead of `\".concat(invalidateChildType.displayName || invalidateChildType.name || invalidateChildType, \"`.\"));\n }\n\n warning(inputValue === undefined, '`inputValue` is deprecated, please use `searchValue` instead.');\n }\n}\n\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport * as React from 'react';\nimport SelectOptionList from './OptionList';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nimport { convertChildrenToData as convertSelectChildrenToData } from './utils/legacyUtil';\nimport { getLabeledValue as getSelectLabeledValue, filterOptions as selectDefaultFilterOptions, isValueDisabled as isSelectValueDisabled, findValueOption as findSelectValueOption, flattenOptions, fillOptionsWithMissingValue } from './utils/valueUtil';\nimport generateSelector from './generate';\nimport warningProps from './utils/warningPropsUtil';\nvar RefSelect = generateSelector({\n prefixCls: 'rc-select',\n components: {\n optionList: SelectOptionList\n },\n convertChildrenToData: convertSelectChildrenToData,\n flattenOptions: flattenOptions,\n getLabeledValue: getSelectLabeledValue,\n filterOptions: selectDefaultFilterOptions,\n isValueDisabled: isSelectValueDisabled,\n findValueOption: findSelectValueOption,\n warningProps: warningProps,\n fillOptionsWithMissingValue: fillOptionsWithMissingValue\n});\n/**\n * Typescript not support generic with function component,\n * we have to wrap an class component to handle this.\n */\n\nvar Select = /*#__PURE__*/function (_React$Component) {\n _inherits(Select, _React$Component);\n\n var _super = _createSuper(Select);\n\n function Select() {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.apply(this, arguments);\n _this.selectRef = /*#__PURE__*/React.createRef();\n\n _this.focus = function () {\n _this.selectRef.current.focus();\n };\n\n _this.blur = function () {\n _this.selectRef.current.blur();\n };\n\n return _this;\n }\n\n _createClass(Select, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(RefSelect, _extends({\n ref: this.selectRef\n }, this.props));\n }\n }]);\n\n return Select;\n}(React.Component);\n\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nexport default Select;","export var INTERNAL_PROPS_MARK = 'RC_SELECT_INTERNAL_PROPS_MARK';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Similar with `useLock`, but this hook will always execute last value.\n * When set to `true`, it will keep `true` for a short time even if `false` is set.\n */\n\nexport default function useDelayReset() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n bool = _React$useState2[0],\n setBool = _React$useState2[1];\n\n var delayRef = React.useRef(null);\n\n var cancelLatest = function cancelLatest() {\n window.clearTimeout(delayRef.current);\n };\n\n React.useEffect(function () {\n return cancelLatest;\n }, []);\n\n var delaySetBool = function delaySetBool(value, callback) {\n cancelLatest();\n delayRef.current = window.setTimeout(function () {\n setBool(value);\n\n if (callback) {\n callback();\n }\n }, timeout);\n };\n\n return [bool, delaySetBool, cancelLatest];\n}","import * as React from 'react';\nexport default function useCacheOptions(options) {\n var prevOptionMapRef = React.useRef(null);\n var optionMap = React.useMemo(function () {\n var map = new Map();\n options.forEach(function (item) {\n var value = item.data.value;\n map.set(value, item);\n });\n return map;\n }, [options]);\n prevOptionMapRef.current = optionMap;\n\n var getValueOption = function getValueOption(vals) {\n return vals.map(function (value) {\n return prevOptionMapRef.current.get(value);\n }).filter(Boolean);\n };\n\n return getValueOption;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function useCacheDisplayValue(values) {\n var prevValuesRef = React.useRef(values);\n var mergedValues = React.useMemo(function () {\n // Create value - label map\n var valueLabels = new Map();\n prevValuesRef.current.forEach(function (_ref) {\n var value = _ref.value,\n label = _ref.label;\n\n if (value !== label) {\n valueLabels.set(value, label);\n }\n });\n var resultValues = values.map(function (item) {\n var cacheLabel = valueLabels.get(item.value);\n\n if (item.isCacheable && cacheLabel) {\n return _objectSpread(_objectSpread({}, item), {}, {\n label: cacheLabel\n });\n }\n\n return item;\n });\n prevValuesRef.current = resultValues;\n return resultValues;\n }, [values]);\n return mergedValues;\n}","import * as React from 'react';\nexport default function useSelectTriggerControl(elements, open, triggerOpen) {\n var propsRef = React.useRef(null);\n propsRef.current = {\n elements: elements.filter(function (e) {\n return e;\n }),\n open: open,\n triggerOpen: triggerOpen\n };\n React.useEffect(function () {\n function onGlobalMouseDown(event) {\n var target = event.target;\n\n if (target.shadowRoot && event.composed) {\n target = event.composedPath()[0] || target;\n }\n\n if (propsRef.current.open && propsRef.current.elements.every(function (element) {\n return !element.contains(target) && element !== target;\n })) {\n // Should trigger close\n propsRef.current.triggerOpen(false);\n }\n }\n\n window.addEventListener('mousedown', onGlobalMouseDown);\n return function () {\n return window.removeEventListener('mousedown', onGlobalMouseDown);\n };\n }, []);\n}","import Select from './Select';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nexport { Option, OptGroup };\nexport default Select;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\"; // TODO: 4.0 - codemod should help to change `filterOption` to support node props.\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport omit from \"rc-util/es/omit\";\nimport classNames from 'classnames';\nimport RcSelect, { Option, OptGroup } from 'rc-select';\nimport { ConfigContext } from '../config-provider';\nimport getIcons from './utils/iconUtil';\nimport SizeContext from '../config-provider/SizeContext';\nimport { getTransitionName } from '../_util/motion';\nvar SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\n\nvar InternalSelect = function InternalSelect(_a, ref) {\n var _classNames2;\n\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n className = _a.className,\n getPopupContainer = _a.getPopupContainer,\n dropdownClassName = _a.dropdownClassName,\n _a$listHeight = _a.listHeight,\n listHeight = _a$listHeight === void 0 ? 256 : _a$listHeight,\n _a$listItemHeight = _a.listItemHeight,\n listItemHeight = _a$listItemHeight === void 0 ? 24 : _a$listItemHeight,\n customizeSize = _a.size,\n notFoundContent = _a.notFoundContent,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"className\", \"getPopupContainer\", \"dropdownClassName\", \"listHeight\", \"listItemHeight\", \"size\", \"notFoundContent\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth;\n\n var size = React.useContext(SizeContext);\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var mode = React.useMemo(function () {\n var m = props.mode;\n\n if (m === 'combobox') {\n return undefined;\n }\n\n if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n return 'combobox';\n }\n\n return m;\n }, [props.mode]);\n var isMultiple = mode === 'multiple' || mode === 'tags'; // ===================== Empty =====================\n\n var mergedNotFound;\n\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = renderEmpty('Select');\n } // ===================== Icons =====================\n\n\n var _getIcons = getIcons(_extends(_extends({}, props), {\n multiple: isMultiple,\n prefixCls: prefixCls\n })),\n suffixIcon = _getIcons.suffixIcon,\n itemIcon = _getIcons.itemIcon,\n removeIcon = _getIcons.removeIcon,\n clearIcon = _getIcons.clearIcon;\n\n var selectProps = omit(props, ['suffixIcon', 'itemIcon']);\n var rcSelectRtlDropDownClassName = classNames(dropdownClassName, _defineProperty({}, \"\".concat(prefixCls, \"-dropdown-\").concat(direction), direction === 'rtl'));\n var mergedSize = customizeSize || size;\n var mergedClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-borderless\"), !bordered), _classNames2), className);\n return /*#__PURE__*/React.createElement(RcSelect, _extends({\n ref: ref,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }, selectProps, {\n transitionName: getTransitionName(rootPrefixCls, 'slide-up', props.transitionName),\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n direction: direction,\n inputIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: rcSelectRtlDropDownClassName\n }));\n};\n\nvar SelectRef = /*#__PURE__*/React.forwardRef(InternalSelect);\nvar Select = SelectRef;\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nexport default Select;","import * as React from 'react';\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nexport default function getIcons(_ref) {\n var suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n removeIcon = _ref.removeIcon,\n loading = _ref.loading,\n multiple = _ref.multiple,\n prefixCls = _ref.prefixCls; // Clear Icon\n\n var mergedClearIcon = clearIcon;\n\n if (!clearIcon) {\n mergedClearIcon = /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n } // Arrow item icon\n\n\n var mergedSuffixIcon = null;\n\n if (suffixIcon !== undefined) {\n mergedSuffixIcon = suffixIcon;\n } else if (loading) {\n mergedSuffixIcon = /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n });\n } else {\n var iconCls = \"\".concat(prefixCls, \"-suffix\");\n\n mergedSuffixIcon = function mergedSuffixIcon(_ref2) {\n var open = _ref2.open,\n showSearch = _ref2.showSearch;\n\n if (open && showSearch) {\n return /*#__PURE__*/React.createElement(SearchOutlined, {\n className: iconCls\n });\n }\n\n return /*#__PURE__*/React.createElement(DownOutlined, {\n className: iconCls\n });\n };\n } // Checked item icon\n\n\n var mergedItemIcon = null;\n\n if (menuItemSelectedIcon !== undefined) {\n mergedItemIcon = menuItemSelectedIcon;\n } else if (multiple) {\n mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n } else {\n mergedItemIcon = null;\n }\n\n var mergedRemoveIcon = null;\n\n if (removeIcon !== undefined) {\n mergedRemoveIcon = removeIcon;\n } else {\n mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n }\n\n return {\n clearIcon: mergedClearIcon,\n suffixIcon: mergedSuffixIcon,\n itemIcon: mergedItemIcon,\n removeIcon: mergedRemoveIcon\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { placements } from \"rc-tooltip/es/placements\";\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n\n return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 5 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 8 : _config$verticalArrow,\n autoAdjustOverflow = config.autoAdjustOverflow;\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = config.arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends(_extends({}, placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport classNames from 'classnames';\nimport getPlacements from './placements';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes } from '../_util/colors';\nimport { getTransitionName } from '../_util/motion';\n\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n\n var omitted = _extends({}, obj);\n\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\n };\n};\n\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\")); // Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\n\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n var elementType = element.type;\n\n if ((elementType.__ANT_BUTTON === true || elementType.__ANT_SWITCH === true || elementType.__ANT_CHECKBOX === true || element.type === 'button') && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n\n var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : null\n });\n\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\n });\n\n var child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, \"\".concat(prefixCls, \"-disabled-compatible-wrapper\"))\n }, child);\n }\n\n return element;\n}\n\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames2;\n\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var _useMergedState = useMergedState(false, {\n value: props.visible,\n defaultValue: props.defaultVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n visible = _useMergedState2[0],\n setVisible = _useMergedState2[1];\n\n var isNoTitle = function isNoTitle() {\n var title = props.title,\n overlay = props.overlay;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n var onVisibleChange = function onVisibleChange(vis) {\n var _a;\n\n setVisible(isNoTitle() ? false : vis);\n\n if (!isNoTitle()) {\n (_a = props.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n }\n };\n\n var getTooltipPlacements = function getTooltipPlacements() {\n var builtinPlacements = props.builtinPlacements,\n arrowPointAtCenter = props.arrowPointAtCenter,\n autoAdjustOverflow = props.autoAdjustOverflow;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n }; // 动态设置动画点\n\n\n var onPopupAlign = function onPopupAlign(domNode, align) {\n var placements = getTooltipPlacements(); // 当前返回的位置\n\n var placement = Object.keys(placements).filter(function (key) {\n return placements[key].points[0] === align.points[0] && placements[key].points[1] === align.points[1];\n })[0];\n\n if (!placement) {\n return;\n } // 根据当前坐标设置动画点\n\n\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n\n if (placement.indexOf('top') >= 0 || placement.indexOf('Bottom') >= 0) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (placement.indexOf('Top') >= 0 || placement.indexOf('bottom') >= 0) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n\n if (placement.indexOf('left') >= 0 || placement.indexOf('Right') >= 0) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (placement.indexOf('right') >= 0 || placement.indexOf('Left') >= 0) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n\n var getOverlay = function getOverlay() {\n var title = props.title,\n overlay = props.overlay;\n\n if (title === 0) {\n return title;\n }\n\n return overlay || title || '';\n };\n\n var customizePrefixCls = props.prefixCls,\n openClassName = props.openClassName,\n getPopupContainer = props.getPopupContainer,\n getTooltipContainer = props.getTooltipContainer,\n overlayClassName = props.overlayClassName,\n color = props.color,\n overlayInnerStyle = props.overlayInnerStyle,\n children = props.children;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var tempVisible = visible; // Hide tooltip when there is no title\n\n if (!('visible' in props) && isNoTitle()) {\n tempVisible = false;\n }\n\n var child = getDisabledCompatibleChildren(isValidElement(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n var childProps = child.props;\n var childCls = classNames(childProps.className, _defineProperty({}, openClassName || \"\".concat(prefixCls, \"-open\"), true));\n var customOverlayClassName = classNames(overlayClassName, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-\").concat(color), color && PresetColorRegex.test(color)), _classNames2));\n var formattedOverlayInnerStyle = overlayInnerStyle;\n var arrowContentStyle;\n\n if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = _extends(_extends({}, overlayInnerStyle), {\n background: color\n });\n arrowContentStyle = {\n background: color\n };\n }\n\n return /*#__PURE__*/React.createElement(RcTooltip, _extends({}, props, {\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempVisible,\n onVisibleChange: onVisibleChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-arrow-content\"),\n style: arrowContentStyle\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n }\n }), tempVisible ? cloneElement(child, {\n className: childCls\n }) : child);\n});\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n placement: 'top',\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n arrowPointAtCenter: false,\n autoAdjustOverflow: true\n};\nexport default Tooltip;","/**\n * Array#filter.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @param {Object=} self\n * @return {Array}\n * @throw TypeError\n */\nmodule.exports = function (arr, fn, self) {\n if (arr.filter) return arr.filter(fn, self);\n if (void 0 === arr || null === arr) throw new TypeError();\n if ('function' != typeof fn) throw new TypeError();\n var ret = [];\n\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwn.call(arr, i)) continue;\n var val = arr[i];\n if (fn.call(self, val, i, arr)) ret.push(val);\n }\n\n return ret;\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","'use strict';\n\nvar filter = require('array-filter');\n\nmodule.exports = function availableTypedArrays() {\n return filter(['BigInt64Array', 'BigUint64Array', 'Float32Array', 'Float64Array', 'Int16Array', 'Int32Array', 'Int8Array', 'Uint16Array', 'Uint32Array', 'Uint8Array', 'Uint8ClampedArray'], function (typedArray) {\n return typeof global[typedArray] === 'function';\n });\n};","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*!\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar core_1 = require(\"@apollo/client/core\");\n\nvar printer_1 = require(\"graphql/language/printer\");\n\nvar signer_1 = require(\"./signer\");\n\nvar Url = require(\"url\");\n\nvar platform_1 = require(\"./platform\");\n\nvar packageInfo = require(\"../package.json\");\n\nvar SERVICE = 'appsync';\nexports.USER_AGENT_HEADER = 'x-amz-user-agent';\nexports.USER_AGENT = \"aws-amplify/\" + packageInfo.version + (platform_1.userAgent && ' ') + platform_1.userAgent;\nvar AUTH_TYPE;\n\n(function (AUTH_TYPE) {\n AUTH_TYPE[\"NONE\"] = \"NONE\";\n AUTH_TYPE[\"API_KEY\"] = \"API_KEY\";\n AUTH_TYPE[\"AWS_IAM\"] = \"AWS_IAM\";\n AUTH_TYPE[\"AMAZON_COGNITO_USER_POOLS\"] = \"AMAZON_COGNITO_USER_POOLS\";\n AUTH_TYPE[\"OPENID_CONNECT\"] = \"OPENID_CONNECT\";\n AUTH_TYPE[\"AWS_LAMBDA\"] = \"AWS_LAMBDA\";\n})(AUTH_TYPE = exports.AUTH_TYPE || (exports.AUTH_TYPE = {}));\n\nvar AuthLink =\n/** @class */\nfunction (_super) {\n __extends(AuthLink, _super);\n /**\n *\n * @param {*} options\n */\n\n\n function AuthLink(options) {\n var _this = _super.call(this) || this;\n\n _this.link = exports.authLink(options);\n return _this;\n }\n\n AuthLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n\n return AuthLink;\n}(core_1.ApolloLink);\n\nexports.AuthLink = AuthLink;\n\nvar headerBasedAuth = function headerBasedAuth(_a, operation, forward) {\n var _b = _a === void 0 ? {\n header: '',\n value: ''\n } : _a,\n header = _b.header,\n value = _b.value;\n\n return __awaiter(void 0, void 0, void 0, function () {\n var origContext, headers, headerValue, _c;\n\n var _d, _e;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n origContext = operation.getContext();\n headers = __assign(__assign({}, origContext.headers), (_d = {}, _d[exports.USER_AGENT_HEADER] = exports.USER_AGENT, _d));\n if (!(header && value)) return [3\n /*break*/\n , 5];\n if (!(typeof value === 'function')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , value.call(undefined)];\n\n case 1:\n _c = _f.sent();\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , value];\n\n case 3:\n _c = _f.sent();\n _f.label = 4;\n\n case 4:\n headerValue = _c;\n headers = __assign((_e = {}, _e[header] = headerValue, _e), headers);\n _f.label = 5;\n\n case 5:\n operation.setContext(__assign(__assign({}, origContext), {\n headers: headers\n }));\n return [2\n /*return*/\n , forward(operation)];\n }\n });\n });\n};\n\nvar iamBasedAuth = function iamBasedAuth(_a, operation, forward) {\n var credentials = _a.credentials,\n region = _a.region,\n url = _a.url;\n return __awaiter(void 0, void 0, void 0, function () {\n var service, origContext, creds, _b, accessKeyId, secretAccessKey, sessionToken, _c, host, path, formatted, headers;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n service = SERVICE;\n origContext = operation.getContext();\n creds = typeof credentials === 'function' ? credentials.call() : credentials || {};\n if (!(creds && typeof creds.getPromise === 'function')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , creds.getPromise()];\n\n case 1:\n _e.sent();\n\n _e.label = 2;\n\n case 2:\n return [4\n /*yield*/\n , creds];\n\n case 3:\n _b = _e.sent(), accessKeyId = _b.accessKeyId, secretAccessKey = _b.secretAccessKey, sessionToken = _b.sessionToken;\n _c = Url.parse(url), host = _c.host, path = _c.path;\n formatted = __assign(__assign({}, formatAsRequest(operation, {})), {\n service: service,\n region: region,\n url: url,\n host: host,\n path: path\n });\n headers = signer_1.Signer.sign(formatted, {\n access_key: accessKeyId,\n secret_key: secretAccessKey,\n session_token: sessionToken\n }).headers;\n operation.setContext(__assign(__assign({}, origContext), {\n headers: __assign(__assign(__assign({}, origContext.headers), headers), (_d = {}, _d[exports.USER_AGENT_HEADER] = exports.USER_AGENT, _d))\n }));\n return [2\n /*return*/\n , forward(operation)];\n }\n });\n });\n};\n\nexports.authLink = function (_a) {\n var url = _a.url,\n region = _a.region,\n _b = _a.auth,\n type = (_b === void 0 ? {} : _b).type,\n auth = _a.auth;\n return new core_1.ApolloLink(function (operation, forward) {\n return new core_1.Observable(function (observer) {\n var handle;\n var promise;\n\n switch (type) {\n case AUTH_TYPE.NONE:\n promise = headerBasedAuth(undefined, operation, forward);\n break;\n\n case AUTH_TYPE.AWS_IAM:\n var _a = auth.credentials,\n credentials = _a === void 0 ? {} : _a;\n promise = iamBasedAuth({\n credentials: credentials,\n region: region,\n url: url\n }, operation, forward);\n break;\n\n case AUTH_TYPE.API_KEY:\n var _b = auth.apiKey,\n apiKey = _b === void 0 ? '' : _b;\n promise = headerBasedAuth({\n header: 'X-Api-Key',\n value: apiKey\n }, operation, forward);\n break;\n\n case AUTH_TYPE.AMAZON_COGNITO_USER_POOLS:\n case AUTH_TYPE.OPENID_CONNECT:\n var _c = auth.jwtToken,\n jwtToken = _c === void 0 ? '' : _c;\n promise = headerBasedAuth({\n header: 'Authorization',\n value: jwtToken\n }, operation, forward);\n break;\n\n case AUTH_TYPE.AWS_LAMBDA:\n var _d = auth.token,\n token = _d === void 0 ? '' : _d;\n promise = headerBasedAuth({\n header: 'Authorization',\n value: token\n }, operation, forward);\n break;\n\n default:\n var error = new Error(\"Invalid AUTH_TYPE: \" + auth.type);\n throw error;\n }\n\n promise.then(function (observable) {\n handle = observable.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer)\n });\n });\n return function () {\n if (handle) handle.unsubscribe();\n };\n });\n });\n};\n\nvar formatAsRequest = function formatAsRequest(_a, options) {\n var operationName = _a.operationName,\n variables = _a.variables,\n query = _a.query;\n var body = {\n operationName: operationName,\n variables: removeTemporaryVariables(variables),\n query: printer_1.print(query)\n };\n return __assign(__assign({\n body: JSON.stringify(body),\n method: 'POST'\n }, options), {\n headers: __assign({\n accept: '*/*',\n 'content-type': 'application/json; charset=UTF-8'\n }, options.headers)\n });\n};\n/**\n * Removes all temporary variables (starting with '@@') so that the signature matches the final request.\n */\n\n\nvar removeTemporaryVariables = function removeTemporaryVariables(variables) {\n return Object.keys(variables).filter(function (key) {\n return !key.startsWith(\"@@\");\n }).reduce(function (acc, key) {\n acc[key] = variables[key];\n return acc;\n }, {});\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar auth_link_1 = require(\"./auth-link\");\n\nexports.AuthLink = auth_link_1.AuthLink;\nexports.AUTH_TYPE = auth_link_1.AUTH_TYPE;\nexports.USER_AGENT_HEADER = auth_link_1.USER_AGENT_HEADER;\nexports.USER_AGENT = auth_link_1.USER_AGENT;\n\nexports.createAuthLink = function (_a) {\n var url = _a.url,\n region = _a.region,\n auth = _a.auth;\n return new auth_link_1.AuthLink({\n url: url,\n region: region,\n auth: auth\n });\n};\n\nvar signer_1 = require(\"./signer\");\n\nexports.Signer = signer_1.Signer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar userAgent = '';\nexports.userAgent = userAgent;","\"use strict\";\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n__export(require(\"./signer\"));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\nCopyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at\n http://aws.amazon.com/apache2.0/\nor in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and limitations under the License.\n*/\n\nglobal.Buffer = global.Buffer || require('buffer').Buffer; // Required for aws sigv4 signing\n\nvar url = require('url'),\n crypto = require('aws-sdk/global').util.crypto;\n\nvar encrypt = function encrypt(key, src, encoding) {\n if (encoding === void 0) {\n encoding = '';\n }\n\n return crypto.lib.createHmac('sha256', key).update(src, 'utf8').digest(encoding);\n};\n\nvar hash = function hash(src) {\n src = src || '';\n return crypto.createHash('sha256').update(src, 'utf8').digest('hex');\n};\n/**\n* @private\n* Create canonical headers\n*\n
\nCanonicalHeaders =\n    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN\nCanonicalHeadersEntry =\n    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\\n'\n
\n*/\n\n\nvar canonical_headers = function canonical_headers(headers) {\n if (!headers || Object.keys(headers).length === 0) {\n return '';\n }\n\n return Object.keys(headers).map(function (key) {\n return {\n key: key.toLowerCase(),\n value: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : ''\n };\n }).sort(function (a, b) {\n return a.key < b.key ? -1 : 1;\n }).map(function (item) {\n return item.key + ':' + item.value;\n }).join('\\n') + '\\n';\n};\n/**\n* List of header keys included in the canonical headers.\n* @access private\n*/\n\n\nvar signed_headers = function signed_headers(headers) {\n return Object.keys(headers).map(function (key) {\n return key.toLowerCase();\n }).sort().join(';');\n};\n/**\n* @private\n* Create canonical request\n* Refer to {@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*/\n\n\nvar canonical_request = function canonical_request(request) {\n var url_info = url.parse(request.url);\n return [request.method || '/', url_info.path, url_info.query, canonical_headers(request.headers), signed_headers(request.headers), hash(request.body)].join('\\n');\n};\n\nvar parse_service_info = function parse_service_info(request) {\n var url_info = url.parse(request.url),\n host = url_info.host;\n var matched = host.match(/([^.]+)\\.(?:([^.]*)\\.)?amazonaws\\.com$/),\n parsed = (matched || []).slice(1, 3);\n\n if (parsed[1] === 'es') {\n // Elastic Search\n parsed = parsed.reverse();\n }\n\n return {\n service: request.service || parsed[0],\n region: request.region || parsed[1]\n };\n};\n\nvar credential_scope = function credential_scope(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 {@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*/\n\n\nvar string_to_sign = function string_to_sign(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 {@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*/\n\n\nvar get_signing_key = function get_signing_key(secret_key, d_str, service_info) {\n if (secret_key === void 0) {\n secret_key = '';\n }\n\n var k = 'AWS4' + secret_key,\n k_date = encrypt(k, d_str),\n k_region = encrypt(k_date, service_info.region),\n k_service = encrypt(k_region, service_info.service),\n k_signing = encrypt(k_service, 'aws4_request');\n return k_signing;\n};\n\nvar get_signature = function get_signature(signing_key, str_to_sign) {\n return encrypt(signing_key, str_to_sign, 'hex');\n};\n/**\n* @private\n* Create authorization header\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information}\n*/\n\n\nvar get_authorization_header = function get_authorization_header(algorithm, access_key, scope, signed_headers, signature) {\n if (access_key === void 0) {\n access_key = '';\n }\n\n return [algorithm + ' ' + 'Credential=' + access_key + '/' + scope, 'SignedHeaders=' + signed_headers, 'Signature=' + signature].join(', ');\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
\nrequest: {\n    method: GET | POST | PUT ...\n    url: ...,\n    headers: {\n        header1: ...\n    },\n    body: data\n}\n
\n* @param {object} access_info - AWS access credential info\n
\naccess_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
\nservice_info: {\n    service: ...,\n    region: ...\n}\n
\n*\n* @returns {object} Signed HTTP request\n*/\n\n\nvar sign = function sign(request, access_info, service_info) {\n if (service_info === void 0) {\n service_info = null;\n }\n\n request.headers = request.headers || {}; // datetime string and date string\n\n var dt = new Date(),\n dt_str = dt.toISOString().replace(/[:-]|\\.\\d{3}/g, ''),\n d_str = dt_str.substr(0, 8),\n algorithm = 'AWS4-HMAC-SHA256';\n var url_info = url.parse(request.url);\n request.headers['host'] = url_info.host;\n request.headers['x-amz-date'] = dt_str;\n\n if (access_info.session_token) {\n request.headers['X-Amz-Security-Token'] = access_info.session_token;\n } // Task 1: Create a Canonical Request\n\n\n var request_str = canonical_request(request); // Task 2: Create a String to Sign\n\n service_info = service_info || parse_service_info(request);\n var scope = credential_scope(d_str, service_info.region, service_info.service);\n var str_to_sign = string_to_sign(algorithm, request_str, dt_str, scope); // Task 3: Calculate the Signature\n\n var signing_key = get_signing_key(access_info.secret_key, d_str, service_info),\n signature = get_signature(signing_key, str_to_sign); // Task 4: Adding the Signing information to the Request\n\n var authorization_header = get_authorization_header(algorithm, access_info.access_key, scope, signed_headers(request.headers), signature);\n request.headers['Authorization'] = authorization_header;\n return request;\n};\n/**\n* AWS request signer.\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html|Signature Version 4}\n*\n* @class Signer\n*/\n\n\nvar Signer =\n/** @class */\nfunction () {\n function Signer() {}\n\n Signer.sign = sign;\n return Signer;\n}();\n\nexports.Signer = Signer;\nexports.default = Signer;","\"use strict\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar subscription_handshake_link_1 = require(\"./subscription-handshake-link\");\n\nexports.CONTROL_EVENTS_KEY = subscription_handshake_link_1.CONTROL_EVENTS_KEY;\n\nvar core_1 = require(\"@apollo/client/core\");\n\nvar http_1 = require(\"@apollo/client/link/http\");\n\nvar utilities_1 = require(\"@apollo/client/utilities\");\n\nvar non_terminating_link_1 = require(\"./non-terminating-link\");\n\nvar realtime_subscription_handshake_link_1 = require(\"./realtime-subscription-handshake-link\");\n\nfunction createSubscriptionHandshakeLink(infoOrUrl, theResultsFetcherLink) {\n var resultsFetcherLink, subscriptionLinks;\n\n if (typeof infoOrUrl === \"string\") {\n resultsFetcherLink = theResultsFetcherLink || http_1.createHttpLink({\n uri: infoOrUrl\n });\n subscriptionLinks = core_1.ApolloLink.from([new non_terminating_link_1.NonTerminatingLink(\"controlMessages\", {\n link: new core_1.ApolloLink(function (operation, _forward) {\n return new core_1.Observable(function (observer) {\n var _a;\n\n var _b = operation.variables,\n _c = subscription_handshake_link_1.CONTROL_EVENTS_KEY,\n controlEvents = _b[_c],\n variables = __rest(_b, [typeof _c === \"symbol\" ? _c : _c + \"\"]);\n\n if (typeof controlEvents !== \"undefined\") {\n operation.variables = variables;\n }\n\n observer.next((_a = {}, _a[subscription_handshake_link_1.CONTROL_EVENTS_KEY] = controlEvents, _a));\n return function () {};\n });\n })\n }), new non_terminating_link_1.NonTerminatingLink(\"subsInfo\", {\n link: resultsFetcherLink\n }), new subscription_handshake_link_1.SubscriptionHandshakeLink(\"subsInfo\")]);\n } else {\n var url = infoOrUrl.url;\n resultsFetcherLink = theResultsFetcherLink || http_1.createHttpLink({\n uri: url\n });\n subscriptionLinks = new realtime_subscription_handshake_link_1.AppSyncRealTimeSubscriptionHandshakeLink(infoOrUrl);\n }\n\n return core_1.ApolloLink.split(function (operation) {\n var query = operation.query;\n\n var _a = utilities_1.getMainDefinition(query),\n kind = _a.kind,\n graphqlOperation = _a.operation;\n\n var isSubscription = kind === \"OperationDefinition\" && graphqlOperation === \"subscription\";\n return isSubscription;\n }, subscriptionLinks, resultsFetcherLink);\n}\n\nexports.createSubscriptionHandshakeLink = createSubscriptionHandshakeLink;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar core_1 = require(\"@apollo/client/core\");\n\nvar context_1 = require(\"@apollo/client/link/context\");\n\nvar NonTerminatingLink =\n/** @class */\nfunction (_super) {\n __extends(NonTerminatingLink, _super);\n\n function NonTerminatingLink(contextKey, _a) {\n var link = _a.link;\n\n var _this = _super.call(this) || this;\n\n _this.contextKey = contextKey;\n _this.link = link;\n return _this;\n }\n\n NonTerminatingLink.prototype.request = function (operation, forward) {\n var _this = this;\n\n return context_1.setContext(function (_request, prevContext) {\n return __awaiter(_this, void 0, void 0, function () {\n var result;\n\n var _a;\n\n var _this = this;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , new Promise(function (resolve, reject) {\n _this.link.request(operation).subscribe({\n next: resolve,\n error: reject\n });\n })];\n\n case 1:\n result = _b.sent();\n return [2\n /*return*/\n , __assign(__assign({}, prevContext), (_a = {}, _a[this.contextKey] = result, _a))];\n }\n });\n });\n }).request(operation, forward);\n };\n\n return NonTerminatingLink;\n}(core_1.ApolloLink);\n\nexports.NonTerminatingLink = NonTerminatingLink;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*!\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar core_1 = require(\"@apollo/client/core\");\n\nvar utils_1 = require(\"./utils\");\n\nvar aws_appsync_auth_link_1 = require(\"aws-appsync-auth-link\");\n\nvar graphql_1 = require(\"graphql\");\n\nvar url = require(\"url\");\n\nvar uuid_1 = require(\"uuid\");\n\nvar types_1 = require(\"./types\");\n\nvar retry_1 = require(\"./utils/retry\");\n\nvar logger = utils_1.rootLogger.extend(\"subscriptions\");\nexports.CONTROL_EVENTS_KEY = \"@@controlEvents\";\nvar NON_RETRYABLE_CODES = [400, 401, 403];\nvar SERVICE = \"appsync\";\nvar 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 milliseconds to wait for GQL_CONNECTION_INIT message\n */\n\nvar CONNECTION_INIT_TIMEOUT = 15000;\n/**\n * Time in milliseconds to wait for GQL_START_ACK message\n */\n\nvar START_ACK_TIMEOUT = 15000;\n/**\n * Default Time in milliseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\n\nvar DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\n\nvar AppSyncRealTimeSubscriptionHandshakeLink =\n/** @class */\nfunction (_super) {\n __extends(AppSyncRealTimeSubscriptionHandshakeLink, _super);\n\n function AppSyncRealTimeSubscriptionHandshakeLink(_a) {\n var theUrl = _a.url,\n theRegion = _a.region,\n theAuth = _a.auth;\n\n var _this = _super.call(this) || this;\n\n _this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n _this.keepAliveTimeout = DEFAULT_KEEP_ALIVE_TIMEOUT;\n _this.subscriptionObserverMap = new Map();\n _this.promiseArray = [];\n _this.url = theUrl;\n _this.region = theRegion;\n _this.auth = theAuth;\n return _this;\n }\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype.request = function (operation) {\n var _a;\n\n var _this = this;\n\n var query = operation.query,\n variables = operation.variables;\n\n var _b = operation.getContext(),\n _c = _b.controlMessages,\n _d = exports.CONTROL_EVENTS_KEY,\n controlEvents = (_c === void 0 ? (_a = {}, _a[exports.CONTROL_EVENTS_KEY] = undefined, _a) : _c)[_d],\n headers = _b.headers;\n\n return new core_1.Observable(function (observer) {\n if (!_this.url) {\n observer.error({\n errors: [__assign({}, new graphql_1.GraphQLError(\"Subscribe only available for AWS AppSync endpoint\"))]\n });\n observer.complete();\n } else {\n var subscriptionId_1 = uuid_1.v4();\n var token = _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AMAZON_COGNITO_USER_POOLS || _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.OPENID_CONNECT ? _this.auth.jwtToken : null;\n token = _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AWS_LAMBDA ? _this.auth.token : token;\n var options = {\n appSyncGraphqlEndpoint: _this.url,\n authenticationType: _this.auth.type,\n query: graphql_1.print(query),\n region: _this.region,\n graphql_headers: function graphql_headers() {\n return headers;\n },\n variables: variables,\n apiKey: _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.API_KEY ? _this.auth.apiKey : \"\",\n credentials: _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AWS_IAM ? _this.auth.credentials : null,\n token: token\n };\n\n _this._startSubscriptionWithAWSAppSyncRealTime({\n options: options,\n observer: observer,\n subscriptionId: subscriptionId_1\n });\n\n return function () {\n return __awaiter(_this, void 0, void 0, function () {\n var subscriptionState;\n return __generator(this, function (_a) {\n // Cleanup after unsubscribing or observer.complete was called after _startSubscriptionWithAWSAppSyncRealTime\n try {\n this._verifySubscriptionAlreadyStarted(subscriptionId_1);\n\n subscriptionState = this.subscriptionObserverMap.get(subscriptionId_1).subscriptionState;\n\n if (subscriptionState === types_1.SUBSCRIPTION_STATUS.CONNECTED) {\n this._sendUnsubscriptionMessage(subscriptionId_1);\n } else {\n throw new Error(\"Subscription has failed, starting to remove subscription.\");\n }\n } catch (err) {\n this._removeSubscriptionObserver(subscriptionId_1);\n\n return [2\n /*return*/\n ];\n }\n\n return [2\n /*return*/\n ];\n });\n });\n };\n }\n }).filter(function (data) {\n var _a = data.extensions,\n _b = (_a === void 0 ? {} : _a).controlMsgType,\n controlMsgType = _b === void 0 ? undefined : _b;\n var isControlMsg = typeof controlMsgType !== \"undefined\";\n return controlEvents === true || !isControlMsg;\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._verifySubscriptionAlreadyStarted = function (subscriptionId) {\n return __awaiter(this, void 0, void 0, function () {\n var subscriptionState;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n subscriptionState = this.subscriptionObserverMap.get(subscriptionId).subscriptionState; // This in case unsubscribe is invoked before sending start subscription message\n\n if (subscriptionState === types_1.SUBSCRIPTION_STATUS.PENDING) {\n return [2\n /*return*/\n , new Promise(function (res, rej) {\n var _a = _this.subscriptionObserverMap.get(subscriptionId),\n observer = _a.observer,\n subscriptionState = _a.subscriptionState,\n variables = _a.variables,\n query = _a.query;\n\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\n /*return*/\n ];\n });\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._sendUnsubscriptionMessage = function (subscriptionId) {\n try {\n if (this.awsRealTimeSocket && this.awsRealTimeSocket.readyState === WebSocket.OPEN && this.socketStatus === types_1.SOCKET_STATUS.READY) {\n // Preparing unsubscribe message to stop receiving messages for that subscription\n var unsubscribeMessage = {\n id: subscriptionId,\n type: types_1.MESSAGE_TYPES.GQL_STOP\n };\n var stringToAWSRealTime = JSON.stringify(unsubscribeMessage);\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n\n this._removeSubscriptionObserver(subscriptionId);\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({\n err: err\n });\n }\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._removeSubscriptionObserver = function (subscriptionId) {\n this.subscriptionObserverMap.delete(subscriptionId);\n\n if (this.subscriptionObserverMap.size === 0) {\n // Socket could be sending data to unsubscribe so is required to wait until is flushed\n this._closeSocketWhenFlushed();\n }\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._closeSocketWhenFlushed = function () {\n logger(\"closing WebSocket...\");\n clearTimeout(this.keepAliveTimeoutId);\n\n if (!this.awsRealTimeSocket) {\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n return;\n }\n\n if (this.awsRealTimeSocket.bufferedAmount > 0) {\n setTimeout(this._closeSocketWhenFlushed.bind(this), 1000);\n } else {\n var tempSocket = this.awsRealTimeSocket;\n tempSocket.close(1000);\n this.awsRealTimeSocket = null;\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n }\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._startSubscriptionWithAWSAppSyncRealTime = function (_a) {\n var options = _a.options,\n observer = _a.observer,\n subscriptionId = _a.subscriptionId;\n return __awaiter(this, void 0, void 0, function () {\n var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _b, graphql_headers, credentials, token, subscriptionState, data, dataString, headerObj, _c, _d, subscriptionMessage, stringToAWSRealTime, err_1, _e, message, subscriptionFailedCallback_1, _f, subscriptionFailedCallback, subscriptionReadyCallback;\n\n var _g;\n\n var _this = this;\n\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _b = options.graphql_headers, graphql_headers = _b === void 0 ? function () {\n return {};\n } : _b, credentials = options.credentials, token = options.token;\n subscriptionState = types_1.SUBSCRIPTION_STATUS.PENDING;\n data = {\n query: query,\n variables: variables\n }; // Having a subscription id map will make it simple to forward messages received\n\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: subscriptionState,\n startAckTimeoutId: null\n });\n dataString = JSON.stringify(data);\n _c = [{}];\n return [4\n /*yield*/\n , this._awsRealTimeHeaderBasedAuth({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n payload: dataString,\n canonicalUri: \"\",\n region: region,\n credentials: credentials,\n token: token\n })];\n\n case 1:\n _d = [__assign.apply(void 0, _c.concat([_h.sent()]))];\n return [4\n /*yield*/\n , graphql_headers()];\n\n case 2:\n headerObj = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([_h.sent()])), (_g = {}, _g[aws_appsync_auth_link_1.USER_AGENT_HEADER] = aws_appsync_auth_link_1.USER_AGENT, _g)]);\n subscriptionMessage = {\n id: subscriptionId,\n payload: {\n data: dataString,\n extensions: {\n authorization: __assign({}, headerObj)\n }\n },\n type: types_1.MESSAGE_TYPES.GQL_START\n };\n stringToAWSRealTime = JSON.stringify(subscriptionMessage);\n _h.label = 3;\n\n case 3:\n _h.trys.push([3, 5,, 6]);\n\n return [4\n /*yield*/\n , this._initializeWebSocketConnection({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n region: region,\n credentials: credentials,\n token: token\n })];\n\n case 4:\n _h.sent();\n\n return [3\n /*break*/\n , 6];\n\n case 5:\n err_1 = _h.sent();\n _e = err_1.message, message = _e === void 0 ? \"\" : _e;\n observer.error({\n errors: [__assign({}, new graphql_1.GraphQLError(\"Connection failed: \" + message))]\n });\n observer.complete();\n subscriptionFailedCallback_1 = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback; // Notify concurrent unsubscription\n\n if (typeof subscriptionFailedCallback_1 === \"function\") {\n subscriptionFailedCallback_1();\n }\n\n return [2\n /*return*/\n ];\n\n case 6:\n _f = this.subscriptionObserverMap.get(subscriptionId), subscriptionFailedCallback = _f.subscriptionFailedCallback, subscriptionReadyCallback = _f.subscriptionReadyCallback; // This must be done before sending the message in order to be listening immediately\n\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n startAckTimeoutId: setTimeout(function () {\n _this._timeoutStartSubscriptionAck.call(_this, subscriptionId);\n }, START_ACK_TIMEOUT)\n });\n\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeWebSocketConnection = function (_a) {\n var _this = this;\n\n var appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint,\n authenticationType = _a.authenticationType,\n apiKey = _a.apiKey,\n region = _a.region,\n credentials = _a.credentials,\n token = _a.token;\n\n if (this.socketStatus === types_1.SOCKET_STATUS.READY) {\n return;\n }\n\n return new Promise(function (res, rej) {\n return __awaiter(_this, void 0, void 0, function () {\n var discoverableEndpoint, payloadString, headerString, _a, _b, headerQs, payloadQs, awsRealTimeUrl, err_2;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this.promiseArray.push({\n res: res,\n rej: rej\n });\n if (!(this.socketStatus === types_1.SOCKET_STATUS.CLOSED)) return [3\n /*break*/\n , 5];\n _c.label = 1;\n\n case 1:\n _c.trys.push([1, 4,, 5]);\n\n this.socketStatus = types_1.SOCKET_STATUS.CONNECTING;\n discoverableEndpoint = AppSyncRealTimeSubscriptionHandshakeLink._discoverAppSyncRealTimeEndpoint(this.url);\n payloadString = \"{}\";\n _b = (_a = JSON).stringify;\n return [4\n /*yield*/\n , this._awsRealTimeHeaderBasedAuth({\n authenticationType: authenticationType,\n payload: payloadString,\n canonicalUri: \"/connect\",\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n region: region,\n credentials: credentials,\n token: token\n })];\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 awsRealTimeUrl = discoverableEndpoint + \"?header=\" + headerQs + \"&payload=\" + payloadQs;\n return [4\n /*yield*/\n , this._initializeRetryableHandshake({\n awsRealTimeUrl: awsRealTimeUrl\n })];\n\n case 3:\n _c.sent();\n\n this.promiseArray.forEach(function (_a) {\n var res = _a.res;\n logger(\"Notifying connection successful\");\n res();\n });\n this.socketStatus = types_1.SOCKET_STATUS.READY;\n this.promiseArray = [];\n return [3\n /*break*/\n , 5];\n\n case 4:\n err_2 = _c.sent();\n this.promiseArray.forEach(function (_a) {\n var rej = _a.rej;\n return rej(err_2);\n });\n this.promiseArray = [];\n\n if (this.awsRealTimeSocket && this.awsRealTimeSocket.readyState === WebSocket.OPEN) {\n this.awsRealTimeSocket.close(3001);\n }\n\n this.awsRealTimeSocket = null;\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n return [3\n /*break*/\n , 5];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeHeaderBasedAuth = function (_a) {\n var authenticationType = _a.authenticationType,\n payload = _a.payload,\n canonicalUri = _a.canonicalUri,\n appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint,\n apiKey = _a.apiKey,\n region = _a.region,\n credentials = _a.credentials,\n token = _a.token;\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._awsRealTimeAuthorizationHeader.bind(this),\n AMAZON_COGNITO_USER_POOLS: this._awsRealTimeAuthorizationHeader.bind(this),\n AWS_LAMBDA: this._awsRealTimeAuthorizationHeader.bind(this)\n };\n handler = headerHandler[authenticationType];\n\n if (typeof handler !== \"function\") {\n logger(\"Authentication type \" + authenticationType + \" not supported\");\n return [2\n /*return*/\n , {}];\n }\n\n host = url.parse(appSyncGraphqlEndpoint).host;\n return [4\n /*yield*/\n , handler({\n payload: payload,\n canonicalUri: canonicalUri,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n apiKey: apiKey,\n region: region,\n host: host,\n credentials: credentials,\n token: token\n })];\n\n case 1:\n result = _b.sent();\n return [2\n /*return*/\n , result];\n }\n });\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeAuthorizationHeader = function (_a) {\n var host = _a.host,\n token = _a.token;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c;\n\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = {};\n if (!(typeof token === \"function\")) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , token.call(undefined)];\n\n case 1:\n _c = _d.sent();\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , token];\n\n case 3:\n _c = _d.sent();\n _d.label = 4;\n\n case 4:\n return [2\n /*return*/\n , (_b.Authorization = _c, _b.host = host, _b)];\n }\n });\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeApiKeyHeader = function (_a) {\n var apiKey = _a.apiKey,\n 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\n /*return*/\n , {\n host: host,\n \"x-amz-date\": dtStr,\n \"x-api-key\": apiKey\n }];\n });\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeIAMHeader = function (_a) {\n var payload = _a.payload,\n canonicalUri = _a.canonicalUri,\n appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint,\n region = _a.region,\n credentials = _a.credentials;\n return __awaiter(this, void 0, void 0, function () {\n var endpointInfo, creds, _b, accessKeyId, secretAccessKey, sessionToken, formattedCredentials, request, signed_params;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n endpointInfo = {\n region: region,\n service: SERVICE\n };\n creds = typeof credentials === \"function\" ? credentials.call() : credentials || {};\n if (!(creds && typeof creds.getPromise === \"function\")) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , creds.getPromise()];\n\n case 1:\n _c.sent();\n\n _c.label = 2;\n\n case 2:\n if (!creds) {\n throw new Error(\"No credentials\");\n }\n\n return [4\n /*yield*/\n , creds];\n\n case 3:\n _b = _c.sent(), accessKeyId = _b.accessKeyId, secretAccessKey = _b.secretAccessKey, sessionToken = _b.sessionToken;\n formattedCredentials = {\n access_key: accessKeyId,\n secret_key: secretAccessKey,\n session_token: sessionToken\n };\n request = {\n url: \"\" + appSyncGraphqlEndpoint + canonicalUri,\n body: payload,\n method: \"POST\",\n headers: __assign({}, APPSYNC_REALTIME_HEADERS)\n };\n signed_params = aws_appsync_auth_link_1.Signer.sign(request, formattedCredentials, endpointInfo);\n return [2\n /*return*/\n , signed_params.headers];\n }\n });\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeRetryableHandshake = function (_a) {\n var awsRealTimeUrl = _a.awsRealTimeUrl;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger(\"Initializaling retryable Handshake\");\n return [4\n /*yield*/\n , retry_1.jitteredExponentialRetry(this._initializeHandshake.bind(this), [{\n awsRealTimeUrl: awsRealTimeUrl\n }])];\n\n case 1:\n _b.sent();\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeHandshake = function (_a) {\n var awsRealTimeUrl = _a.awsRealTimeUrl;\n return __awaiter(this, void 0, void 0, function () {\n var err_3, errorType, errorCode;\n\n var _this = this;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger(\"Initializing handshake \" + awsRealTimeUrl);\n _b.label = 1;\n\n case 1:\n _b.trys.push([1, 4,, 5]);\n\n return [4\n /*yield*/\n , function () {\n return new Promise(function (res, rej) {\n var newSocket = AppSyncRealTimeSubscriptionHandshakeLink.createWebSocket(awsRealTimeUrl, \"graphql-ws\");\n\n newSocket.onerror = function () {\n logger(\"WebSocket connection error\");\n };\n\n newSocket.onclose = function () {\n rej(new Error(\"Connection handshake error\"));\n };\n\n newSocket.onopen = function () {\n _this.awsRealTimeSocket = newSocket;\n return res();\n };\n });\n }()];\n\n case 2:\n _b.sent(); // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n\n\n return [4\n /*yield*/\n , function () {\n return new Promise(function (res, rej) {\n var ackOk = false;\n\n _this.awsRealTimeSocket.onerror = function (error) {\n logger(\"WebSocket closed \" + JSON.stringify(error));\n };\n\n _this.awsRealTimeSocket.onclose = function (event) {\n logger(\"WebSocket closed \" + event.reason);\n rej(new Error(JSON.stringify(event)));\n };\n\n _this.awsRealTimeSocket.onmessage = function (message) {\n logger(\"subscription message from AWS AppSyncRealTime: \" + message.data + \" \");\n var data = JSON.parse(message.data);\n var type = data.type,\n _a = data.payload,\n _b = (_a === void 0 ? {} : _a).connectionTimeoutMs,\n connectionTimeoutMs = _b === void 0 ? DEFAULT_KEEP_ALIVE_TIMEOUT : _b;\n\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_ACK) {\n ackOk = true;\n _this.keepAliveTimeout = connectionTimeoutMs;\n _this.awsRealTimeSocket.onmessage = _this._handleIncomingSubscriptionMessage.bind(_this);\n\n _this.awsRealTimeSocket.onerror = function (err) {\n logger(err);\n\n _this._errorDisconnect(types_1.CONTROL_MSG.CONNECTION_CLOSED);\n };\n\n _this.awsRealTimeSocket.onclose = function (event) {\n logger(\"WebSocket closed \" + event.reason);\n\n _this._errorDisconnect(types_1.CONTROL_MSG.CONNECTION_CLOSED);\n };\n\n res(\"Cool, connected to AWS AppSyncRealTime\");\n return;\n }\n\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_ERROR) {\n var _c = data.payload,\n _d = (_c === void 0 ? {} : _c).errors,\n _e = (_d === void 0 ? [] : _d)[0],\n _f = _e === void 0 ? {} : _e,\n _g = _f.errorType,\n errorType = _g === void 0 ? \"\" : _g,\n _h = _f.errorCode,\n errorCode = _h === void 0 ? 0 : _h;\n\n rej({\n errorType: errorType,\n errorCode: errorCode\n });\n }\n };\n\n var gqlInit = {\n type: types_1.MESSAGE_TYPES.GQL_CONNECTION_INIT\n };\n\n _this.awsRealTimeSocket.send(JSON.stringify(gqlInit));\n\n function checkAckOk() {\n if (!ackOk) {\n rej(new Error(\"Connection timeout: ack from AWSRealTime was not received on \" + CONNECTION_INIT_TIMEOUT + \" ms\"));\n }\n }\n\n setTimeout(checkAckOk.bind(_this), 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\n return [3\n /*break*/\n , 5];\n\n case 4:\n err_3 = _b.sent();\n errorType = err_3.errorType, errorCode = err_3.errorCode;\n\n if (NON_RETRYABLE_CODES.indexOf(errorCode) >= 0) {\n throw new retry_1.NonRetryableError(errorType);\n } else if (errorType) {\n throw new Error(errorType);\n } else {\n throw err_3;\n }\n\n return [3\n /*break*/\n , 5];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._handleIncomingSubscriptionMessage = function (message) {\n logger(\"subscription message from AWS AppSync RealTime: \" + message.data);\n\n var _a = JSON.parse(message.data),\n _b = _a.id,\n id = _b === void 0 ? \"\" : _b,\n payload = _a.payload,\n type = _a.type;\n\n var _c = this.subscriptionObserverMap.get(id) || {},\n _d = _c.observer,\n observer = _d === void 0 ? null : _d,\n _e = _c.query,\n query = _e === void 0 ? \"\" : _e,\n _f = _c.variables,\n variables = _f === void 0 ? {} : _f,\n _g = _c.startAckTimeoutId,\n startAckTimeoutId = _g === void 0 ? 0 : _g,\n _h = _c.subscriptionReadyCallback,\n subscriptionReadyCallback = _h === void 0 ? null : _h,\n _j = _c.subscriptionFailedCallback,\n subscriptionFailedCallback = _j === void 0 ? null : _j;\n\n logger({\n id: id,\n observer: observer,\n query: query,\n variables: variables\n });\n\n if (type === types_1.MESSAGE_TYPES.GQL_DATA && payload && payload.data) {\n if (observer) {\n observer.next(payload);\n } else {\n logger(\"observer not found for id: \" + id);\n }\n\n return;\n }\n\n if (type === types_1.MESSAGE_TYPES.GQL_START_ACK) {\n logger(\"subscription ready for \" + JSON.stringify({\n query: query,\n variables: variables\n }));\n\n if (typeof subscriptionReadyCallback === \"function\") {\n subscriptionReadyCallback();\n }\n\n clearTimeout(startAckTimeoutId);\n\n if (observer) {\n observer.next({\n data: payload,\n extensions: {\n controlMsgType: \"CONNECTED\"\n }\n });\n } else {\n logger(\"observer not found for id: \" + id);\n }\n\n var subscriptionState = types_1.SUBSCRIPTION_STATUS.CONNECTED;\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: null,\n subscriptionState: subscriptionState,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback\n });\n return;\n }\n\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {\n clearTimeout(this.keepAliveTimeoutId);\n this.keepAliveTimeoutId = setTimeout(this._errorDisconnect.bind(this, types_1.CONTROL_MSG.TIMEOUT_DISCONNECT), this.keepAliveTimeout);\n return;\n }\n\n if (type === types_1.MESSAGE_TYPES.GQL_ERROR) {\n var subscriptionState = types_1.SUBSCRIPTION_STATUS.FAILED;\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: [__assign({}, new graphql_1.GraphQLError(\"Connection failed: \" + JSON.stringify(payload)))]\n });\n clearTimeout(startAckTimeoutId);\n observer.complete();\n\n if (typeof subscriptionFailedCallback === \"function\") {\n subscriptionFailedCallback();\n }\n }\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._errorDisconnect = function (msg) {\n logger(\"Disconnect error: \" + msg);\n this.subscriptionObserverMap.forEach(function (_a) {\n var observer = _a.observer;\n\n if (observer && !observer.closed) {\n observer.error({\n errors: [__assign({}, new graphql_1.GraphQLError(msg))]\n });\n }\n });\n this.subscriptionObserverMap.clear();\n\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.close();\n }\n\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._timeoutStartSubscriptionAck = function (subscriptionId) {\n var _a = this.subscriptionObserverMap.get(subscriptionId) || {},\n observer = _a.observer,\n query = _a.query,\n variables = _a.variables;\n\n if (!observer) {\n return;\n }\n\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: types_1.SUBSCRIPTION_STATUS.FAILED\n });\n\n if (observer && !observer.closed) {\n observer.error({\n errors: [__assign({}, new graphql_1.GraphQLError(\"Subscription timeout \" + JSON.stringify({\n query: query,\n variables: variables\n })))]\n }); // Cleanup will be automatically executed\n\n observer.complete();\n }\n\n logger(\"timeoutStartSubscription\", JSON.stringify({\n query: query,\n variables: variables\n }));\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink.createWebSocket = function (awsRealTimeUrl, protocol) {\n return new WebSocket(awsRealTimeUrl, protocol);\n };\n\n AppSyncRealTimeSubscriptionHandshakeLink._discoverAppSyncRealTimeEndpoint = function (url) {\n return url.replace(\"https://\", \"wss://\").replace('http://', 'ws://').replace(\"appsync-api\", \"appsync-realtime-api\").replace(\"gogi-beta\", \"grt-beta\");\n };\n\n return AppSyncRealTimeSubscriptionHandshakeLink;\n}(core_1.ApolloLink);\n\nexports.AppSyncRealTimeSubscriptionHandshakeLink = AppSyncRealTimeSubscriptionHandshakeLink;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar core_1 = require(\"@apollo/client/core\");\n\nvar utils_1 = require(\"./utils\");\n\nvar Paho = require(\"./vendor/paho-mqtt\");\n\nvar utilities_1 = require(\"@apollo/client/utilities\");\n\nvar logger = utils_1.rootLogger.extend('subscriptions');\nvar mqttLogger = logger.extend('mqtt');\nexports.CONTROL_EVENTS_KEY = '@@controlEvents';\n\nvar SubscriptionHandshakeLink =\n/** @class */\nfunction (_super) {\n __extends(SubscriptionHandshakeLink, _super);\n\n function SubscriptionHandshakeLink(subsInfoContextKey) {\n var _this = _super.call(this) || this;\n\n _this.topicObservers = new Map();\n _this.clientObservers = new Map();\n\n _this.onMessage = function (topic, message, selectionNames) {\n var parsedMessage = JSON.parse(message);\n\n var observers = _this.topicObservers.get(topic);\n\n var data = selectionNames.reduce(function (acc, name) {\n return acc[name] = acc[name] || null, acc;\n }, parsedMessage.data || {});\n logger('Message received', {\n data: data,\n topic: topic,\n observers: observers\n });\n observers.forEach(function (observer) {\n try {\n observer.next(__assign(__assign({}, parsedMessage), {\n data: data\n }));\n } catch (err) {\n logger(err);\n }\n });\n };\n\n _this.subsInfoContextKey = subsInfoContextKey;\n return _this;\n }\n\n SubscriptionHandshakeLink.prototype.request = function (operation) {\n var _a;\n\n var _this = this;\n\n var _b = operation.getContext(),\n _c = this.subsInfoContextKey,\n subsInfo = _b[_c],\n _d = _b.controlMessages,\n _e = exports.CONTROL_EVENTS_KEY,\n controlEvents = (_d === void 0 ? (_a = {}, _a[exports.CONTROL_EVENTS_KEY] = undefined, _a) : _d)[_e];\n\n var _f = subsInfo.extensions,\n _g = (_f === void 0 ? {\n subscription: {\n newSubscriptions: {},\n mqttConnections: []\n }\n } : _f).subscription,\n newSubscriptions = _g.newSubscriptions,\n mqttConnections = _g.mqttConnections,\n _h = subsInfo.errors,\n errors = _h === void 0 ? [] : _h;\n\n if (errors && errors.length) {\n return new core_1.Observable(function (observer) {\n observer.error(new core_1.ApolloError({\n errorMessage: 'Error during subscription handshake',\n extraInfo: {\n errors: errors\n },\n graphQLErrors: errors\n }));\n return function () {};\n });\n }\n\n var newSubscriptionTopics = Object.keys(newSubscriptions).map(function (subKey) {\n return newSubscriptions[subKey].topic;\n });\n var existingTopicsWithObserver = new Set(newSubscriptionTopics.filter(function (t) {\n return _this.topicObservers.has(t);\n }));\n var newTopics = new Set(newSubscriptionTopics.filter(function (t) {\n return !existingTopicsWithObserver.has(t);\n }));\n return new core_1.Observable(function (observer) {\n existingTopicsWithObserver.forEach(function (t) {\n _this.topicObservers.get(t).add(observer);\n\n var anObserver = Array.from(_this.topicObservers.get(t)).find(function () {\n return true;\n });\n var clientId = Array.from(_this.clientObservers).find(function (_a) {\n var observers = _a[1].observers;\n return observers.has(anObserver);\n })[0];\n\n _this.clientObservers.get(clientId).observers.add(observer);\n });\n var newTopicsConnectionInfo = mqttConnections.filter(function (c) {\n return c.topics.some(function (t) {\n return newTopics.has(t);\n });\n }).map(function (_a) {\n var topics = _a.topics,\n rest = __rest(_a, [\"topics\"]);\n\n return __assign(__assign({}, rest), {\n topics: topics.filter(function (t) {\n return newTopics.has(t);\n })\n });\n });\n\n _this.connectNewClients(newTopicsConnectionInfo, observer, operation);\n\n return function () {\n var clientsForCurrentObserver = Array.from(_this.clientObservers).filter(function (_a) {\n var observers = _a[1].observers;\n return observers.has(observer);\n });\n clientsForCurrentObserver.forEach(function (_a) {\n var clientId = _a[0];\n return _this.clientObservers.get(clientId).observers.delete(observer);\n });\n\n _this.clientObservers.forEach(function (_a) {\n var observers = _a.observers,\n client = _a.client;\n\n if (observers.size === 0) {\n if (client.isConnected()) {\n client.disconnect();\n }\n\n _this.clientObservers.delete(client.clientId);\n }\n });\n\n _this.clientObservers = new Map(Array.from(_this.clientObservers).filter(function (_a) {\n var observers = _a[1].observers;\n return observers.size > 0;\n }));\n\n _this.topicObservers.forEach(function (observers) {\n return observers.delete(observer);\n });\n\n _this.topicObservers = new Map(Array.from(_this.topicObservers).filter(function (_a) {\n var observers = _a[1];\n return observers.size > 0;\n }));\n };\n }).filter(function (data) {\n var _a = data.extensions,\n _b = (_a === void 0 ? {} : _a).controlMsgType,\n controlMsgType = _b === void 0 ? undefined : _b;\n var isControlMsg = typeof controlMsgType !== 'undefined';\n return controlEvents === true || !isControlMsg;\n });\n };\n\n SubscriptionHandshakeLink.prototype.connectNewClients = function (connectionInfo, observer, operation) {\n return __awaiter(this, void 0, void 0, function () {\n var query, selectionNames, result, data;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n query = operation.query;\n selectionNames = utilities_1.getMainDefinition(query).selectionSet.selections.map(function (_a) {\n var value = _a.name.value;\n return value;\n });\n result = Promise.all(connectionInfo.map(function (c) {\n return _this.connectNewClient(c, observer, selectionNames);\n }));\n data = selectionNames.reduce(function (acc, name) {\n return acc[name] = acc[name] || null, acc;\n }, {});\n observer.next({\n data: data,\n extensions: {\n controlMsgType: 'CONNECTED',\n controlMsgInfo: {\n connectionInfo: connectionInfo\n }\n }\n });\n return [2\n /*return*/\n , result];\n });\n });\n };\n\n ;\n\n SubscriptionHandshakeLink.prototype.connectNewClient = function (connectionInfo, observer, selectionNames) {\n return __awaiter(this, void 0, void 0, function () {\n var clientId, url, topics, client;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n clientId = connectionInfo.client, url = connectionInfo.url, topics = connectionInfo.topics;\n client = new Paho.Client(url, clientId);\n client.trace = mqttLogger.bind(null, clientId);\n\n client.onConnectionLost = function (_a) {\n var errorCode = _a.errorCode,\n args = __rest(_a, [\"errorCode\"]);\n\n if (errorCode !== 0) {\n topics.forEach(function (t) {\n if (_this.topicObservers.has(t)) {\n _this.topicObservers.get(t).forEach(function (observer) {\n return observer.error(__assign(__assign({}, args), {\n permanent: true\n }));\n });\n }\n });\n }\n\n topics.forEach(function (t) {\n return _this.topicObservers.delete(t);\n });\n };\n\n client.onMessageArrived = function (_a) {\n var destinationName = _a.destinationName,\n payloadString = _a.payloadString;\n return _this.onMessage(destinationName, payloadString, selectionNames);\n };\n\n return [4\n /*yield*/\n , new Promise(function (resolve, reject) {\n client.connect({\n useSSL: url.indexOf('wss://') === 0,\n mqttVersion: 3,\n onSuccess: function onSuccess() {\n return resolve(client);\n },\n onFailure: reject\n });\n })];\n\n case 1:\n _a.sent();\n\n return [4\n /*yield*/\n , this.subscribeToTopics(client, topics, observer)];\n\n case 2:\n _a.sent();\n\n return [2\n /*return*/\n , client];\n }\n });\n });\n };\n\n SubscriptionHandshakeLink.prototype.subscribeToTopics = function (client, topics, observer) {\n var _this = this;\n\n return Promise.all(topics.map(function (topic) {\n return _this.subscribeToTopic(client, topic, observer);\n }));\n };\n\n SubscriptionHandshakeLink.prototype.subscribeToTopic = function (client, topic, observer) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n client.subscribe(topic, {\n onSuccess: function onSuccess() {\n if (!_this.topicObservers.has(topic)) {\n _this.topicObservers.set(topic, new Set());\n }\n\n if (!_this.clientObservers.has(client.clientId)) {\n _this.clientObservers.set(client.clientId, {\n client: client,\n observers: new Set()\n });\n }\n\n _this.topicObservers.get(topic).add(observer);\n\n _this.clientObservers.get(client.clientId).observers.add(observer);\n\n resolve(topic);\n },\n onFailure: reject\n });\n });\n };\n\n return SubscriptionHandshakeLink;\n}(core_1.ApolloLink);\n\nexports.SubscriptionHandshakeLink = SubscriptionHandshakeLink;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); //#region Subscription link enums\n\nvar SUBSCRIPTION_STATUS;\n\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 = exports.SUBSCRIPTION_STATUS || (exports.SUBSCRIPTION_STATUS = {}));\n\nvar SOCKET_STATUS;\n\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 = exports.SOCKET_STATUS || (exports.SOCKET_STATUS = {}));\n\nvar MESSAGE_TYPES;\n\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\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\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\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\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\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\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\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\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\n MESSAGE_TYPES[\"GQL_ERROR\"] = \"error\"; // Server -> Client\n})(MESSAGE_TYPES = exports.MESSAGE_TYPES || (exports.MESSAGE_TYPES = {}));\n\nvar CONTROL_MSG;\n\n(function (CONTROL_MSG) {\n CONTROL_MSG[\"CONNECTION_CLOSED\"] = \"Connection closed\";\n CONTROL_MSG[\"TIMEOUT_DISCONNECT\"] = \"Timeout disconnect\";\n CONTROL_MSG[\"SUBSCRIPTION_ACK\"] = \"Subscription ack\";\n})(CONTROL_MSG = exports.CONTROL_MSG || (exports.CONTROL_MSG = {})); //#endregion","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar logger_1 = require(\"./logger\");\n\nexports.rootLogger = logger_1.default;","\"use strict\";\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar debugLogger = debug_1.default('aws-appsync');\n\nvar extend = function extend(category) {\n if (category === void 0) {\n category = '';\n }\n\n var newCategory = category ? __spreadArrays(this.namespace.split(':'), [category]).join(':') : this.namespace;\n var result = debug_1.default(newCategory);\n result.extend = extend.bind(result);\n return result;\n};\n\ndebugLogger.extend = extend.bind(debugLogger);\nexports.default = debugLogger;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar index_1 = require(\"./index\");\n\nvar logger = index_1.rootLogger.extend(\"retry\");\nvar MAX_DELAY_MS = 5000;\n/**\n * Internal use of Subscription link\n * @private\n */\n\nvar NonRetryableError =\n/** @class */\nfunction (_super) {\n __extends(NonRetryableError, _super);\n\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n\n _this.nonRetryable = true;\n return _this;\n }\n\n return NonRetryableError;\n}(Error);\n\nexports.NonRetryableError = NonRetryableError;\n\nvar isNonRetryableError = function isNonRetryableError(obj) {\n var key = \"nonRetryable\";\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Subscription link\n */\n\n\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) {\n attempt = 1;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var err_1, retryIn_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger(\"Attempt #\" + attempt + \" for this vars: \" + JSON.stringify(args));\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 8]);\n\n return [4\n /*yield*/\n , functionToRetry.apply(undefined, args)];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 8];\n\n case 3:\n err_1 = _a.sent();\n logger(\"error \" + err_1);\n\n if (isNonRetryableError(err_1)) {\n logger(\"non retryable error\");\n throw err_1;\n }\n\n retryIn_1 = delayFn(attempt, args, err_1);\n logger(\"retryIn \", retryIn_1);\n if (!(retryIn_1 !== false)) return [3\n /*break*/\n , 6];\n return [4\n /*yield*/\n , new Promise(function (res) {\n return setTimeout(res, retryIn_1);\n })];\n\n case 4:\n _a.sent();\n\n return [4\n /*yield*/\n , retry(functionToRetry, args, delayFn, attempt + 1)];\n\n case 5:\n return [2\n /*return*/\n , _a.sent()];\n\n case 6:\n throw err_1;\n\n case 7:\n return [3\n /*break*/\n , 8];\n\n case 8:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nexports.retry = retry;\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}\n/**\n * @private\n * Internal use of Subscription link\n */\n\n\nexports.jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) {\n maxDelayMs = MAX_DELAY_MS;\n }\n\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n};","/*******************************************************************************\n * Copyright (c) 2013 IBM Corp.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * and Eclipse Distribution License v1.0 which accompany this distribution.\n *\n * The Eclipse Public License is available at\n * http://www.eclipse.org/legal/epl-v10.html\n * and the Eclipse Distribution License is available at\n * http://www.eclipse.org/org/documents/edl-v10.php.\n *\n * Contributors:\n * Andrew Banks - initial API and implementation and initial documentation\n *******************************************************************************/\n// Only expose a single object name in the global namespace.\n// Everything must go through this module. Global Paho module\n// only has a single public function, client, which returns\n// a Paho client object given connection details.\n\n/**\n * Send and receive messages using web browsers.\n *

\n * This programming interface lets a JavaScript client application use the MQTT V3.1 or\n * V3.1.1 protocol to connect to an MQTT-supporting messaging server.\n *\n * The function supported includes:\n *

    \n *
  1. Connecting to and disconnecting from a server. The server is identified by its host name and port number.\n *
  2. Specifying options that relate to the communications link with the server,\n * for example the frequency of keep-alive heartbeats, and whether SSL/TLS is required.\n *
  3. Subscribing to and receiving messages from MQTT Topics.\n *
  4. Publishing messages to MQTT Topics.\n *
\n *

\n * The API consists of two main objects:\n *

\n *
{@link Paho.Client}
\n *
This contains methods that provide the functionality of the API,\n * including provision of callbacks that notify the application when a message\n * arrives from or is delivered to the messaging server,\n * or when the status of its connection to the messaging server changes.
\n *
{@link Paho.Message}
\n *
This encapsulates the payload of the message along with various attributes\n * associated with its delivery, in particular the destination to which it has\n * been (or is about to be) sent.
\n *
\n *

\n * The programming interface validates parameters passed to it, and will throw\n * an Error containing an error message intended for developer use, if it detects\n * an error with any parameter.\n *

\n * Example:\n *\n *

\nclient = new Paho.Client(location.hostname, Number(location.port), \"clientId\");\nclient.onConnectionLost = onConnectionLost;\nclient.onMessageArrived = onMessageArrived;\nclient.connect({onSuccess:onConnect});\n\nfunction onConnect() {\n  // Once a connection has been made, make a subscription and send a message.\n  console.log(\"onConnect\");\n  client.subscribe(\"/World\");\n  message = new Paho.Message(\"Hello\");\n  message.destinationName = \"/World\";\n  client.send(message);\n};\nfunction onConnectionLost(responseObject) {\n  if (responseObject.errorCode !== 0)\n\tconsole.log(\"onConnectionLost:\"+responseObject.errorMessage);\n};\nfunction onMessageArrived(message) {\n  console.log(\"onMessageArrived:\"+message.payloadString);\n  client.disconnect();\n};\n * 
\n * @namespace Paho\n */\n\n/* jshint shadow:true */\n(function ExportLibrary(root, factory) {\n if (typeof exports === \"object\" && typeof module === \"object\") {\n module.exports = factory();\n } else if (typeof define === \"function\" && define.amd) {\n define(factory);\n } else if (typeof exports === \"object\") {\n exports = factory();\n } else {\n //if (typeof root.Paho === \"undefined\"){\n //\troot.Paho = {};\n //}\n root.Paho = factory();\n }\n})(this, function LibraryFactory() {\n var PahoMQTT = function (global) {\n // Private variables below, these are only visible inside the function closure\n // which is used to define the module.\n var version = \"@VERSION@-@BUILDLEVEL@\";\n /**\n * @private\n */\n\n var localStorage = global.localStorage || function () {\n var data = {};\n return {\n setItem: function setItem(key, item) {\n data[key] = item;\n },\n getItem: function getItem(key) {\n return data[key];\n },\n removeItem: function removeItem(key) {\n delete data[key];\n }\n };\n }();\n /**\n * Unique message type identifiers, with associated\n * associated integer values.\n * @private\n */\n\n\n var MESSAGE_TYPE = {\n CONNECT: 1,\n CONNACK: 2,\n PUBLISH: 3,\n PUBACK: 4,\n PUBREC: 5,\n PUBREL: 6,\n PUBCOMP: 7,\n SUBSCRIBE: 8,\n SUBACK: 9,\n UNSUBSCRIBE: 10,\n UNSUBACK: 11,\n PINGREQ: 12,\n PINGRESP: 13,\n DISCONNECT: 14\n }; // Collection of utility methods used to simplify module code\n // and promote the DRY pattern.\n\n /**\n * Validate an object's parameter names to ensure they\n * match a list of expected variables name for this option\n * type. Used to ensure option object passed into the API don't\n * contain erroneous parameters.\n * @param {Object} obj - User options object\n * @param {Object} keys - valid keys and types that may exist in obj.\n * @throws {Error} Invalid option parameter found.\n * @private\n */\n\n var validate = function validate(obj, keys) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (keys.hasOwnProperty(key)) {\n if (typeof obj[key] !== keys[key]) throw new Error(format(ERROR.INVALID_TYPE, [typeof obj[key], key]));\n } else {\n var errorStr = \"Unknown property, \" + key + \". Valid properties are:\";\n\n for (var validKey in keys) {\n if (keys.hasOwnProperty(validKey)) errorStr = errorStr + \" \" + validKey;\n }\n\n throw new Error(errorStr);\n }\n }\n }\n };\n /**\n * Return a new function which runs the user function bound\n * to a fixed scope.\n * @param {function} User function\n * @param {object} Function scope\n * @return {function} User function bound to another scope\n * @private\n */\n\n\n var scope = function scope(f, _scope) {\n return function () {\n return f.apply(_scope, arguments);\n };\n };\n /**\n * Unique message type identifiers, with associated\n * associated integer values.\n * @private\n */\n\n\n var ERROR = {\n OK: {\n code: 0,\n text: \"AMQJSC0000I OK.\"\n },\n CONNECT_TIMEOUT: {\n code: 1,\n text: \"AMQJSC0001E Connect timed out.\"\n },\n SUBSCRIBE_TIMEOUT: {\n code: 2,\n text: \"AMQJS0002E Subscribe timed out.\"\n },\n UNSUBSCRIBE_TIMEOUT: {\n code: 3,\n text: \"AMQJS0003E Unsubscribe timed out.\"\n },\n PING_TIMEOUT: {\n code: 4,\n text: \"AMQJS0004E Ping timed out.\"\n },\n INTERNAL_ERROR: {\n code: 5,\n text: \"AMQJS0005E Internal error. Error Message: {0}, Stack trace: {1}\"\n },\n CONNACK_RETURNCODE: {\n code: 6,\n text: \"AMQJS0006E Bad Connack return code:{0} {1}.\"\n },\n SOCKET_ERROR: {\n code: 7,\n text: \"AMQJS0007E Socket error:{0}.\"\n },\n SOCKET_CLOSE: {\n code: 8,\n text: \"AMQJS0008I Socket closed.\"\n },\n MALFORMED_UTF: {\n code: 9,\n text: \"AMQJS0009E Malformed UTF data:{0} {1} {2}.\"\n },\n UNSUPPORTED: {\n code: 10,\n text: \"AMQJS0010E {0} is not supported by this browser.\"\n },\n INVALID_STATE: {\n code: 11,\n text: \"AMQJS0011E Invalid state {0}.\"\n },\n INVALID_TYPE: {\n code: 12,\n text: \"AMQJS0012E Invalid type {0} for {1}.\"\n },\n INVALID_ARGUMENT: {\n code: 13,\n text: \"AMQJS0013E Invalid argument {0} for {1}.\"\n },\n UNSUPPORTED_OPERATION: {\n code: 14,\n text: \"AMQJS0014E Unsupported operation.\"\n },\n INVALID_STORED_DATA: {\n code: 15,\n text: \"AMQJS0015E Invalid data in local storage key={0} value={1}.\"\n },\n INVALID_MQTT_MESSAGE_TYPE: {\n code: 16,\n text: \"AMQJS0016E Invalid MQTT message type {0}.\"\n },\n MALFORMED_UNICODE: {\n code: 17,\n text: \"AMQJS0017E Malformed Unicode string:{0} {1}.\"\n },\n BUFFER_FULL: {\n code: 18,\n text: \"AMQJS0018E Message buffer is full, maximum buffer size: {0}.\"\n }\n };\n /** CONNACK RC Meaning. */\n\n var CONNACK_RC = {\n 0: \"Connection Accepted\",\n 1: \"Connection Refused: unacceptable protocol version\",\n 2: \"Connection Refused: identifier rejected\",\n 3: \"Connection Refused: server unavailable\",\n 4: \"Connection Refused: bad user name or password\",\n 5: \"Connection Refused: not authorized\"\n };\n /**\n * Format an error message text.\n * @private\n * @param {error} ERROR value above.\n * @param {substitutions} [array] substituted into the text.\n * @return the text with the substitutions made.\n */\n\n var format = function format(error, substitutions) {\n var text = error.text;\n\n if (substitutions) {\n var field, start;\n\n for (var i = 0; i < substitutions.length; i++) {\n field = \"{\" + i + \"}\";\n start = text.indexOf(field);\n\n if (start > 0) {\n var part1 = text.substring(0, start);\n var part2 = text.substring(start + field.length);\n text = part1 + substitutions[i] + part2;\n }\n }\n }\n\n return text;\n }; //MQTT protocol and version 6 M Q I s d p 3\n\n\n var MqttProtoIdentifierv3 = [0x00, 0x06, 0x4d, 0x51, 0x49, 0x73, 0x64, 0x70, 0x03]; //MQTT proto/version for 311 4 M Q T T 4\n\n var MqttProtoIdentifierv4 = [0x00, 0x04, 0x4d, 0x51, 0x54, 0x54, 0x04];\n /**\n * Construct an MQTT wire protocol message.\n * @param type MQTT packet type.\n * @param options optional wire message attributes.\n *\n * Optional properties\n *\n * messageIdentifier: message ID in the range [0..65535]\n * payloadMessage:\tApplication Message - PUBLISH only\n * connectStrings:\tarray of 0 or more Strings to be put into the CONNECT payload\n * topics:\t\t\tarray of strings (SUBSCRIBE, UNSUBSCRIBE)\n * requestQoS:\t\tarray of QoS values [0..2]\n *\n * \"Flag\" properties\n * cleanSession:\ttrue if present / false if absent (CONNECT)\n * willMessage: \ttrue if present / false if absent (CONNECT)\n * isRetained:\t\ttrue if present / false if absent (CONNECT)\n * userName:\t\ttrue if present / false if absent (CONNECT)\n * password:\t\ttrue if present / false if absent (CONNECT)\n * keepAliveInterval:\tinteger [0..65535] (CONNECT)\n *\n * @private\n * @ignore\n */\n\n var WireMessage = function WireMessage(type, options) {\n this.type = type;\n\n for (var name in options) {\n if (options.hasOwnProperty(name)) {\n this[name] = options[name];\n }\n }\n };\n\n WireMessage.prototype.encode = function () {\n // Compute the first byte of the fixed header\n var first = (this.type & 0x0f) << 4;\n /*\n * Now calculate the length of the variable header + payload by adding up the lengths\n * of all the component parts\n */\n\n var remLength = 0;\n var topicStrLength = [];\n var destinationNameLength = 0;\n var willMessagePayloadBytes; // if the message contains a messageIdentifier then we need two bytes for that\n\n if (this.messageIdentifier !== undefined) remLength += 2;\n\n switch (this.type) {\n // If this a Connect then we need to include 12 bytes for its header\n case MESSAGE_TYPE.CONNECT:\n switch (this.mqttVersion) {\n case 3:\n remLength += MqttProtoIdentifierv3.length + 3;\n break;\n\n case 4:\n remLength += MqttProtoIdentifierv4.length + 3;\n break;\n }\n\n remLength += UTF8Length(this.clientId) + 2;\n\n if (this.willMessage !== undefined) {\n remLength += UTF8Length(this.willMessage.destinationName) + 2; // Will message is always a string, sent as UTF-8 characters with a preceding length.\n\n willMessagePayloadBytes = this.willMessage.payloadBytes;\n if (!(willMessagePayloadBytes instanceof Uint8Array)) willMessagePayloadBytes = new Uint8Array(payloadBytes);\n remLength += willMessagePayloadBytes.byteLength + 2;\n }\n\n if (this.userName !== undefined) remLength += UTF8Length(this.userName) + 2;\n if (this.password !== undefined) remLength += UTF8Length(this.password) + 2;\n break;\n // Subscribe, Unsubscribe can both contain topic strings\n\n case MESSAGE_TYPE.SUBSCRIBE:\n first |= 0x02; // Qos = 1;\n\n for (var i = 0; i < this.topics.length; i++) {\n topicStrLength[i] = UTF8Length(this.topics[i]);\n remLength += topicStrLength[i] + 2;\n }\n\n remLength += this.requestedQos.length; // 1 byte for each topic's Qos\n // QoS on Subscribe only\n\n break;\n\n case MESSAGE_TYPE.UNSUBSCRIBE:\n first |= 0x02; // Qos = 1;\n\n for (var i = 0; i < this.topics.length; i++) {\n topicStrLength[i] = UTF8Length(this.topics[i]);\n remLength += topicStrLength[i] + 2;\n }\n\n break;\n\n case MESSAGE_TYPE.PUBREL:\n first |= 0x02; // Qos = 1;\n\n break;\n\n case MESSAGE_TYPE.PUBLISH:\n if (this.payloadMessage.duplicate) first |= 0x08;\n first = first |= this.payloadMessage.qos << 1;\n if (this.payloadMessage.retained) first |= 0x01;\n destinationNameLength = UTF8Length(this.payloadMessage.destinationName);\n remLength += destinationNameLength + 2;\n var payloadBytes = this.payloadMessage.payloadBytes;\n remLength += payloadBytes.byteLength;\n if (payloadBytes instanceof ArrayBuffer) payloadBytes = new Uint8Array(payloadBytes);else if (!(payloadBytes instanceof Uint8Array)) payloadBytes = new Uint8Array(payloadBytes.buffer);\n break;\n\n case MESSAGE_TYPE.DISCONNECT:\n break;\n\n default:\n break;\n } // Now we can allocate a buffer for the message\n\n\n var mbi = encodeMBI(remLength); // Convert the length to MQTT MBI format\n\n var pos = mbi.length + 1; // Offset of start of variable header\n\n var buffer = new ArrayBuffer(remLength + pos);\n var byteStream = new Uint8Array(buffer); // view it as a sequence of bytes\n //Write the fixed header into the buffer\n\n byteStream[0] = first;\n byteStream.set(mbi, 1); // If this is a PUBLISH then the variable header starts with a topic\n\n if (this.type == MESSAGE_TYPE.PUBLISH) pos = writeString(this.payloadMessage.destinationName, destinationNameLength, byteStream, pos); // If this is a CONNECT then the variable header contains the protocol name/version, flags and keepalive time\n else if (this.type == MESSAGE_TYPE.CONNECT) {\n switch (this.mqttVersion) {\n case 3:\n byteStream.set(MqttProtoIdentifierv3, pos);\n pos += MqttProtoIdentifierv3.length;\n break;\n\n case 4:\n byteStream.set(MqttProtoIdentifierv4, pos);\n pos += MqttProtoIdentifierv4.length;\n break;\n }\n\n var connectFlags = 0;\n if (this.cleanSession) connectFlags = 0x02;\n\n if (this.willMessage !== undefined) {\n connectFlags |= 0x04;\n connectFlags |= this.willMessage.qos << 3;\n\n if (this.willMessage.retained) {\n connectFlags |= 0x20;\n }\n }\n\n if (this.userName !== undefined) connectFlags |= 0x80;\n if (this.password !== undefined) connectFlags |= 0x40;\n byteStream[pos++] = connectFlags;\n pos = writeUint16(this.keepAliveInterval, byteStream, pos);\n } // Output the messageIdentifier - if there is one\n\n if (this.messageIdentifier !== undefined) pos = writeUint16(this.messageIdentifier, byteStream, pos);\n\n switch (this.type) {\n case MESSAGE_TYPE.CONNECT:\n pos = writeString(this.clientId, UTF8Length(this.clientId), byteStream, pos);\n\n if (this.willMessage !== undefined) {\n pos = writeString(this.willMessage.destinationName, UTF8Length(this.willMessage.destinationName), byteStream, pos);\n pos = writeUint16(willMessagePayloadBytes.byteLength, byteStream, pos);\n byteStream.set(willMessagePayloadBytes, pos);\n pos += willMessagePayloadBytes.byteLength;\n }\n\n if (this.userName !== undefined) pos = writeString(this.userName, UTF8Length(this.userName), byteStream, pos);\n if (this.password !== undefined) pos = writeString(this.password, UTF8Length(this.password), byteStream, pos);\n break;\n\n case MESSAGE_TYPE.PUBLISH:\n // PUBLISH has a text or binary payload, if text do not add a 2 byte length field, just the UTF characters.\n byteStream.set(payloadBytes, pos);\n break;\n // \t case MESSAGE_TYPE.PUBREC:\n // \t case MESSAGE_TYPE.PUBREL:\n // \t case MESSAGE_TYPE.PUBCOMP:\n // \t \tbreak;\n\n case MESSAGE_TYPE.SUBSCRIBE:\n // SUBSCRIBE has a list of topic strings and request QoS\n for (var i = 0; i < this.topics.length; i++) {\n pos = writeString(this.topics[i], topicStrLength[i], byteStream, pos);\n byteStream[pos++] = this.requestedQos[i];\n }\n\n break;\n\n case MESSAGE_TYPE.UNSUBSCRIBE:\n // UNSUBSCRIBE has a list of topic strings\n for (var i = 0; i < this.topics.length; i++) {\n pos = writeString(this.topics[i], topicStrLength[i], byteStream, pos);\n }\n\n break;\n\n default: // Do nothing.\n\n }\n\n return buffer;\n };\n\n function decodeMessage(input, pos) {\n var startingPos = pos;\n var first = input[pos];\n var type = first >> 4;\n var messageInfo = first &= 0x0f;\n pos += 1; // Decode the remaining length (MBI format)\n\n var digit;\n var remLength = 0;\n var multiplier = 1;\n\n do {\n if (pos == input.length) {\n return [null, startingPos];\n }\n\n digit = input[pos++];\n remLength += (digit & 0x7F) * multiplier;\n multiplier *= 128;\n } while ((digit & 0x80) !== 0);\n\n var endPos = pos + remLength;\n\n if (endPos > input.length) {\n return [null, startingPos];\n }\n\n var wireMessage = new WireMessage(type);\n\n switch (type) {\n case MESSAGE_TYPE.CONNACK:\n var connectAcknowledgeFlags = input[pos++];\n if (connectAcknowledgeFlags & 0x01) wireMessage.sessionPresent = true;\n wireMessage.returnCode = input[pos++];\n break;\n\n case MESSAGE_TYPE.PUBLISH:\n var qos = messageInfo >> 1 & 0x03;\n var len = readUint16(input, pos);\n pos += 2;\n var topicName = parseUTF8(input, pos, len);\n pos += len; // If QoS 1 or 2 there will be a messageIdentifier\n\n if (qos > 0) {\n wireMessage.messageIdentifier = readUint16(input, pos);\n pos += 2;\n }\n\n var message = new PahoMQTT.Message(input.subarray(pos, endPos));\n if ((messageInfo & 0x01) == 0x01) message.retained = true;\n if ((messageInfo & 0x08) == 0x08) message.duplicate = true;\n message.qos = qos;\n message.destinationName = topicName;\n wireMessage.payloadMessage = message;\n break;\n\n case MESSAGE_TYPE.PUBACK:\n case MESSAGE_TYPE.PUBREC:\n case MESSAGE_TYPE.PUBREL:\n case MESSAGE_TYPE.PUBCOMP:\n case MESSAGE_TYPE.UNSUBACK:\n wireMessage.messageIdentifier = readUint16(input, pos);\n break;\n\n case MESSAGE_TYPE.SUBACK:\n wireMessage.messageIdentifier = readUint16(input, pos);\n pos += 2;\n wireMessage.returnCode = input.subarray(pos, endPos);\n break;\n\n default:\n break;\n }\n\n return [wireMessage, endPos];\n }\n\n function writeUint16(input, buffer, offset) {\n buffer[offset++] = input >> 8; //MSB\n\n buffer[offset++] = input % 256; //LSB\n\n return offset;\n }\n\n function writeString(input, utf8Length, buffer, offset) {\n offset = writeUint16(utf8Length, buffer, offset);\n stringToUTF8(input, buffer, offset);\n return offset + utf8Length;\n }\n\n function readUint16(buffer, offset) {\n return 256 * buffer[offset] + buffer[offset + 1];\n }\n /**\n * Encodes an MQTT Multi-Byte Integer\n * @private\n */\n\n\n function encodeMBI(number) {\n var output = new Array(1);\n var numBytes = 0;\n\n do {\n var digit = number % 128;\n number = number >> 7;\n\n if (number > 0) {\n digit |= 0x80;\n }\n\n output[numBytes++] = digit;\n } while (number > 0 && numBytes < 4);\n\n return output;\n }\n /**\n * Takes a String and calculates its length in bytes when encoded in UTF8.\n * @private\n */\n\n\n function UTF8Length(input) {\n var output = 0;\n\n for (var i = 0; i < input.length; i++) {\n var charCode = input.charCodeAt(i);\n\n if (charCode > 0x7FF) {\n // Surrogate pair means its a 4 byte character\n if (0xD800 <= charCode && charCode <= 0xDBFF) {\n i++;\n output++;\n }\n\n output += 3;\n } else if (charCode > 0x7F) output += 2;else output++;\n }\n\n return output;\n }\n /**\n * Takes a String and writes it into an array as UTF8 encoded bytes.\n * @private\n */\n\n\n function stringToUTF8(input, output, start) {\n var pos = start;\n\n for (var i = 0; i < input.length; i++) {\n var charCode = input.charCodeAt(i); // Check for a surrogate pair.\n\n if (0xD800 <= charCode && charCode <= 0xDBFF) {\n var lowCharCode = input.charCodeAt(++i);\n\n if (isNaN(lowCharCode)) {\n throw new Error(format(ERROR.MALFORMED_UNICODE, [charCode, lowCharCode]));\n }\n\n charCode = (charCode - 0xD800 << 10) + (lowCharCode - 0xDC00) + 0x10000;\n }\n\n if (charCode <= 0x7F) {\n output[pos++] = charCode;\n } else if (charCode <= 0x7FF) {\n output[pos++] = charCode >> 6 & 0x1F | 0xC0;\n output[pos++] = charCode & 0x3F | 0x80;\n } else if (charCode <= 0xFFFF) {\n output[pos++] = charCode >> 12 & 0x0F | 0xE0;\n output[pos++] = charCode >> 6 & 0x3F | 0x80;\n output[pos++] = charCode & 0x3F | 0x80;\n } else {\n output[pos++] = charCode >> 18 & 0x07 | 0xF0;\n output[pos++] = charCode >> 12 & 0x3F | 0x80;\n output[pos++] = charCode >> 6 & 0x3F | 0x80;\n output[pos++] = charCode & 0x3F | 0x80;\n }\n }\n\n return output;\n }\n\n function parseUTF8(input, offset, length) {\n var output = \"\";\n var utf16;\n var pos = offset;\n\n while (pos < offset + length) {\n var byte1 = input[pos++];\n if (byte1 < 128) utf16 = byte1;else {\n var byte2 = input[pos++] - 128;\n if (byte2 < 0) throw new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), \"\"]));\n if (byte1 < 0xE0) // 2 byte character\n utf16 = 64 * (byte1 - 0xC0) + byte2;else {\n var byte3 = input[pos++] - 128;\n if (byte3 < 0) throw new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16)]));\n if (byte1 < 0xF0) // 3 byte character\n utf16 = 4096 * (byte1 - 0xE0) + 64 * byte2 + byte3;else {\n var byte4 = input[pos++] - 128;\n if (byte4 < 0) throw new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));\n if (byte1 < 0xF8) // 4 byte character\n utf16 = 262144 * (byte1 - 0xF0) + 4096 * byte2 + 64 * byte3 + byte4;else // longer encodings are not supported\n throw new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));\n }\n }\n }\n\n if (utf16 > 0xFFFF) // 4 byte character - express as a surrogate pair\n {\n utf16 -= 0x10000;\n output += String.fromCharCode(0xD800 + (utf16 >> 10)); // lead character\n\n utf16 = 0xDC00 + (utf16 & 0x3FF); // trail character\n }\n\n output += String.fromCharCode(utf16);\n }\n\n return output;\n }\n /**\n * Repeat keepalive requests, monitor responses.\n * @ignore\n */\n\n\n var Pinger = function Pinger(client, keepAliveInterval) {\n this._client = client;\n this._keepAliveInterval = keepAliveInterval * 1000;\n this.isReset = false;\n var pingReq = new WireMessage(MESSAGE_TYPE.PINGREQ).encode();\n\n var doTimeout = function doTimeout(pinger) {\n return function () {\n return doPing.apply(pinger);\n };\n };\n /** @ignore */\n\n\n var doPing = function doPing() {\n if (!this.isReset) {\n this._client._trace(\"Pinger.doPing\", \"Timed out\");\n\n this._client._disconnected(ERROR.PING_TIMEOUT.code, format(ERROR.PING_TIMEOUT));\n } else {\n this.isReset = false;\n\n this._client._trace(\"Pinger.doPing\", \"send PINGREQ\");\n\n this._client.socket.send(pingReq);\n\n this.timeout = setTimeout(doTimeout(this), this._keepAliveInterval);\n }\n };\n\n this.reset = function () {\n this.isReset = true;\n clearTimeout(this.timeout);\n if (this._keepAliveInterval > 0) this.timeout = setTimeout(doTimeout(this), this._keepAliveInterval);\n };\n\n this.cancel = function () {\n clearTimeout(this.timeout);\n };\n };\n /**\n * Monitor request completion.\n * @ignore\n */\n\n\n var Timeout = function Timeout(client, timeoutSeconds, action, args) {\n if (!timeoutSeconds) timeoutSeconds = 30;\n\n var doTimeout = function doTimeout(action, client, args) {\n return function () {\n return action.apply(client, args);\n };\n };\n\n this.timeout = setTimeout(doTimeout(action, client, args), timeoutSeconds * 1000);\n\n this.cancel = function () {\n clearTimeout(this.timeout);\n };\n };\n /**\n * Internal implementation of the Websockets MQTT V3.1 client.\n *\n * @name Paho.ClientImpl @constructor\n * @param {String} host the DNS nameof the webSocket host.\n * @param {Number} port the port number for that host.\n * @param {String} clientId the MQ client identifier.\n */\n\n\n var ClientImpl = function ClientImpl(uri, host, port, path, clientId) {\n // Check dependencies are satisfied in this browser.\n if (!(\"WebSocket\" in global && global.WebSocket !== null)) {\n throw new Error(format(ERROR.UNSUPPORTED, [\"WebSocket\"]));\n }\n\n if (!(\"ArrayBuffer\" in global && global.ArrayBuffer !== null)) {\n throw new Error(format(ERROR.UNSUPPORTED, [\"ArrayBuffer\"]));\n }\n\n this._trace(\"Paho.Client\", uri, host, port, path, clientId);\n\n this.host = host;\n this.port = port;\n this.path = path;\n this.uri = uri;\n this.clientId = clientId;\n this._wsuri = null; // Local storagekeys are qualified with the following string.\n // The conditional inclusion of path in the key is for backward\n // compatibility to when the path was not configurable and assumed to\n // be /mqtt\n\n this._localKey = host + \":\" + port + (path != \"/mqtt\" ? \":\" + path : \"\") + \":\" + clientId + \":\"; // Create private instance-only message queue\n // Internal queue of messages to be sent, in sending order.\n\n this._msg_queue = [];\n this._buffered_msg_queue = []; // Messages we have sent and are expecting a response for, indexed by their respective message ids.\n\n this._sentMessages = {}; // Messages we have received and acknowleged and are expecting a confirm message for\n // indexed by their respective message ids.\n\n this._receivedMessages = {}; // Internal list of callbacks to be executed when messages\n // have been successfully sent over web socket, e.g. disconnect\n // when it doesn't have to wait for ACK, just message is dispatched.\n\n this._notify_msg_sent = {}; // Unique identifier for SEND messages, incrementing\n // counter as messages are sent.\n\n this._message_identifier = 1; // Used to determine the transmission sequence of stored sent messages.\n\n this._sequence = 0; // Load the local state, if any, from the saved version, only restore state relevant to this client.\n\n for (var key in localStorage) {\n if (key.indexOf(\"Sent:\" + this._localKey) === 0 || key.indexOf(\"Received:\" + this._localKey) === 0) this.restore(key);\n }\n }; // Messaging Client public instance members.\n\n\n ClientImpl.prototype.host = null;\n ClientImpl.prototype.port = null;\n ClientImpl.prototype.path = null;\n ClientImpl.prototype.uri = null;\n ClientImpl.prototype.clientId = null; // Messaging Client private instance members.\n\n ClientImpl.prototype.socket = null;\n /* true once we have received an acknowledgement to a CONNECT packet. */\n\n ClientImpl.prototype.connected = false;\n /* The largest message identifier allowed, may not be larger than 2**16 but\n * if set smaller reduces the maximum number of outbound messages allowed.\n */\n\n ClientImpl.prototype.maxMessageIdentifier = 65536;\n ClientImpl.prototype.connectOptions = null;\n ClientImpl.prototype.hostIndex = null;\n ClientImpl.prototype.onConnected = null;\n ClientImpl.prototype.onConnectionLost = null;\n ClientImpl.prototype.onMessageDelivered = null;\n ClientImpl.prototype.onMessageArrived = null;\n ClientImpl.prototype.traceFunction = null;\n ClientImpl.prototype._msg_queue = null;\n ClientImpl.prototype._buffered_msg_queue = null;\n ClientImpl.prototype._connectTimeout = null;\n /* The sendPinger monitors how long we allow before we send data to prove to the server that we are alive. */\n\n ClientImpl.prototype.sendPinger = null;\n /* The receivePinger monitors how long we allow before we require evidence that the server is alive. */\n\n ClientImpl.prototype.receivePinger = null;\n ClientImpl.prototype._reconnectInterval = 1; // Reconnect Delay, starts at 1 second\n\n ClientImpl.prototype._reconnecting = false;\n ClientImpl.prototype._reconnectTimeout = null;\n ClientImpl.prototype.disconnectedPublishing = false;\n ClientImpl.prototype.disconnectedBufferSize = 5000;\n ClientImpl.prototype.receiveBuffer = null;\n ClientImpl.prototype._traceBuffer = null;\n ClientImpl.prototype._MAX_TRACE_ENTRIES = 100;\n\n ClientImpl.prototype.connect = function (connectOptions) {\n var connectOptionsMasked = this._traceMask(connectOptions, \"password\");\n\n this._trace(\"Client.connect\", connectOptionsMasked, this.socket, this.connected);\n\n if (this.connected) throw new Error(format(ERROR.INVALID_STATE, [\"already connected\"]));\n if (this.socket) throw new Error(format(ERROR.INVALID_STATE, [\"already connected\"]));\n\n if (this._reconnecting) {\n // connect() function is called while reconnect is in progress.\n // Terminate the auto reconnect process to use new connect options.\n this._reconnectTimeout.cancel();\n\n this._reconnectTimeout = null;\n this._reconnecting = false;\n }\n\n this.connectOptions = connectOptions;\n this._reconnectInterval = 1;\n this._reconnecting = false;\n\n if (connectOptions.uris) {\n this.hostIndex = 0;\n\n this._doConnect(connectOptions.uris[0]);\n } else {\n this._doConnect(this.uri);\n }\n };\n\n ClientImpl.prototype.subscribe = function (filter, subscribeOptions) {\n this._trace(\"Client.subscribe\", filter, subscribeOptions);\n\n if (!this.connected) throw new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n var wireMessage = new WireMessage(MESSAGE_TYPE.SUBSCRIBE);\n wireMessage.topics = [filter];\n if (subscribeOptions.qos !== undefined) wireMessage.requestedQos = [subscribeOptions.qos];else wireMessage.requestedQos = [0];\n\n if (subscribeOptions.onSuccess) {\n wireMessage.onSuccess = function (grantedQos) {\n subscribeOptions.onSuccess({\n invocationContext: subscribeOptions.invocationContext,\n grantedQos: grantedQos\n });\n };\n }\n\n if (subscribeOptions.onFailure) {\n wireMessage.onFailure = function (errorCode) {\n subscribeOptions.onFailure({\n invocationContext: subscribeOptions.invocationContext,\n errorCode: errorCode,\n errorMessage: format(errorCode)\n });\n };\n }\n\n if (subscribeOptions.timeout) {\n wireMessage.timeOut = new Timeout(this, subscribeOptions.timeout, subscribeOptions.onFailure, [{\n invocationContext: subscribeOptions.invocationContext,\n errorCode: ERROR.SUBSCRIBE_TIMEOUT.code,\n errorMessage: format(ERROR.SUBSCRIBE_TIMEOUT)\n }]);\n } // All subscriptions return a SUBACK.\n\n\n this._requires_ack(wireMessage);\n\n this._schedule_message(wireMessage);\n };\n /** @ignore */\n\n\n ClientImpl.prototype.unsubscribe = function (filter, unsubscribeOptions) {\n this._trace(\"Client.unsubscribe\", filter, unsubscribeOptions);\n\n if (!this.connected) throw new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n var wireMessage = new WireMessage(MESSAGE_TYPE.UNSUBSCRIBE);\n wireMessage.topics = [filter];\n\n if (unsubscribeOptions.onSuccess) {\n wireMessage.callback = function () {\n unsubscribeOptions.onSuccess({\n invocationContext: unsubscribeOptions.invocationContext\n });\n };\n }\n\n if (unsubscribeOptions.timeout) {\n wireMessage.timeOut = new Timeout(this, unsubscribeOptions.timeout, unsubscribeOptions.onFailure, [{\n invocationContext: unsubscribeOptions.invocationContext,\n errorCode: ERROR.UNSUBSCRIBE_TIMEOUT.code,\n errorMessage: format(ERROR.UNSUBSCRIBE_TIMEOUT)\n }]);\n } // All unsubscribes return a SUBACK.\n\n\n this._requires_ack(wireMessage);\n\n this._schedule_message(wireMessage);\n };\n\n ClientImpl.prototype.send = function (message) {\n this._trace(\"Client.send\", message);\n\n var wireMessage = new WireMessage(MESSAGE_TYPE.PUBLISH);\n wireMessage.payloadMessage = message;\n\n if (this.connected) {\n // Mark qos 1 & 2 message as \"ACK required\"\n // For qos 0 message, invoke onMessageDelivered callback if there is one.\n // Then schedule the message.\n if (message.qos > 0) {\n this._requires_ack(wireMessage);\n } else if (this.onMessageDelivered) {\n this._notify_msg_sent[wireMessage] = this.onMessageDelivered(wireMessage.payloadMessage);\n }\n\n this._schedule_message(wireMessage);\n } else {\n // Currently disconnected, will not schedule this message\n // Check if reconnecting is in progress and disconnected publish is enabled.\n if (this._reconnecting && this.disconnectedPublishing) {\n // Check the limit which include the \"required ACK\" messages\n var messageCount = Object.keys(this._sentMessages).length + this._buffered_msg_queue.length;\n\n if (messageCount > this.disconnectedBufferSize) {\n throw new Error(format(ERROR.BUFFER_FULL, [this.disconnectedBufferSize]));\n } else {\n if (message.qos > 0) {\n // Mark this message as \"ACK required\"\n this._requires_ack(wireMessage);\n } else {\n wireMessage.sequence = ++this._sequence; // Add messages in fifo order to array, by adding to start\n\n this._buffered_msg_queue.unshift(wireMessage);\n }\n }\n } else {\n throw new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n }\n }\n };\n\n ClientImpl.prototype.disconnect = function () {\n this._trace(\"Client.disconnect\");\n\n if (this._reconnecting) {\n // disconnect() function is called while reconnect is in progress.\n // Terminate the auto reconnect process.\n this._reconnectTimeout.cancel();\n\n this._reconnectTimeout = null;\n this._reconnecting = false;\n }\n\n if (!this.socket) throw new Error(format(ERROR.INVALID_STATE, [\"not connecting or connected\"]));\n var wireMessage = new WireMessage(MESSAGE_TYPE.DISCONNECT); // Run the disconnected call back as soon as the message has been sent,\n // in case of a failure later on in the disconnect processing.\n // as a consequence, the _disconected call back may be run several times.\n\n this._notify_msg_sent[wireMessage] = scope(this._disconnected, this);\n\n this._schedule_message(wireMessage);\n };\n\n ClientImpl.prototype.getTraceLog = function () {\n if (this._traceBuffer !== null) {\n this._trace(\"Client.getTraceLog\", new Date());\n\n this._trace(\"Client.getTraceLog in flight messages\", this._sentMessages.length);\n\n for (var key in this._sentMessages) {\n this._trace(\"_sentMessages \", key, this._sentMessages[key]);\n }\n\n for (var key in this._receivedMessages) {\n this._trace(\"_receivedMessages \", key, this._receivedMessages[key]);\n }\n\n return this._traceBuffer;\n }\n };\n\n ClientImpl.prototype.startTrace = function () {\n if (this._traceBuffer === null) {\n this._traceBuffer = [];\n }\n\n this._trace(\"Client.startTrace\", new Date(), version);\n };\n\n ClientImpl.prototype.stopTrace = function () {\n delete this._traceBuffer;\n };\n\n ClientImpl.prototype._doConnect = function (wsurl) {\n // When the socket is open, this client will send the CONNECT WireMessage using the saved parameters.\n if (this.connectOptions.useSSL) {\n var uriParts = wsurl.split(\":\");\n uriParts[0] = \"wss\";\n wsurl = uriParts.join(\":\");\n }\n\n this._wsuri = wsurl;\n this.connected = false;\n\n if (this.connectOptions.mqttVersion < 4) {\n this.socket = new WebSocket(wsurl, [\"mqttv3.1\"]);\n } else {\n this.socket = new WebSocket(wsurl, [\"mqtt\"]);\n }\n\n this.socket.binaryType = \"arraybuffer\";\n this.socket.onopen = scope(this._on_socket_open, this);\n this.socket.onmessage = scope(this._on_socket_message, this);\n this.socket.onerror = scope(this._on_socket_error, this);\n this.socket.onclose = scope(this._on_socket_close, this);\n this.sendPinger = new Pinger(this, this.connectOptions.keepAliveInterval);\n this.receivePinger = new Pinger(this, this.connectOptions.keepAliveInterval);\n\n if (this._connectTimeout) {\n this._connectTimeout.cancel();\n\n this._connectTimeout = null;\n }\n\n this._connectTimeout = new Timeout(this, this.connectOptions.timeout, this._disconnected, [ERROR.CONNECT_TIMEOUT.code, format(ERROR.CONNECT_TIMEOUT)]);\n }; // Schedule a new message to be sent over the WebSockets\n // connection. CONNECT messages cause WebSocket connection\n // to be started. All other messages are queued internally\n // until this has happened. When WS connection starts, process\n // all outstanding messages.\n\n\n ClientImpl.prototype._schedule_message = function (message) {\n // Add messages in fifo order to array, by adding to start\n this._msg_queue.unshift(message); // Process outstanding messages in the queue if we have an open socket, and have received CONNACK.\n\n\n if (this.connected) {\n this._process_queue();\n }\n };\n\n ClientImpl.prototype.store = function (prefix, wireMessage) {\n var storedMessage = {\n type: wireMessage.type,\n messageIdentifier: wireMessage.messageIdentifier,\n version: 1\n };\n\n switch (wireMessage.type) {\n case MESSAGE_TYPE.PUBLISH:\n if (wireMessage.pubRecReceived) storedMessage.pubRecReceived = true; // Convert the payload to a hex string.\n\n storedMessage.payloadMessage = {};\n var hex = \"\";\n var messageBytes = wireMessage.payloadMessage.payloadBytes;\n\n for (var i = 0; i < messageBytes.length; i++) {\n if (messageBytes[i] <= 0xF) hex = hex + \"0\" + messageBytes[i].toString(16);else hex = hex + messageBytes[i].toString(16);\n }\n\n storedMessage.payloadMessage.payloadHex = hex;\n storedMessage.payloadMessage.qos = wireMessage.payloadMessage.qos;\n storedMessage.payloadMessage.destinationName = wireMessage.payloadMessage.destinationName;\n if (wireMessage.payloadMessage.duplicate) storedMessage.payloadMessage.duplicate = true;\n if (wireMessage.payloadMessage.retained) storedMessage.payloadMessage.retained = true; // Add a sequence number to sent messages.\n\n if (prefix.indexOf(\"Sent:\") === 0) {\n if (wireMessage.sequence === undefined) wireMessage.sequence = ++this._sequence;\n storedMessage.sequence = wireMessage.sequence;\n }\n\n break;\n\n default:\n throw Error(format(ERROR.INVALID_STORED_DATA, [prefix + this._localKey + wireMessage.messageIdentifier, storedMessage]));\n }\n\n localStorage.setItem(prefix + this._localKey + wireMessage.messageIdentifier, JSON.stringify(storedMessage));\n };\n\n ClientImpl.prototype.restore = function (key) {\n var value = localStorage.getItem(key);\n var storedMessage = JSON.parse(value);\n var wireMessage = new WireMessage(storedMessage.type, storedMessage);\n\n switch (storedMessage.type) {\n case MESSAGE_TYPE.PUBLISH:\n // Replace the payload message with a Message object.\n var hex = storedMessage.payloadMessage.payloadHex;\n var buffer = new ArrayBuffer(hex.length / 2);\n var byteStream = new Uint8Array(buffer);\n var i = 0;\n\n while (hex.length >= 2) {\n var x = parseInt(hex.substring(0, 2), 16);\n hex = hex.substring(2, hex.length);\n byteStream[i++] = x;\n }\n\n var payloadMessage = new PahoMQTT.Message(byteStream);\n payloadMessage.qos = storedMessage.payloadMessage.qos;\n payloadMessage.destinationName = storedMessage.payloadMessage.destinationName;\n if (storedMessage.payloadMessage.duplicate) payloadMessage.duplicate = true;\n if (storedMessage.payloadMessage.retained) payloadMessage.retained = true;\n wireMessage.payloadMessage = payloadMessage;\n break;\n\n default:\n throw Error(format(ERROR.INVALID_STORED_DATA, [key, value]));\n }\n\n if (key.indexOf(\"Sent:\" + this._localKey) === 0) {\n wireMessage.payloadMessage.duplicate = true;\n this._sentMessages[wireMessage.messageIdentifier] = wireMessage;\n } else if (key.indexOf(\"Received:\" + this._localKey) === 0) {\n this._receivedMessages[wireMessage.messageIdentifier] = wireMessage;\n }\n };\n\n ClientImpl.prototype._process_queue = function () {\n var message = null; // Send all queued messages down socket connection\n\n while (message = this._msg_queue.pop()) {\n this._socket_send(message); // Notify listeners that message was successfully sent\n\n\n if (this._notify_msg_sent[message]) {\n this._notify_msg_sent[message]();\n\n delete this._notify_msg_sent[message];\n }\n }\n };\n /**\n * Expect an ACK response for this message. Add message to the set of in progress\n * messages and set an unused identifier in this message.\n * @ignore\n */\n\n\n ClientImpl.prototype._requires_ack = function (wireMessage) {\n var messageCount = Object.keys(this._sentMessages).length;\n if (messageCount > this.maxMessageIdentifier) throw Error(\"Too many messages:\" + messageCount);\n\n while (this._sentMessages[this._message_identifier] !== undefined) {\n this._message_identifier++;\n }\n\n wireMessage.messageIdentifier = this._message_identifier;\n this._sentMessages[wireMessage.messageIdentifier] = wireMessage;\n\n if (wireMessage.type === MESSAGE_TYPE.PUBLISH) {\n this.store(\"Sent:\", wireMessage);\n }\n\n if (this._message_identifier === this.maxMessageIdentifier) {\n this._message_identifier = 1;\n }\n };\n /**\n * Called when the underlying websocket has been opened.\n * @ignore\n */\n\n\n ClientImpl.prototype._on_socket_open = function () {\n // Create the CONNECT message object.\n var wireMessage = new WireMessage(MESSAGE_TYPE.CONNECT, this.connectOptions);\n wireMessage.clientId = this.clientId;\n\n this._socket_send(wireMessage);\n };\n /**\n * Called when the underlying websocket has received a complete packet.\n * @ignore\n */\n\n\n ClientImpl.prototype._on_socket_message = function (event) {\n this._trace(\"Client._on_socket_message\", event.data);\n\n var messages = this._deframeMessages(event.data);\n\n for (var i = 0; i < messages.length; i += 1) {\n this._handleMessage(messages[i]);\n }\n };\n\n ClientImpl.prototype._deframeMessages = function (data) {\n var byteArray = new Uint8Array(data);\n var messages = [];\n\n if (this.receiveBuffer) {\n var newData = new Uint8Array(this.receiveBuffer.length + byteArray.length);\n newData.set(this.receiveBuffer);\n newData.set(byteArray, this.receiveBuffer.length);\n byteArray = newData;\n delete this.receiveBuffer;\n }\n\n try {\n var offset = 0;\n\n while (offset < byteArray.length) {\n var result = decodeMessage(byteArray, offset);\n var wireMessage = result[0];\n offset = result[1];\n\n if (wireMessage !== null) {\n messages.push(wireMessage);\n } else {\n break;\n }\n }\n\n if (offset < byteArray.length) {\n this.receiveBuffer = byteArray.subarray(offset);\n }\n } catch (error) {\n var errorStack = error.hasOwnProperty(\"stack\") == \"undefined\" ? error.stack.toString() : \"No Error Stack Available\";\n\n this._disconnected(ERROR.INTERNAL_ERROR.code, format(ERROR.INTERNAL_ERROR, [error.message, errorStack]));\n\n return;\n }\n\n return messages;\n };\n\n ClientImpl.prototype._handleMessage = function (wireMessage) {\n this._trace(\"Client._handleMessage\", wireMessage);\n\n try {\n switch (wireMessage.type) {\n case MESSAGE_TYPE.CONNACK:\n this._connectTimeout.cancel();\n\n if (this._reconnectTimeout) this._reconnectTimeout.cancel(); // If we have started using clean session then clear up the local state.\n\n if (this.connectOptions.cleanSession) {\n for (var key in this._sentMessages) {\n var sentMessage = this._sentMessages[key];\n localStorage.removeItem(\"Sent:\" + this._localKey + sentMessage.messageIdentifier);\n }\n\n this._sentMessages = {};\n\n for (var key in this._receivedMessages) {\n var receivedMessage = this._receivedMessages[key];\n localStorage.removeItem(\"Received:\" + this._localKey + receivedMessage.messageIdentifier);\n }\n\n this._receivedMessages = {};\n } // Client connected and ready for business.\n\n\n if (wireMessage.returnCode === 0) {\n this.connected = true; // Jump to the end of the list of uris and stop looking for a good host.\n\n if (this.connectOptions.uris) this.hostIndex = this.connectOptions.uris.length;\n } else {\n this._disconnected(ERROR.CONNACK_RETURNCODE.code, format(ERROR.CONNACK_RETURNCODE, [wireMessage.returnCode, CONNACK_RC[wireMessage.returnCode]]));\n\n break;\n } // Resend messages.\n\n\n var sequencedMessages = [];\n\n for (var msgId in this._sentMessages) {\n if (this._sentMessages.hasOwnProperty(msgId)) sequencedMessages.push(this._sentMessages[msgId]);\n } // Also schedule qos 0 buffered messages if any\n\n\n if (this._buffered_msg_queue.length > 0) {\n var msg = null;\n\n while (msg = this._buffered_msg_queue.pop()) {\n sequencedMessages.push(msg);\n if (this.onMessageDelivered) this._notify_msg_sent[msg] = this.onMessageDelivered(msg.payloadMessage);\n }\n } // Sort sentMessages into the original sent order.\n\n\n var sequencedMessages = sequencedMessages.sort(function (a, b) {\n return a.sequence - b.sequence;\n });\n\n for (var i = 0, len = sequencedMessages.length; i < len; i++) {\n var sentMessage = sequencedMessages[i];\n\n if (sentMessage.type == MESSAGE_TYPE.PUBLISH && sentMessage.pubRecReceived) {\n var pubRelMessage = new WireMessage(MESSAGE_TYPE.PUBREL, {\n messageIdentifier: sentMessage.messageIdentifier\n });\n\n this._schedule_message(pubRelMessage);\n } else {\n this._schedule_message(sentMessage);\n }\n } // Execute the connectOptions.onSuccess callback if there is one.\n // Will also now return if this connection was the result of an automatic\n // reconnect and which URI was successfully connected to.\n\n\n if (this.connectOptions.onSuccess) {\n this.connectOptions.onSuccess({\n invocationContext: this.connectOptions.invocationContext\n });\n }\n\n var reconnected = false;\n\n if (this._reconnecting) {\n reconnected = true;\n this._reconnectInterval = 1;\n this._reconnecting = false;\n } // Execute the onConnected callback if there is one.\n\n\n this._connected(reconnected, this._wsuri); // Process all queued messages now that the connection is established.\n\n\n this._process_queue();\n\n break;\n\n case MESSAGE_TYPE.PUBLISH:\n this._receivePublish(wireMessage);\n\n break;\n\n case MESSAGE_TYPE.PUBACK:\n var sentMessage = this._sentMessages[wireMessage.messageIdentifier]; // If this is a re flow of a PUBACK after we have restarted receivedMessage will not exist.\n\n if (sentMessage) {\n delete this._sentMessages[wireMessage.messageIdentifier];\n localStorage.removeItem(\"Sent:\" + this._localKey + wireMessage.messageIdentifier);\n if (this.onMessageDelivered) this.onMessageDelivered(sentMessage.payloadMessage);\n }\n\n break;\n\n case MESSAGE_TYPE.PUBREC:\n var sentMessage = this._sentMessages[wireMessage.messageIdentifier]; // If this is a re flow of a PUBREC after we have restarted receivedMessage will not exist.\n\n if (sentMessage) {\n sentMessage.pubRecReceived = true;\n var pubRelMessage = new WireMessage(MESSAGE_TYPE.PUBREL, {\n messageIdentifier: wireMessage.messageIdentifier\n });\n this.store(\"Sent:\", sentMessage);\n\n this._schedule_message(pubRelMessage);\n }\n\n break;\n\n case MESSAGE_TYPE.PUBREL:\n var receivedMessage = this._receivedMessages[wireMessage.messageIdentifier];\n localStorage.removeItem(\"Received:\" + this._localKey + wireMessage.messageIdentifier); // If this is a re flow of a PUBREL after we have restarted receivedMessage will not exist.\n\n if (receivedMessage) {\n this._receiveMessage(receivedMessage);\n\n delete this._receivedMessages[wireMessage.messageIdentifier];\n } // Always flow PubComp, we may have previously flowed PubComp but the server lost it and restarted.\n\n\n var pubCompMessage = new WireMessage(MESSAGE_TYPE.PUBCOMP, {\n messageIdentifier: wireMessage.messageIdentifier\n });\n\n this._schedule_message(pubCompMessage);\n\n break;\n\n case MESSAGE_TYPE.PUBCOMP:\n var sentMessage = this._sentMessages[wireMessage.messageIdentifier];\n delete this._sentMessages[wireMessage.messageIdentifier];\n localStorage.removeItem(\"Sent:\" + this._localKey + wireMessage.messageIdentifier);\n if (this.onMessageDelivered) this.onMessageDelivered(sentMessage.payloadMessage);\n break;\n\n case MESSAGE_TYPE.SUBACK:\n var sentMessage = this._sentMessages[wireMessage.messageIdentifier];\n\n if (sentMessage) {\n if (sentMessage.timeOut) sentMessage.timeOut.cancel(); // This will need to be fixed when we add multiple topic support\n\n if (wireMessage.returnCode[0] === 0x80) {\n if (sentMessage.onFailure) {\n sentMessage.onFailure(wireMessage.returnCode);\n }\n } else if (sentMessage.onSuccess) {\n sentMessage.onSuccess(wireMessage.returnCode);\n }\n\n delete this._sentMessages[wireMessage.messageIdentifier];\n }\n\n break;\n\n case MESSAGE_TYPE.UNSUBACK:\n var sentMessage = this._sentMessages[wireMessage.messageIdentifier];\n\n if (sentMessage) {\n if (sentMessage.timeOut) sentMessage.timeOut.cancel();\n\n if (sentMessage.callback) {\n sentMessage.callback();\n }\n\n delete this._sentMessages[wireMessage.messageIdentifier];\n }\n\n break;\n\n case MESSAGE_TYPE.PINGRESP:\n /* The sendPinger or receivePinger may have sent a ping, the receivePinger has already been reset. */\n this.sendPinger.reset();\n break;\n\n case MESSAGE_TYPE.DISCONNECT:\n // Clients do not expect to receive disconnect packets.\n this._disconnected(ERROR.INVALID_MQTT_MESSAGE_TYPE.code, format(ERROR.INVALID_MQTT_MESSAGE_TYPE, [wireMessage.type]));\n\n break;\n\n default:\n this._disconnected(ERROR.INVALID_MQTT_MESSAGE_TYPE.code, format(ERROR.INVALID_MQTT_MESSAGE_TYPE, [wireMessage.type]));\n\n }\n } catch (error) {\n var errorStack = error.hasOwnProperty(\"stack\") == \"undefined\" ? error.stack.toString() : \"No Error Stack Available\";\n\n this._disconnected(ERROR.INTERNAL_ERROR.code, format(ERROR.INTERNAL_ERROR, [error.message, errorStack]));\n\n return;\n }\n };\n /** @ignore */\n\n\n ClientImpl.prototype._on_socket_error = function (error) {\n if (!this._reconnecting) {\n this._disconnected(ERROR.SOCKET_ERROR.code, format(ERROR.SOCKET_ERROR, [error.data]));\n }\n };\n /** @ignore */\n\n\n ClientImpl.prototype._on_socket_close = function () {\n if (!this._reconnecting) {\n this._disconnected(ERROR.SOCKET_CLOSE.code, format(ERROR.SOCKET_CLOSE));\n }\n };\n /** @ignore */\n\n\n ClientImpl.prototype._socket_send = function (wireMessage) {\n if (wireMessage.type == 1) {\n var wireMessageMasked = this._traceMask(wireMessage, \"password\");\n\n this._trace(\"Client._socket_send\", wireMessageMasked);\n } else this._trace(\"Client._socket_send\", wireMessage);\n\n this.socket.send(wireMessage.encode());\n /* We have proved to the server we are alive. */\n\n this.sendPinger.reset();\n };\n /** @ignore */\n\n\n ClientImpl.prototype._receivePublish = function (wireMessage) {\n switch (wireMessage.payloadMessage.qos) {\n case \"undefined\":\n case 0:\n this._receiveMessage(wireMessage);\n\n break;\n\n case 1:\n var pubAckMessage = new WireMessage(MESSAGE_TYPE.PUBACK, {\n messageIdentifier: wireMessage.messageIdentifier\n });\n\n this._schedule_message(pubAckMessage);\n\n this._receiveMessage(wireMessage);\n\n break;\n\n case 2:\n this._receivedMessages[wireMessage.messageIdentifier] = wireMessage;\n this.store(\"Received:\", wireMessage);\n var pubRecMessage = new WireMessage(MESSAGE_TYPE.PUBREC, {\n messageIdentifier: wireMessage.messageIdentifier\n });\n\n this._schedule_message(pubRecMessage);\n\n break;\n\n default:\n throw Error(\"Invaild qos=\" + wireMessage.payloadMessage.qos);\n }\n };\n /** @ignore */\n\n\n ClientImpl.prototype._receiveMessage = function (wireMessage) {\n if (this.onMessageArrived) {\n this.onMessageArrived(wireMessage.payloadMessage);\n }\n };\n /**\n * Client has connected.\n * @param {reconnect} [boolean] indicate if this was a result of reconnect operation.\n * @param {uri} [string] fully qualified WebSocket URI of the server.\n */\n\n\n ClientImpl.prototype._connected = function (reconnect, uri) {\n // Execute the onConnected callback if there is one.\n if (this.onConnected) this.onConnected(reconnect, uri);\n };\n /**\n * Attempts to reconnect the client to the server.\n * For each reconnect attempt, will double the reconnect interval\n * up to 128 seconds.\n */\n\n\n ClientImpl.prototype._reconnect = function () {\n this._trace(\"Client._reconnect\");\n\n if (!this.connected) {\n this._reconnecting = true;\n this.sendPinger.cancel();\n this.receivePinger.cancel();\n if (this._reconnectInterval < 128) this._reconnectInterval = this._reconnectInterval * 2;\n\n if (this.connectOptions.uris) {\n this.hostIndex = 0;\n\n this._doConnect(this.connectOptions.uris[0]);\n } else {\n this._doConnect(this.uri);\n }\n }\n };\n /**\n * Client has disconnected either at its own request or because the server\n * or network disconnected it. Remove all non-durable state.\n * @param {errorCode} [number] the error number.\n * @param {errorText} [string] the error text.\n * @ignore\n */\n\n\n ClientImpl.prototype._disconnected = function (errorCode, errorText) {\n this._trace(\"Client._disconnected\", errorCode, errorText);\n\n if (errorCode !== undefined && this._reconnecting) {\n //Continue automatic reconnect process\n this._reconnectTimeout = new Timeout(this, this._reconnectInterval, this._reconnect);\n return;\n }\n\n this.sendPinger.cancel();\n this.receivePinger.cancel();\n\n if (this._connectTimeout) {\n this._connectTimeout.cancel();\n\n this._connectTimeout = null;\n } // Clear message buffers.\n\n\n this._msg_queue = [];\n this._buffered_msg_queue = [];\n this._notify_msg_sent = {};\n\n if (this.socket) {\n // Cancel all socket callbacks so that they cannot be driven again by this socket.\n this.socket.onopen = null;\n this.socket.onmessage = null;\n this.socket.onerror = null;\n this.socket.onclose = null;\n if (this.socket.readyState === 1) this.socket.close();\n delete this.socket;\n }\n\n if (this.connectOptions.uris && this.hostIndex < this.connectOptions.uris.length - 1) {\n // Try the next host.\n this.hostIndex++;\n\n this._doConnect(this.connectOptions.uris[this.hostIndex]);\n } else {\n if (errorCode === undefined) {\n errorCode = ERROR.OK.code;\n errorText = format(ERROR.OK);\n } // Run any application callbacks last as they may attempt to reconnect and hence create a new socket.\n\n\n if (this.connected) {\n this.connected = false; // Execute the connectionLostCallback if there is one, and we were connected.\n\n if (this.onConnectionLost) {\n this.onConnectionLost({\n errorCode: errorCode,\n errorMessage: errorText,\n reconnect: this.connectOptions.reconnect,\n uri: this._wsuri\n });\n }\n\n if (errorCode !== ERROR.OK.code && this.connectOptions.reconnect) {\n // Start automatic reconnect process for the very first time since last successful connect.\n this._reconnectInterval = 1;\n\n this._reconnect();\n\n return;\n }\n } else {\n // Otherwise we never had a connection, so indicate that the connect has failed.\n if (this.connectOptions.mqttVersion === 4 && this.connectOptions.mqttVersionExplicit === false) {\n this._trace(\"Failed to connect V4, dropping back to V3\");\n\n this.connectOptions.mqttVersion = 3;\n\n if (this.connectOptions.uris) {\n this.hostIndex = 0;\n\n this._doConnect(this.connectOptions.uris[0]);\n } else {\n this._doConnect(this.uri);\n }\n } else if (this.connectOptions.onFailure) {\n this.connectOptions.onFailure({\n invocationContext: this.connectOptions.invocationContext,\n errorCode: errorCode,\n errorMessage: errorText\n });\n }\n }\n }\n };\n /** @ignore */\n\n\n ClientImpl.prototype._trace = function () {\n // Pass trace message back to client's callback function\n if (this.traceFunction) {\n var args = Array.prototype.slice.call(arguments);\n\n for (var i in args) {\n if (typeof args[i] !== \"undefined\") args.splice(i, 1, JSON.stringify(args[i]));\n }\n\n var record = args.join(\"\");\n this.traceFunction({\n severity: \"Debug\",\n message: record\n });\n } //buffer style trace\n\n\n if (this._traceBuffer !== null) {\n for (var i = 0, max = arguments.length; i < max; i++) {\n if (this._traceBuffer.length == this._MAX_TRACE_ENTRIES) {\n this._traceBuffer.shift();\n }\n\n if (i === 0) this._traceBuffer.push(arguments[i]);else if (typeof arguments[i] === \"undefined\") this._traceBuffer.push(arguments[i]);else this._traceBuffer.push(\" \" + JSON.stringify(arguments[i]));\n }\n }\n };\n /** @ignore */\n\n\n ClientImpl.prototype._traceMask = function (traceObject, masked) {\n var traceObjectMasked = {};\n\n for (var attr in traceObject) {\n if (traceObject.hasOwnProperty(attr)) {\n if (attr == masked) traceObjectMasked[attr] = \"******\";else traceObjectMasked[attr] = traceObject[attr];\n }\n }\n\n return traceObjectMasked;\n }; // ------------------------------------------------------------------------\n // Public Programming interface.\n // ------------------------------------------------------------------------\n\n /**\n * The JavaScript application communicates to the server using a {@link Paho.Client} object.\n *

\n * Most applications will create just one Client object and then call its connect() method,\n * however applications can create more than one Client object if they wish.\n * In this case the combination of host, port and clientId attributes must be different for each Client object.\n *

\n * The send, subscribe and unsubscribe methods are implemented as asynchronous JavaScript methods\n * (even though the underlying protocol exchange might be synchronous in nature).\n * This means they signal their completion by calling back to the application,\n * via Success or Failure callback functions provided by the application on the method in question.\n * Such callbacks are called at most once per method invocation and do not persist beyond the lifetime\n * of the script that made the invocation.\n *

\n * In contrast there are some callback functions, most notably onMessageArrived,\n * that are defined on the {@link Paho.Client} object.\n * These may get called multiple times, and aren't directly related to specific method invocations made by the client.\n *\n * @name Paho.Client\n *\n * @constructor\n *\n * @param {string} host - the address of the messaging server, as a fully qualified WebSocket URI, as a DNS name or dotted decimal IP address.\n * @param {number} port - the port number to connect to - only required if host is not a URI\n * @param {string} path - the path on the host to connect to - only used if host is not a URI. Default: '/mqtt'.\n * @param {string} clientId - the Messaging client identifier, between 1 and 23 characters in length.\n *\n * @property {string} host - read only the server's DNS hostname or dotted decimal IP address.\n * @property {number} port - read only the server's port.\n * @property {string} path - read only the server's path.\n * @property {string} clientId - read only used when connecting to the server.\n * @property {function} onConnectionLost - called when a connection has been lost.\n * after a connect() method has succeeded.\n * Establish the call back used when a connection has been lost. The connection may be\n * lost because the client initiates a disconnect or because the server or network\n * cause the client to be disconnected. The disconnect call back may be called without\n * the connectionComplete call back being invoked if, for example the client fails to\n * connect.\n * A single response object parameter is passed to the onConnectionLost callback containing the following fields:\n *

    \n *
  1. errorCode\n *
  2. errorMessage\n *
\n * @property {function} onMessageDelivered - called when a message has been delivered.\n * All processing that this Client will ever do has been completed. So, for example,\n * in the case of a Qos=2 message sent by this client, the PubComp flow has been received from the server\n * and the message has been removed from persistent storage before this callback is invoked.\n * Parameters passed to the onMessageDelivered callback are:\n *
    \n *
  1. {@link Paho.Message} that was delivered.\n *
\n * @property {function} onMessageArrived - called when a message has arrived in this Paho.client.\n * Parameters passed to the onMessageArrived callback are:\n *
    \n *
  1. {@link Paho.Message} that has arrived.\n *
\n * @property {function} onConnected - called when a connection is successfully made to the server.\n * after a connect() method.\n * Parameters passed to the onConnected callback are:\n *
    \n *
  1. reconnect (boolean) - If true, the connection was the result of a reconnect.
  2. \n *
  3. URI (string) - The URI used to connect to the server.
  4. \n *
\n * @property {boolean} disconnectedPublishing - if set, will enable disconnected publishing in\n * in the event that the connection to the server is lost.\n * @property {number} disconnectedBufferSize - Used to set the maximum number of messages that the disconnected\n * buffer will hold before rejecting new messages. Default size: 5000 messages\n * @property {function} trace - called whenever trace is called. TODO\n */\n\n\n var Client = function Client(host, port, path, clientId) {\n var uri;\n if (typeof host !== \"string\") throw new Error(format(ERROR.INVALID_TYPE, [typeof host, \"host\"]));\n\n if (arguments.length == 2) {\n // host: must be full ws:// uri\n // port: clientId\n clientId = port;\n uri = host;\n var match = uri.match(/^(wss?):\\/\\/((\\[(.+)\\])|([^\\/]+?))(:(\\d+))?(\\/.*)$/);\n\n if (match) {\n host = match[4] || match[2];\n port = parseInt(match[7]);\n path = match[8];\n } else {\n throw new Error(format(ERROR.INVALID_ARGUMENT, [host, \"host\"]));\n }\n } else {\n if (arguments.length == 3) {\n clientId = path;\n path = \"/mqtt\";\n }\n\n if (typeof port !== \"number\" || port < 0) throw new Error(format(ERROR.INVALID_TYPE, [typeof port, \"port\"]));\n if (typeof path !== \"string\") throw new Error(format(ERROR.INVALID_TYPE, [typeof path, \"path\"]));\n var ipv6AddSBracket = host.indexOf(\":\") !== -1 && host.slice(0, 1) !== \"[\" && host.slice(-1) !== \"]\";\n uri = \"ws://\" + (ipv6AddSBracket ? \"[\" + host + \"]\" : host) + \":\" + port + path;\n }\n\n var clientIdLength = 0;\n\n for (var i = 0; i < clientId.length; i++) {\n var charCode = clientId.charCodeAt(i);\n\n if (0xD800 <= charCode && charCode <= 0xDBFF) {\n i++; // Surrogate pair.\n }\n\n clientIdLength++;\n }\n\n if (typeof clientId !== \"string\" || clientIdLength > 65535) throw new Error(format(ERROR.INVALID_ARGUMENT, [clientId, \"clientId\"]));\n var client = new ClientImpl(uri, host, port, path, clientId); //Public Properties\n\n Object.defineProperties(this, {\n \"host\": {\n get: function get() {\n return host;\n },\n set: function set() {\n throw new Error(format(ERROR.UNSUPPORTED_OPERATION));\n }\n },\n \"port\": {\n get: function get() {\n return port;\n },\n set: function set() {\n throw new Error(format(ERROR.UNSUPPORTED_OPERATION));\n }\n },\n \"path\": {\n get: function get() {\n return path;\n },\n set: function set() {\n throw new Error(format(ERROR.UNSUPPORTED_OPERATION));\n }\n },\n \"uri\": {\n get: function get() {\n return uri;\n },\n set: function set() {\n throw new Error(format(ERROR.UNSUPPORTED_OPERATION));\n }\n },\n \"clientId\": {\n get: function get() {\n return client.clientId;\n },\n set: function set() {\n throw new Error(format(ERROR.UNSUPPORTED_OPERATION));\n }\n },\n \"onConnected\": {\n get: function get() {\n return client.onConnected;\n },\n set: function set(newOnConnected) {\n if (typeof newOnConnected === \"function\") client.onConnected = newOnConnected;else throw new Error(format(ERROR.INVALID_TYPE, [typeof newOnConnected, \"onConnected\"]));\n }\n },\n \"disconnectedPublishing\": {\n get: function get() {\n return client.disconnectedPublishing;\n },\n set: function set(newDisconnectedPublishing) {\n client.disconnectedPublishing = newDisconnectedPublishing;\n }\n },\n \"disconnectedBufferSize\": {\n get: function get() {\n return client.disconnectedBufferSize;\n },\n set: function set(newDisconnectedBufferSize) {\n client.disconnectedBufferSize = newDisconnectedBufferSize;\n }\n },\n \"onConnectionLost\": {\n get: function get() {\n return client.onConnectionLost;\n },\n set: function set(newOnConnectionLost) {\n if (typeof newOnConnectionLost === \"function\") client.onConnectionLost = newOnConnectionLost;else throw new Error(format(ERROR.INVALID_TYPE, [typeof newOnConnectionLost, \"onConnectionLost\"]));\n }\n },\n \"onMessageDelivered\": {\n get: function get() {\n return client.onMessageDelivered;\n },\n set: function set(newOnMessageDelivered) {\n if (typeof newOnMessageDelivered === \"function\") client.onMessageDelivered = newOnMessageDelivered;else throw new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageDelivered, \"onMessageDelivered\"]));\n }\n },\n \"onMessageArrived\": {\n get: function get() {\n return client.onMessageArrived;\n },\n set: function set(newOnMessageArrived) {\n if (typeof newOnMessageArrived === \"function\") client.onMessageArrived = newOnMessageArrived;else throw new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageArrived, \"onMessageArrived\"]));\n }\n },\n \"trace\": {\n get: function get() {\n return client.traceFunction;\n },\n set: function set(trace) {\n if (typeof trace === \"function\") {\n client.traceFunction = trace;\n } else {\n throw new Error(format(ERROR.INVALID_TYPE, [typeof trace, \"onTrace\"]));\n }\n }\n }\n });\n /**\n * Connect this Messaging client to its server.\n *\n * @name Paho.Client#connect\n * @function\n * @param {object} connectOptions - Attributes used with the connection.\n * @param {number} connectOptions.timeout - If the connect has not succeeded within this\n * number of seconds, it is deemed to have failed.\n * The default is 30 seconds.\n * @param {string} connectOptions.userName - Authentication username for this connection.\n * @param {string} connectOptions.password - Authentication password for this connection.\n * @param {Paho.Message} connectOptions.willMessage - sent by the server when the client\n * disconnects abnormally.\n * @param {number} connectOptions.keepAliveInterval - the server disconnects this client if\n * there is no activity for this number of seconds.\n * The default value of 60 seconds is assumed if not set.\n * @param {boolean} connectOptions.cleanSession - if true(default) the client and server\n * persistent state is deleted on successful connect.\n * @param {boolean} connectOptions.useSSL - if present and true, use an SSL Websocket connection.\n * @param {object} connectOptions.invocationContext - passed to the onSuccess callback or onFailure callback.\n * @param {function} connectOptions.onSuccess - called when the connect acknowledgement\n * has been received from the server.\n * A single response object parameter is passed to the onSuccess callback containing the following fields:\n *
    \n *
  1. invocationContext as passed in to the onSuccess method in the connectOptions.\n *
\n * @param {function} connectOptions.onFailure - called when the connect request has failed or timed out.\n * A single response object parameter is passed to the onFailure callback containing the following fields:\n *
    \n *
  1. invocationContext as passed in to the onFailure method in the connectOptions.\n *
  2. errorCode a number indicating the nature of the error.\n *
  3. errorMessage text describing the error.\n *
\n * @param {array} connectOptions.hosts - If present this contains either a set of hostnames or fully qualified\n * WebSocket URIs (ws://iot.eclipse.org:80/ws), that are tried in order in place\n * of the host and port paramater on the construtor. The hosts are tried one at at time in order until\n * one of then succeeds.\n * @param {array} connectOptions.ports - If present the set of ports matching the hosts. If hosts contains URIs, this property\n * is not used.\n * @param {boolean} connectOptions.reconnect - Sets whether the client will automatically attempt to reconnect\n * to the server if the connection is lost.\n *
    \n *
  • If set to false, the client will not attempt to automatically reconnect to the server in the event that the\n * connection is lost.
  • \n *
  • If set to true, in the event that the connection is lost, the client will attempt to reconnect to the server.\n * It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay\n * will double until it is at 2 minutes at which point the delay will stay at 2 minutes.
  • \n *
\n * @param {number} connectOptions.mqttVersion - The version of MQTT to use to connect to the MQTT Broker.\n *
    \n *
  • 3 - MQTT V3.1
  • \n *
  • 4 - MQTT V3.1.1
  • \n *
\n * @param {boolean} connectOptions.mqttVersionExplicit - If set to true, will force the connection to use the\n * selected MQTT Version or will fail to connect.\n * @param {array} connectOptions.uris - If present, should contain a list of fully qualified WebSocket uris\n * (e.g. ws://iot.eclipse.org:80/ws), that are tried in order in place of the host and port parameter of the construtor.\n * The uris are tried one at a time in order until one of them succeeds. Do not use this in conjunction with hosts as\n * the hosts array will be converted to uris and will overwrite this property.\n * @throws {InvalidState} If the client is not in disconnected state. The client must have received connectionLost\n * or disconnected before calling connect for a second or subsequent time.\n */\n\n this.connect = function (connectOptions) {\n connectOptions = connectOptions || {};\n validate(connectOptions, {\n timeout: \"number\",\n userName: \"string\",\n password: \"string\",\n willMessage: \"object\",\n keepAliveInterval: \"number\",\n cleanSession: \"boolean\",\n useSSL: \"boolean\",\n invocationContext: \"object\",\n onSuccess: \"function\",\n onFailure: \"function\",\n hosts: \"object\",\n ports: \"object\",\n reconnect: \"boolean\",\n mqttVersion: \"number\",\n mqttVersionExplicit: \"boolean\",\n uris: \"object\"\n }); // If no keep alive interval is set, assume 60 seconds.\n\n if (connectOptions.keepAliveInterval === undefined) connectOptions.keepAliveInterval = 60;\n\n if (connectOptions.mqttVersion > 4 || connectOptions.mqttVersion < 3) {\n throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.mqttVersion, \"connectOptions.mqttVersion\"]));\n }\n\n if (connectOptions.mqttVersion === undefined) {\n connectOptions.mqttVersionExplicit = false;\n connectOptions.mqttVersion = 4;\n } else {\n connectOptions.mqttVersionExplicit = true;\n } //Check that if password is set, so is username\n\n\n if (connectOptions.password !== undefined && connectOptions.userName === undefined) throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.password, \"connectOptions.password\"]));\n\n if (connectOptions.willMessage) {\n if (!(connectOptions.willMessage instanceof Message)) throw new Error(format(ERROR.INVALID_TYPE, [connectOptions.willMessage, \"connectOptions.willMessage\"])); // The will message must have a payload that can be represented as a string.\n // Cause the willMessage to throw an exception if this is not the case.\n\n connectOptions.willMessage.stringPayload = null;\n if (typeof connectOptions.willMessage.destinationName === \"undefined\") throw new Error(format(ERROR.INVALID_TYPE, [typeof connectOptions.willMessage.destinationName, \"connectOptions.willMessage.destinationName\"]));\n }\n\n if (typeof connectOptions.cleanSession === \"undefined\") connectOptions.cleanSession = true;\n\n if (connectOptions.hosts) {\n if (!(connectOptions.hosts instanceof Array)) throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, \"connectOptions.hosts\"]));\n if (connectOptions.hosts.length < 1) throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, \"connectOptions.hosts\"]));\n var usingURIs = false;\n\n for (var i = 0; i < connectOptions.hosts.length; i++) {\n if (typeof connectOptions.hosts[i] !== \"string\") throw new Error(format(ERROR.INVALID_TYPE, [typeof connectOptions.hosts[i], \"connectOptions.hosts[\" + i + \"]\"]));\n\n if (/^(wss?):\\/\\/((\\[(.+)\\])|([^\\/]+?))(:(\\d+))?(\\/.*)$/.test(connectOptions.hosts[i])) {\n if (i === 0) {\n usingURIs = true;\n } else if (!usingURIs) {\n throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts[i], \"connectOptions.hosts[\" + i + \"]\"]));\n }\n } else if (usingURIs) {\n throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts[i], \"connectOptions.hosts[\" + i + \"]\"]));\n }\n }\n\n if (!usingURIs) {\n if (!connectOptions.ports) throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.ports, \"connectOptions.ports\"]));\n if (!(connectOptions.ports instanceof Array)) throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.ports, \"connectOptions.ports\"]));\n if (connectOptions.hosts.length !== connectOptions.ports.length) throw new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.ports, \"connectOptions.ports\"]));\n connectOptions.uris = [];\n\n for (var i = 0; i < connectOptions.hosts.length; i++) {\n if (typeof connectOptions.ports[i] !== \"number\" || connectOptions.ports[i] < 0) throw new Error(format(ERROR.INVALID_TYPE, [typeof connectOptions.ports[i], \"connectOptions.ports[\" + i + \"]\"]));\n var host = connectOptions.hosts[i];\n var port = connectOptions.ports[i];\n var ipv6 = host.indexOf(\":\") !== -1;\n uri = \"ws://\" + (ipv6 ? \"[\" + host + \"]\" : host) + \":\" + port + path;\n connectOptions.uris.push(uri);\n }\n } else {\n connectOptions.uris = connectOptions.hosts;\n }\n }\n\n client.connect(connectOptions);\n };\n /**\n * Subscribe for messages, request receipt of a copy of messages sent to the destinations described by the filter.\n *\n * @name Paho.Client#subscribe\n * @function\n * @param {string} filter describing the destinations to receive messages from.\n *
\n * @param {object} subscribeOptions - used to control the subscription\n *\n * @param {number} subscribeOptions.qos - the maximum qos of any publications sent\n * as a result of making this subscription.\n * @param {object} subscribeOptions.invocationContext - passed to the onSuccess callback\n * or onFailure callback.\n * @param {function} subscribeOptions.onSuccess - called when the subscribe acknowledgement\n * has been received from the server.\n * A single response object parameter is passed to the onSuccess callback containing the following fields:\n *
    \n *
  1. invocationContext if set in the subscribeOptions.\n *
\n * @param {function} subscribeOptions.onFailure - called when the subscribe request has failed or timed out.\n * A single response object parameter is passed to the onFailure callback containing the following fields:\n *
    \n *
  1. invocationContext - if set in the subscribeOptions.\n *
  2. errorCode - a number indicating the nature of the error.\n *
  3. errorMessage - text describing the error.\n *
\n * @param {number} subscribeOptions.timeout - which, if present, determines the number of\n * seconds after which the onFailure calback is called.\n * The presence of a timeout does not prevent the onSuccess\n * callback from being called when the subscribe completes.\n * @throws {InvalidState} if the client is not in connected state.\n */\n\n\n this.subscribe = function (filter, subscribeOptions) {\n if (typeof filter !== \"string\") throw new Error(\"Invalid argument:\" + filter);\n subscribeOptions = subscribeOptions || {};\n validate(subscribeOptions, {\n qos: \"number\",\n invocationContext: \"object\",\n onSuccess: \"function\",\n onFailure: \"function\",\n timeout: \"number\"\n });\n if (subscribeOptions.timeout && !subscribeOptions.onFailure) throw new Error(\"subscribeOptions.timeout specified with no onFailure callback.\");\n if (typeof subscribeOptions.qos !== \"undefined\" && !(subscribeOptions.qos === 0 || subscribeOptions.qos === 1 || subscribeOptions.qos === 2)) throw new Error(format(ERROR.INVALID_ARGUMENT, [subscribeOptions.qos, \"subscribeOptions.qos\"]));\n client.subscribe(filter, subscribeOptions);\n };\n /**\n * Unsubscribe for messages, stop receiving messages sent to destinations described by the filter.\n *\n * @name Paho.Client#unsubscribe\n * @function\n * @param {string} filter - describing the destinations to receive messages from.\n * @param {object} unsubscribeOptions - used to control the subscription\n * @param {object} unsubscribeOptions.invocationContext - passed to the onSuccess callback\n \t\t\t\t\t\t\t\t or onFailure callback.\n * @param {function} unsubscribeOptions.onSuccess - called when the unsubscribe acknowledgement has been received from the server.\n * A single response object parameter is passed to the\n * onSuccess callback containing the following fields:\n *
    \n *
  1. invocationContext - if set in the unsubscribeOptions.\n *
\n * @param {function} unsubscribeOptions.onFailure called when the unsubscribe request has failed or timed out.\n * A single response object parameter is passed to the onFailure callback containing the following fields:\n *
    \n *
  1. invocationContext - if set in the unsubscribeOptions.\n *
  2. errorCode - a number indicating the nature of the error.\n *
  3. errorMessage - text describing the error.\n *
\n * @param {number} unsubscribeOptions.timeout - which, if present, determines the number of seconds\n * after which the onFailure callback is called. The presence of\n * a timeout does not prevent the onSuccess callback from being\n * called when the unsubscribe completes\n * @throws {InvalidState} if the client is not in connected state.\n */\n\n\n this.unsubscribe = function (filter, unsubscribeOptions) {\n if (typeof filter !== \"string\") throw new Error(\"Invalid argument:\" + filter);\n unsubscribeOptions = unsubscribeOptions || {};\n validate(unsubscribeOptions, {\n invocationContext: \"object\",\n onSuccess: \"function\",\n onFailure: \"function\",\n timeout: \"number\"\n });\n if (unsubscribeOptions.timeout && !unsubscribeOptions.onFailure) throw new Error(\"unsubscribeOptions.timeout specified with no onFailure callback.\");\n client.unsubscribe(filter, unsubscribeOptions);\n };\n /**\n * Send a message to the consumers of the destination in the Message.\n *\n * @name Paho.Client#send\n * @function\n * @param {string|Paho.Message} topic - mandatory The name of the destination to which the message is to be sent.\n * \t\t\t\t\t - If it is the only parameter, used as Paho.Message object.\n * @param {String|ArrayBuffer} payload - The message data to be sent.\n * @param {number} qos The Quality of Service used to deliver the message.\n * \t\t
\n * \t\t\t
0 Best effort (default).\n * \t\t\t
1 At least once.\n * \t\t\t
2 Exactly once.\n * \t\t
\n * @param {Boolean} retained If true, the message is to be retained by the server and delivered\n * to both current and future subscriptions.\n * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n * A received message has the retained boolean set to true if the message was published\n * with the retained boolean set to true\n * and the subscrption was made after the message has been published.\n * @throws {InvalidState} if the client is not connected.\n */\n\n\n this.send = function (topic, payload, qos, retained) {\n var message;\n\n if (arguments.length === 0) {\n throw new Error(\"Invalid argument.\" + \"length\");\n } else if (arguments.length == 1) {\n if (!(topic instanceof Message) && typeof topic !== \"string\") throw new Error(\"Invalid argument:\" + typeof topic);\n message = topic;\n if (typeof message.destinationName === \"undefined\") throw new Error(format(ERROR.INVALID_ARGUMENT, [message.destinationName, \"Message.destinationName\"]));\n client.send(message);\n } else {\n //parameter checking in Message object\n message = new Message(payload);\n message.destinationName = topic;\n if (arguments.length >= 3) message.qos = qos;\n if (arguments.length >= 4) message.retained = retained;\n client.send(message);\n }\n };\n /**\n * Publish a message to the consumers of the destination in the Message.\n * Synonym for Paho.Mqtt.Client#send\n *\n * @name Paho.Client#publish\n * @function\n * @param {string|Paho.Message} topic - mandatory The name of the topic to which the message is to be published.\n * \t\t\t\t\t - If it is the only parameter, used as Paho.Message object.\n * @param {String|ArrayBuffer} payload - The message data to be published.\n * @param {number} qos The Quality of Service used to deliver the message.\n * \t\t
\n * \t\t\t
0 Best effort (default).\n * \t\t\t
1 At least once.\n * \t\t\t
2 Exactly once.\n * \t\t
\n * @param {Boolean} retained If true, the message is to be retained by the server and delivered\n * to both current and future subscriptions.\n * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n * A received message has the retained boolean set to true if the message was published\n * with the retained boolean set to true\n * and the subscrption was made after the message has been published.\n * @throws {InvalidState} if the client is not connected.\n */\n\n\n this.publish = function (topic, payload, qos, retained) {\n var message;\n\n if (arguments.length === 0) {\n throw new Error(\"Invalid argument.\" + \"length\");\n } else if (arguments.length == 1) {\n if (!(topic instanceof Message) && typeof topic !== \"string\") throw new Error(\"Invalid argument:\" + typeof topic);\n message = topic;\n if (typeof message.destinationName === \"undefined\") throw new Error(format(ERROR.INVALID_ARGUMENT, [message.destinationName, \"Message.destinationName\"]));\n client.send(message);\n } else {\n //parameter checking in Message object\n message = new Message(payload);\n message.destinationName = topic;\n if (arguments.length >= 3) message.qos = qos;\n if (arguments.length >= 4) message.retained = retained;\n client.send(message);\n }\n };\n /**\n * Normal disconnect of this Messaging client from its server.\n *\n * @name Paho.Client#disconnect\n * @function\n * @throws {InvalidState} if the client is already disconnected.\n */\n\n\n this.disconnect = function () {\n client.disconnect();\n };\n /**\n * Get the contents of the trace log.\n *\n * @name Paho.Client#getTraceLog\n * @function\n * @return {Object[]} tracebuffer containing the time ordered trace records.\n */\n\n\n this.getTraceLog = function () {\n return client.getTraceLog();\n };\n /**\n * Start tracing.\n *\n * @name Paho.Client#startTrace\n * @function\n */\n\n\n this.startTrace = function () {\n client.startTrace();\n };\n /**\n * Stop tracing.\n *\n * @name Paho.Client#stopTrace\n * @function\n */\n\n\n this.stopTrace = function () {\n client.stopTrace();\n };\n\n this.isConnected = function () {\n return client.connected;\n };\n };\n /**\n * An application message, sent or received.\n *

\n * All attributes may be null, which implies the default values.\n *\n * @name Paho.Message\n * @constructor\n * @param {String|ArrayBuffer} payload The message data to be sent.\n *

\n * @property {string} payloadString read only The payload as a string if the payload consists of valid UTF-8 characters.\n * @property {ArrayBuffer} payloadBytes read only The payload as an ArrayBuffer.\n *

\n * @property {string} destinationName mandatory The name of the destination to which the message is to be sent\n * (for messages about to be sent) or the name of the destination from which the message has been received.\n * (for messages received by the onMessage function).\n *

\n * @property {number} qos The Quality of Service used to deliver the message.\n *

\n *
0 Best effort (default).\n *
1 At least once.\n *
2 Exactly once.\n *
\n *

\n * @property {Boolean} retained If true, the message is to be retained by the server and delivered\n * to both current and future subscriptions.\n * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n * A received message has the retained boolean set to true if the message was published\n * with the retained boolean set to true\n * and the subscrption was made after the message has been published.\n *

\n * @property {Boolean} duplicate read only If true, this message might be a duplicate of one which has already been received.\n * This is only set on messages received from the server.\n *\n */\n\n\n var Message = function Message(newPayload) {\n var payload;\n\n if (typeof newPayload === \"string\" || newPayload instanceof ArrayBuffer || ArrayBuffer.isView(newPayload) && !(newPayload instanceof DataView)) {\n payload = newPayload;\n } else {\n throw format(ERROR.INVALID_ARGUMENT, [newPayload, \"newPayload\"]);\n }\n\n var destinationName;\n var qos = 0;\n var retained = false;\n var duplicate = false;\n Object.defineProperties(this, {\n \"payloadString\": {\n enumerable: true,\n get: function get() {\n if (typeof payload === \"string\") return payload;else return parseUTF8(payload, 0, payload.length);\n }\n },\n \"payloadBytes\": {\n enumerable: true,\n get: function get() {\n if (typeof payload === \"string\") {\n var buffer = new ArrayBuffer(UTF8Length(payload));\n var byteStream = new Uint8Array(buffer);\n stringToUTF8(payload, byteStream, 0);\n return byteStream;\n } else {\n return payload;\n }\n }\n },\n \"destinationName\": {\n enumerable: true,\n get: function get() {\n return destinationName;\n },\n set: function set(newDestinationName) {\n if (typeof newDestinationName === \"string\") destinationName = newDestinationName;else throw new Error(format(ERROR.INVALID_ARGUMENT, [newDestinationName, \"newDestinationName\"]));\n }\n },\n \"qos\": {\n enumerable: true,\n get: function get() {\n return qos;\n },\n set: function set(newQos) {\n if (newQos === 0 || newQos === 1 || newQos === 2) qos = newQos;else throw new Error(\"Invalid argument:\" + newQos);\n }\n },\n \"retained\": {\n enumerable: true,\n get: function get() {\n return retained;\n },\n set: function set(newRetained) {\n if (typeof newRetained === \"boolean\") retained = newRetained;else throw new Error(format(ERROR.INVALID_ARGUMENT, [newRetained, \"newRetained\"]));\n }\n },\n \"topic\": {\n enumerable: true,\n get: function get() {\n return destinationName;\n },\n set: function set(newTopic) {\n destinationName = newTopic;\n }\n },\n \"duplicate\": {\n enumerable: true,\n get: function get() {\n return duplicate;\n },\n set: function set(newDuplicate) {\n duplicate = newDuplicate;\n }\n }\n });\n }; // Module contents.\n\n\n return {\n Client: Client,\n Message: Message\n }; // eslint-disable-next-line no-nested-ternary\n }(typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {});\n\n return PahoMQTT;\n});","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['lightseagreen', 'forestgreen', 'goldenrod', 'dodgerblue', 'darkorchid', 'crimson'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n } // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\n\nexports.formatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n if (!useColors) return;\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if ('%%' === match) return;\n index++;\n\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.debug;\n } catch (e) {} // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\n\nexports.enable(load());\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}","/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0,\n i;\n\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n\nfunction createDebug(namespace) {\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n var self = debug; // set `diff` timestamp\n\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr; // turn the `arguments` into a proper Array\n\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n } // apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val); // now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // apply env-specific formatting (colors, etc.)\n\n exports.formatArgs.call(self, args);\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace); // env-specific initialization logic for debug instances\n\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n exports.names = [];\n exports.skips = [];\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n/**\n * Disable debug output.\n *\n * @api public\n */\n\n\nfunction disable() {\n exports.enable('');\n}\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\nfunction enabled(name) {\n var i, len;\n\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n}\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}","/**\n * Helpers.\n */\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\n\nfunction parse(str) {\n str = String(str);\n\n if (str.length > 100) {\n return;\n }\n\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n\n if (!match) {\n return;\n }\n\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n\n default:\n return undefined;\n }\n}\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n\n return ms + 'ms';\n}\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') || plural(ms, h, 'hour') || plural(ms, m, 'minute') || plural(ms, s, 'second') || ms + ' ms';\n}\n/**\n * Pluralization helper.\n */\n\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n\n return Math.ceil(ms / n) + ' ' + name + 's';\n}","require('./lib/browser_loader');\n\nvar AWS = require('./lib/core');\n\nif (typeof window !== 'undefined') window.AWS = AWS;\nif (typeof module !== 'undefined') module.exports = AWS;\nif (typeof self !== 'undefined') self.AWS = AWS;","require('../lib/node_loader');\n\nvar AWS = require('../lib/core');\n\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\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\n model.paginators = require('../apis/cognito-identity-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nmodule.exports = AWS.CognitoIdentity;","require('../lib/node_loader');\n\nvar AWS = require('../lib/core');\n\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\napiLoader.services['sts'] = {};\nAWS.STS = Service.defineService('sts', ['2011-06-15']);\n\nrequire('../lib/services/sts');\n\nObject.defineProperty(apiLoader.services['sts'], '2011-06-15', {\n get: function get() {\n var model = require('../apis/sts-2011-06-15.min.json');\n\n model.paginators = require('../apis/sts-2011-06-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nmodule.exports = AWS.STS;","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n\n return apiLoader.services[svc][version];\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 */\n\n\napiLoader.services = {};\n/**\n * @api private\n */\n\nmodule.exports = apiLoader;","var Hmac = require('./browserHmac');\n\nvar Md5 = require('./browserMd5');\n\nvar Sha1 = require('./browserSha1');\n\nvar Sha256 = require('./browserSha256');\n/**\n * @api private\n */\n\n\nmodule.exports = exports = {\n createHash: function createHash(alg) {\n alg = alg.toLowerCase();\n\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\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 createSign() {\n throw new Error('createSign is not implemented in the browser');\n }\n};","var Buffer = require('buffer/').Buffer;\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 */\n\n\nif (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'undefined') {\n ArrayBuffer.isView = function (arg) {\n return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1;\n };\n}\n/**\n * @api private\n */\n\n\nvar viewStrings = ['[object Int8Array]', '[object Uint8Array]', '[object Uint8ClampedArray]', '[object Int16Array]', '[object Uint16Array]', '[object Int32Array]', '[object Uint32Array]', '[object Float32Array]', '[object Float64Array]', '[object DataView]'];\n/**\n * @api private\n */\n\nfunction isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n/**\n * @api private\n */\n\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 * @api private\n */\n\n\nmodule.exports = exports = {\n isEmptyData: isEmptyData,\n convertToBuffer: convertToBuffer\n};","var hashUtils = require('./browserHashUtils');\n/**\n * @api private\n */\n\n\nfunction Hmac(hashCtor, secret) {\n this.hash = new hashCtor();\n this.outer = new hashCtor();\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); // Zero out the copied key buffer.\n\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n}\n/**\n * @api private\n */\n\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\n if (input.byteLength > hashCtor.BLOCK_SIZE) {\n var bufferHash = new hashCtor();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n var buffer = new Uint8Array(hashCtor.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}","var hashUtils = require('./browserHashUtils');\n\nvar Buffer = require('buffer/').Buffer;\n\nvar BLOCK_SIZE = 64;\nvar DIGEST_LENGTH = 16;\nvar INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n/**\n * @api private\n */\n\nfunction Md5() {\n this.state = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n/**\n * @api private\n */\n\n\nmodule.exports = exports = Md5;\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\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n\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,\n buffer = _a.buffer,\n undecoratedLength = _a.bufferLength,\n bytesHashed = _a.bytesHashed;\n\n var bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128); // Ensure the final block has enough room for the hashed length\n\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\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\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\n var out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n\n for (var i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\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,\n buffer = _a.buffer,\n state = _a.state;\n\n var a = state[0],\n b = state[1],\n c = state[2],\n 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}","var Buffer = require('buffer/').Buffer;\n\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\nvar DIGEST_LENGTH = 20;\nvar KEY = new Uint32Array([0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0]);\nvar INIT = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n/**\n * @api private\n */\n\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0; // The first 64 bytes (16 words) is the data chunk\n\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n/**\n * @api private\n */\n\n\nmodule.exports = exports = Sha1;\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 var length = data.length;\n this.totalLength += length * 8;\n\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\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\n if (this.offset > 14 || this.offset === 14 && this.shift < 24) {\n this.processBlock();\n }\n\n this.offset = 14;\n this.shift = 24; // 64-bit length big-endian\n\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n\n this.write(0x00); // ..So just hard-code to zero.\n\n this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00);\n\n for (var s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\n } // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n\n\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 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 } // Initialize hash value for this chunk:\n\n\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; // Main loop:\n\n for (i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ b & (c ^ d);\n k = 0x5A827999;\n } else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n } else if (i < 60) {\n f = b & c | d & (b | c);\n k = 0x8F1BBCDC;\n } else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\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 } // Add this chunk's hash to result so far:\n\n\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; // The block is now reusable.\n\n this.offset = 0;\n\n for (i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};","var Buffer = require('buffer/').Buffer;\n\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\nvar DIGEST_LENGTH = 32;\nvar KEY = new Uint32Array([0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]);\nvar INIT = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n/**\n * @private\n */\n\nfunction Sha256() {\n this.state = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\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\n this.finished = false;\n}\n/**\n * @api private\n */\n\n\nmodule.exports = exports = Sha256;\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 var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n\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\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); // Ensure the final block has enough room for the hashed length\n\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\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\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 } // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n\n\n var out = new Buffer(DIGEST_LENGTH);\n\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\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\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\n for (var i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (buffer[i * 4] & 0xff) << 24 | (buffer[i * 4 + 1] & 0xff) << 16 | (buffer[i * 4 + 2] & 0xff) << 8 | buffer[i * 4 + 3] & 0xff;\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] = (t1_1 + this.temp[i - 7] | 0) + (t2_1 + this.temp[i - 16] | 0);\n }\n\n var t1 = (((state4 >>> 6 | state4 << 26) ^ (state4 >>> 11 | state4 << 21) ^ (state4 >>> 25 | state4 << 7)) + (state4 & state5 ^ ~state4 & state6) | 0) + (state7 + (KEY[i] + this.temp[i] | 0) | 0) | 0;\n var t2 = ((state0 >>> 2 | state0 << 30) ^ (state0 >>> 13 | state0 << 19) ^ (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\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};","var util = require('./util'); // browser specific modules\n\n\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;\n\nutil.isBrowser = function () {\n return true;\n};\n\nutil.isNode = function () {\n return false;\n};\n\nvar AWS = require('./core');\n/**\n * @api private\n */\n\n\nmodule.exports = AWS;\n\nrequire('./credentials');\n\nrequire('./credentials/credential_provider_chain');\n\nrequire('./credentials/temporary_credentials');\n\nrequire('./credentials/chainable_temporary_credentials');\n\nrequire('./credentials/web_identity_credentials');\n\nrequire('./credentials/cognito_identity_credentials');\n\nrequire('./credentials/saml_credentials'); // Load the DOMParser XML parser\n\n\nAWS.XML.Parser = require('./xml/browser_parser'); // Load the XHR HttpClient\n\nrequire('./http/xhr');\n\nif (typeof process === 'undefined') {\n var process = {\n browser: true\n };\n}","var AWS = require('./core');\n\nrequire('./credentials');\n\nrequire('./credentials/credential_provider_chain');\n\nvar PromisesDependency;\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\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 */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\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 ' + self.credentials.constructor.name;\n err = credError(msg, err);\n }\n\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else {\n // 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\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials 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) || 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 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;else options.credentials = creds;\n });\n this.constructor(options);\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 }); // reset credential provider\n\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\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 },\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\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; // if null was passed in, we should try to use native promises\n\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n\n if (AWS.S3) {\n constructors.push(AWS.S3);\n\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\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 * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\n\nAWS.config = new AWS.Config();","var AWS = require('./core');\n/**\n * @api private\n */\n\n\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;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 * 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 */\n\n\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {}; //validate config value\n\n var resolved;\n\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' + ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n\n if (!AWS.util.isNode()) return resolved; //validate environmental variable\n\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\" ' + ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n } //validate shared config file\n\n\n var profile = {};\n\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\n ;\n\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\" ' + ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;","/**\n * The main AWS namespace\n */\nvar AWS = {\n 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 */\n\nvar _hidden = {};\n\n_hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\n\n\nmodule.exports = AWS;\nAWS.util.update(AWS, {\n /**\n * @constant\n */\n VERSION: '2.1009.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 /**\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});\n\nrequire('./sequential_executor');\n\nrequire('./service');\n\nrequire('./config');\n\nrequire('./http');\n\nrequire('./event_listeners');\n\nrequire('./request');\n\nrequire('./response');\n\nrequire('./resource_waiter');\n\nrequire('./signers/request_signer');\n\nrequire('./param_validator');\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 */\n\n\nAWS.events = new AWS.SequentialExecutor(); //create endpoint cache lazily\n\nAWS.util.memoizedProperty(AWS, 'endpointCache', function () {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);","var AWS = require('./core');\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 */\n\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 this.expired = false;\n this.expireTime = null;\n this.refreshCallbacks = [];\n\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\n if (this.needsRefresh()) {\n this.refresh(function (err) {\n if (!err) self.expired = false; // reset expired flag\n\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\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 * @api private\n */\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 * @api private\n */\n\n\nAWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getPromise;\n delete this.prototype.refreshPromise;\n};\n\nAWS.util.addPromises(AWS.Credentials);","var AWS = require('../core');\n\nvar STS = require('../../clients/sts');\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 */\n\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 var params = AWS.util.copy(options.params) || {};\n\n if (params.RoleArn) {\n params.RoleSessionName = params.RoleSessionName || 'temporary-credentials';\n }\n\n if (params.SerialNumber) {\n if (!options.tokenCodeFn || typeof options.tokenCodeFn !== 'function') {\n throw new AWS.util.error(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\n var config = AWS.util.merge({\n params: params,\n credentials: options.masterCredentials || AWS.config.credentials\n }, options.stsConfig || {});\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\n if (err) {\n callback(err);\n return;\n }\n\n if (tokenCode) {\n params.TokenCode = tokenCode;\n }\n\n self.service[operation](params, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n getTokenCode: function getTokenCode(callback) {\n var self = this;\n\n if (this.tokenCodeFn) {\n this.tokenCodeFn(this.service.config.params.SerialNumber, function (err, token) {\n if (err) {\n var message = err;\n\n if (err instanceof Error) {\n message = err.message;\n }\n\n callback(AWS.util.error(new Error('Error fetching MFA token: ' + message), {\n code: self.errorCode\n }));\n return;\n }\n\n callback(null, token);\n });\n } else {\n callback(null);\n }\n }\n});","var AWS = require('../core');\n\nvar CognitoIdentity = require('../../clients/cognitoidentity');\n\nvar STS = require('../../clients/sts');\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 */\n\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 get() {\n self.loadCachedId();\n return self._identityId || self.params.IdentityId;\n },\n set: function set(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 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\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\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 * @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\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\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; // in the browser we source default IdentityId from localStorage\n\n if (AWS.util.isBrowser() && !self.params.IdentityId) {\n var id = self.getStorage('id');\n\n if (id && self.params.Logins) {\n var actualProviders = Object.keys(self.params.Logins);\n var cachedProviders = (self.getStorage('providers') || '').split(','); // only load ID if at least one provider used this ID before\n\n var intersect = cachedProviders.filter(function (n) {\n return actualProviders.indexOf(n) !== -1;\n });\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 createClients() {\n var clientConfig = this._clientConfig;\n this.webIdentityCredentials = this.webIdentityCredentials || new AWS.WebIdentityCredentials(this.params, clientConfig);\n\n if (!this.cognito) {\n var cognitoConfig = AWS.util.merge({}, clientConfig);\n cognitoConfig.params = this.params;\n this.cognito = new CognitoIdentity(cognitoConfig);\n }\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; // cache this IdentityId in browser localStorage if possible\n\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' ? window.localStorage : {}; // Test set/remove which would throw an error in Safari's private browsing\n\n storage['aws.test-storage'] = 'foobar';\n delete storage['aws.test-storage'];\n return storage;\n } catch (_) {\n return {};\n }\n }()\n});","var AWS = require('../core');\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 */\n\n\nAWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, {\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\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\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\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 * 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.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 */\n\nAWS.CredentialProviderChain.defaultProviders = [];\n/**\n * @api private\n */\n\nAWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency);\n};\n/**\n * @api private\n */\n\n\nAWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.resolvePromise;\n};\n\nAWS.util.addPromises(AWS.CredentialProviderChain);","var AWS = require('../core');\n\nvar STS = require('../../clients/sts');\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 */\n\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\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function createClients() {\n this.service = this.service || new STS({\n params: this.params\n });\n }\n});","var AWS = require('../core');\n\nvar STS = require('../../clients/sts');\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 */\n\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 this.params = params || {};\n\n if (this.params.RoleArn) {\n this.params.RoleSessionName = 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 ? 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\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\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 createClients() {\n this.service = this.service || new STS({\n params: this.params\n });\n }\n});","var AWS = require('../core');\n\nvar STS = require('../../clients/sts');\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 */\n\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\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function createClients() {\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});","var AWS = require('./core');\n\nvar util = require('./util');\n\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\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 */\n\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n\n return identifiers;\n}\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\n\n\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n\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\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 * 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 */\n\n\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\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 */\n\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 var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n\n var endpoints = AWS.endpointCache.get(cacheKey);\n\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); //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n\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}\n\nvar requestQueue = {};\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 */\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 var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n\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({\n request: request,\n callback: done\n });\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); //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n\n }]);\n endpointRequest.send(function (err, data) {\n if (err) {\n request.response.error = util.error(err, {\n retryable: false\n });\n AWS.endpointCache.remove(cacheKey); //fail all the pending requests in batch\n\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function (requestContext) {\n requestContext.request.response.error = util.error(err, {\n retryable: false\n });\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); //update the endpoint for all the pending requests in batch\n\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\n done();\n });\n }\n}\n/**\n * add api version header to endpoint operation\n * @api private\n */\n\n\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\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 */\n\n\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n\n if (error && (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)) {\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\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\n AWS.endpointCache.remove(cacheKey);\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 */\n\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\n ;\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || client._originalConfig && client._originalConfig.endpoint);\n}\n/**\n * @api private\n */\n\n\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\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 */\n\n\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n } //shared ini file is only available in Node\n //not to check env in browser\n\n\n if (util.isBrowser()) return undefined; // If any of recognized endpoint discovery config env is set\n\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n\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\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n\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\n var sharedFileConfig = configFile[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\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n\n return undefined;\n}\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\n\n\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\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\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\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\n done();\n break;\n\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 + '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n\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};","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\n\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\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 * @api private\n */\n\n\nmodule.exports = {\n createEventStream: createEventStream\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); // create new buffer for individual message (shares memory with original)\n\n var message = buffer.slice(offset, totalLength + offset); // increment offset to it starts at the next message\n\n offset += totalLength;\n messages.push(message);\n }\n\n return messages;\n}\n/**\n * @api private\n */\n\n\nmodule.exports = {\n eventMessageChunker: eventMessageChunker\n};","var util = require('../core').util;\n\nvar toBuffer = util.buffer.toBuffer;\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 */\n\nfunction Int64(bytes) {\n if (bytes.length !== 8) {\n throw new Error('Int64 buffers must be exactly 8 bytes');\n }\n\n if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes);\n this.bytes = bytes;\n}\n/**\n * @param {number} number\n * @returns {Int64}\n *\n * @api private\n */\n\n\nInt64.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\n var bytes = new Uint8Array(8);\n\n for (var i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n\n if (number < 0) {\n negate(bytes);\n }\n\n return new Int64(bytes);\n};\n/**\n * @returns {number}\n *\n * @api private\n */\n\n\nInt64.prototype.valueOf = function () {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n\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 * @param {Buffer} bytes\n *\n * @api private\n */\n\n\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xFF;\n }\n\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n\n if (bytes[i] !== 0) {\n break;\n }\n }\n}\n/**\n * @api private\n */\n\n\nmodule.exports = {\n Int64: Int64\n};","var parseMessage = require('./parse-message').parseMessage;\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\n\n\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message); // check if message is an event or error\n\n var messageType = parsedMessage.headers[':message-type'];\n\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 } // determine event type\n\n\n var eventType = parsedMessage.headers[':event-type']; // check that the event type is modeled\n\n var eventModel = shape.members[eventType.value];\n\n if (!eventModel) {\n return;\n }\n\n var result = {}; // check if an event payload exists\n\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName]; // if the shape is binary, return the byte array\n\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n } // read event headers\n\n\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n\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 * @api private\n */\n\n\nmodule.exports = {\n parseEvent: parseEvent\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 * @api private\n *\n * @param {Buffer} headers\n */\n\nfunction parseHeaders(headers) {\n var out = {};\n var position = 0;\n\n while (position < headers.length) {\n var nameLength = headers.readUInt8(position++);\n var name = headers.slice(position, position + nameLength).toString();\n position += nameLength;\n\n switch (headers.readUInt8(position++)) {\n case 0\n /* boolTrue */\n :\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n\n case 1\n /* boolFalse */\n :\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n\n case 2\n /* byte */\n :\n out[name] = {\n type: BYTE_TAG,\n value: headers.readInt8(position++)\n };\n break;\n\n case 3\n /* short */\n :\n out[name] = {\n type: SHORT_TAG,\n value: headers.readInt16BE(position)\n };\n position += 2;\n break;\n\n case 4\n /* integer */\n :\n out[name] = {\n type: INT_TAG,\n value: headers.readInt32BE(position)\n };\n position += 4;\n break;\n\n case 5\n /* long */\n :\n out[name] = {\n type: LONG_TAG,\n value: new Int64(headers.slice(position, position + 8))\n };\n position += 8;\n break;\n\n case 6\n /* byteArray */\n :\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\n case 7\n /* string */\n :\n var stringLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: headers.slice(position, position + stringLength).toString()\n };\n position += stringLength;\n break;\n\n case 8\n /* timestamp */\n :\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(headers.slice(position, position + 8)).valueOf())\n };\n position += 8;\n break;\n\n case 9\n /* uuid */\n :\n var uuidChars = headers.slice(position, position + 16).toString('hex');\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: uuidChars.substr(0, 8) + '-' + uuidChars.substr(8, 4) + '-' + uuidChars.substr(12, 4) + '-' + uuidChars.substr(16, 4) + '-' + uuidChars.substr(20)\n };\n break;\n\n default:\n throw new Error('Unrecognized header type tag');\n }\n }\n\n return out;\n}\n\nfunction parseMessage(message) {\n var parsed = splitMessage(message);\n return {\n headers: parseHeaders(parsed.headers),\n body: parsed.body\n };\n}\n/**\n * @api private\n */\n\n\nmodule.exports = {\n parseMessage: parseMessage\n};","var util = require('../core').util;\n\nvar toBuffer = util.buffer.toBuffer; // All prelude components are unsigned, 32-bit integers\n\nvar PRELUDE_MEMBER_LENGTH = 4; // The prelude consists of two components\n\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2; // Checksums are always CRC32 hashes.\n\nvar CHECKSUM_LENGTH = 4; // Messages must include a full prelude, a prelude checksum, and a message checksum\n\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n/**\n * @api private\n *\n * @param {Buffer} message\n */\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 (expectedPreludeChecksum !== util.crypto.crc32(message.slice(0, PRELUDE_LENGTH))) {\n throw new Error('The prelude checksum specified in the message (' + expectedPreludeChecksum + ') does not match the calculated CRC32 checksum.');\n }\n\n var expectedMessageChecksum = message.readUInt32BE(message.length - CHECKSUM_LENGTH);\n\n if (expectedMessageChecksum !== util.crypto.crc32(message.slice(0, message.length - CHECKSUM_LENGTH))) {\n throw new Error('The message checksum did not match the expected value of ' + expectedMessageChecksum);\n }\n\n var headersStart = PRELUDE_LENGTH + CHECKSUM_LENGTH;\n var headersEnd = headersStart + message.readUInt32BE(PRELUDE_MEMBER_LENGTH);\n return {\n headers: message.slice(headersStart, headersEnd),\n body: message.slice(headersEnd, message.length - CHECKSUM_LENGTH)\n };\n}\n/**\n * @api private\n */\n\n\nmodule.exports = {\n splitMessage: splitMessage\n};","var AWS = require('./core');\n\nvar SequentialExecutor = require('./sequential_executor');\n\nvar DISCOVER_ENDPOINT = require('./discover_endpoint').discoverEndpoint;\n/**\n * The namespace used to register global event listeners for request building\n * and sending.\n */\n\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: {}\n /* doc hack */\n\n};\n/**\n * @api private\n */\n\nfunction getOperationAuthtype(req) {\n if (!req.service.api.operations) {\n return '';\n }\n\n var operation = req.service.api.operations[req.operation];\n return operation ? operation.authtype : '';\n}\n\nAWS.EventListeners = {\n Core: new SequentialExecutor().addNamedListeners(function (add, addAsync) {\n addAsync('VALIDATE_CREDENTIALS', 'validate', function VALIDATE_CREDENTIALS(req, done) {\n if (!req.service.api.signatureVersion && !req.service.config.signatureVersion) return done(); // none\n\n req.service.config.getCredentials(function (err) {\n if (err) {\n req.response.error = AWS.util.error(err, {\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 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\n if (!req.service.config.region) {\n req.response.error = AWS.util.error(new Error(), {\n code: 'ConfigError',\n message: 'Missing region in config'\n });\n } else if (!dnsHostRegex.test(req.service.config.region)) {\n req.response.error = AWS.util.error(new Error(), {\n code: 'ConfigError',\n 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\n var operation = req.service.api.operations[req.operation];\n\n if (!operation) {\n return;\n }\n\n var idempotentMembers = operation.idempotentMembers;\n\n if (!idempotentMembers.length) {\n return;\n } // creates a copy of params so user's param object isn't mutated\n\n\n var params = AWS.util.copy(req.params);\n\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\n req.params = params;\n });\n add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) {\n if (!req.service.api.operations) {\n return;\n }\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 add('COMPUTE_CHECKSUM', 'afterBuild', function COMPUTE_CHECKSUM(req) {\n if (!req.service.api.operations) {\n return;\n }\n\n var operation = req.service.api.operations[req.operation];\n\n if (!operation) {\n return;\n }\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\n if (operation.httpChecksumRequired && req.service.config.computeChecksums && isNonStreamingPayload && !headers['Content-MD5']) {\n var md5 = AWS.util.crypto.md5(body, 'base64');\n headers['Content-MD5'] = md5;\n }\n });\n addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) {\n req.haltHandlersOnError();\n\n if (!req.service.api.operations) {\n return;\n }\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\n if (req.service.getSignerClass(req) === AWS.Signers.V4) {\n var body = req.httpRequest.body || '';\n\n if (authtype.indexOf('unsigned-body') >= 0) {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n return done();\n }\n\n AWS.util.computeSha256(body, function (err, sha) {\n if (err) {\n done(err);\n } else {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = sha;\n done();\n }\n });\n } else {\n done();\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\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\n throw err;\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 add('RESTART', 'restart', function RESTART() {\n var err = this.response.error;\n if (!err || !err.retryable) return;\n this.httpRequest = new AWS.HttpRequest(this.service.endpoint, this.service.region);\n\n if (this.response.retryCount < this.service.config.maxRetries) {\n this.response.retryCount++;\n } else {\n this.response.error = null;\n }\n });\n var addToHead = true;\n addAsync('DISCOVER_ENDPOINT', 'sign', DISCOVER_ENDPOINT, addToHead);\n addAsync('SIGN', 'sign', function SIGN(req, done) {\n var service = req.service;\n var operations = req.service.api.operations || {};\n var operation = operations[req.operation];\n var authtype = operation ? operation.authtype : '';\n if (!service.api.signatureVersion && !authtype && !service.config.signatureVersion) return done(); // none\n\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 signer = new SignerClass(req.httpRequest, service.getSigningName(req), {\n signatureCache: service.config.signatureCache,\n operation: operation,\n signatureVersion: service.api.signatureVersion\n });\n signer.setServiceClientId(service._clientId); // clear old authorization headers\n\n delete req.httpRequest.headers['Authorization'];\n delete req.httpRequest.headers['Date'];\n delete req.httpRequest.headers['X-Amz-Date']; // add new authorization\n\n signer.addAuthorization(credentials, date);\n req.signedAt = date;\n } catch (e) {\n req.response.error = e;\n }\n\n done();\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',\n message: 'An unknown error occurred.'\n });\n }\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 httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) {\n resp.request.emit('httpHeaders', [statusCode, headers, resp, statusMessage]);\n\n if (!resp.httpResponse.streaming) {\n if (AWS.HttpClient.streamsApiVersion === 2) {\n // 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\n if (data !== null) {\n resp.request.emit('httpData', [data, resp]);\n }\n });\n } else {\n // legacy streams API\n httpResp.on('data', function onData(data) {\n resp.request.emit('httpData', [data, resp]);\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\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 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\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\n try {\n var stream = http.handleRequest(resp.request.httpRequest, httpOptions, callback, error);\n progress(stream);\n } catch (err) {\n error(err);\n }\n }\n\n var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000;\n\n if (timeDiff >= 60 * 10) {\n // if we signed 10min ago, re-sign\n this.emit('sign', [this], function (err) {\n if (err) done(err);else executeSend();\n });\n } else {\n executeSend();\n }\n });\n add('HTTP_HEADERS', 'httpHeaders', 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\n if (dateHeader) {\n var serverTime = Date.parse(dateHeader);\n\n if (service.config.correctClockSkew && service.isClockSkewed(serverTime)) {\n service.applyClockOffset(serverTime);\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 var total = resp.httpResponse.headers['content-length'];\n var progress = {\n loaded: resp.httpResponse.numBytes,\n total: total\n };\n resp.request.emit('httpDownloadProgress', [progress, resp]);\n }\n\n resp.httpResponse.buffers.push(AWS.util.buffer.toBuffer(chunk));\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\n delete resp.httpResponse.numBytes;\n delete resp.httpResponse.buffers;\n });\n add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) {\n if (resp.httpResponse.statusCode) {\n resp.error.statusCode = resp.httpResponse.statusCode;\n\n if (resp.error.retryable === undefined) {\n resp.error.retryable = this.service.retryableError(resp.error, this);\n }\n }\n });\n add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) {\n if (!resp.error) return;\n\n switch (resp.error.code) {\n case 'RequestExpired': // EC2 only\n\n case 'ExpiredTokenException':\n case 'ExpiredToken':\n resp.error.retryable = true;\n resp.request.service.config.credentials.expired = true;\n }\n });\n add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) {\n var err = resp.error;\n if (!err) return;\n\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 add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) {\n if (!resp.error) return;\n\n if (this.service.clockSkewError(resp.error) && this.service.config.correctClockSkew) {\n resp.error.retryable = true;\n }\n });\n add('REDIRECT', 'retry', function REDIRECT(resp) {\n if (resp.error && resp.error.statusCode >= 300 && resp.error.statusCode < 400 && resp.httpResponse.headers['location']) {\n this.httpRequest.endpoint = 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 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 addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) {\n var delay,\n willRetry = false;\n\n if (resp.error) {\n delay = resp.error.retryDelay || 0;\n\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 } // delay < 0 is a signal from customBackoff to skip retries\n\n\n if (willRetry && delay >= 0) {\n resp.error = null;\n setTimeout(done, delay);\n } else {\n done();\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 add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) {\n function isDNSError(err) {\n return err.errno === 'ENOTFOUND' || typeof err.errno === 'number' && typeof AWS.util.getSystemErrorName === 'function' && ['EAI_NONAME', 'EAI_NODATA'].indexOf(AWS.util.getSystemErrorName(err.errno) >= 0);\n }\n\n if (err.code === 'NetworkingError' && isDNSError(err)) {\n var message = 'Inaccessible host: `' + err.hostname + '\\' at port `' + err.port + '\\'. This service may not be available in the `' + err.region + '\\' 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 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\n function filterSensitiveLog(inputShape, shape) {\n if (!shape) {\n return shape;\n }\n\n if (inputShape.isSensitive) {\n return '***SensitiveInformation***';\n }\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\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\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\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\n if (req.service.api.operations && req.service.api.operations[req.operation] && req.service.api.operations[req.operation].input) {\n var inputShape = req.service.api.operations[req.operation].input;\n censoredParams = filterSensitiveLog(inputShape, req.params);\n }\n\n var params = require('util').inspect(censoredParams, true, null);\n\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\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 Json: new SequentialExecutor().addNamedListeners(function (add) {\n var svc = require('./protocol/json');\n\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n Rest: new SequentialExecutor().addNamedListeners(function (add) {\n var svc = require('./protocol/rest');\n\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n RestJson: new SequentialExecutor().addNamedListeners(function (add) {\n var svc = require('./protocol/rest_json');\n\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n RestXml: new SequentialExecutor().addNamedListeners(function (add) {\n var svc = require('./protocol/rest_xml');\n\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n Query: new SequentialExecutor().addNamedListeners(function (add) {\n var svc = require('./protocol/query');\n\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n })\n};","var AWS = require('./core');\n\nvar inherit = AWS.util.inherit;\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 */\n\nAWS.Endpoint = inherit({\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 ? config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint)); // Ensure the port property is set as an integer\n\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 * 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 */\n\nAWS.HttpRequest = inherit({\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 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\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\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\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\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\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 */\n\nAWS.HttpResponse = inherit({\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});\nAWS.HttpClient = inherit({});\n/**\n * @api private\n */\n\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n\n return this.singleton;\n};","var AWS = require('../core');\n\nvar EventEmitter = require('events').EventEmitter;\n\nrequire('../http');\n/**\n * @api private\n */\n\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\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n\n href += httpRequest.path;\n var xhr = new XMLHttpRequest(),\n headersEmitted = false;\n httpRequest.stream = xhr;\n xhr.addEventListener('readystatechange', function () {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) {\n return;\n }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit('headers', emitter.statusCode, emitter.headers, xhr.statusText);\n headersEmitted = true;\n }\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'), {\n code: 'TimeoutError'\n }));\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 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\n try {\n xhr.responseType = 'arraybuffer';\n } 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 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 finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n\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\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 * @api private\n */\n\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n/**\n * @api private\n */\n\nAWS.HttpClient.streamsApiVersion = 1;","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':\n return translateStructure(value, shape);\n\n case 'map':\n return translateMap(value, shape);\n\n case 'list':\n return translateList(value, shape);\n\n default:\n return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n\n var struct = {};\n util.each(structure, function (name, value) {\n var memberShape = shape.members[name];\n\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 * @api private\n */\n\n\nmodule.exports = JsonBuilder;","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':\n return translateStructure(value, shape);\n\n case 'map':\n return translateMap(value, shape);\n\n case 'list':\n return translateList(value, shape);\n\n default:\n return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (structure == null) return undefined;\n if (shape.isDocument) return structure;\n var struct = {};\n var shapeMembers = shape.members;\n util.each(shapeMembers, function (name, memberShape) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n\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 var out = [];\n util.arrayEach(list, function (value) {\n var result = translate(value, shape.member);\n if (result === undefined) out.push(null);else out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n if (map == null) return undefined;\n var out = {};\n util.each(map, function (key, value) {\n var result = translate(value, shape.value);\n if (result === undefined) out[key] = null;else out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toType(value);\n}\n/**\n * @api private\n */\n\n\nmodule.exports = JsonParser;","var Collection = require('./collection');\n\nvar Operation = require('./operation');\n\nvar Shape = require('./shape');\n\nvar Paginator = require('./paginator');\n\nvar ResourceWaiter = require('./resource_waiter');\n\nvar metadata = require('../../apis/metadata.json');\n\nvar util = require('../util');\n\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 api.metadata = api.metadata || {};\n var serviceIdentifier = options.serviceIdentifier;\n delete options.serviceIdentifier;\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\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 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\n if (operation.endpointdiscovery && !self.hasRequiredEndpointDiscovery) {\n property(self, 'hasRequiredEndpointDiscovery', operation.endpointdiscovery.required === true);\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 property(this, 'shapes', new Collection(api.shapes, options, function (name, shape) {\n return Shape.create(shape, options);\n }));\n property(this, 'paginators', new Collection(api.paginators, options, function (name, paginator) {\n return new Paginator(name, paginator, options);\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}\n/**\n * @api private\n */\n\n\nmodule.exports = Api;","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 * @api private\n */\n\n\nmodule.exports = Collection;","var Shape = require('./shape');\n\nvar util = require('../util');\n\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Operation(name, operation, options) {\n var self = this;\n options = options || {};\n property(this, 'name', operation.name || name);\n property(this, 'api', options.api, false);\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(this, 'endpointDiscoveryRequired', operation.endpointdiscovery ? operation.endpointdiscovery.required ? 'REQUIRED' : 'OPTIONAL' : 'NULL');\n property(this, 'httpChecksumRequired', operation.httpChecksumRequired, false);\n memoizedProperty(this, 'input', function () {\n if (!operation.input) {\n return new Shape.create({\n type: 'structure'\n }, options);\n }\n\n return Shape.create(operation.input, options);\n });\n memoizedProperty(this, 'output', function () {\n if (!operation.output) {\n return new Shape.create({\n type: 'structure'\n }, options);\n }\n\n return Shape.create(operation.output, options);\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 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 } // idempotentMembers only tracks top-level input shapes\n\n\n memoizedProperty(this, 'idempotentMembers', function () {\n var idempotentMembers = [];\n var input = self.input;\n var members = input.members;\n\n if (!input.members) {\n return idempotentMembers;\n }\n\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n continue;\n }\n\n if (members[name].isIdempotent === true) {\n idempotentMembers.push(name);\n }\n }\n\n return idempotentMembers;\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 } // check if any member is an event stream\n\n\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n if (members[name].isEventStream === true) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\n * @api private\n */\n\n\nmodule.exports = Operation;","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 * @api private\n */\n\n\nmodule.exports = Paginator;","var util = require('../util');\n\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 = ['type', 'description', 'delay', 'maxAttempts', 'acceptors'];\n keys.forEach(function (key) {\n var value = waiter[key];\n\n if (value) {\n property(self, key, value);\n }\n });\n}\n/**\n * @api private\n */\n\n\nmodule.exports = ResourceWaiter;","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 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 || 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 } // type conversion and parsing\n\n\n property(this, 'defaultValue', null);\n\n this.toWireFormat = function (value) {\n if (value === null || value === undefined) return '';\n return value;\n };\n\n this.toType = function (value) {\n return value;\n };\n}\n/**\n * @api private\n */\n\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 * @api private\n */\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\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 var refShape = Shape.resolve(shape, options);\n\n if (refShape) {\n var filteredKeys = Object.keys(shape);\n\n if (!options.documentation) {\n filteredKeys = filteredKeys.filter(function (name) {\n return !name.match(/documentation/);\n });\n } // create an inline shape with extra members\n\n\n var InlineShape = function InlineShape() {\n refShape.constructor.call(this, shape, options, memberName);\n };\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';else if (shape.member) shape.type = 'list';else if (shape.key) shape.type = 'map';else shape.type = 'string';\n } // normalize types\n\n\n var origType = shape.type;\n\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,\n firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function () {\n return {};\n });\n property(this, 'members', {});\n property(this, 'memberNames', []);\n property(this, 'required', []);\n property(this, 'isRequired', function () {\n return false;\n });\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; // iterate over members to find ones that are event payloads\n\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 memoizedProperty(this, 'eventHeaderMemberNames', function () {\n var members = self.members;\n var memberNames = self.memberNames;\n var eventHeaderMemberNames = []; // iterate over members to find ones that are event headers\n\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\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\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,\n firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function () {\n return [];\n });\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 () {\n return {};\n });\n property(this, 'key', Shape.create({\n type: 'string'\n }, options));\n property(this, 'value', Shape.create({\n type: 'string'\n }, options));\n }\n\n if (shape.key) {\n memoizedProperty(this, 'key', function () {\n return Shape.create(shape.key, options);\n });\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\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' ? 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 var nullLessProtocols = ['rest-xml', 'query', 'ec2'];\n\n this.toType = function (value) {\n value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ? value || '' : value;\n\n if (this.isJsonValue) {\n return JSON.parse(value);\n }\n\n return value && typeof value.toString === 'function' ? 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\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\n this.toWireFormat = this.toType;\n}\n\nfunction BinaryShape() {\n Shape.apply(this, arguments);\n\n this.toType = function (value) {\n var buf = util.base64.decode(value);\n\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\n return buf;\n };\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 * @api private\n */\n\n\nShape.shapes = {\n StructureShape: StructureShape,\n ListShape: ListShape,\n MapShape: MapShape,\n StringShape: StringShape,\n BooleanShape: BooleanShape,\n Base64Shape: Base64Shape\n};\n/**\n * @api private\n */\n\nmodule.exports = Shape;","var AWS = require('./core');\n/**\n * @api private\n */\n\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 = {\n 'min': true\n };\n }\n\n this.validation = validation;\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 + ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg), {\n code: 'MultipleValidationErrors',\n errors: this.errors\n });\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {\n code: code\n }));\n },\n validateStructure: function validateStructure(shape, params, context) {\n this.validateType(params, context, ['object'], 'structure');\n var paramName;\n\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter', 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n } // validate hash members\n\n\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\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', 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n\n case 'list':\n return this.validateList(shape, param, context);\n\n case 'map':\n return this.validateMap(shape, param, context);\n\n default:\n return this.validateScalar(shape, param, context);\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'); // validate array members\n\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\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\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue; // Validate any map key trait constraints\n\n this.validateMember(shape.key, param, context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param], context + '[\\'' + param + '\\']');\n mapCount++;\n }\n\n this.validateRange(shape, mapCount, context, 'map member count');\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\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n\n case 'timestamp':\n return this.validateType(value, context, [Date, /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'], 'Date object, ISO-8601 string, or a UNIX timestamp');\n\n default:\n return this.fail('UnkownType', 'Unhandled type ' + shape.type + ' for ' + context);\n }\n },\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\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 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,' + ' but found \"' + value + '\" for ' + context);\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 + '\" ' + 'does not match regex pattern /' + shape['pattern'] + '/ for ' + context);\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 + ' >= ' + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= ' + shape['max'] + ', but found ' + value + ' for ' + context);\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 ' + 'expected ' + shape['enum'].join('|') + ' for ' + context);\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 var foundInvalidType = false;\n\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\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n\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' + vowel + ' ' + acceptedType);\n return false;\n },\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\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\n if (AWS.util.isNode()) {\n // 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\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 ' + 'string, Buffer, Stream, Blob, or typed array object');\n }\n});","var util = require('../util');\n\nvar AWS = require('../core');\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 */\n\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]; //don't marshal host prefix when operation has endpoint discovery traits\n\n if (hasEndpointDiscover(request)) return request;\n\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\n return request;\n}\n/**\n * @api private\n */\n\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 * @api private\n */\n\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\n var regex = new RegExp('\\\\{' + name + '\\\\}', 'g');\n hostPrefixNotation = hostPrefixNotation.replace(regex, params[name]);\n }\n });\n return hostPrefixNotation;\n}\n/**\n * @api private\n */\n\n\nfunction prependEndpointPrefix(endpoint, prefix) {\n if (endpoint.host) {\n endpoint.host = prefix + endpoint.host;\n }\n\n if (endpoint.hostname) {\n endpoint.hostname = prefix + endpoint.hostname;\n }\n}\n/**\n * @api private\n */\n\n\nfunction validateHostname(hostname) {\n var labels = hostname.split('.'); //Reference: https://tools.ietf.org/html/rfc1123#section-2\n\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\n if (!hostPattern.test(label)) {\n throw AWS.util.error(new Error(), {\n code: 'ValidationError',\n message: label + ' is not hostname compatible.'\n });\n }\n });\n}\n\nmodule.exports = {\n populateHostPrefix: populateHostPrefix\n};","var util = require('../util');\n\nvar JsonBuilder = require('../json/builder');\n\nvar JsonParser = require('../json/parser');\n\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 if (version === 1) version = '1.0';\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 populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n\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 var code = e.__type || e.code || e.Code;\n\n if (code) {\n error.code = code.split('#').pop();\n }\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 } 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\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 * @api private\n */\n\n\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};","var AWS = require('../core');\n\nvar util = require('../util');\n\nvar QueryParamSerializer = require('../query/query_param_serializer');\n\nvar Shape = require('../model/shape');\n\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'] = 'application/x-www-form-urlencoded; charset=utf-8';\n httpRequest.params = {\n Version: req.service.api.apiVersion,\n Action: operation.name\n }; // convert the request parameters into a list of query params,\n // e.g. Deeply.NestedParam.0.Name=value\n\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 populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var data,\n body = resp.httpResponse.body.toString();\n\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\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 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\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\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\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; // normalize headers names to lower-cased keys for matching\n\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n util.each(output.members, function (name, member) {\n var header = (member.name || name).toLowerCase();\n\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\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 ? util.base64.decode(headers[header]) : 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 resp.data = data;\n}\n/**\n * @api private\n */\n\n\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};","var util = require('../util');\n\nvar Rest = require('./rest');\n\nvar Json = require('./json');\n\nvar JsonBuilder = require('../json/builder');\n\nvar JsonParser = require('../json/parser');\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 if (params === undefined) return;\n\n if (payloadShape.type === 'structure') {\n req.httpRequest.body = builder.build(params, payloadShape);\n applyContentTypeHeader(req);\n } else {\n // non-JSON payload\n req.httpRequest.body = params;\n\n if (payloadShape.type === 'binary' || payloadShape.isStreaming) {\n applyContentTypeHeader(req, true);\n }\n }\n } else {\n var body = builder.build(req.params, input);\n\n if (body !== '{}' || req.httpRequest.method !== 'GET') {\n //don't send empty body for GET method\n req.httpRequest.body = body;\n }\n\n applyContentTypeHeader(req);\n }\n}\n\nfunction applyContentTypeHeader(req, isBinary) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\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); // never send body payload on HEAD/DELETE\n\n if (['HEAD', 'DELETE'].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 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\n if (payloadMember.isEventStream) {\n parser = new JsonParser();\n resp.data[payload] = util.createEventStream(AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body, parser, payloadMember);\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 * @api private\n */\n\n\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};","var AWS = require('../core');\n\nvar util = require('../util');\n\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 var payload = input.payload;\n\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 {\n // non-xml payload\n req.httpRequest.body = params;\n }\n } else {\n req.httpRequest.body = builder.toXML(params, input, input.name || input.shape || util.string.upperFirst(req.operation) + 'Request');\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req); // never send body payload on GET/HEAD\n\n if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Rest.extractError(resp);\n var data;\n\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\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 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 var hasEventOutput = operation.hasEventOutput;\n var payload = output.payload;\n\n if (payload) {\n var payloadMember = output.members[payload];\n\n if (payloadMember.isEventStream) {\n parser = new AWS.XML.Parser();\n resp.data[payload] = util.createEventStream(AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : resp.httpResponse.body, parser, payloadMember);\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 * @api private\n */\n\n\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};","var util = require('../util');\n\nfunction QueryParamSerializer() {}\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 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\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\n serializeMember(name + suffix, v, memberRules, fn);\n });\n}\n\nfunction serializeMember(name, value, rules, fn) {\n if (value === null || value === undefined) return;\n\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 * @api private\n */\n\n\nmodule.exports = QueryParamSerializer;","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\n return Date.now();\n }\n};","var util = require('./util');\n\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 return [[region, endpointPrefix], [regionPrefix, endpointPrefix], [region, '*'], [regionPrefix, '*'], ['*', endpointPrefix], ['*', '*']].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\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\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!key) continue;\n\n if (Object.prototype.hasOwnProperty.call(regionConfig.rules, key)) {\n var config = regionConfig.rules[key];\n\n if (typeof config === 'string') {\n config = regionConfig.patterns[config];\n } // set dualstack endpoint\n\n\n if (service.config.useDualstack && util.isDualstackAvailable(service)) {\n config = util.copy(config);\n config.endpoint = config.endpoint.replace(/{service}\\.({region}\\.)?/, '{service}.dualstack.{region}.');\n } // set global endpoint\n\n\n service.isGlobalEndpoint = !!config.globalEndpoint;\n\n if (config.signingRegion) {\n service.signingRegion = config.signingRegion;\n } // signature version\n\n\n if (!config.signatureVersion) config.signatureVersion = 'v4'; // merge config\n\n applyConfig(service, config);\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\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\n return defaultSuffix;\n}\n/**\n * @api private\n */\n\n\nmodule.exports = {\n configureEndpoint: configureEndpoint,\n getEndpointSuffix: getEndpointSuffix\n};","var AWS = require('./core');\n\nvar AcceptorStateMachine = require('./state_machine');\n\nvar inherit = AWS.util.inherit;\nvar domain = AWS.util.domain;\n\nvar jmespath = require('jmespath');\n/**\n * @api private\n */\n\n\nvar hardErrorStates = {\n success: 1,\n error: 1,\n complete: 1\n};\n\nfunction isTerminalState(machine) {\n return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState);\n}\n\nvar fsm = new AcceptorStateMachine();\n\nfsm.setupStates = function () {\n var transition = function transition(_, done) {\n var self = this;\n self._haltHandlersOnError = false;\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 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};\n\nfsm.setupStates();\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 */\n\nAWS.Request = inherit({\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.isGlobalEndpoint) {\n if (service.signingRegion) {\n region = service.signingRegion;\n } else {\n region = 'us-east-1';\n }\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 this.response = new AWS.Response(this);\n this._asm = new AcceptorStateMachine(fsm.states, 'validate');\n this._haltHandlersOnError = false;\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\n this.runTo();\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\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',\n retryable: false\n });\n });\n\n if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) {\n // abort HTTP stream\n this.httpRequest.stream.abort();\n\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\n function wrappedCallback(err, data) {\n if (err) return callback(err, null);\n if (data === null) return callback(null, null);\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\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 () {\n req.send();\n });\n } else {\n stream = new streams.Stream();\n stream.readable = true;\n stream.sent = false;\n stream.on('newListener', function (event) {\n if (!stream.sent && event === 'data') {\n stream.sent = true;\n process.nextTick(function () {\n req.send();\n });\n }\n });\n }\n\n this.on('error', function (err) {\n stream.emit('error', err);\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 var shouldCheckContentLength = false;\n var expectedLen;\n\n if (req.httpRequest.method !== 'HEAD') {\n expectedLen = parseInt(headers['content-length'], 10);\n }\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(new Error('Stream content length mismatch. Received ' + 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\n lengthAccumulator._write = function (chunk) {\n if (chunk && chunk.length) {\n receivedLen += chunk.length;\n }\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, {\n end: false\n });\n } else {\n httpStream.pipe(stream);\n }\n } else {\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 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') {\n done = args;\n args = null;\n }\n\n if (!done) done = function done() {};\n if (!args) args = this.eventParameters(eventName, this.response);\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\n case 'error':\n return [this.response.error, this.response];\n\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\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' || this.service.api.protocol === 'ec2') {\n this.removeListener('build', this.buildAsGet);\n this.addListener('build', this.buildAsGet);\n }\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 + '?' + request.httpRequest.body;\n request.httpRequest.body = ''; // don't need these headers on a GET request\n\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 * @api private\n */\n\nAWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = function promise() {\n var self = this; // append to user agent\n\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(resp.data || {}, '$response', {\n value: resp\n }));\n }\n });\n self.runTo();\n });\n };\n};\n/**\n * @api private\n */\n\n\nAWS.Request.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.Request);\nAWS.util.mixin(AWS.Request, AWS.SequentialExecutor);","/**\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 */\nvar AWS = require('./core');\n\nvar inherit = AWS.util.inherit;\n\nvar jmespath = require('jmespath');\n/**\n * @api private\n */\n\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 acceptors.forEach(function (acceptor) {\n if (!acceptorMatched) {\n var matcher = waiter.matchers[acceptor.matcher];\n\n if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) {\n acceptorMatched = true;\n state = acceptor.state;\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 * @api private\n */\n\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 service: null,\n state: null,\n config: null,\n matchers: {\n path: function path(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 pathAll: function pathAll(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\n for (var ind = 0; ind < numResults; ind++) {\n if (!jmespath.strictDeepEqual(results[ind], expected)) {\n return false;\n }\n }\n\n return true;\n },\n pathAny: function pathAny(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\n for (var ind = 0; ind < numResults; ind++) {\n if (jmespath.strictDeepEqual(results[ind], expected)) {\n return true;\n }\n }\n\n return false;\n },\n status: function status(resp, expected) {\n var statusCode = resp.httpResponse.statusCode;\n return typeof statusCode === 'number' && statusCode === expected;\n },\n error: function error(resp, expected) {\n if (typeof expected === 'string' && resp.error) {\n return expected === resp.error.code;\n } // if expected is not string, can be boolean indicating presence of error\n\n\n return expected === !!resp.error;\n }\n },\n listeners: new AWS.SequentialExecutor().addNamedListeners(function (add) {\n add('RETRY_CHECK', 'retry', function (resp) {\n var waiter = resp.request._waiter;\n\n if (resp.error && resp.error.code === 'ResourceNotReady') {\n resp.error.retryDelay = (waiter.config.delay || 0) * 1000;\n }\n });\n add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS);\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;\n params = undefined;\n }\n\n if (params && params.$waiter) {\n params = AWS.util.copy(params);\n\n if (typeof params.$waiter.delay === 'number') {\n this.config.delay = params.$waiter.delay;\n }\n\n if (typeof params.$waiter.maxAttempts === 'number') {\n this.config.maxAttempts = params.$waiter.maxAttempts;\n }\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 if (callback) request.send(callback);\n return request;\n },\n setSuccess: function setSuccess(resp) {\n resp.error = null;\n resp.data = resp.data || {};\n resp.request.removeAllListeners('extractData');\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});","var AWS = require('./core');\n\nvar inherit = AWS.util.inherit;\n\nvar jmespath = require('jmespath');\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 */\n\n\nAWS.Response = inherit({\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\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\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) {\n this.error = e;\n }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n\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\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\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;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 var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n this.nextPageTokens = null;\n\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\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n return this.nextPageTokens;\n }\n});","var AWS = require('./core');\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 */\n\n\nAWS.SequentialExecutor = AWS.util.inherit({\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 on: function on(eventName, listener, toHead) {\n if (this._events[eventName]) {\n toHead ? this._events[eventName].unshift(listener) : this._events[eventName].push(listener);\n } else {\n this._events[eventName] = [listener];\n }\n\n return this;\n },\n onAsync: function onAsync(eventName, listener, toHead) {\n listener._isAsync = true;\n return this.on(eventName, listener, toHead);\n },\n removeListener: function removeListener(eventName, listener) {\n var listeners = this._events[eventName];\n\n if (listeners) {\n var length = listeners.length;\n var position = -1;\n\n for (var i = 0; i < length; ++i) {\n if (listeners[i] === listener) {\n position = i;\n }\n }\n\n if (position > -1) {\n listeners.splice(position, 1);\n }\n }\n\n return this;\n },\n removeAllListeners: function removeAllListeners(eventName) {\n if (eventName) {\n delete this._events[eventName];\n } else {\n this._events = {};\n }\n\n return this;\n },\n\n /**\n * @api private\n */\n emit: function emit(eventName, eventArgs, doneCallback) {\n if (!doneCallback) doneCallback = function doneCallback() {};\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\n if (self._haltHandlersOnError) {\n return doneCallback.call(self, error);\n }\n }\n\n self.callListeners(listeners, args, doneCallback, error);\n }\n\n while (listeners.length > 0) {\n var listener = listeners.shift();\n\n if (listener._isAsync) {\n // asynchronous listener\n listener.apply(self, args.concat([callNextListener]));\n return; // stop here, callNextListener will continue\n } else {\n // synchronous listener\n try {\n listener.apply(self, args);\n } catch (err) {\n error = AWS.util.error(error || new Error(), err);\n }\n\n if (error && self._haltHandlersOnError) {\n doneCallback.call(self, error);\n return;\n }\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; // extract listeners if parameter is an SequentialExecutor object\n\n if (listeners._events) listeners = listeners._events;\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 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(function () {\n self.addNamedListener.apply(self, arguments);\n }, function () {\n self.addNamedAsyncListener.apply(self, arguments);\n });\n return this;\n }\n});\n/**\n * {on} is the prefered method.\n * @api private\n */\n\nAWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on;\n/**\n * @api private\n */\n\nmodule.exports = AWS.SequentialExecutor;","var AWS = require('./core');\n\nvar Api = require('./model/api');\n\nvar regionConfig = require('./region_config');\n\nvar inherit = AWS.util.inherit;\nvar clientCount = 0;\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 */\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(), 'Service must be constructed with `new\\' operator');\n }\n\n var ServiceClass = this.loadServiceClass(config || {});\n\n if (ServiceClass) {\n var originalConfig = AWS.util.copy(config);\n var svc = new ServiceClass(config);\n Object.defineProperty(svc, '_originalConfig', {\n get: function get() {\n return originalConfig;\n },\n enumerable: false,\n configurable: true\n });\n svc._clientId = ++clientCount;\n return svc;\n }\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 this.validateService();\n if (!this.config.endpoint) regionConfig.configureEndpoint(this);\n this.config.endpoint = this.endpointFromTemplate(this.config.endpoint);\n this.setEndpoint(this.config.endpoint); //enable attaching listeners to service client\n\n AWS.SequentialExecutor.call(this);\n AWS.Service.addDefaultMonitoringListeners(this);\n\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 () {\n publisher.eventHandler(event);\n });\n });\n this.addNamedListener('PUBLISH_API_ATTEMPT', 'apiCallAttempt', function PUBLISH_API_ATTEMPT(event) {\n process.nextTick(function () {\n publisher.eventHandler(event);\n });\n });\n }\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {},\n\n /**\n * @api private\n */\n loadServiceClass: function loadServiceClass(serviceConfig) {\n var config = serviceConfig;\n\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\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 ' + 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\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\n if (keys[i].substr(0, 10) <= version) {\n return selectedVersion;\n }\n }\n\n throw new Error('Could not find ' + this.constructor.serviceIdentifier + ' 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\n if (this.config.params) {\n // copy only toplevel bound params\n var rules = this.api.operations[operation];\n\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(), AWS.EventListeners.CorePost];\n\n for (var i = 0; i < list.length; i++) {\n if (list[i]) request.addListeners(list[i]);\n } // disable parameter validation\n\n\n if (!this.config.paramValidation) {\n request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n\n if (this.config.logger) {\n // add logging events\n request.addListeners(AWS.EventListeners.Logger);\n }\n\n this.setupRequestListeners(request); // call prototype's customRequestHandler\n\n if (typeof this.constructor.prototype.customRequestHandler === 'function') {\n this.constructor.prototype.customRequestHandler(request);\n } // call instance's customRequestHandler\n\n\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\n if (response.httpResponse.statusCode) {\n monitoringEvent.FinalHttpStatusCode = response.httpResponse.statusCode;\n }\n\n if (response.error) {\n var error = response.error;\n var statusCode = response.httpResponse.statusCode;\n\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\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\n if (response.httpResponse.statusCode) {\n monitoringEvent.HttpStatusCode = response.httpResponse.statusCode;\n }\n\n if (!request._unAuthenticated && request.service.config.credentials && request.service.config.credentials.accessKeyId) {\n monitoringEvent.AccessKey = request.service.config.credentials.accessKeyId;\n }\n\n if (!response.httpResponse.headers) return monitoringEvent;\n\n if (request.httpRequest.headers['x-amz-security-token']) {\n monitoringEvent.SessionToken = request.httpRequest.headers['x-amz-security-token'];\n }\n\n if (response.httpResponse.headers['x-amzn-requestid']) {\n monitoringEvent.XAmznRequestId = response.httpResponse.headers['x-amzn-requestid'];\n }\n\n if (response.httpResponse.headers['x-amz-request-id']) {\n monitoringEvent.XAmzRequestId = response.httpResponse.headers['x-amz-request-id'];\n }\n\n if (response.httpResponse.headers['x-amz-id-2']) {\n monitoringEvent.XAmzId2 = response.httpResponse.headers['x-amz-id-2'];\n }\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\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\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\n var attemptStartRealTime; //Start time of request attempt. Used to calculating attemptLatency\n\n var attemptLatency; //latency from request sent out to http response reaching SDK\n\n var callStartRealTime; //Start time of API call. Used to calculating API call latency\n\n var attemptCount = 0; //request.retryCount is not reliable here\n\n var region; //region cache region for each attempt since it can be updated in plase (e.g. s3)\n\n var callTimestamp; //timestamp when the request is created\n\n var self = this;\n var addToHead = true;\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; //attemptLatency may not be available if fail before response\n\n attemptLatency = attemptLatency || 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\n if (response.error && response.error.retryable && typeof response.retryCount === 'number' && typeof response.maxRetries === 'number' && response.retryCount >= response.maxRetries) {\n apiCallEvent.MaxRetriesExceeded = 1;\n }\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 * 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; // get operation authtype if present\n\n var operation = null;\n var authtype = '';\n\n if (request) {\n var operations = request.service.api.operations || {};\n operation = operations[request.operation] || null;\n authtype = operation ? operation.authtype : '';\n }\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 {\n version = this.api.signatureVersion;\n }\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':\n return AWS.EventListeners.Query;\n\n case 'query':\n return AWS.EventListeners.Query;\n\n case 'json':\n return AWS.EventListeners.Json;\n\n case 'rest-json':\n return AWS.EventListeners.RestJson;\n\n case 'rest-xml':\n return AWS.EventListeners.RestXml;\n }\n\n if (this.api.protocol) {\n throw new Error('Invalid service `protocol\\' ' + 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\n default:\n 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\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\n case 'EC2ThrottledException':\n return true;\n\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 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\n if (!paginator) {\n if (throwException) {\n var e = new Error();\n throw AWS.util.error(e, 'No pagination configuration for ' + operation);\n }\n\n return null;\n }\n\n return paginator;\n }\n});\nAWS.util.update(AWS.Service, {\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\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\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 var identifier = svc.serviceIdentifier || serviceIdentifier;\n svc.serviceIdentifier = identifier;\n } else {\n // defineService called with an API\n svc.prototype.api = serviceIdentifier;\n AWS.Service.defineMethods(svc);\n }\n\n AWS.SequentialExecutor.call(this.prototype); //util.clientSideMonitoring is only available in node\n\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\n if (publisherConfig.enabled) {\n //if csm is enabled in environment, SDK should send all metrics\n AWS.Service._clientSideMonitoring = true;\n }\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 svc.services = svc.services || {};\n\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 ' + superclass.serviceIdentifier + '-' + version\n });\n }\n }\n\n if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) {\n superclass.apiVersions = superclass.apiVersions.concat(version).sort();\n }\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 hasService(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});\nAWS.util.mixin(AWS.Service, AWS.SequentialExecutor);\n/**\n * @api private\n */\n\nmodule.exports = AWS.Service;","var AWS = require('../core');\n\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\n\nvar ENV_REGIONAL_ENDPOINT_ENABLED = 'AWS_STS_REGIONAL_ENDPOINTS';\nvar CONFIG_REGIONAL_ENDPOINT_ENABLED = 'sts_regional_endpoints';\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 assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);\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\n if (config.stsRegionalEndpoints === 'regional' && service.isGlobalEndpoint) {\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',\n message: 'Missing region in config'\n });\n }\n\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) + '.' + config.region + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n req.httpRequest.region = config.region;\n }\n }\n});","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n/**\n * @api private\n */\n\nvar expiresHeader = 'presigned-expires';\n/**\n * @api private\n */\n\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\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) {\n // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' + 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime',\n message: message,\n retryable: false\n });\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(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',\n retryable: false\n });\n }\n}\n/**\n * @api private\n */\n\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\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n\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\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') {\n // 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 } // build URL\n\n\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n/**\n * @api private\n */\n\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', AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function () {\n if (this.response.error) callback(this.response.error);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 * @api private\n */\n\nmodule.exports = AWS.Signers.Presign;","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n/**\n * @api private\n */\n\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\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':\n return AWS.Signers.V2;\n\n case 'v3':\n return AWS.Signers.V3;\n\n case 's3v4':\n return AWS.Signers.V4;\n\n case 'v4':\n return AWS.Signers.V4;\n\n case 's3':\n return AWS.Signers.S3;\n\n case 'v3https':\n return AWS.Signers.V3Https;\n }\n\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\n\nrequire('./v3');\n\nrequire('./v3https');\n\nrequire('./v4');\n\nrequire('./s3');\n\nrequire('./presign');","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n/**\n * @api private\n */\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 // 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 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 this.request.headers['Authorization'] = auth;\n },\n stringToSign: function stringToSign() {\n var r = this.request;\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || ''); // 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\n parts.push(r.headers['presigned-expires'] || '');\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n return parts.join('\\n');\n },\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n var amzHeaders = [];\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i)) amzHeaders.push(name);\n });\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\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 return parts.join('\\n');\n },\n canonicalizedResource: function canonicalizedResource() {\n var r = this.request;\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n var resource = '';\n if (r.virtualHostedBucket) resource += '/' + r.virtualHostedBucket;\n resource += path;\n\n if (querystring) {\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = {\n name: name\n };\n\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n\n resources.push(subresource);\n }\n });\n resources.sort(function (a, b) {\n return a.name < b.name ? -1 : 1;\n });\n\n if (resources.length) {\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 resource += '?' + querystring.join('&');\n }\n }\n\n return resource;\n },\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n/**\n * @api private\n */\n\nmodule.exports = AWS.Signers.S3;","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n/**\n * @api private\n */\n\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n if (!date) date = AWS.util.date.getDate();\n var r = this.request;\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\n r.params.Signature = this.signature(credentials);\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\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 * @api private\n */\n\nmodule.exports = AWS.Signers.V2;","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n/**\n * @api private\n */\n\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.rfc822(date);\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'] = this.authorization(credentials, datetime);\n },\n authorization: function authorization(credentials) {\n return 'AWS3 ' + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + 'Algorithm=HmacSHA256,' + 'SignedHeaders=' + this.signedHeaders() + ',' + 'Signature=' + this.signature(credentials);\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 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 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 signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\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 * @api private\n */\n\nmodule.exports = AWS.Signers.V3;","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n/**\n * @api private\n */\n\n\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + 'Algorithm=HmacSHA256,' + 'Signature=' + this.signature(credentials);\n },\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n/**\n * @api private\n */\n\nmodule.exports = AWS.Signers.V3Https;","var AWS = require('../core');\n\nvar v4Credentials = require('./v4_credentials');\n\nvar inherit = AWS.util.inherit;\n/**\n * @api private\n */\n\nvar expiresHeader = 'presigned-expires';\n/**\n * @api private\n */\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 algorithm: 'AWS4-HMAC-SHA256',\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'] = this.authorization(credentials, datetime);\n },\n addHeaders: function addHeaders(credentials, datetime) {\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 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\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n } // need to pull in any other X-Amz-* headers\n\n\n AWS.util.each.call(this, this.request.headers, function (key, value) {\n if (key === expiresHeader) return;\n\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase(); // Metadata should be normalized\n\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 var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' + credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(credentials, datetime.substr(0, 8), this.request.region, this.serviceName, this.signatureCache);\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\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 canonicalString: function canonicalString() {\n var parts = [],\n pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\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 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\n if (this.isSignableHeader(key)) {\n var value = item[1];\n\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\n parts.push(key + ':' + this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\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 credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(datetime.substr(0, 8), this.request.region, this.serviceName);\n },\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n\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 unsignableHeaders: ['authorization', 'content-type', 'content-length', 'user-agent', expiresHeader, 'expect', 'x-amzn-trace-id'],\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n});\n/**\n * @api private\n */\n\nmodule.exports = AWS.Signers.V4;","var AWS = require('../core');\n/**\n * @api private\n */\n\n\nvar cachedSecret = {};\n/**\n * @api private\n */\n\nvar cacheQueue = [];\n/**\n * @api private\n */\n\nvar maxCacheEntries = 50;\n/**\n * @api private\n */\n\nvar v4Identifier = 'aws4_request';\n/**\n * @api private\n */\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 [date.substr(0, 8), region, serviceName, v4Identifier].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(credentials, date, region, service, shouldCache) {\n var credsIdentifier = AWS.util.crypto.hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n\n if (shouldCache && cacheKey in cachedSecret) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac('AWS4' + credentials.secretAccessKey, date, 'buffer');\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n\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};","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;\n bindObject = done;\n done = finalState;\n 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;else return done ? done.call(bindObject, err) : null;\n } else {\n if (state.accept) self.currentState = state.accept;else return done ? done.call(bindObject) : null;\n }\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;\n acceptState = null;\n failState = null;\n } else if (typeof failState === 'function') {\n fn = failState;\n failState = null;\n }\n\n if (!this.currentState) this.currentState = name;\n this.states[name] = {\n accept: acceptState,\n fail: failState,\n fn: fn\n };\n return this;\n};\n/**\n * @api private\n */\n\n\nmodule.exports = AcceptorStateMachine;","/* eslint guard-for-in:0 */\nvar AWS;\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 */\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\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n\n return engine;\n }\n },\n userAgent: function userAgent() {\n var name = util.environment;\n\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape); // AWS percent-encodes some extra non-standard characters in a URI\n\n output = output.replace(/[*]/g, function (ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n return output;\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 urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n util.arrayEach(sortedKeys, function (name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function (item) {\n vals.push(escape(item));\n });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n\n items.push(result);\n });\n return items.join('&');\n },\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\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\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n\n return util.buffer.toBuffer(string, 'base64');\n }\n },\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function toBuffer(data, encoding) {\n return typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from ? util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n alloc: function alloc(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\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\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n\n return buf;\n }\n },\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n var readable = new util.stream.Readable();\n var pos = 0;\n\n readable._read = function (size) {\n if (pos >= buffer.length) return readable.push(null);\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 concat(buffers) {\n var length = 0,\n offset = 0,\n buffer = null,\n 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 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 lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n ini: {\n parse: function string(ini) {\n var currentSection,\n map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function (line) {\n line = line.split(/(^|\\s)[;#]/)[0]; // remove comments\n\n var section = line.match(/^\\s*\\[([^\\[\\]]+)\\]\\s*$/);\n\n if (section) {\n currentSection = section[1];\n\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.'));\n }\n } else if (currentSection) {\n var item = line.match(/^\\s*(.+?)\\s*=\\s*(.+?)\\s*$/);\n\n if (item) {\n map[currentSection] = map[currentSection] || {};\n map[currentSection][item[1]] = item[2];\n }\n }\n });\n return map;\n }\n },\n fn: {\n noop: function noop() {},\n callback: function callback(err) {\n if (err) throw err;\n },\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 * @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\n if (AWS.config.systemClockOffset) {\n // 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) {\n date = util.date.getDate();\n }\n\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) {\n date = util.date.getDate();\n }\n\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) {\n date = util.date.getDate();\n }\n\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 parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') {\n // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) {\n // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) {\n // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) {\n // rfc822\n return new Date(value);\n } else {\n throw util.error(new Error('unhandled timestamp format: ' + value), {\n code: 'TimestampParserError'\n });\n }\n }\n },\n crypto: {\n crc32Table: [0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D],\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\n return (crc ^ -1) >>> 0;\n },\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n\n if (digest === 'buffer') {\n digest = undefined;\n }\n\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 md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n hash: function hash(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n\n if (!digest) {\n digest = 'binary';\n }\n\n if (digest === 'buffer') {\n digest = undefined;\n }\n\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data); //Identifying objects with an ArrayBuffer as buffers\n\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' && typeof data.on === 'function' && !isBuffer) {\n data.on('data', function (chunk) {\n hash.update(chunk);\n });\n data.on('error', function (err) {\n callback(err);\n });\n data.on('end', function () {\n callback(null, hash.digest(digest));\n });\n } else if (callback && sliceFn && !isBuffer && typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0,\n size = 1024 * 512;\n var reader = new FileReader();\n\n reader.onerror = function () {\n callback(new Error('Failed to read data.'));\n };\n\n reader.onload = function () {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n\n reader._continueReading();\n };\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\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n toHex: function toHex(data) {\n var out = [];\n\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n\n return out.join('');\n },\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\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 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 update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {}; // jshint forin:false\n\n for (var key in object) {\n dupe[key] = object[key];\n }\n\n return dupe;\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\n return true;\n },\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\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 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 error: function error(err, options) {\n var originalError = null;\n\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\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) err.message = options.message;\n if (options.code || options.name) err.code = options.code || options.name;\n if (options.stack) err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {\n writable: true,\n enumerable: false\n });\n Object.defineProperty(err, 'message', {\n enumerable: true\n });\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n if (originalError) err.originalError = originalError;\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n } // constructor not supplied, create pass-through ctor\n\n\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\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\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\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 util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false,\n writable: true,\n configurable: true\n });\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\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n } else {\n opts.value = value;\n 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; // build enumerable attribute for each value with lazy accessor.\n\n util.property(obj, name, function () {\n if (cachedValue === null) {\n cachedValue = get();\n }\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\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n\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\n var fs = require('fs');\n\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') {\n // assume file object\n var settings = {};\n\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n\n body = fs.createReadStream(body.path, settings);\n } else {\n // TODO support other stream types\n return done(new Error('Non-file stream objects are ' + 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function (err, sha) {\n if (err) done(err);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', Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime) 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'] || 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\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\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\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\n var metadata = require('../apis/metadata.json');\n\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\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\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 errCallback(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true; // Call `calculateRetryDelay()` only when relevant, see #3401\n\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n\n cb(err);\n };\n\n var sendRequest = function sendRequest() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function (httpResponse) {\n httpResponse.on('data', function (chunk) {\n data += chunk.toString();\n });\n httpResponse.on('end', function () {\n var statusCode = httpResponse.statusCode;\n\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 statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\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\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 getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n\n var profilesFromCreds = {};\n\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename || 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\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\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\n return profiles;\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\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\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 (arnObject.service === undefined || arnObject.region === undefined || arnObject.accountId === undefined || arnObject.resource === undefined) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:' + (arnObject.partition || 'aws') + ':' + arnObject.service + ':' + 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 * @api private\n */\n\nmodule.exports = util;","var util = require('../util');\n\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() {}\n\nDomXmlParser.prototype.parse = function (xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n var result, error;\n\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 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 code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n\n if (isError && (isError.parentNode === result || isError.parentNode.nodeName === 'body' || isError.parentNode.parentNode === result || 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 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 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\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {\n code: 'XMLParserError',\n retryable: true\n });\n } else {\n // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n\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\n switch (shape.type) {\n case 'structure':\n return parseStructure(xml, shape);\n\n case 'map':\n return parseMap(xml, shape);\n\n case 'list':\n return parseList(xml, shape);\n\n case undefined:\n case null:\n return parseUnknown(xml);\n\n default:\n return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\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({\n textContent: value\n }, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml : getElementByTagName(xml, memberShape.name);\n\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (!memberShape.flattened && memberShape.type === 'list' && !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\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 var child = xml.firstElementChild;\n\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\n child = child.nextElementSibling;\n }\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 var child = xml.firstElementChild;\n\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n\n child = child.nextElementSibling;\n }\n\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n\n if (encoding === 'base64') {\n shape = new Shape.create({\n type: encoding\n });\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n\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 ''; // empty object\n\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';else return xml.textContent;\n } // object, parse as structure\n\n\n var shape = {\n type: 'structure',\n members: {}\n };\n var child = xml.firstElementChild;\n\n while (child) {\n var tag = child.nodeName;\n\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] = {\n name: tag\n };\n }\n\n child = child.nextElementSibling;\n }\n\n return parseStructure(xml, shape);\n}\n/**\n * @api private\n */\n\n\nmodule.exports = DomXmlParser;","var util = require('../util');\n\nvar XmlNode = require('./xml-node').XmlNode;\n\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':\n return serializeStructure(xml, value, shape);\n\n case 'map':\n return serializeMap(xml, value, shape);\n\n case 'list':\n return serializeList(xml, value, shape);\n\n default:\n 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 var value = params[memberName];\n var name = memberShape.name;\n\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 util.each(map, function (key, value) {\n var entry = new XmlNode(shape.flattened ? shape.name : 'entry');\n xml.addChildNode(entry);\n var entryKey = new XmlNode(xmlKey);\n var entryValue = new XmlNode(xmlValue);\n entry.addChildNode(entryKey);\n entry.addChildNode(entryValue);\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(new XmlText(shape.toWireFormat(value)));\n}\n\nfunction applyNamespaces(xml, shape, isRoot) {\n var uri,\n prefix = 'xmlns';\n\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 * @api private\n */\n\n\nmodule.exports = XmlBuilder;","/**\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 * @api private\n */\n\n\nmodule.exports = {\n escapeAttribute: escapeAttribute\n};","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&').replace(//g, '>').replace(/\\r/g, ' ').replace(/\\n/g, ' ').replace(/\\u0085/g, '…').replace(/\\u2028/, '
');\n}\n/**\n * @api private\n */\n\n\nmodule.exports = {\n escapeElement: escapeElement\n};","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n/**\n * Represents an XML node.\n * @api private\n */\n\n\nfunction XmlNode(name, children) {\n if (children === void 0) {\n children = [];\n }\n\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\n\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\n\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\n\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\n\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name; // add attributes\n\n var attributes = this.attributes;\n\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) {\n return c.toString();\n }).join('') + '';\n};\n/**\n * @api private\n */\n\n\nmodule.exports = {\n XmlNode: XmlNode\n};","var escapeElement = require('./escape-element').escapeElement;\n/**\n * Represents an XML text value.\n * @api private\n */\n\n\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n/**\n * @api private\n */\n\n\nmodule.exports = {\n XmlText: XmlText\n};","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\n\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\n\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n}\n\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n}\n\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n};\n\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n};\n\nBuffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n};\n\nBuffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\n\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n}\n\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\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.\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\n\nmodule.exports = EventEmitter; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined; // 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.\n\nEventEmitter.defaultMaxListeners = 10; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\nEventEmitter.prototype.setMaxListeners = function (n) {\n if (!isNumber(n) || n < 0 || isNaN(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 if (!this._events) this._events = {}; // If there is no 'error' event listener then throw.\n\n if (type === 'error') {\n if (!this._events.error || isObject(this._events.error) && !this._events.error.length) {\n er = arguments[1];\n\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 if (isUndefined(handler)) return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n\n case 2:\n handler.call(this, arguments[1]);\n break;\n\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n\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\n for (i = 0; i < len; i++) {\n listeners[i].apply(this, args);\n }\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function (type, listener) {\n var m;\n if (!isFunction(listener)) throw TypeError('listener must be a function');\n if (!this._events) this._events = {}; // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n\n if (this._events.newListener) this.emit('newListener', type, isFunction(listener.listener) ? listener.listener : listener);\n if (!this._events[type]) // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;else if (isObject(this._events[type])) // If we've already got an array, just append.\n this._events[type].push(listener);else // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener]; // Check for listener leak\n\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 ' + 'leak detected. %d listeners added. ' + 'Use emitter.setMaxListeners() to increase limit.', this._events[type].length);\n\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)) throw TypeError('listener must be a function');\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 return this;\n}; // emits a 'removeListener' event iff the listener was removed\n\n\nEventEmitter.prototype.removeListener = function (type, listener) {\n var list, position, length, i;\n if (!isFunction(listener)) throw TypeError('listener must be a function');\n if (!this._events || !this._events[type]) return this;\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener || isFunction(list.listener) && list.listener === listener) {\n delete this._events[type];\n if (this._events.removeListener) this.emit('removeListener', type, listener);\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener || list[i].listener && list[i].listener === listener) {\n position = i;\n break;\n }\n }\n\n if (position < 0) 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) this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function (type) {\n var key, listeners;\n if (!this._events) return this; // not listening for removeListener, no need to emit\n\n if (!this._events.removeListener) {\n if (arguments.length === 0) this._events = {};else if (this._events[type]) delete this._events[type];\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\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 }\n\n delete this._events[type];\n return this;\n};\n\nEventEmitter.prototype.listeners = function (type) {\n var ret;\n if (!this._events || !this._events[type]) ret = [];else if (isFunction(this._events[type])) ret = [this._events[type]];else 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 if (isFunction(evlistener)) return 1;else if (evlistener) return evlistener.length;\n }\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}","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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.\nvar punycode = require('punycode');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\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} // Reference: RFC 3986, RFC 1808, RFC 2396\n// define these here so at least they only have to be\n// compiled once on the first module load.\n\n\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n // RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\ndelims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n // RFC 2396: characters not allowed for various reasons.\nunwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\nautoEscape = ['\\''].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.\nnonHostChars = ['%', '/', '?', ';', '#'].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.\nunsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that never have a hostname.\nhostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that always contain a // bit.\nslashedProtocol = {\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 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; // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n\n rest = rest.trim();\n var proto = protocolPattern.exec(rest);\n\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\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\n\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) {\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 // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\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\n\n var auth, atSign;\n\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 } // Now we have a portion which is definitely the auth.\n // Pull that off.\n\n\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n } // the host is the remaining to the left of the first non-host char\n\n\n hostEnd = -1;\n\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\n } // if we still have not hit it, then the entire thing is a host.\n\n\n if (hostEnd === -1) hostEnd = rest.length;\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd); // pull out port.\n\n this.parseHost(); // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n\n this.hostname = this.hostname || ''; // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']'; // validate a little.\n\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n\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 } // we test again with ASCII char only\n\n\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\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\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\n for (var i = 0; i < domainArray.length; ++i) {\n var s = domainArray[i];\n newOut.push(s.match(/[^A-Za-z0-9_-]/) ? 'xn--' + punycode.encode(s) : s);\n }\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; // strip [ and ] from the hostname\n // the host field still retains them, though\n\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n } // now rest is set to the post-host stuff.\n // chop off any delim chars.\n\n\n if (!unsafeProtocol[lowerProto]) {\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\n if (esc === ae) {\n esc = escape(ae);\n }\n\n rest = rest.split(ae).join(esc);\n }\n } // chop off from the tail first.\n\n\n var hash = rest.indexOf('#');\n\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n\n var qm = rest.indexOf('?');\n\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\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\n if (rest) this.pathname = rest;\n\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n } //to support http.request\n\n\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n } // finally, reconstruct the href based on what has been validated.\n\n\n this.href = this.format();\n return this;\n}; // format a parsed object into a url string\n\n\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\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 ? this.hostname : '[' + this.hostname + ']');\n\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && isObject(this.query) && Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || query && '?' + query || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':'; // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n\n if (this.slashes || (!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 pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\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); // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n\n result.hash = relative.hash; // if the relative url is empty, then there's nothing left to do here.\n\n if (relative.href === '') {\n result.href = result.format();\n return result;\n } // hrefs like //foo/bar always cut to the protocol.\n\n\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') result[k] = relative[k];\n }); //urlParse appends trailing / to urls like http://www.example.com\n\n if (slashedProtocol[result.protocol] && 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\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n\n while (relPath.length && !(relative.host = relPath.shift())) {\n ;\n }\n\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\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; // to support http.request\n\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\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 = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || 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]; // 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\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;else srcPath.unshift(result.host);\n }\n\n result.host = '';\n\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;else relPath.unshift(relative.host);\n }\n\n relative.host = null;\n }\n\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath; // 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(); //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\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n result.search = relative.search;\n result.query = relative.query; //to support http.request\n\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\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; //to support http.request\n\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n\n result.href = result.format();\n return result;\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\n\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host) && (last === '.' || last === '..') || last === ''; // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n\n var up = 0;\n\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n\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 } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!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] === '' || srcPath[0] && srcPath[0].charAt(0) === '/'; // put the host back\n\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' : srcPath.length ? srcPath.shift() : ''; //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\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\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 } //to support request.http\n\n\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\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\n if (port) {\n port = port[0];\n\n if (port !== ':') {\n this.port = port.substr(1);\n }\n\n host = host.substr(0, host.length - port.length);\n }\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}\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}","var v1 = require('./v1');\n\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\nmodule.exports = uuid;","/**\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\nmodule.exports = bytesToUuid;","// 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// 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) || 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}","var rng = require('./lib/rng');\n\nvar bytesToUuid = require('./lib/bytesToUuid'); // **`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\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/broofa/node-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 = rng();\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 : bytesToUuid(b);\n}\n\nmodule.exports = v1;","var rng = require('./lib/rng');\n\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\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n 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;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar LRU_1 = require(\"./utils/LRU\");\n\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\n\nvar EndpointCache =\n/** @class */\nfunction () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) {\n maxSize = CACHE_SIZE;\n }\n\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function get() {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\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\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\n if (records) {\n for (var i = records.length - 1; i >= 0; i--) {\n var record = records[i];\n\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n\n return records;\n };\n\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined) continue;\n identifiers.push(key[identifierName]);\n }\n\n return identifiers.join(' ');\n };\n\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) {\n return {\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n };\n });\n };\n\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n\n return EndpointCache;\n}();\n\nexports.EndpointCache = EndpointCache;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar LinkedListNode =\n/** @class */\nfunction () {\n function LinkedListNode(key, value) {\n this.key = key;\n this.value = value;\n }\n\n return LinkedListNode;\n}();\n\nvar LRUCache =\n/** @class */\nfunction () {\n function LRUCache(size) {\n this.nodeMap = {};\n this.size = 0;\n\n if (typeof size !== 'number' || size < 1) {\n throw new Error('Cache size can only be positive number');\n }\n\n this.sizeLimit = size;\n }\n\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function get() {\n return this.size;\n },\n enumerable: true,\n configurable: true\n });\n\n LRUCache.prototype.prependToList = function (node) {\n if (!this.headerNode) {\n this.tailNode = node;\n } else {\n this.headerNode.prev = node;\n node.next = this.headerNode;\n }\n\n this.headerNode = node;\n this.size++;\n };\n\n LRUCache.prototype.removeFromTail = function () {\n if (!this.tailNode) {\n return undefined;\n }\n\n var node = this.tailNode;\n var prevNode = node.prev;\n\n if (prevNode) {\n prevNode.next = undefined;\n }\n\n node.prev = undefined;\n this.tailNode = prevNode;\n this.size--;\n return node;\n };\n\n LRUCache.prototype.detachFromList = function (node) {\n if (this.headerNode === node) {\n this.headerNode = node.next;\n }\n\n if (this.tailNode === node) {\n this.tailNode = node.prev;\n }\n\n if (node.prev) {\n node.prev.next = node.next;\n }\n\n if (node.next) {\n node.next.prev = node.prev;\n }\n\n node.next = undefined;\n node.prev = undefined;\n this.size--;\n };\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\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\n LRUCache.prototype.put = function (key, value) {\n if (this.nodeMap[key]) {\n this.remove(key);\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\n var newNode = new LinkedListNode(key, value);\n this.nodeMap[key] = newNode;\n this.prependToList(newNode);\n };\n\n LRUCache.prototype.empty = function () {\n var keys = Object.keys(this.nodeMap);\n\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\n return LRUCache;\n}();\n\nexports.LRUCache = LRUCache;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\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\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\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); // Set the request timeout in MS\n\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? 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 settle(resolve, reject, response); // Clean up request\n\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 } // 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\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n\n\n setTimeout(onloadend);\n };\n } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\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)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', request)); // Clean up request\n\n request = null;\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\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\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 } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\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 */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\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 */\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;\nmodule.exports = Cancel;","'use strict';\n\nvar Cancel = require('./Cancel');\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 */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\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 * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\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;","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n\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 */\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\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, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n } // filter out skipped interceptors\n\n\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 requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n var newConfig = config;\n\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n\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}; // Provide aliases for supported request methods\n\n\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});\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});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\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 */\n\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 * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\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 */\n\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;","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\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 */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\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 */\n\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};","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\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 */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\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 */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\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 };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('../utils');\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 */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = ['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'];\n var directMergeKeys = ['validateStatus'];\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\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys).concat(directMergeKeys);\n var otherKeys = Object.keys(config1).concat(Object.keys(config2)).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, mergeDeepProperties);\n return config;\n};","'use strict';\n\nvar createError = require('./createError');\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 */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar defaults = require('./../defaults');\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 */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\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\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\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 transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data) || headers && headers['Content-Type'] === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.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\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 xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\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 */\n\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\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\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\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\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 */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction 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 read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\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 */\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};","'use strict';\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 */\n\nmodule.exports = function isAxiosError(payload) {\n return typeof payload === 'object' && payload.isAxiosError === true;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // 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.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\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\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); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\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) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\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\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\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};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\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 */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\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\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 return parsed;\n};","'use strict';\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 */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {}; // eslint-disable-next-line func-names\n\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});\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\n\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n\n return false;\n}\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\n\n\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n } // eslint-disable-next-line func-names\n\n\n return function (value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n\n var keys = Object.keys(options);\n var i = keys.length;\n\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n\n continue;\n }\n\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nvar bind = require('./helpers/bind'); // utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\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 */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\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 */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\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 */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\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 */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\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 */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\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 */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\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 */\n\n\nfunction isString(val) {\n return typeof val === 'string';\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 */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\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 */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\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 */\n\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 * 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 */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\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 */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\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 */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\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 */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\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 */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\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 */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\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 */\n\n\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\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 */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\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 */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\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 * 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 */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\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\n return result;\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 */\n\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 * 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 */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\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};","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr;\n}\n\nfunction tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}","!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define([], t) : \"object\" == typeof exports ? exports.bowser = t() : e.bowser = t();\n}(this, function () {\n return function (e) {\n var t = {};\n\n function r(n) {\n if (t[n]) return t[n].exports;\n var i = t[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(i.exports, i, i.exports, r), i.l = !0, i.exports;\n }\n\n return r.m = e, r.c = t, r.d = function (e, t, n) {\n r.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, r.t = function (e, t) {\n if (1 & t && (e = r(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var i in e) {\n r.d(n, i, function (t) {\n return e[t];\n }.bind(null, i));\n }\n return n;\n }, r.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return r.d(t, \"a\", t), t;\n }, r.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, r.p = \"\", r(r.s = 90);\n }({\n 17: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n\n var n = r(18),\n i = function () {\n function e() {}\n\n return e.getFirstMatch = function (e, t) {\n var r = t.match(e);\n return r && r.length > 0 && r[1] || \"\";\n }, e.getSecondMatch = function (e, t) {\n var r = t.match(e);\n return r && r.length > 1 && r[2] || \"\";\n }, e.matchAndReturnConst = function (e, t, r) {\n if (e.test(t)) return r;\n }, e.getWindowsVersionName = function (e) {\n switch (e) {\n case \"NT\":\n return \"NT\";\n\n case \"XP\":\n return \"XP\";\n\n case \"NT 5.0\":\n return \"2000\";\n\n case \"NT 5.1\":\n return \"XP\";\n\n case \"NT 5.2\":\n return \"2003\";\n\n case \"NT 6.0\":\n return \"Vista\";\n\n case \"NT 6.1\":\n return \"7\";\n\n case \"NT 6.2\":\n return \"8\";\n\n case \"NT 6.3\":\n return \"8.1\";\n\n case \"NT 10.0\":\n return \"10\";\n\n default:\n return;\n }\n }, e.getMacOSVersionName = function (e) {\n var t = e.split(\".\").splice(0, 2).map(function (e) {\n return parseInt(e, 10) || 0;\n });\n if (t.push(0), 10 === t[0]) switch (t[1]) {\n case 5:\n return \"Leopard\";\n\n case 6:\n return \"Snow Leopard\";\n\n case 7:\n return \"Lion\";\n\n case 8:\n return \"Mountain Lion\";\n\n case 9:\n return \"Mavericks\";\n\n case 10:\n return \"Yosemite\";\n\n case 11:\n return \"El Capitan\";\n\n case 12:\n return \"Sierra\";\n\n case 13:\n return \"High Sierra\";\n\n case 14:\n return \"Mojave\";\n\n case 15:\n return \"Catalina\";\n\n default:\n return;\n }\n }, e.getAndroidVersionName = function (e) {\n var t = e.split(\".\").splice(0, 2).map(function (e) {\n return parseInt(e, 10) || 0;\n });\n if (t.push(0), !(1 === t[0] && t[1] < 5)) return 1 === t[0] && t[1] < 6 ? \"Cupcake\" : 1 === t[0] && t[1] >= 6 ? \"Donut\" : 2 === t[0] && t[1] < 2 ? \"Eclair\" : 2 === t[0] && 2 === t[1] ? \"Froyo\" : 2 === t[0] && t[1] > 2 ? \"Gingerbread\" : 3 === t[0] ? \"Honeycomb\" : 4 === t[0] && t[1] < 1 ? \"Ice Cream Sandwich\" : 4 === t[0] && t[1] < 4 ? \"Jelly Bean\" : 4 === t[0] && t[1] >= 4 ? \"KitKat\" : 5 === t[0] ? \"Lollipop\" : 6 === t[0] ? \"Marshmallow\" : 7 === t[0] ? \"Nougat\" : 8 === t[0] ? \"Oreo\" : 9 === t[0] ? \"Pie\" : void 0;\n }, e.getVersionPrecision = function (e) {\n return e.split(\".\").length;\n }, e.compareVersions = function (t, r, n) {\n void 0 === n && (n = !1);\n var i = e.getVersionPrecision(t),\n s = e.getVersionPrecision(r),\n a = Math.max(i, s),\n o = 0,\n u = e.map([t, r], function (t) {\n var r = a - e.getVersionPrecision(t),\n n = t + new Array(r + 1).join(\".0\");\n return e.map(n.split(\".\"), function (e) {\n return new Array(20 - e.length).join(\"0\") + e;\n }).reverse();\n });\n\n for (n && (o = a - Math.min(i, s)), a -= 1; a >= o;) {\n if (u[0][a] > u[1][a]) return 1;\n\n if (u[0][a] === u[1][a]) {\n if (a === o) return 0;\n a -= 1;\n } else if (u[0][a] < u[1][a]) return -1;\n }\n }, e.map = function (e, t) {\n var r,\n n = [];\n if (Array.prototype.map) return Array.prototype.map.call(e, t);\n\n for (r = 0; r < e.length; r += 1) {\n n.push(t(e[r]));\n }\n\n return n;\n }, e.find = function (e, t) {\n var r, n;\n if (Array.prototype.find) return Array.prototype.find.call(e, t);\n\n for (r = 0, n = e.length; r < n; r += 1) {\n var i = e[r];\n if (t(i, r)) return i;\n }\n }, e.assign = function (e) {\n for (var t, r, n = e, i = arguments.length, s = new Array(i > 1 ? i - 1 : 0), a = 1; a < i; a++) {\n s[a - 1] = arguments[a];\n }\n\n if (Object.assign) return Object.assign.apply(Object, [e].concat(s));\n\n var o = function o() {\n var e = s[t];\n \"object\" == typeof e && null !== e && Object.keys(e).forEach(function (t) {\n n[t] = e[t];\n });\n };\n\n for (t = 0, r = s.length; t < r; t += 1) {\n o();\n }\n\n return e;\n }, e.getBrowserAlias = function (e) {\n return n.BROWSER_ALIASES_MAP[e];\n }, e.getBrowserTypeByAlias = function (e) {\n return n.BROWSER_MAP[e] || \"\";\n }, e;\n }();\n\n t.default = i, e.exports = t.default;\n },\n 18: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.ENGINE_MAP = t.OS_MAP = t.PLATFORMS_MAP = t.BROWSER_MAP = t.BROWSER_ALIASES_MAP = void 0;\n t.BROWSER_ALIASES_MAP = {\n \"Amazon Silk\": \"amazon_silk\",\n \"Android Browser\": \"android\",\n Bada: \"bada\",\n BlackBerry: \"blackberry\",\n Chrome: \"chrome\",\n Chromium: \"chromium\",\n Electron: \"electron\",\n Epiphany: \"epiphany\",\n Firefox: \"firefox\",\n Focus: \"focus\",\n Generic: \"generic\",\n \"Google Search\": \"google_search\",\n Googlebot: \"googlebot\",\n \"Internet Explorer\": \"ie\",\n \"K-Meleon\": \"k_meleon\",\n Maxthon: \"maxthon\",\n \"Microsoft Edge\": \"edge\",\n \"MZ Browser\": \"mz\",\n \"NAVER Whale Browser\": \"naver\",\n Opera: \"opera\",\n \"Opera Coast\": \"opera_coast\",\n PhantomJS: \"phantomjs\",\n Puffin: \"puffin\",\n QupZilla: \"qupzilla\",\n QQ: \"qq\",\n QQLite: \"qqlite\",\n Safari: \"safari\",\n Sailfish: \"sailfish\",\n \"Samsung Internet for Android\": \"samsung_internet\",\n SeaMonkey: \"seamonkey\",\n Sleipnir: \"sleipnir\",\n Swing: \"swing\",\n Tizen: \"tizen\",\n \"UC Browser\": \"uc\",\n Vivaldi: \"vivaldi\",\n \"WebOS Browser\": \"webos\",\n WeChat: \"wechat\",\n \"Yandex Browser\": \"yandex\",\n Roku: \"roku\"\n };\n t.BROWSER_MAP = {\n amazon_silk: \"Amazon Silk\",\n android: \"Android Browser\",\n bada: \"Bada\",\n blackberry: \"BlackBerry\",\n chrome: \"Chrome\",\n chromium: \"Chromium\",\n electron: \"Electron\",\n epiphany: \"Epiphany\",\n firefox: \"Firefox\",\n focus: \"Focus\",\n generic: \"Generic\",\n googlebot: \"Googlebot\",\n google_search: \"Google Search\",\n ie: \"Internet Explorer\",\n k_meleon: \"K-Meleon\",\n maxthon: \"Maxthon\",\n edge: \"Microsoft Edge\",\n mz: \"MZ Browser\",\n naver: \"NAVER Whale Browser\",\n opera: \"Opera\",\n opera_coast: \"Opera Coast\",\n phantomjs: \"PhantomJS\",\n puffin: \"Puffin\",\n qupzilla: \"QupZilla\",\n qq: \"QQ Browser\",\n qqlite: \"QQ Browser Lite\",\n safari: \"Safari\",\n sailfish: \"Sailfish\",\n samsung_internet: \"Samsung Internet for Android\",\n seamonkey: \"SeaMonkey\",\n sleipnir: \"Sleipnir\",\n swing: \"Swing\",\n tizen: \"Tizen\",\n uc: \"UC Browser\",\n vivaldi: \"Vivaldi\",\n webos: \"WebOS Browser\",\n wechat: \"WeChat\",\n yandex: \"Yandex Browser\"\n };\n t.PLATFORMS_MAP = {\n tablet: \"tablet\",\n mobile: \"mobile\",\n desktop: \"desktop\",\n tv: \"tv\"\n };\n t.OS_MAP = {\n WindowsPhone: \"Windows Phone\",\n Windows: \"Windows\",\n MacOS: \"macOS\",\n iOS: \"iOS\",\n Android: \"Android\",\n WebOS: \"WebOS\",\n BlackBerry: \"BlackBerry\",\n Bada: \"Bada\",\n Tizen: \"Tizen\",\n Linux: \"Linux\",\n ChromeOS: \"Chrome OS\",\n PlayStation4: \"PlayStation 4\",\n Roku: \"Roku\"\n };\n t.ENGINE_MAP = {\n EdgeHTML: \"EdgeHTML\",\n Blink: \"Blink\",\n Trident: \"Trident\",\n Presto: \"Presto\",\n Gecko: \"Gecko\",\n WebKit: \"WebKit\"\n };\n },\n 90: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(91)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n\n function a(e, t) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);\n }\n }\n\n var o = function () {\n function e() {}\n\n var t, r, n;\n return e.getParser = function (e, t) {\n if (void 0 === t && (t = !1), \"string\" != typeof e) throw new Error(\"UserAgent should be a string\");\n return new i.default(e, t);\n }, e.parse = function (e) {\n return new i.default(e).getResult();\n }, t = e, n = [{\n key: \"BROWSER_MAP\",\n get: function get() {\n return s.BROWSER_MAP;\n }\n }, {\n key: \"ENGINE_MAP\",\n get: function get() {\n return s.ENGINE_MAP;\n }\n }, {\n key: \"OS_MAP\",\n get: function get() {\n return s.OS_MAP;\n }\n }, {\n key: \"PLATFORMS_MAP\",\n get: function get() {\n return s.PLATFORMS_MAP;\n }\n }], (r = null) && a(t.prototype, r), n && a(t, n), e;\n }();\n\n t.default = o, e.exports = t.default;\n },\n 91: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n = u(r(92)),\n i = u(r(93)),\n s = u(r(94)),\n a = u(r(95)),\n o = u(r(17));\n\n function u(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n\n var d = function () {\n function e(e, t) {\n if (void 0 === t && (t = !1), null == e || \"\" === e) throw new Error(\"UserAgent parameter can't be empty\");\n this._ua = e, this.parsedResult = {}, !0 !== t && this.parse();\n }\n\n var t = e.prototype;\n return t.getUA = function () {\n return this._ua;\n }, t.test = function (e) {\n return e.test(this._ua);\n }, t.parseBrowser = function () {\n var e = this;\n this.parsedResult.browser = {};\n var t = o.default.find(n.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.browser = t.describe(this.getUA())), this.parsedResult.browser;\n }, t.getBrowser = function () {\n return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser();\n }, t.getBrowserName = function (e) {\n return e ? String(this.getBrowser().name).toLowerCase() || \"\" : this.getBrowser().name || \"\";\n }, t.getBrowserVersion = function () {\n return this.getBrowser().version;\n }, t.getOS = function () {\n return this.parsedResult.os ? this.parsedResult.os : this.parseOS();\n }, t.parseOS = function () {\n var e = this;\n this.parsedResult.os = {};\n var t = o.default.find(i.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.os = t.describe(this.getUA())), this.parsedResult.os;\n }, t.getOSName = function (e) {\n var t = this.getOS().name;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }, t.getOSVersion = function () {\n return this.getOS().version;\n }, t.getPlatform = function () {\n return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform();\n }, t.getPlatformType = function (e) {\n void 0 === e && (e = !1);\n var t = this.getPlatform().type;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }, t.parsePlatform = function () {\n var e = this;\n this.parsedResult.platform = {};\n var t = o.default.find(s.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.platform = t.describe(this.getUA())), this.parsedResult.platform;\n }, t.getEngine = function () {\n return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine();\n }, t.getEngineName = function (e) {\n return e ? String(this.getEngine().name).toLowerCase() || \"\" : this.getEngine().name || \"\";\n }, t.parseEngine = function () {\n var e = this;\n this.parsedResult.engine = {};\n var t = o.default.find(a.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.engine = t.describe(this.getUA())), this.parsedResult.engine;\n }, t.parse = function () {\n return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this;\n }, t.getResult = function () {\n return o.default.assign({}, this.parsedResult);\n }, t.satisfies = function (e) {\n var t = this,\n r = {},\n n = 0,\n i = {},\n s = 0;\n\n if (Object.keys(e).forEach(function (t) {\n var a = e[t];\n \"string\" == typeof a ? (i[t] = a, s += 1) : \"object\" == typeof a && (r[t] = a, n += 1);\n }), n > 0) {\n var a = Object.keys(r),\n u = o.default.find(a, function (e) {\n return t.isOS(e);\n });\n\n if (u) {\n var d = this.satisfies(r[u]);\n if (void 0 !== d) return d;\n }\n\n var c = o.default.find(a, function (e) {\n return t.isPlatform(e);\n });\n\n if (c) {\n var f = this.satisfies(r[c]);\n if (void 0 !== f) return f;\n }\n }\n\n if (s > 0) {\n var l = Object.keys(i),\n h = o.default.find(l, function (e) {\n return t.isBrowser(e, !0);\n });\n if (void 0 !== h) return this.compareVersion(i[h]);\n }\n }, t.isBrowser = function (e, t) {\n void 0 === t && (t = !1);\n var r = this.getBrowserName().toLowerCase(),\n n = e.toLowerCase(),\n i = o.default.getBrowserTypeByAlias(n);\n return t && i && (n = i.toLowerCase()), n === r;\n }, t.compareVersion = function (e) {\n var t = [0],\n r = e,\n n = !1,\n i = this.getBrowserVersion();\n if (\"string\" == typeof i) return \">\" === e[0] || \"<\" === e[0] ? (r = e.substr(1), \"=\" === e[1] ? (n = !0, r = e.substr(2)) : t = [], \">\" === e[0] ? t.push(1) : t.push(-1)) : \"=\" === e[0] ? r = e.substr(1) : \"~\" === e[0] && (n = !0, r = e.substr(1)), t.indexOf(o.default.compareVersions(i, r, n)) > -1;\n }, t.isOS = function (e) {\n return this.getOSName(!0) === String(e).toLowerCase();\n }, t.isPlatform = function (e) {\n return this.getPlatformType(!0) === String(e).toLowerCase();\n }, t.isEngine = function (e) {\n return this.getEngineName(!0) === String(e).toLowerCase();\n }, t.is = function (e, t) {\n return void 0 === t && (t = !1), this.isBrowser(e, t) || this.isOS(e) || this.isPlatform(e);\n }, t.some = function (e) {\n var t = this;\n return void 0 === e && (e = []), e.some(function (e) {\n return t.is(e);\n });\n }, e;\n }();\n\n t.default = d, e.exports = t.default;\n },\n 92: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n };\n var s = /version\\/(\\d+(\\.?_?\\d+)+)/i,\n a = [{\n test: [/googlebot/i],\n describe: function describe(e) {\n var t = {\n name: \"Googlebot\"\n },\n r = i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opera/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opr\\/|opios/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera\"\n },\n r = i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/SamsungBrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"Samsung Internet for Android\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Whale/i],\n describe: function describe(e) {\n var t = {\n name: \"NAVER Whale Browser\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/MZBrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"MZ Browser\"\n },\n r = i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/focus/i],\n describe: function describe(e) {\n var t = {\n name: \"Focus\"\n },\n r = i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/swing/i],\n describe: function describe(e) {\n var t = {\n name: \"Swing\"\n },\n r = i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/coast/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera Coast\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opt\\/\\d+(?:.?_?\\d+)+/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera Touch\"\n },\n r = i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/yabrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"Yandex Browser\"\n },\n r = i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/ucbrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"UC Browser\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Maxthon|mxios/i],\n describe: function describe(e) {\n var t = {\n name: \"Maxthon\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/epiphany/i],\n describe: function describe(e) {\n var t = {\n name: \"Epiphany\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/puffin/i],\n describe: function describe(e) {\n var t = {\n name: \"Puffin\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sleipnir/i],\n describe: function describe(e) {\n var t = {\n name: \"Sleipnir\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/k-meleon/i],\n describe: function describe(e) {\n var t = {\n name: \"K-Meleon\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/micromessenger/i],\n describe: function describe(e) {\n var t = {\n name: \"WeChat\"\n },\n r = i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qqbrowser/i],\n describe: function describe(e) {\n var t = {\n name: /qqbrowserlite/i.test(e) ? \"QQ Browser Lite\" : \"QQ Browser\"\n },\n r = i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/msie|trident/i],\n describe: function describe(e) {\n var t = {\n name: \"Internet Explorer\"\n },\n r = i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/\\sedg\\//i],\n describe: function describe(e) {\n var t = {\n name: \"Microsoft Edge\"\n },\n r = i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/edg([ea]|ios)/i],\n describe: function describe(e) {\n var t = {\n name: \"Microsoft Edge\"\n },\n r = i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/vivaldi/i],\n describe: function describe(e) {\n var t = {\n name: \"Vivaldi\"\n },\n r = i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/seamonkey/i],\n describe: function describe(e) {\n var t = {\n name: \"SeaMonkey\"\n },\n r = i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sailfish/i],\n describe: function describe(e) {\n var t = {\n name: \"Sailfish\"\n },\n r = i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/silk/i],\n describe: function describe(e) {\n var t = {\n name: \"Amazon Silk\"\n },\n r = i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/phantom/i],\n describe: function describe(e) {\n var t = {\n name: \"PhantomJS\"\n },\n r = i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/slimerjs/i],\n describe: function describe(e) {\n var t = {\n name: \"SlimerJS\"\n },\n r = i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe: function describe(e) {\n var t = {\n name: \"BlackBerry\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe: function describe(e) {\n var t = {\n name: \"WebOS Browser\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/bada/i],\n describe: function describe(e) {\n var t = {\n name: \"Bada\"\n },\n r = i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/tizen/i],\n describe: function describe(e) {\n var t = {\n name: \"Tizen\"\n },\n r = i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qupzilla/i],\n describe: function describe(e) {\n var t = {\n name: \"QupZilla\"\n },\n r = i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/firefox|iceweasel|fxios/i],\n describe: function describe(e) {\n var t = {\n name: \"Firefox\"\n },\n r = i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/electron/i],\n describe: function describe(e) {\n var t = {\n name: \"Electron\"\n },\n r = i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/MiuiBrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"Miui\"\n },\n r = i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chromium/i],\n describe: function describe(e) {\n var t = {\n name: \"Chromium\"\n },\n r = i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chrome|crios|crmo/i],\n describe: function describe(e) {\n var t = {\n name: \"Chrome\"\n },\n r = i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/GSA/i],\n describe: function describe(e) {\n var t = {\n name: \"Google Search\"\n },\n r = i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function test(e) {\n var t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe: function describe(e) {\n var t = {\n name: \"Android Browser\"\n },\n r = i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/playstation 4/i],\n describe: function describe(e) {\n var t = {\n name: \"PlayStation 4\"\n },\n r = i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/safari|applewebkit/i],\n describe: function describe(e) {\n var t = {\n name: \"Safari\"\n },\n r = i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/.*/i],\n describe: function describe(e) {\n var t = -1 !== e.search(\"\\\\(\") ? /^(.*)\\/(.*)[ \\t]\\((.*)/ : /^(.*)\\/(.*) /;\n return {\n name: i.default.getFirstMatch(t, e),\n version: i.default.getSecondMatch(t, e)\n };\n }\n }];\n t.default = a, e.exports = t.default;\n },\n 93: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n var a = [{\n test: [/Roku\\/DVP/],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i, e);\n return {\n name: s.OS_MAP.Roku,\n version: t\n };\n }\n }, {\n test: [/windows phone/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.WindowsPhone,\n version: t\n };\n }\n }, {\n test: [/windows /i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i, e),\n r = i.default.getWindowsVersionName(t);\n return {\n name: s.OS_MAP.Windows,\n version: t,\n versionName: r\n };\n }\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe: function describe(e) {\n var t = {\n name: s.OS_MAP.iOS\n },\n r = i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/macintosh/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i, e).replace(/[_\\s]/g, \".\"),\n r = i.default.getMacOSVersionName(t),\n n = {\n name: s.OS_MAP.MacOS,\n version: t\n };\n return r && (n.versionName = r), n;\n }\n }, {\n test: [/(ipod|iphone|ipad)/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i, e).replace(/[_\\s]/g, \".\");\n return {\n name: s.OS_MAP.iOS,\n version: t\n };\n }\n }, {\n test: function test(e) {\n var t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i, e),\n r = i.default.getAndroidVersionName(t),\n n = {\n name: s.OS_MAP.Android,\n version: t\n };\n return r && (n.versionName = r), n;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i, e),\n r = {\n name: s.OS_MAP.WebOS\n };\n return t && t.length && (r.version = t), r;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i, e) || i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i, e) || i.default.getFirstMatch(/\\bbb(\\d+)/i, e);\n return {\n name: s.OS_MAP.BlackBerry,\n version: t\n };\n }\n }, {\n test: [/bada/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.Bada,\n version: t\n };\n }\n }, {\n test: [/tizen/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.Tizen,\n version: t\n };\n }\n }, {\n test: [/linux/i],\n describe: function describe() {\n return {\n name: s.OS_MAP.Linux\n };\n }\n }, {\n test: [/CrOS/],\n describe: function describe() {\n return {\n name: s.OS_MAP.ChromeOS\n };\n }\n }, {\n test: [/PlayStation 4/],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.PlayStation4,\n version: t\n };\n }\n }];\n t.default = a, e.exports = t.default;\n },\n 94: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n var a = [{\n test: [/googlebot/i],\n describe: function describe() {\n return {\n type: \"bot\",\n vendor: \"Google\"\n };\n }\n }, {\n test: [/huawei/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/(can-l01)/i, e) && \"Nova\",\n r = {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Huawei\"\n };\n return t && (r.model = t), r;\n }\n }, {\n test: [/nexus\\s*(?:7|8|9|10).*/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Nexus\"\n };\n }\n }, {\n test: [/ipad/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n };\n }\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n };\n }\n }, {\n test: [/kftt build/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Amazon\",\n model: \"Kindle Fire HD 7\"\n };\n }\n }, {\n test: [/silk/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Amazon\"\n };\n }\n }, {\n test: [/tablet(?! pc)/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet\n };\n }\n }, {\n test: function test(e) {\n var t = e.test(/ipod|iphone/i),\n r = e.test(/like (ipod|iphone)/i);\n return t && !r;\n },\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/(ipod|iphone)/i, e);\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Apple\",\n model: t\n };\n }\n }, {\n test: [/nexus\\s*[0-6].*/i, /galaxy nexus/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Nexus\"\n };\n }\n }, {\n test: [/[^-]mobi/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function test(e) {\n return \"blackberry\" === e.getBrowserName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"BlackBerry\"\n };\n }\n }, {\n test: function test(e) {\n return \"bada\" === e.getBrowserName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function test(e) {\n return \"windows phone\" === e.getBrowserName();\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Microsoft\"\n };\n }\n }, {\n test: function test(e) {\n var t = Number(String(e.getOSVersion()).split(\".\")[0]);\n return \"android\" === e.getOSName(!0) && t >= 3;\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet\n };\n }\n }, {\n test: function test(e) {\n return \"android\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function test(e) {\n return \"macos\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.desktop,\n vendor: \"Apple\"\n };\n }\n }, {\n test: function test(e) {\n return \"windows\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.desktop\n };\n }\n }, {\n test: function test(e) {\n return \"linux\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.desktop\n };\n }\n }, {\n test: function test(e) {\n return \"playstation 4\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tv\n };\n }\n }, {\n test: function test(e) {\n return \"roku\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tv\n };\n }\n }];\n t.default = a, e.exports = t.default;\n },\n 95: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n var a = [{\n test: function test(e) {\n return \"microsoft edge\" === e.getBrowserName(!0);\n },\n describe: function describe(e) {\n if (/\\sedg\\//i.test(e)) return {\n name: s.ENGINE_MAP.Blink\n };\n var t = i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return {\n name: s.ENGINE_MAP.EdgeHTML,\n version: t\n };\n }\n }, {\n test: [/trident/i],\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.Trident\n },\n r = i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function test(e) {\n return e.test(/presto/i);\n },\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.Presto\n },\n r = i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function test(e) {\n var t = e.test(/gecko/i),\n r = e.test(/like gecko/i);\n return t && !r;\n },\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.Gecko\n },\n r = i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(apple)?webkit\\/537\\.36/i],\n describe: function describe() {\n return {\n name: s.ENGINE_MAP.Blink\n };\n }\n }, {\n test: [/(apple)?webkit/i],\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.WebKit\n },\n r = i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }];\n t.default = a, e.exports = t.default;\n }\n });\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction startsWith(string, target, position) {\n var length = string.length;\n position = position == null ? 0 : position;\n\n if (position < 0) {\n position = 0;\n } else if (position > length) {\n position = length;\n }\n\n target = \"\".concat(target);\n return string.slice(position, position + target.length) == target;\n}\n\nfunction getBrowserLang() {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n var lang = window.navigator.languages && window.navigator.languages[0] || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage || window.navigator.systemLanguage || null;\n return lang;\n}\n\nfunction normalizeCode(code) {\n return code.toLowerCase().replace(/-/, \"_\");\n}\n\nfunction getPreferredLanguage(options) {\n if (!options) {\n return getBrowserLang();\n }\n\n var languages = options.languages,\n fallback = options.fallback;\n\n if (!options.languages) {\n return fallback;\n } // some browsers report language as en-US instead of en_US\n\n\n var browserLanguage = normalizeCode(getBrowserLang());\n\n if (!browserLanguage) {\n return fallback;\n }\n\n var match = languages.filter(function (lang) {\n return normalizeCode(lang) === browserLanguage;\n });\n\n if (match.length > 0) {\n return match[0] || fallback;\n } // en == en_US\n\n\n var matchCodeOnly = languages.filter(function (lang) {\n return startsWith(browserLanguage, lang);\n });\n return matchCodeOnly[0] || fallback;\n}\n\nvar _default = getPreferredLanguage;\nexports.default = _default;","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar customInspectSymbol = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' ? // eslint-disable-line dot-notation\nSymbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n: null;\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\nvar K_MAX_LENGTH = 0x7fffffff;\nexports.kMaxLength = K_MAX_LENGTH;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error('This browser lacks typed array (Uint8Array) support which is required by ' + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.');\n}\n\nfunction typedArraySupport() {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1);\n var proto = {\n foo: function foo() {\n return 42;\n }\n };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function get() {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.buffer;\n }\n});\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function get() {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.byteOffset;\n }\n});\n\nfunction createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"');\n } // Return an augmented `Uint8Array` instance\n\n\n var buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError('The \"string\" argument must be of type string. Received type number');\n }\n\n return allocUnsafe(arg);\n }\n\n return from(arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\nfunction from(value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset);\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n\n if (value == null) {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + typeof value);\n }\n\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type number');\n }\n\n var valueOf = value.valueOf && value.valueOf();\n\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length);\n }\n\n var b = fromObject(value);\n if (b) return b;\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length);\n }\n\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + typeof value);\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n}; // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\n\n\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\nObject.setPrototypeOf(Buffer, Uint8Array);\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number');\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"');\n }\n}\n\nfunction alloc(size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string' ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n\n return createBuffer(size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding);\n};\n\nfunction allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size);\n};\n\nfunction fromString(string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n\n var length = byteLength(string, encoding) | 0;\n var buf = createBuffer(length);\n var actual = buf.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual);\n }\n\n return buf;\n}\n\nfunction fromArrayLike(array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n var buf = createBuffer(length);\n\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n\n return buf;\n}\n\nfunction fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n\n return fromArrayLike(arrayView);\n}\n\nfunction fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds');\n }\n\n var buf;\n\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array);\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n } // Return an augmented `Uint8Array` instance\n\n\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n}\n\nfunction fromObject(obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n var buf = createBuffer(len);\n\n if (buf.length === 0) {\n return buf;\n }\n\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n\n return fromArrayLike(obj);\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n}\n\nfunction checked(length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false\n};\n\nBuffer.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n};\n\nBuffer.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf, pos);\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n } else {\n buf.copy(buffer, pos);\n }\n\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' + 'Received type ' + typeof string);\n }\n\n var len = string.length;\n var mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8\n }\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n} // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n};\n\nBuffer.prototype.toString = function toString() {\n var length = this.length;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n if (this.length > max) str += ' ... ';\n return '';\n};\n\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n}\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength);\n }\n\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. ' + 'Received type ' + typeof target);\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n }\n\n var strLen = string.length;\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\n\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = ''; // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf = this.subarray(start, end); // Return an augmented `Uint8Array` instance\n\n Object.setPrototypeOf(newBuf, Buffer.prototype);\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUint16LE = Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUint8 = Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeUint16LE = Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n};\n\nBuffer.prototype.writeUint16BE = Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n return offset + 2;\n};\n\nBuffer.prototype.writeUint32LE = Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n return offset + 4;\n};\n\nBuffer.prototype.writeUint32BE = Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer');\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (encoding === 'utf8' && code < 128 || encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code;\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } else if (typeof val === 'boolean') {\n val = Number(val);\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);\n var len = bytes.length;\n\n if (len === 0) {\n throw new TypeError('The value \"' + val + '\" is invalid for argument \"value\"');\n }\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]; // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\n str = str.trim().replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n}\n\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n} // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\n\n\nfunction isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n}\n\nfunction numberIsNaN(obj) {\n // For IE11 support\n return obj !== obj; // eslint-disable-line no-self-compare\n} // Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\n\n\nvar hexSliceLookupTable = function () {\n var alphabet = '0123456789abcdef';\n var table = new Array(256);\n\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16;\n\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n\n return table;\n}();","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n\n if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n return callBind(intrinsic);\n }\n\n return intrinsic;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = null;\n }\n}\n\nmodule.exports = function callBind(originalFunction) {\n var func = $reflectApply(bind, $call, arguments);\n\n if ($gOPD && $defineProperty) {\n var desc = $gOPD(func, 'length');\n\n if (desc.configurable) {\n // original length, plus the receiver, minus any additional arguments (after the receiver)\n $defineProperty(func, 'length', {\n value: 1 + $max(0, originalFunction.length - (arguments.length - 1))\n });\n }\n }\n\n return func;\n};\n\nvar applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n $defineProperty(module.exports, 'apply', {\n value: applyBind\n });\n} else {\n module.exports.apply = applyBind;\n}","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n'use strict';\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\nvar pairSplitRegExp = /; */;\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {};\n var opt = options || {};\n var pairs = str.split(pairSplitRegExp);\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var eq_idx = pair.indexOf('='); // skip things that don't look like key=value\n\n if (eq_idx < 0) {\n continue;\n }\n\n var key = pair.substr(0, eq_idx).trim();\n var val = pair.substr(++eq_idx, pair.length).trim(); // quoted values\n\n if ('\"' == val[0]) {\n val = val.slice(1, -1);\n } // only assign once\n\n\n if (undefined == obj[key]) {\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid');\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n\n case 'lax':\n str += '; SameSite=Lax';\n break;\n\n case 'strict':\n str += '; SameSite=Strict';\n break;\n\n case 'none':\n str += '; SameSite=None';\n break;\n\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}","var global = typeof self !== 'undefined' ? self : this;\n\nvar __self__ = function () {\n function F() {\n this.fetch = false;\n this.DOMException = global.DOMException;\n }\n\n F.prototype = global;\n return new F();\n}();\n\n(function (self) {\n var irrelevant = function (exports) {\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && function () {\n try {\n new Blob();\n return true;\n } catch (e) {\n return false;\n }\n }(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj);\n }\n\n if (support.arrayBuffer) {\n var viewClasses = ['[object Int8Array]', '[object Uint8Array]', '[object Uint8ClampedArray]', '[object Int16Array]', '[object Uint16Array]', '[object Int32Array]', '[object Uint32Array]', '[object Float32Array]', '[object Float64Array]'];\n\n var isArrayBufferView = ArrayBuffer.isView || function (obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1;\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name');\n }\n\n return name.toLowerCase();\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n\n return value;\n } // Build a destructive iterator for the value list\n\n\n function iteratorFor(items) {\n var iterator = {\n next: function next() {\n var value = items.shift();\n return {\n done: value === undefined,\n value: value\n };\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function (value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function (header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function (name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function (name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function (name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function (name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null;\n };\n\n Headers.prototype.has = function (name) {\n return this.map.hasOwnProperty(normalizeName(name));\n };\n\n Headers.prototype.set = function (name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function (callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function () {\n var items = [];\n this.forEach(function (value, name) {\n items.push(name);\n });\n return iteratorFor(items);\n };\n\n Headers.prototype.values = function () {\n var items = [];\n this.forEach(function (value) {\n items.push(value);\n });\n return iteratorFor(items);\n };\n\n Headers.prototype.entries = function () {\n var items = [];\n this.forEach(function (value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items);\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'));\n }\n\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function (resolve, reject) {\n reader.onload = function () {\n resolve(reader.result);\n };\n\n reader.onerror = function () {\n reject(reader.error);\n };\n });\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise;\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise;\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n\n return chars.join('');\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0);\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer;\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function (body) {\n this._bodyInit = body;\n\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer); // IE 10-11 can't handle a DataView body.\n\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function () {\n var rejected = consumed(this);\n\n if (rejected) {\n return rejected;\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob);\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]));\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob');\n } else {\n return Promise.resolve(new Blob([this._bodyText]));\n }\n };\n\n this.arrayBuffer = function () {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer);\n } else {\n return this.blob().then(readBlobAsArrayBuffer);\n }\n };\n }\n\n this.text = function () {\n var rejected = consumed(this);\n\n if (rejected) {\n return rejected;\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob);\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer));\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text');\n } else {\n return Promise.resolve(this._bodyText);\n }\n };\n\n if (support.formData) {\n this.formData = function () {\n return this.text().then(decode);\n };\n }\n\n this.json = function () {\n return this.text().then(JSON.parse);\n };\n\n return this;\n } // HTTP methods whose capitalization should be normalized\n\n\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method;\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read');\n }\n\n this.url = input.url;\n this.credentials = input.credentials;\n\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests');\n }\n\n this._initBody(body);\n }\n\n Request.prototype.clone = function () {\n return new Request(this, {\n body: this._bodyInit\n });\n };\n\n function decode(body) {\n var form = new FormData();\n body.trim().split('&').forEach(function (bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form;\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers(); // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function (line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers;\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function () {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n });\n };\n\n Response.error = function () {\n var response = new Response(null, {\n status: 0,\n statusText: ''\n });\n response.type = 'error';\n return response;\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function (url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code');\n }\n\n return new Response(null, {\n status: status,\n headers: {\n location: url\n }\n });\n };\n\n exports.DOMException = self.DOMException;\n\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function (message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function (resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'));\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function () {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function () {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function () {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function () {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function (value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function () {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n });\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n return exports;\n }({});\n})(__self__);\n\n__self__.fetch.ponyfill = true; // Remove \"polyfill\" property added by whatwg-fetch\n\ndelete __self__.fetch.polyfill; // Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\n\nvar ctx = __self__; // this line disable service worker support temporarily\n\nexports = ctx.fetch; // To enable: import fetch from 'cross-fetch'\n\nexports.default = ctx.fetch; // For TypeScript consumers without esModuleInterop.\n\nexports.fetch = ctx.fetch; // To enable: import {fetch} from 'cross-fetch'\n\nexports.Headers = ctx.Headers;\nexports.Request = ctx.Request;\nexports.Response = ctx.Response;\nmodule.exports = exports;",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory();\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([], factory);\n } else {\n // Global (browser)\n root.CryptoJS = factory();\n }\n})(this, function () {\n /*globals window, global, require*/\n\n /**\n * CryptoJS core components.\n */\n var CryptoJS = CryptoJS || function (Math, undefined) {\n var crypto; // Native crypto from window (Browser)\n\n if (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n } // Native crypto in web worker (Browser)\n\n\n if (typeof self !== 'undefined' && self.crypto) {\n crypto = self.crypto;\n } // Native crypto from worker\n\n\n if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n crypto = globalThis.crypto;\n } // Native (experimental IE 11) crypto from window (Browser)\n\n\n if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n } // Native crypto from global (NodeJS)\n\n\n if (!crypto && typeof global !== 'undefined' && global.crypto) {\n crypto = global.crypto;\n } // Native crypto import via require (NodeJS)\n\n\n if (!crypto && typeof require === 'function') {\n try {\n crypto = require('crypto');\n } catch (err) {}\n }\n /*\n * Cryptographically secure pseudorandom number generator\n *\n * As Math.random() is cryptographically not safe to use\n */\n\n\n var cryptoSecureRandomInt = 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 } // Use randomBytes method (NodeJS)\n\n\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n\n throw new Error('Native crypto module could not be used to get secure random number.');\n };\n /*\n * Local polyfill of Object.create\n */\n\n\n var create = Object.create || function () {\n function F() {}\n\n return function (obj) {\n var subtype;\n F.prototype = obj;\n subtype = new F();\n F.prototype = null;\n return subtype;\n };\n }();\n /**\n * CryptoJS namespace.\n */\n\n\n var C = {};\n /**\n * Library namespace.\n */\n\n var C_lib = C.lib = {};\n /**\n * Base object for prototypal inheritance.\n */\n\n var Base = C_lib.Base = function () {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */\n extend: function extend(overrides) {\n // Spawn\n var subtype = create(this); // Augment\n\n if (overrides) {\n subtype.mixIn(overrides);\n } // Create default initializer\n\n\n if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n subtype.init = function () {\n subtype.$super.init.apply(this, arguments);\n };\n } // Initializer's prototype is the subtype object\n\n\n subtype.init.prototype = subtype; // Reference supertype\n\n subtype.$super = this;\n return subtype;\n },\n\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */\n create: function create() {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n return instance;\n },\n\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */\n init: function init() {},\n\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */\n mixIn: function mixIn(properties) {\n for (var propertyName in properties) {\n if (properties.hasOwnProperty(propertyName)) {\n this[propertyName] = properties[propertyName];\n }\n } // IE won't copy toString using the loop above\n\n\n if (properties.hasOwnProperty('toString')) {\n this.toString = properties.toString;\n }\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */\n clone: function clone() {\n return this.init.prototype.extend(this);\n }\n };\n }();\n /**\n * An array of 32-bit words.\n *\n * @property {Array} words The array of 32-bit words.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n\n\n var WordArray = C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */\n init: function init(words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n },\n\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */\n toString: function toString(encoder) {\n return (encoder || Hex).stringify(this);\n },\n\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */\n concat: function concat(wordArray) {\n // Shortcuts\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes; // Clamp excess bits\n\n this.clamp(); // Concat\n\n if (thisSigBytes % 4) {\n // Copy one byte at a time\n for (var i = 0; i < thatSigBytes; i++) {\n var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8;\n }\n } else {\n // Copy one word at a time\n for (var j = 0; j < thatSigBytes; j += 4) {\n thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2];\n }\n }\n\n this.sigBytes += thatSigBytes; // Chainable\n\n return this;\n },\n\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */\n clamp: function clamp() {\n // Shortcuts\n var words = this.words;\n var sigBytes = this.sigBytes; // Clamp\n\n words[sigBytes >>> 2] &= 0xffffffff << 32 - sigBytes % 4 * 8;\n words.length = Math.ceil(sigBytes / 4);\n },\n\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n return clone;\n },\n\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */\n random: function random(nBytes) {\n var words = [];\n\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n\n return new WordArray.init(words, nBytes);\n }\n });\n /**\n * Encoder namespace.\n */\n\n var C_enc = C.enc = {};\n /**\n * Hex encoding strategy.\n */\n\n var Hex = C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var hexChars = [];\n\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\n return hexChars.join('');\n },\n\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */\n parse: function parse(hexStr) {\n // Shortcut\n var hexStrLength = hexStr.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < hexStrLength; i += 2) {\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4;\n }\n\n return new WordArray.init(words, hexStrLength / 2);\n }\n };\n /**\n * Latin1 encoding strategy.\n */\n\n var Latin1 = C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var latin1Chars = [];\n\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n\n return latin1Chars.join('');\n },\n\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */\n parse: function parse(latin1Str) {\n // Shortcut\n var latin1StrLength = latin1Str.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < latin1StrLength; i++) {\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << 24 - i % 4 * 8;\n }\n\n return new WordArray.init(words, latin1StrLength);\n }\n };\n /**\n * UTF-8 encoding strategy.\n */\n\n var Utf8 = C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error('Malformed UTF-8 data');\n }\n },\n\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */\n parse: function parse(utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n }\n };\n /**\n * Abstract buffered block algorithm template.\n *\n * The property blockSize must be implemented in a concrete subtype.\n *\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n */\n\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */\n reset: function reset() {\n // Initial values\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */\n _append: function _append(data) {\n // Convert string to WordArray, else assume WordArray already\n if (typeof data == 'string') {\n data = Utf8.parse(data);\n } // Append\n\n\n this._data.concat(data);\n\n this._nDataBytes += data.sigBytes;\n },\n\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */\n _process: function _process(doFlush) {\n var processedWords; // Shortcuts\n\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4; // Count blocks ready\n\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n\n if (doFlush) {\n // Round up to include partial blocks\n nBlocksReady = Math.ceil(nBlocksReady);\n } else {\n // Round down to include only full blocks,\n // less the number of blocks that must remain in the buffer\n nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n } // Count words ready\n\n\n var nWordsReady = nBlocksReady * blockSize; // Count bytes ready\n\n var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); // Process blocks\n\n if (nWordsReady) {\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n // Perform concrete-algorithm logic\n this._doProcessBlock(dataWords, offset);\n } // Remove processed words\n\n\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n } // Return processed words\n\n\n return new WordArray.init(processedWords, nBytesReady);\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n return clone;\n },\n _minBufferSize: 0\n });\n /**\n * Abstract hasher template.\n *\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n */\n\n var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */\n cfg: Base.extend(),\n\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */\n init: function init(cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg); // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */\n reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this); // Perform concrete-hasher logic\n\n this._doReset();\n },\n\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */\n update: function update(messageUpdate) {\n // Append\n this._append(messageUpdate); // Update the hash\n\n\n this._process(); // Chainable\n\n\n return this;\n },\n\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */\n finalize: function finalize(messageUpdate) {\n // Final message update\n if (messageUpdate) {\n this._append(messageUpdate);\n } // Perform concrete-hasher logic\n\n\n var hash = this._doFinalize();\n\n return hash;\n },\n blockSize: 512 / 32,\n\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */\n _createHelper: function _createHelper(hasher) {\n return function (message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */\n _createHmacHelper: function _createHmacHelper(hasher) {\n return function (message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n }\n });\n /**\n * Algorithm namespace.\n */\n\n var C_algo = C.algo = {};\n return C;\n }(Math);\n\n return CryptoJS;\n});",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n /**\n * Base64 encoding strategy.\n */\n\n var Base64 = C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map; // Clamp excess bits\n\n wordArray.clamp(); // Convert\n\n var base64Chars = [];\n\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n }\n } // Add padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n\n return base64Chars.join('');\n },\n\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */\n parse: function parse(base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n var reverseMap = this._reverseMap;\n\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n } // Ignore padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n } // Convert\n\n\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n };\n\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n }\n\n return WordArray.create(words, nBytes);\n }\n })();\n\n return CryptoJS.enc.Base64;\n});",";\n\n(function (root, factory, undef) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./sha256\", \"./hmac\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n return CryptoJS.HmacSHA256;\n});",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n /**\n * HMAC algorithm.\n */\n\n var HMAC = C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */\n init: function init(hasher, key) {\n // Init hasher\n hasher = this._hasher = new hasher.init(); // Convert string to WordArray, else assume WordArray already\n\n if (typeof key == 'string') {\n key = Utf8.parse(key);\n } // Shortcuts\n\n\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4; // Allow arbitrary length keys\n\n if (key.sigBytes > hasherBlockSizeBytes) {\n key = hasher.finalize(key);\n } // Clamp excess bits\n\n\n key.clamp(); // Clone key for inner and outer pads\n\n var oKey = this._oKey = key.clone();\n var iKey = this._iKey = key.clone(); // Shortcuts\n\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words; // XOR keys with pad constants\n\n for (var i = 0; i < hasherBlockSize; i++) {\n oKeyWords[i] ^= 0x5c5c5c5c;\n iKeyWords[i] ^= 0x36363636;\n }\n\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */\n reset: function reset() {\n // Shortcut\n var hasher = this._hasher; // Reset\n\n hasher.reset();\n hasher.update(this._iKey);\n },\n\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */\n update: function update(messageUpdate) {\n this._hasher.update(messageUpdate); // Chainable\n\n\n return this;\n },\n\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */\n finalize: function finalize(messageUpdate) {\n // Shortcut\n var hasher = this._hasher; // Compute HMAC\n\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n return hmac;\n }\n });\n })();\n});",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Check if typed arrays are supported\n if (typeof ArrayBuffer != 'function') {\n return;\n } // Shortcuts\n\n\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray; // Reference original init\n\n var superInit = WordArray.init; // Augment WordArray.init to handle typed arrays\n\n var subInit = WordArray.init = function (typedArray) {\n // Convert buffers to uint8\n if (typedArray instanceof ArrayBuffer) {\n typedArray = new Uint8Array(typedArray);\n } // Convert other array views to uint8\n\n\n if (typedArray instanceof Int8Array || typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array) {\n typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n } // Handle Uint8Array\n\n\n if (typedArray instanceof Uint8Array) {\n // Shortcut\n var typedArrayByteLength = typedArray.byteLength; // Extract bytes\n\n var words = [];\n\n for (var i = 0; i < typedArrayByteLength; i++) {\n words[i >>> 2] |= typedArray[i] << 24 - i % 4 * 8;\n } // Initialize this word array\n\n\n superInit.call(this, words, typedArrayByteLength);\n } else {\n // Else call normal init\n superInit.apply(this, arguments);\n }\n };\n\n subInit.prototype = WordArray;\n })();\n\n return CryptoJS.lib.WordArray;\n});",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Initialization and round constants tables\n\n var H = [];\n var K = []; // Compute constants\n\n (function () {\n function isPrime(n) {\n var sqrtN = Math.sqrt(n);\n\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n % factor)) {\n return false;\n }\n }\n\n return true;\n }\n\n function getFractionalBits(n) {\n return (n - (n | 0)) * 0x100000000 | 0;\n }\n\n var n = 2;\n var nPrime = 0;\n\n while (nPrime < 64) {\n if (isPrime(n)) {\n if (nPrime < 8) {\n H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n }\n\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n nPrime++;\n }\n\n n++;\n }\n })(); // Reusable object\n\n\n var W = [];\n /**\n * SHA-256 hash algorithm.\n */\n\n var SHA256 = C_algo.SHA256 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init(H.slice(0));\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words; // Working variables\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 var f = H[5];\n var g = H[6];\n var h = H[7]; // Computation\n\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;\n var gamma1x = W[i - 2];\n var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n\n var ch = e & f ^ ~e & g;\n var maj = a & b ^ a & c ^ b & c;\n var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);\n var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n } // Intermediate hash value\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 H[5] = H[5] + f | 0;\n H[6] = H[6] + g | 0;\n H[7] = H[7] + h | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Return final computed hash\n\n\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */\n\n C.SHA256 = Hasher._createHelper(SHA256);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */\n\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n\n return CryptoJS.SHA256;\n});","/*!\n * dashify \n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n'use strict';\n\nmodule.exports = function (str, options) {\n if (typeof str !== 'string') throw new TypeError('expected a string');\n return str.trim().replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\\W/g, function (m) {\n return /[À-ž]/.test(m) ? m : '-';\n }).replace(/^-+|-+$/g, '').replace(/-{2,}/g, function (m) {\n return options && options.condense ? '-' : m;\n }).toLowerCase();\n};","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toInteger from \"../toInteger/index.js\";\nimport getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions);\n var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\n\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import lightFormatters from \"../lightFormatters/index.js\";\nimport getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\n\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `getISOYear` to `getISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\n\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\n\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\n\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\n\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n return year;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\n\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import startOfQuarter from \"../startOfQuarter/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n */\n\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isWithinRange` to `isWithinInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * isWithinRange(\n * new Date(2014, 0, 3),\n * new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n *\n * // v2.0.0 onward\n *\n * isWithinInterval(\n * new Date(2014, 0, 3),\n * { start: new Date(2014, 0, 1), end: new Date(2014, 0, 7) }\n * )\n * ```\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\n\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n return time >= startTime && time <= endTime;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'meno di un secondo',\n other: 'meno di {{count}} secondi'\n },\n xSeconds: {\n one: 'un secondo',\n other: '{{count}} secondi'\n },\n halfAMinute: 'alcuni secondi',\n lessThanXMinutes: {\n one: 'meno di un minuto',\n other: 'meno di {{count}} minuti'\n },\n xMinutes: {\n one: 'un minuto',\n other: '{{count}} minuti'\n },\n aboutXHours: {\n one: \"circa un'ora\",\n other: 'circa {{count}} ore'\n },\n xHours: {\n one: \"un'ora\",\n other: '{{count}} ore'\n },\n xDays: {\n one: 'un giorno',\n other: '{{count}} giorni'\n },\n aboutXWeeks: {\n one: 'circa una settimana',\n other: 'circa {{count}} settimane'\n },\n xWeeks: {\n one: 'una settimana',\n other: '{{count}} settimane'\n },\n aboutXMonths: {\n one: 'circa un mese',\n other: 'circa {{count}} mesi'\n },\n xMonths: {\n one: 'un mese',\n other: '{{count}} mesi'\n },\n aboutXYears: {\n one: 'circa un anno',\n other: 'circa {{count}} anni'\n },\n xYears: {\n one: 'un anno',\n other: '{{count}} anni'\n },\n overXYears: {\n one: 'più di un anno',\n other: 'più di {{count}} anni'\n },\n almostXYears: {\n one: 'quasi un anno',\n other: 'quasi {{count}} anni'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'tra ' + result;\n } else {\n return result + ' fa';\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function isSameUTCWeek(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var dateLeftStartOfWeek = startOfUTCWeek(dirtyDateLeft, options);\n var dateRightStartOfWeek = startOfUTCWeek(dirtyDateRight, options);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}","import isSameUTCWeek from \"../../../../_lib/isSameUTCWeek/index.js\";\nvar weekdays = ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato'];\n\nfunction _lastWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica scorsa alle' p\";\n\n default:\n return \"'\" + weekdays[day] + \" scorso alle' p\";\n }\n}\n\nfunction thisWeek(day) {\n return \"'\" + weekdays[day] + \" alle' p\";\n}\n\nfunction _nextWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica prossima alle' p\";\n\n default:\n return \"'\" + weekdays[day] + \" prossimo alle' p\";\n }\n}\n\nvar formatRelativeLocale = {\n lastWeek: function lastWeek(date, baseDate, options) {\n var day = date.getUTCDay();\n\n if (isSameUTCWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return _lastWeek(day);\n }\n },\n yesterday: \"'ieri alle' p\",\n today: \"'oggi alle' p\",\n tomorrow: \"'domani alle' p\",\n nextWeek: function nextWeek(date, baseDate, options) {\n var day = date.getUTCDay();\n\n if (isSameUTCWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return _nextWeek(day);\n }\n },\n other: 'P'\n};\nexport default function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['aC', 'dC'],\n abbreviated: ['a.C.', 'd.C.'],\n wide: ['avanti Cristo', 'dopo Cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],\n wide: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'G', 'V', 'S'],\n short: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],\n abbreviated: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],\n wide: ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'm.',\n pm: 'p.',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'mattina',\n afternoon: 'pomeriggio',\n evening: 'sera',\n night: 'notte'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'mattina',\n afternoon: 'pomeriggio',\n evening: 'sera',\n night: 'notte'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'mattina',\n afternoon: 'pomeriggio',\n evening: 'sera',\n night: 'notte'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'm.',\n pm: 'p.',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'di mattina',\n afternoon: 'del pomeriggio',\n evening: 'di sera',\n night: 'di notte'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'di mattina',\n afternoon: 'del pomeriggio',\n evening: 'di sera',\n night: 'di notte'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'di mattina',\n afternoon: 'del pomeriggio',\n evening: 'di sera',\n night: 'di notte'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'º';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Italian locale.\n * @language Italian\n * @iso-639-2 ita\n * @author Alberto Restifo [@albertorestifo]{@link https://github.com/albertorestifo}\n * @author Giovanni Polimeni [@giofilo]{@link https://github.com/giofilo}\n * @author Vincenzo Carrese [@vin-car]{@link https://github.com/vin-car}\n */\n\nvar locale = {\n code: 'it',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(aC|dC)/i,\n abbreviated: /^(a\\.?\\s?C\\.?|a\\.?\\s?e\\.?\\s?v\\.?|d\\.?\\s?C\\.?|e\\.?\\s?v\\.?)/i,\n wide: /^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i\n};\nvar parseEraPatterns = {\n any: [/^a/i, /^(d|e)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^t[1234]/i,\n wide: /^[1234](º)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[gfmalsond]/i,\n abbreviated: /^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,\n wide: /^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^g/i, /^f/i, /^m/i, /^a/i, /^m/i, /^g/i, /^l/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ge/i, /^f/i, /^mar/i, /^ap/i, /^mag/i, /^gi/i, /^l/i, /^ag/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmgvs]/i,\n short: /^(do|lu|ma|me|gi|ve|sa)/i,\n abbreviated: /^(dom|lun|mar|mer|gio|ven|sab)/i,\n wide: /^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^g/i, /^v/i, /^s/i],\n any: [/^d/i, /^l/i, /^ma/i, /^me/i, /^g/i, /^v/i, /^s/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|m\\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,\n any: /^([ap]\\.?\\s?m\\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mezza/i,\n noon: /^mezzo/i,\n morning: /mattina/i,\n afternoon: /pomeriggio/i,\n evening: /sera/i,\n night: /notte/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `max` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var maxDate = max(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var maxDate = max(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * var result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\n\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `min` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * const date1 = new Date(1989, 6, 10)\n * const date2 = new Date(1987, 1, 11)\n * const minDate = min(date1, date2)\n *\n * // v2.0.0 onward:\n * const dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * const minDate = min(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\n\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function set(date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function validate(_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function set(date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function validate(_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function parse(string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function set(_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function parse(string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function set(date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n subPriority: 1,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n subPriority: 1,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function parse(string, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function parse(string, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function parse(string, token, match, _options) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function set(date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function set(date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function set(date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function set(date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function parse(string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function validate(_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function parse(string, token, _match, _options) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function set(date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function parse(string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function set(date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function parse(string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function set(date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function parse(string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function set(_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function parse(string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function set(_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport parsers from \"./_lib/parsers/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward (toDate no longer accepts a string)\n * toDate(1392098430000) // Unix to timestamp\n * toDate(new Date(2014, 1, 11, 11, 30, 30)) // Cloning the date\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n subPriority: -1,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n subPriority: parser.subPriority || 0,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (isNaN(date) || !date) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time) || time === null) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n dateStrings.date = null;\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: null\n };\n var year = captures[1] && parseInt(captures[1]);\n var century = captures[2] && parseInt(captures[2]);\n return {\n year: century == null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return null;\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return null;\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return null; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * var result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\n\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\n\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n date.setFullYear(year);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addHours from \"../addHours/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * const result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\n\nexport default function subHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addHours(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMinutes from \"../addMinutes/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * const result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\n\nexport default function subMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMinutes(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addWeeks from \"../addWeeks/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\n\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","var objectKeys = require('object-keys');\n\nvar isArguments = require('is-arguments');\n\nvar is = require('object-is');\n\nvar isRegex = require('is-regex');\n\nvar flags = require('regexp.prototype.flags');\n\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {}; // 7.1. All identical values are equivalent, as determined by ===.\n\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n } // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n\n\n if (!actual || !expected || typeof actual !== 'object' && typeof expected !== 'object') {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n\n\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n } // an identical 'prototype' property.\n\n\n if (a.prototype !== b.prototype) {\n return false;\n }\n\n if (isArguments(a) !== isArguments(b)) {\n return false;\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n\n if (aIsRegex !== bIsRegex) {\n return false;\n }\n\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n\n if (aIsBuffer !== bIsBuffer) {\n return false;\n }\n\n if (aIsBuffer || bIsBuffer) {\n // && would work too, because both are true or both false here\n if (a.length !== b.length) {\n return false;\n }\n\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) {\n // happens when one is a string literal and the other isn't\n return false;\n } // having the same number of owned properties (keys incorporates hasOwnProperty)\n\n\n if (ka.length !== kb.length) {\n return false;\n } // the same set of keys (although not necessarily the same order),\n\n\n ka.sort();\n kb.sort(); // ~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) {\n return false;\n }\n } // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n\n if (!deepEqual(a[key], b[key], opts)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;","'use strict';\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n var obj = {};\n\n try {\n origDefineProperty(obj, 'x', {\n enumerable: false,\n value: obj\n }); // eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\n for (var _ in obj) {\n // jscs:ignore disallowUnusedVariables\n return false;\n }\n\n return obj.x === obj;\n } catch (e) {\n /* this is IE 8. */\n return false;\n }\n};\n\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value;\n }\n};\n\nvar defineProperties = function defineProperties(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n(function (window, factory) {\n /*global define: false, module: false */\n 'use strict'; // universal module definition\n\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n})(window, function factory() {\n 'use strict';\n\n var matchesMethod = function () {\n var ElemProto = window.Element.prototype; // check for the standard method name first\n\n if (ElemProto.matches) {\n return 'matches';\n } // check un-prefixed\n\n\n if (ElemProto.matchesSelector) {\n return 'matchesSelector';\n } // check vendor prefixes\n\n\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n\n if (ElemProto[method]) {\n return method;\n }\n }\n }();\n\n return function matchesSelector(elem, selector) {\n return elem[matchesMethod](selector);\n };\n});","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%');\n\nif ($gOPD) {\n try {\n $gOPD([], 'length');\n } catch (e) {\n // IE 8 has a broken gOPD\n $gOPD = null;\n }\n}\n\nmodule.exports = $gOPD;","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n(function (global, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /* globals define, module, window */\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n})(typeof window != 'undefined' ? window : this, function () {\n \"use strict\";\n\n function EvEmitter() {}\n\n var proto = EvEmitter.prototype;\n\n proto.on = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // set events hash\n\n\n var events = this._events = this._events || {}; // set listeners array\n\n var listeners = events[eventName] = events[eventName] || []; // only add once\n\n if (listeners.indexOf(listener) == -1) {\n listeners.push(listener);\n }\n\n return this;\n };\n\n proto.once = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // add event\n\n\n this.on(eventName, listener); // set once flag\n // set onceEvents hash\n\n var onceEvents = this._onceEvents = this._onceEvents || {}; // set onceListeners object\n\n var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {}; // set flag\n\n onceListeners[listener] = true;\n return this;\n };\n\n proto.off = function (eventName, listener) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n }\n\n var index = listeners.indexOf(listener);\n\n if (index != -1) {\n listeners.splice(index, 1);\n }\n\n return this;\n };\n\n proto.emitEvent = function (eventName, args) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n } // copy over to avoid interference if .off() in listener\n\n\n listeners = listeners.slice(0);\n args = args || []; // once stuff\n\n var onceListeners = this._onceEvents && this._onceEvents[eventName];\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n var isOnce = onceListeners && onceListeners[listener];\n\n if (isOnce) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off(eventName, listener); // unset once flag\n\n delete onceListeners[listener];\n } // trigger listener\n\n\n listener.apply(this, args);\n }\n\n return this;\n };\n\n proto.allOff = function () {\n delete this._events;\n delete this._onceEvents;\n };\n\n return EvEmitter;\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'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter;\nmodule.exports.once = once; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // 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.\n\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = _getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0) return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n\n resolve([].slice.call(arguments));\n }\n\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, {\n once: true\n });\n\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, {\n once: true\n });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = {\n cmp: opts\n };\n var cycles = typeof opts.cycles === 'boolean' ? opts.cycles : false;\n\n var cmp = opts.cmp && function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = {\n key: a,\n value: node[a]\n };\n var bobj = {\n key: b,\n value: node[b]\n };\n return f(aobj, bobj);\n };\n };\n }(opts.cmp);\n\n var seen = [];\n return function stringify(node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n var i, out;\n\n if (Array.isArray(node)) {\n out = '[';\n\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n }(data);\n};","'use strict'; //parse Empty Node as self closing node\n\nvar buildOptions = require('./util').buildOptions;\n\nvar defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n format: false,\n indentBy: ' ',\n supressEmptyNode: false,\n tagValueProcessor: function tagValueProcessor(a) {\n return a;\n },\n attrValueProcessor: function attrValueProcessor(a) {\n return a;\n }\n};\nvar props = ['attributeNamePrefix', 'attrNodeName', 'textNodeName', 'ignoreAttributes', 'cdataTagName', 'cdataPositionChar', 'format', 'indentBy', 'supressEmptyNode', 'tagValueProcessor', 'attrValueProcessor'];\n\nfunction Parser(options) {\n this.options = buildOptions(options, defaultOptions, props);\n\n if (this.options.ignoreAttributes || this.options.attrNodeName) {\n this.isAttribute = function ()\n /*a*/\n {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n\n if (this.options.cdataTagName) {\n this.isCDATA = isCDATA;\n } else {\n this.isCDATA = function ()\n /*a*/\n {\n return false;\n };\n }\n\n this.replaceCDATAstr = replaceCDATAstr;\n this.replaceCDATAarr = replaceCDATAarr;\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function () {\n return '';\n };\n\n this.tagEndChar = '>';\n this.newLine = '';\n }\n\n if (this.options.supressEmptyNode) {\n this.buildTextNode = buildEmptyTextNode;\n this.buildObjNode = buildEmptyObjNode;\n } else {\n this.buildTextNode = buildTextValNode;\n this.buildObjNode = buildObjectNode;\n }\n\n this.buildTextValNode = buildTextValNode;\n this.buildObjectNode = buildObjectNode;\n}\n\nParser.prototype.parse = function (jObj) {\n return this.j2x(jObj, 0).val;\n};\n\nParser.prototype.j2x = function (jObj, level) {\n var attrStr = '';\n var val = '';\n var keys = Object.keys(jObj);\n var len = keys.length;\n\n for (var i = 0; i < len; i++) {\n var key = keys[i];\n\n if (typeof jObj[key] === 'undefined') {// supress undefined node\n } else if (jObj[key] === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n var attr = this.isAttribute(key);\n\n if (attr) {\n attrStr += ' ' + attr + '=\"' + this.options.attrValueProcessor('' + jObj[key]) + '\"';\n } else if (this.isCDATA(key)) {\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAstr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAstr('', jObj[key]);\n }\n } else {\n //tag value\n if (key === this.options.textNodeName) {\n if (jObj[this.options.cdataTagName]) {//value will added while processing cdata\n } else {\n val += this.options.tagValueProcessor('' + jObj[key]);\n }\n } else {\n val += this.buildTextNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n if (this.isCDATA(key)) {\n val += this.indentate(level);\n\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAarr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAarr('', jObj[key]);\n }\n } else {\n //nested nodes\n var arrLen = jObj[key].length;\n\n for (var j = 0; j < arrLen; j++) {\n var item = jObj[key][j];\n\n if (typeof item === 'undefined') {// supress undefined node\n } else if (item === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n var result = this.j2x(item, level + 1);\n val += this.buildObjNode(result.val, key, result.attrStr, level);\n } else {\n val += this.buildTextNode(item, key, '', level);\n }\n }\n }\n } else {\n //nested node\n if (this.options.attrNodeName && key === this.options.attrNodeName) {\n var Ks = Object.keys(jObj[key]);\n var L = Ks.length;\n\n for (var _j = 0; _j < L; _j++) {\n attrStr += ' ' + Ks[_j] + '=\"' + this.options.attrValueProcessor('' + jObj[key][Ks[_j]]) + '\"';\n }\n } else {\n var _result = this.j2x(jObj[key], level + 1);\n\n val += this.buildObjNode(_result.val, key, _result.attrStr, level);\n }\n }\n }\n\n return {\n attrStr: attrStr,\n val: val\n };\n};\n\nfunction replaceCDATAstr(str, cdata) {\n str = this.options.tagValueProcessor('' + str);\n\n if (this.options.cdataPositionChar === '' || str === '') {\n return str + '');\n }\n\n return str + this.newLine;\n }\n}\n\nfunction buildObjectNode(val, key, attrStr, level) {\n if (attrStr && !val.includes('<')) {\n return this.indentate(level) + '<' + key + attrStr + '>' + val + //+ this.newLine\n // + this.indentate(level)\n '' + this.options.tagValueProcessor(val) + ' 1) {\n jObj[tagName] = [];\n\n for (var tag in node.child[tagName]) {\n if (node.child[tagName].hasOwnProperty(tag)) {\n jObj[tagName].push(convertToJson(node.child[tagName][tag], options, tagName));\n }\n }\n } else {\n var result = convertToJson(node.child[tagName][0], options, tagName);\n\n var _asArray = options.arrayMode === true && typeof result === 'object' || util.isTagNameInArrayMode(tagName, options.arrayMode, parentTagName);\n\n jObj[tagName] = _asArray ? [result] : result;\n }\n } //add value\n\n\n return jObj;\n};\n\nexports.convertToJson = convertToJson;","'use strict';\n\nvar util = require('./util');\n\nvar buildOptions = require('./util').buildOptions;\n\nvar x2j = require('./xmlstr2xmlnode'); //TODO: do it later\n\n\nvar convertToJsonString = function convertToJsonString(node, options) {\n options = buildOptions(options, x2j.defaultOptions, x2j.props);\n options.indentBy = options.indentBy || '';\n return _cToJsonStr(node, options, 0);\n};\n\nvar _cToJsonStr = function _cToJsonStr(node, options, level) {\n var jObj = '{'; //traver through all the children\n\n var keys = Object.keys(node.child);\n\n for (var index = 0; index < keys.length; index++) {\n var tagname = keys[index];\n\n if (node.child[tagname] && node.child[tagname].length > 1) {\n jObj += '\"' + tagname + '\" : [ ';\n\n for (var tag in node.child[tagname]) {\n jObj += _cToJsonStr(node.child[tagname][tag], options) + ' , ';\n }\n\n jObj = jObj.substr(0, jObj.length - 1) + ' ] '; //remove extra comma in last\n } else {\n jObj += '\"' + tagname + '\" : ' + _cToJsonStr(node.child[tagname][0], options) + ' ,';\n }\n }\n\n util.merge(jObj, node.attrsMap); //add attrsMap as new children\n\n if (util.isEmptyObject(jObj)) {\n return util.isExist(node.val) ? node.val : '';\n } else {\n if (util.isExist(node.val)) {\n if (!(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {\n jObj += '\"' + options.textNodeName + '\" : ' + stringval(node.val);\n }\n }\n } //add value\n\n\n if (jObj[jObj.length - 1] === ',') {\n jObj = jObj.substr(0, jObj.length - 2);\n }\n\n return jObj + '}';\n};\n\nfunction stringval(v) {\n if (v === true || v === false || !isNaN(v)) {\n return v;\n } else {\n return '\"' + v + '\"';\n }\n}\n\nfunction indentate(options, level) {\n return options.indentBy.repeat(level);\n}\n\nexports.convertToJsonString = convertToJsonString;","'use strict';\n\nvar nodeToJson = require('./node2json');\n\nvar xmlToNodeobj = require('./xmlstr2xmlnode');\n\nvar x2xmlnode = require('./xmlstr2xmlnode');\n\nvar buildOptions = require('./util').buildOptions;\n\nvar validator = require('./validator');\n\nexports.parse = function (xmlData) {\n var givenOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var validationOption = arguments.length > 2 ? arguments[2] : undefined;\n\n if (validationOption) {\n if (validationOption === true) validationOption = {};\n var result = validator.validate(xmlData, validationOption);\n\n if (result !== true) {\n throw Error(result.err.msg);\n }\n }\n\n if (givenOptions.parseTrueNumberOnly && givenOptions.parseNodeValue !== false && !givenOptions.numParseOptions) {\n givenOptions.numParseOptions = {\n leadingZeros: false\n };\n }\n\n var options = buildOptions(givenOptions, x2xmlnode.defaultOptions, x2xmlnode.props);\n var traversableObj = xmlToNodeobj.getTraversalObj(xmlData, options); //print(traversableObj, \" \");\n\n return nodeToJson.convertToJson(traversableObj, options);\n};\n\nexports.convertTonimn = require('./nimndata').convert2nimn;\nexports.getTraversalObj = xmlToNodeobj.getTraversalObj;\nexports.convertToJson = nodeToJson.convertToJson;\nexports.convertToJsonString = require('./node2json_str').convertToJsonString;\nexports.validate = validator.validate;\nexports.j2xParser = require('./json2xml');\n\nexports.parseToNimn = function (xmlData, schema, options) {\n return exports.convertTonimn(exports.getTraversalObj(xmlData, options), schema, options);\n};\n\nfunction print(xmlNode, indentation) {\n if (xmlNode) {\n console.log(indentation + \"{\");\n console.log(indentation + \" \\\"tagName\\\": \\\"\" + xmlNode.tagname + \"\\\", \");\n\n if (xmlNode.parent) {\n console.log(indentation + \" \\\"parent\\\": \\\"\" + xmlNode.parent.tagname + \"\\\", \");\n }\n\n console.log(indentation + \" \\\"val\\\": \\\"\" + xmlNode.val + \"\\\", \");\n console.log(indentation + \" \\\"attrs\\\": \" + JSON.stringify(xmlNode.attrsMap, null, 4) + \", \");\n\n if (xmlNode.child) {\n console.log(indentation + \"\\\"child\\\": {\");\n var indentation2 = indentation + indentation;\n Object.keys(xmlNode.child).forEach(function (key) {\n var node = xmlNode.child[key];\n\n if (Array.isArray(node)) {\n console.log(indentation + \"\\\"\" + key + \"\\\" :[\");\n node.forEach(function (item, index) {\n //console.log(indentation + \" \\\"\"+index+\"\\\" : [\")\n print(item, indentation2);\n });\n console.log(indentation + \"],\");\n } else {\n console.log(indentation + \" \\\"\" + key + \"\\\" : {\");\n print(node, indentation2);\n console.log(indentation + \"},\");\n }\n });\n console.log(indentation + \"},\");\n }\n\n console.log(indentation + \"},\");\n }\n}","'use strict';\n\nvar nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\nvar nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';\nvar regexName = new RegExp('^' + nameRegexp + '$');\n\nvar getAllMatches = function getAllMatches(string, regex) {\n var matches = [];\n var match = regex.exec(string);\n\n while (match) {\n var allmatches = [];\n var len = match.length;\n\n for (var index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n\n matches.push(allmatches);\n match = regex.exec(string);\n }\n\n return matches;\n};\n\nvar isName = function isName(string) {\n var match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function (v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function (obj) {\n return Object.keys(obj).length === 0;\n};\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\n\n\nexports.merge = function (target, a, arrayMode) {\n if (a) {\n var keys = Object.keys(a); // will return an array of own properties\n\n var len = keys.length; //don't make it inline\n\n for (var i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [a[keys[i]]];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\n\nexports.getValue = function (v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n}; // const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\n\nexports.buildOptions = function (options, defaultOptions, props) {\n var newOptions = {};\n\n if (!options) {\n return defaultOptions; //if there are not options\n }\n\n for (var i = 0; i < props.length; i++) {\n if (options[props[i]] !== undefined) {\n newOptions[props[i]] = options[props[i]];\n } else {\n newOptions[props[i]] = defaultOptions[props[i]];\n }\n }\n\n return newOptions;\n};\n/**\n * Check if a tag name should be treated as array\n *\n * @param tagName the node tagname\n * @param arrayMode the array mode option\n * @param parentTagName the parent tag name\n * @returns {boolean} true if node should be parsed as array\n */\n\n\nexports.isTagNameInArrayMode = function (tagName, arrayMode, parentTagName) {\n if (arrayMode === false) {\n return false;\n } else if (arrayMode instanceof RegExp) {\n return arrayMode.test(tagName);\n } else if (typeof arrayMode === 'function') {\n return !!arrayMode(tagName, parentTagName);\n }\n\n return arrayMode === \"strict\";\n};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;","'use strict';\n\nvar util = require('./util');\n\nvar defaultOptions = {\n allowBooleanAttributes: false //A tag can have attributes without any value\n\n};\nvar props = ['allowBooleanAttributes']; //const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\n\nexports.validate = function (xmlData, options) {\n options = util.buildOptions(options, defaultOptions, props); //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n\n var tags = [];\n var tagFound = false; //indicates that the root tag has been closed (aka. depth 0 has been reached)\n\n var reachedRoot = false;\n\n if (xmlData[0] === \"\\uFEFF\") {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n\n for (var i = 0; i < xmlData.length; i++) {\n if (xmlData[i] === '<' && xmlData[i + 1] === '?') {\n i += 2;\n i = readPI(xmlData, i);\n if (i.err) return i;\n } else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n i++;\n\n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n var closingTag = false;\n\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n } //read tagname\n\n\n var tagName = '';\n\n for (; i < xmlData.length && xmlData[i] !== '>' && xmlData[i] !== ' ' && xmlData[i] !== '\\t' && xmlData[i] !== '\\n' && xmlData[i] !== '\\r'; i++) {\n tagName += xmlData[i];\n }\n\n tagName = tagName.trim(); //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1); //continue;\n\n i--;\n }\n\n if (!validateTagName(tagName)) {\n var msg = void 0;\n\n if (tagName.trim().length === 0) {\n msg = \"There is an unnecessary space between tag name and backward slash ' 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, i));\n } else {\n var otg = tags.pop();\n\n if (tagName !== otg) {\n return getErrorObject('InvalidTag', \"Closing tag '\" + otg + \"' is expected inplace of '\" + tagName + \"'.\", getLineNumberForPosition(xmlData, i));\n } //when there are no more tags, we reached the root level.\n\n\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n var _isValid = validateAttributeString(attrStr, options);\n\n if (_isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(_isValid.err.code, _isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + _isValid.err.line));\n } //if the root level has been reached before ...\n\n\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else {\n tags.push(tagName);\n }\n\n tagFound = true;\n } //skip tag text value\n //It may include comments and CDATA value\n\n\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i + 1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else {\n break;\n }\n } else if (xmlData[i] === '&') {\n var afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1) return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }\n } //end of reading tag text value\n\n\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if (xmlData[i] === ' ' || xmlData[i] === '\\t' || xmlData[i] === '\\n' || xmlData[i] === '\\r') {\n continue;\n }\n\n return getErrorObject('InvalidChar', \"char '\" + xmlData[i] + \"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n } else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\" + JSON.stringify(tags, null, 4).replace(/\\r?\\n/g, '') + \"' found.\", 1);\n }\n\n return true;\n};\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\n\n\nfunction readPI(xmlData, i) {\n var start = i;\n\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n var tagname = xmlData.substr(start, i - start);\n\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (xmlData.length > i + 8 && xmlData[i + 1] === 'D' && xmlData[i + 2] === 'O' && xmlData[i + 3] === 'C' && xmlData[i + 4] === 'T' && xmlData[i + 5] === 'Y' && xmlData[i + 6] === 'P' && xmlData[i + 7] === 'E') {\n var angleBracketsCount = 1;\n\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (xmlData.length > i + 9 && xmlData[i + 1] === '[' && xmlData[i + 2] === 'C' && xmlData[i + 3] === 'D' && xmlData[i + 4] === 'A' && xmlData[i + 5] === 'T' && xmlData[i + 6] === 'A' && xmlData[i + 7] === '[') {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nvar doubleQuote = '\"';\nvar singleQuote = \"'\";\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\n\nfunction readAttributeStr(xmlData, i) {\n var attrStr = '';\n var startChar = '';\n var tagClosed = false;\n\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n continue;\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n\n attrStr += xmlData[i];\n }\n\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n/**\n * Select all the attributes whether valid or invalid.\n */\n\n\nvar validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g'); //attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n //if(attrStr.trim().length === 0) return true; //empty string\n var matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n var attrNames = {};\n\n for (var i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\" + matches[i][2] + \"' has no space in starting.\", getPositionFromMatch(attrStr, matches[i][0]));\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\" + matches[i][2] + \"' is not allowed.\", getPositionFromMatch(attrStr, matches[i][0]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n\n\n var attrName = matches[i][2];\n\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(attrStr, matches[i][0]));\n }\n\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(attrStr, matches[i][0]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n var re = /\\d/;\n\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';') return i;\n if (!xmlData[i].match(re)) break;\n }\n\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';') return -1;\n\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n\n var count = 0;\n\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20) continue;\n if (xmlData[i] === ';') break;\n return -1;\n }\n\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber\n }\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n} // const startsWithXML = /^xml/i;\n\n\nfunction validateTagName(tagname) {\n return util.isName(tagname)\n /* && !tagname.match(startsWithXML) */\n ;\n} //this function returns the line number for the character at the given index\n\n\nfunction getLineNumberForPosition(xmlData, index) {\n var lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return lines.length;\n} //this function returns the position of the last character of match within attrStr\n\n\nfunction getPositionFromMatch(attrStr, match) {\n return attrStr.indexOf(match) + match.length;\n}","'use strict';\n\nmodule.exports = function (tagname, parent, val) {\n this.tagname = tagname;\n this.parent = parent;\n this.child = {}; //child tags\n\n this.attrsMap = {}; //attributes map\n\n this.val = val; //text only\n\n this.addChild = function (child) {\n if (Array.isArray(this.child[child.tagname])) {\n //already presents\n this.child[child.tagname].push(child);\n } else {\n this.child[child.tagname] = [child];\n }\n };\n};","'use strict';\n\nvar util = require('./util');\n\nvar buildOptions = require('./util').buildOptions;\n\nvar xmlNode = require('./xmlNode');\n\nvar toNumber = require(\"strnum\");\n\nvar regx = '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'.replace(/NAME/g, util.nameRegexp); //const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n//polyfill\n\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\n\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\nvar defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n ignoreNameSpace: false,\n allowBooleanAttributes: false,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseNodeValue: true,\n parseAttributeValue: false,\n arrayMode: false,\n trimValues: true,\n //Trim string values of tag and attributes\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n numParseOptions: {\n hex: true,\n leadingZeros: true\n },\n tagValueProcessor: function tagValueProcessor(a, tagName) {\n return a;\n },\n attrValueProcessor: function attrValueProcessor(a, attrName) {\n return a;\n },\n stopNodes: [] //decodeStrict: false,\n\n};\nexports.defaultOptions = defaultOptions;\nvar props = ['attributeNamePrefix', 'attrNodeName', 'textNodeName', 'ignoreAttributes', 'ignoreNameSpace', 'allowBooleanAttributes', 'parseNodeValue', 'parseAttributeValue', 'arrayMode', 'trimValues', 'cdataTagName', 'cdataPositionChar', 'tagValueProcessor', 'attrValueProcessor', 'parseTrueNumberOnly', 'numParseOptions', 'stopNodes'];\nexports.props = props;\n/**\n * Trim -> valueProcessor -> parse value\n * @param {string} tagName\n * @param {string} val\n * @param {object} options\n */\n\nfunction processTagValue(tagName, val, options) {\n if (val) {\n if (options.trimValues) {\n val = val.trim();\n }\n\n val = options.tagValueProcessor(val, tagName);\n val = parseValue(val, options.parseNodeValue, options.numParseOptions);\n }\n\n return val;\n}\n\nfunction resolveNameSpace(tagname, options) {\n if (options.ignoreNameSpace) {\n var tags = tagname.split(':');\n var prefix = tagname.charAt(0) === '/' ? '/' : '';\n\n if (tags[0] === 'xmlns') {\n return '';\n }\n\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n\n return tagname;\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n var newval = val.trim();\n if (newval === 'true') return true;else if (newval === 'false') return false;else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n} //TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\n\n\nvar attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])(.*?)\\\\3)?', 'g');\n\nfunction buildAttributesMap(attrStr, options) {\n if (!options.ignoreAttributes && typeof attrStr === 'string') {\n attrStr = attrStr.replace(/\\r?\\n/g, ' '); //attrStr = attrStr || attrStr.trim();\n\n var matches = util.getAllMatches(attrStr, attrsRegx);\n var len = matches.length; //don't make it inline\n\n var attrs = {};\n\n for (var i = 0; i < len; i++) {\n var attrName = resolveNameSpace(matches[i][1], options);\n\n if (attrName.length) {\n if (matches[i][4] !== undefined) {\n if (options.trimValues) {\n matches[i][4] = matches[i][4].trim();\n }\n\n matches[i][4] = options.attrValueProcessor(matches[i][4], attrName);\n attrs[options.attributeNamePrefix + attrName] = parseValue(matches[i][4], options.parseAttributeValue, options.numParseOptions);\n } else if (options.allowBooleanAttributes) {\n attrs[options.attributeNamePrefix + attrName] = true;\n }\n }\n }\n\n if (!Object.keys(attrs).length) {\n return;\n }\n\n if (options.attrNodeName) {\n var attrCollection = {};\n attrCollection[options.attrNodeName] = attrs;\n return attrCollection;\n }\n\n return attrs;\n }\n}\n\nvar getTraversalObj = function getTraversalObj(xmlData, options) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n options = buildOptions(options, defaultOptions, props);\n var xmlObj = new xmlNode('!xml');\n var currentNode = xmlObj;\n var textData = \"\"; //function match(xmlData){\n\n for (var i = 0; i < xmlData.length; i++) {\n var ch = xmlData[i];\n\n if (ch === '<') {\n if (xmlData[i + 1] === '/') {\n //Closing Tag\n var closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\");\n var tagName = xmlData.substring(i + 2, closeIndex).trim();\n\n if (options.ignoreNameSpace) {\n var colonIndex = tagName.indexOf(\":\");\n\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n /* if (currentNode.parent) {\n currentNode.parent.val = util.getValue(currentNode.parent.val) + '' + processTagValue2(tagName, textData , options);\n } */\n\n\n if (currentNode) {\n if (currentNode.val) {\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(tagName, textData, options);\n } else {\n currentNode.val = processTagValue(tagName, textData, options);\n }\n }\n\n if (options.stopNodes.length && options.stopNodes.includes(currentNode.tagname)) {\n currentNode.child = [];\n\n if (currentNode.attrsMap == undefined) {\n currentNode.attrsMap = {};\n }\n\n currentNode.val = xmlData.substr(currentNode.startIndex + 1, i - currentNode.startIndex - 1);\n }\n\n currentNode = currentNode.parent;\n textData = \"\";\n i = closeIndex;\n } else if (xmlData[i + 1] === '?') {\n i = findClosingIndex(xmlData, \"?>\", i, \"Pi Tag is not closed.\");\n } else if (xmlData.substr(i + 1, 3) === '!--') {\n i = findClosingIndex(xmlData, \"-->\", i, \"Comment is not closed.\");\n } else if (xmlData.substr(i + 1, 2) === '!D') {\n var _closeIndex = findClosingIndex(xmlData, \">\", i, \"DOCTYPE is not closed.\");\n\n var tagExp = xmlData.substring(i, _closeIndex);\n\n if (tagExp.indexOf(\"[\") >= 0) {\n i = xmlData.indexOf(\"]>\", i) + 1;\n } else {\n i = _closeIndex;\n }\n } else if (xmlData.substr(i + 1, 2) === '![') {\n var _closeIndex2 = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n\n var _tagExp = xmlData.substring(i + 9, _closeIndex2); //considerations\n //1. CDATA will always have parent node\n //2. A tag with CDATA is not a leaf node so it's value would be string type.\n\n\n if (textData) {\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(currentNode.tagname, textData, options);\n textData = \"\";\n }\n\n if (options.cdataTagName) {\n //add cdata node\n var childNode = new xmlNode(options.cdataTagName, currentNode, _tagExp);\n currentNode.addChild(childNode); //for backtracking\n\n currentNode.val = util.getValue(currentNode.val) + options.cdataPositionChar; //add rest value to parent node\n\n if (_tagExp) {\n childNode.val = _tagExp;\n }\n } else {\n currentNode.val = (currentNode.val || '') + (_tagExp || '');\n }\n\n i = _closeIndex2 + 2;\n } else {\n //Opening tag\n var result = closingIndexForOpeningTag(xmlData, i + 1);\n var _tagExp2 = result.data;\n var _closeIndex3 = result.index;\n\n var separatorIndex = _tagExp2.indexOf(\" \");\n\n var _tagName = _tagExp2;\n var shouldBuildAttributesMap = true;\n\n if (separatorIndex !== -1) {\n _tagName = _tagExp2.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n _tagExp2 = _tagExp2.substr(separatorIndex + 1);\n }\n\n if (options.ignoreNameSpace) {\n var _colonIndex = _tagName.indexOf(\":\");\n\n if (_colonIndex !== -1) {\n _tagName = _tagName.substr(_colonIndex + 1);\n shouldBuildAttributesMap = _tagName !== result.data.substr(_colonIndex + 1);\n }\n } //save text to parent node\n\n\n if (currentNode && textData) {\n if (currentNode.tagname !== '!xml') {\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(currentNode.tagname, textData, options);\n }\n }\n\n if (_tagExp2.length > 0 && _tagExp2.lastIndexOf(\"/\") === _tagExp2.length - 1) {\n //selfClosing tag\n if (_tagName[_tagName.length - 1] === \"/\") {\n //remove trailing '/'\n _tagName = _tagName.substr(0, _tagName.length - 1);\n _tagExp2 = _tagName;\n } else {\n _tagExp2 = _tagExp2.substr(0, _tagExp2.length - 1);\n }\n\n var _childNode = new xmlNode(_tagName, currentNode, '');\n\n if (_tagName !== _tagExp2) {\n _childNode.attrsMap = buildAttributesMap(_tagExp2, options);\n }\n\n currentNode.addChild(_childNode);\n } else {\n //opening tag\n var _childNode2 = new xmlNode(_tagName, currentNode);\n\n if (options.stopNodes.length && options.stopNodes.includes(_childNode2.tagname)) {\n _childNode2.startIndex = _closeIndex3;\n }\n\n if (_tagName !== _tagExp2 && shouldBuildAttributesMap) {\n _childNode2.attrsMap = buildAttributesMap(_tagExp2, options);\n }\n\n currentNode.addChild(_childNode2);\n currentNode = _childNode2;\n }\n\n textData = \"\";\n i = _closeIndex3;\n }\n } else {\n textData += xmlData[i];\n }\n }\n\n return xmlObj;\n};\n\nfunction closingIndexForOpeningTag(data, i) {\n var attrBoundary;\n var tagExp = \"\";\n\n for (var index = i; index < data.length; index++) {\n var ch = data[index];\n\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\"; //reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === '>') {\n return {\n data: tagExp,\n index: index\n };\n } else if (ch === '\\t') {\n ch = \" \";\n }\n\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg) {\n var closingIndex = xmlData.indexOf(str, i);\n\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n}\n\nexports.getTraversalObj = getTraversalObj;","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /*jshint strict: false */\n\n /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['desandro-matches-selector/matches-selector'], function (matchesSelector) {\n return factory(window, matchesSelector);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('desandro-matches-selector'));\n } else {\n // browser global\n window.fizzyUIUtils = factory(window, window.matchesSelector);\n }\n})(window, function factory(window, matchesSelector) {\n 'use strict';\n\n var utils = {}; // ----- extend ----- //\n // extends objects\n\n utils.extend = function (a, b) {\n for (var prop in b) {\n a[prop] = b[prop];\n }\n\n return a;\n }; // ----- modulo ----- //\n\n\n utils.modulo = function (num, div) {\n return (num % div + div) % div;\n }; // ----- makeArray ----- //\n\n\n var arraySlice = Array.prototype.slice; // turn element or nodeList into an array\n\n utils.makeArray = function (obj) {\n if (Array.isArray(obj)) {\n // use object if already an array\n return obj;\n } // return empty array if undefined or null. #6\n\n\n if (obj === null || obj === undefined) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n\n if (isArrayLike) {\n // convert nodeList to array\n return arraySlice.call(obj);\n } // array of single index\n\n\n return [obj];\n }; // ----- removeFrom ----- //\n\n\n utils.removeFrom = function (ary, obj) {\n var index = ary.indexOf(obj);\n\n if (index != -1) {\n ary.splice(index, 1);\n }\n }; // ----- getParent ----- //\n\n\n utils.getParent = function (elem, selector) {\n while (elem.parentNode && elem != document.body) {\n elem = elem.parentNode;\n\n if (matchesSelector(elem, selector)) {\n return elem;\n }\n }\n }; // ----- getQueryElement ----- //\n // use element as selector string\n\n\n utils.getQueryElement = function (elem) {\n if (typeof elem == 'string') {\n return document.querySelector(elem);\n }\n\n return elem;\n }; // ----- handleEvent ----- //\n // enable .ontype to trigger from .addEventListener( elem, 'type' )\n\n\n utils.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n }; // ----- filterFindElements ----- //\n\n\n utils.filterFindElements = function (elems, selector) {\n // make array of elems\n elems = utils.makeArray(elems);\n var ffElems = [];\n elems.forEach(function (elem) {\n // check that elem is an actual element\n if (!(elem instanceof HTMLElement)) {\n return;\n } // add elem if no selector\n\n\n if (!selector) {\n ffElems.push(elem);\n return;\n } // filter & find items if we have a selector\n // filter\n\n\n if (matchesSelector(elem, selector)) {\n ffElems.push(elem);\n } // find children\n\n\n var childElems = elem.querySelectorAll(selector); // concat childElems to filterFound array\n\n for (var i = 0; i < childElems.length; i++) {\n ffElems.push(childElems[i]);\n }\n });\n return ffElems;\n }; // ----- debounceMethod ----- //\n\n\n utils.debounceMethod = function (_class, methodName, threshold) {\n threshold = threshold || 100; // original method\n\n var method = _class.prototype[methodName];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[methodName] = function () {\n var timeout = this[timeoutName];\n clearTimeout(timeout);\n var args = arguments;\n\n var _this = this;\n\n this[timeoutName] = setTimeout(function () {\n method.apply(_this, args);\n delete _this[timeoutName];\n }, threshold);\n };\n }; // ----- docReady ----- //\n\n\n utils.docReady = function (callback) {\n var readyState = document.readyState;\n\n if (readyState == 'complete' || readyState == 'interactive') {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout(callback);\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n }; // ----- htmlInit ----- //\n // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\n\n\n utils.toDashed = function (str) {\n return str.replace(/(.)([A-Z])/g, function (match, $1, $2) {\n return $1 + '-' + $2;\n }).toLowerCase();\n };\n\n var console = window.console;\n /**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\n\n utils.htmlInit = function (WidgetClass, namespace) {\n utils.docReady(function () {\n var dashedNamespace = utils.toDashed(namespace);\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll('[' + dataAttr + ']');\n var jsDashElems = document.querySelectorAll('.js-' + dashedNamespace);\n var elems = utils.makeArray(dataAttrElems).concat(utils.makeArray(jsDashElems));\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n elems.forEach(function (elem) {\n var attr = elem.getAttribute(dataAttr) || elem.getAttribute(dataOptionsAttr);\n var options;\n\n try {\n options = attr && JSON.parse(attr);\n } catch (error) {\n // log error, do not initialize\n if (console) {\n console.error('Error parsing ' + dataAttr + ' on ' + elem.className + ': ' + error);\n }\n\n return;\n } // initialize\n\n\n var instance = new WidgetClass(elem, options); // make available via $().data('namespace')\n\n if (jQuery) {\n jQuery.data(elem, namespace, instance);\n }\n });\n });\n }; // ----- ----- //\n\n\n return utils;\n});","// add, remove cell\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'fizzy-ui-utils/utils'], function (Flickity, utils) {\n return factory(window, Flickity, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, utils) {\n 'use strict'; // append cells to a document fragment\n\n function getCellsFragment(cells) {\n var fragment = document.createDocumentFragment();\n cells.forEach(function (cell) {\n fragment.appendChild(cell.element);\n });\n return fragment;\n } // -------------------------- add/remove cell prototype -------------------------- //\n\n\n var proto = Flickity.prototype;\n /**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\n\n proto.insert = function (elems, index) {\n var cells = this._makeCells(elems);\n\n if (!cells || !cells.length) {\n return;\n }\n\n var len = this.cells.length; // default to append\n\n index = index === undefined ? len : index; // add cells with document fragment\n\n var fragment = getCellsFragment(cells); // append to slider\n\n var isAppend = index == len;\n\n if (isAppend) {\n this.slider.appendChild(fragment);\n } else {\n var insertCellElement = this.cells[index].element;\n this.slider.insertBefore(fragment, insertCellElement);\n } // add to this.cells\n\n\n if (index === 0) {\n // prepend, add to start\n this.cells = cells.concat(this.cells);\n } else if (isAppend) {\n // append, add to end\n this.cells = this.cells.concat(cells);\n } else {\n // insert in this.cells\n var endCells = this.cells.splice(index, len - index);\n this.cells = this.cells.concat(cells).concat(endCells);\n }\n\n this._sizeCells(cells);\n\n this.cellChange(index, true);\n };\n\n proto.append = function (elems) {\n this.insert(elems, this.cells.length);\n };\n\n proto.prepend = function (elems) {\n this.insert(elems, 0);\n };\n /**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\n\n\n proto.remove = function (elems) {\n var cells = this.getCells(elems);\n\n if (!cells || !cells.length) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1; // remove cells from collection & DOM\n\n cells.forEach(function (cell) {\n cell.remove();\n var index = this.cells.indexOf(cell);\n minCellIndex = Math.min(index, minCellIndex);\n utils.removeFrom(this.cells, cell);\n }, this);\n this.cellChange(minCellIndex, true);\n };\n /**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\n\n\n proto.cellSizeChange = function (elem) {\n var cell = this.getCell(elem);\n\n if (!cell) {\n return;\n }\n\n cell.getSize();\n var index = this.cells.indexOf(cell);\n this.cellChange(index);\n };\n /**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\n\n\n proto.cellChange = function (changedCellIndex, isPositioningSlider) {\n var prevSelectedElem = this.selectedElement;\n\n this._positionCells(changedCellIndex);\n\n this._getWrapShiftCells();\n\n this.setGallerySize(); // update selectedIndex\n // try to maintain position & select previous selected element\n\n var cell = this.getCell(prevSelectedElem);\n\n if (cell) {\n this.selectedIndex = this.getCellSlideIndex(cell);\n }\n\n this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex);\n this.emitEvent('cellChange', [changedCellIndex]); // position slider\n\n this.select(this.selectedIndex); // do not position slider after lazy load\n\n if (isPositioningSlider) {\n this.positionSliderAtSelected();\n }\n }; // ----- ----- //\n\n\n return Flickity;\n});","// animate\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['fizzy-ui-utils/utils'], function (utils) {\n return factory(window, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('fizzy-ui-utils'));\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(window, window.fizzyUIUtils);\n }\n})(window, function factory(window, utils) {\n 'use strict'; // -------------------------- animate -------------------------- //\n\n var proto = {};\n\n proto.startAnimation = function () {\n if (this.isAnimating) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n };\n\n proto.animate = function () {\n this.applyDragForce();\n this.applySelectedAttraction();\n var previousX = this.x;\n this.integratePhysics();\n this.positionSlider();\n this.settle(previousX); // animate next frame\n\n if (this.isAnimating) {\n var _this = this;\n\n requestAnimationFrame(function animateFrame() {\n _this.animate();\n });\n }\n };\n\n proto.positionSlider = function () {\n var x = this.x; // wrap position around\n\n if (this.options.wrapAround && this.cells.length > 1) {\n x = utils.modulo(x, this.slideableWidth);\n x -= this.slideableWidth;\n this.shiftWrapCells(x);\n }\n\n this.setTranslateX(x, this.isAnimating);\n this.dispatchScrollEvent();\n };\n\n proto.setTranslateX = function (x, is3d) {\n x += this.cursorPosition; // reverse if right-to-left and using transform\n\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue(x); // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n\n this.slider.style.transform = is3d ? 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n };\n\n proto.dispatchScrollEvent = function () {\n var firstSlide = this.slides[0];\n\n if (!firstSlide) {\n return;\n }\n\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent('scroll', null, [progress, positionX]);\n };\n\n proto.positionSliderAtSelected = function () {\n if (!this.cells.length) {\n return;\n }\n\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n\n this.positionSlider();\n };\n\n proto.getPositionValue = function (position) {\n if (this.options.percentPosition) {\n // percent position, round to 2 digits, like 12.34%\n return Math.round(position / this.size.innerWidth * 10000) * 0.01 + '%';\n } else {\n // pixel positioning\n return Math.round(position) + 'px';\n }\n };\n\n proto.settle = function (previousX) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown && Math.round(this.x * 100) == Math.round(previousX * 100);\n\n if (isResting) {\n this.restingFrames++;\n } // stop animating if resting for 3 or more frames\n\n\n if (this.restingFrames > 2) {\n this.isAnimating = false;\n delete this.isFreeScrolling; // render position with translateX when settled\n\n this.positionSlider();\n this.dispatchEvent('settle', null, [this.selectedIndex]);\n }\n };\n\n proto.shiftWrapCells = function (x) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n\n this._shiftCells(this.beforeShiftCells, beforeGap, -1); // shift after cells\n\n\n var afterGap = this.size.innerWidth - (x + this.slideableWidth + this.cursorPosition);\n\n this._shiftCells(this.afterShiftCells, afterGap, 1);\n };\n\n proto._shiftCells = function (cells, gap, shift) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift(cellShift);\n gap -= cell.size.outerWidth;\n }\n };\n\n proto._unshiftCells = function (cells) {\n if (!cells || !cells.length) {\n return;\n }\n\n for (var i = 0; i < cells.length; i++) {\n cells[i].wrapShift(0);\n }\n }; // -------------------------- physics -------------------------- //\n\n\n proto.integratePhysics = function () {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n };\n\n proto.applyForce = function (force) {\n this.velocity += force;\n };\n\n proto.getFrictionFactor = function () {\n return 1 - this.options[this.isFreeScrolling ? 'freeScrollFriction' : 'friction'];\n };\n\n proto.getRestingPosition = function () {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / (1 - this.getFrictionFactor());\n };\n\n proto.applyDragForce = function () {\n if (!this.isDraggable || !this.isPointerDown) {\n return;\n } // change the position to drag position by applying force\n\n\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce(dragForce);\n };\n\n proto.applySelectedAttraction = function () {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n\n if (dragDown || this.isFreeScrolling || !this.slides.length) {\n return;\n }\n\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce(force);\n };\n\n return proto;\n});","// Flickity.Cell\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['get-size/get-size'], function (getSize) {\n return factory(window, getSize);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('get-size'));\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(window, window.getSize);\n }\n})(window, function factory(window, getSize) {\n 'use strict';\n\n function Cell(elem, parent) {\n this.element = elem;\n this.parent = parent;\n this.create();\n }\n\n var proto = Cell.prototype;\n\n proto.create = function () {\n this.element.style.position = 'absolute';\n this.element.setAttribute('aria-hidden', 'true');\n this.x = 0;\n this.shift = 0;\n };\n\n proto.destroy = function () {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[side] = '';\n this.element.removeAttribute('aria-hidden');\n };\n\n proto.getSize = function () {\n this.size = getSize(this.element);\n };\n\n proto.setPosition = function (x) {\n this.x = x;\n this.updateTarget();\n this.renderPosition(x);\n }; // setDefaultTarget v1 method, backwards compatibility, remove in v3\n\n\n proto.updateTarget = proto.setDefaultTarget = function () {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[marginProperty] + this.size.width * this.parent.cellAlign;\n };\n\n proto.renderPosition = function (x) {\n // render position of cell with in slider\n var side = this.parent.originSide;\n this.element.style[side] = this.parent.getPositionValue(x);\n };\n\n proto.select = function () {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n };\n\n proto.unselect = function () {\n this.element.classList.remove('is-selected');\n this.element.setAttribute('aria-hidden', 'true');\n };\n /**\n * @param {Integer} shift - 0, 1, or -1\n */\n\n\n proto.wrapShift = function (shift) {\n this.shift = shift;\n this.renderPosition(this.x + this.parent.slideableWidth * shift);\n };\n\n proto.remove = function () {\n this.element.parentNode.removeChild(this.element);\n };\n\n return Cell;\n});","// drag\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'unidragger/unidragger', 'fizzy-ui-utils/utils'], function (Flickity, Unidragger, utils) {\n return factory(window, Flickity, Unidragger, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('unidragger'), require('fizzy-ui-utils'));\n } else {\n // browser global\n window.Flickity = factory(window, window.Flickity, window.Unidragger, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, Unidragger, utils) {\n 'use strict'; // ----- defaults ----- //\n\n utils.extend(Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3\n }); // ----- create ----- //\n\n Flickity.createMethods.push('_createDrag'); // -------------------------- drag prototype -------------------------- //\n\n var proto = Flickity.prototype;\n utils.extend(proto, Unidragger.prototype);\n proto._touchActionValue = 'pan-y'; // -------------------------- -------------------------- //\n\n var isTouch = ('createTouch' in document);\n var isTouchmoveScrollCanceled = false;\n\n proto._createDrag = function () {\n this.on('activate', this.onActivateDrag);\n this.on('uiChange', this._uiChangeDrag);\n this.on('deactivate', this.onDeactivateDrag);\n this.on('cellChange', this.updateDraggable); // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n\n if (isTouch && !isTouchmoveScrollCanceled) {\n window.addEventListener('touchmove', function () {});\n isTouchmoveScrollCanceled = true;\n }\n };\n\n proto.onActivateDrag = function () {\n this.handles = [this.viewport];\n this.bindHandles();\n this.updateDraggable();\n };\n\n proto.onDeactivateDrag = function () {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n };\n\n proto.updateDraggable = function () {\n // disable dragging if less than 2 slides. #278\n if (this.options.draggable == '>1') {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n\n if (this.isDraggable) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n }; // backwards compatibility\n\n\n proto.bindDrag = function () {\n this.options.draggable = true;\n this.updateDraggable();\n };\n\n proto.unbindDrag = function () {\n this.options.draggable = false;\n this.updateDraggable();\n };\n\n proto._uiChangeDrag = function () {\n delete this.isFreeScrolling;\n }; // -------------------------- pointer events -------------------------- //\n\n\n proto.pointerDown = function (event, pointer) {\n if (!this.isDraggable) {\n this._pointerDownDefault(event, pointer);\n\n return;\n }\n\n var isOkay = this.okayPointerDown(event);\n\n if (!isOkay) {\n return;\n }\n\n this._pointerDownPreventDefault(event);\n\n this.pointerDownFocus(event); // blur\n\n if (document.activeElement != this.element) {\n // do not blur if already focused\n this.pointerDownBlur();\n } // stop if it was moving\n\n\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down'); // track scrolling\n\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener('scroll', this);\n\n this._pointerDownDefault(event, pointer);\n }; // default pointerDown logic, used for staticClick\n\n\n proto._pointerDownDefault = function (event, pointer) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY\n }; // bind move and end events\n\n this._bindPostStartEvents(event);\n\n this.dispatchEvent('pointerDown', event, [pointer]);\n };\n\n var focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true\n };\n\n proto.pointerDownFocus = function (event) {\n var isFocusNode = focusNodes[event.target.nodeName];\n\n if (!isFocusNode) {\n this.focus();\n }\n };\n\n proto._pointerDownPreventDefault = function (event) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[event.target.nodeName];\n\n if (!isTouchStart && !isTouchPointer && !isFocusNode) {\n event.preventDefault();\n }\n }; // ----- move ----- //\n\n\n proto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > this.options.dragThreshold;\n }; // ----- up ----- //\n\n\n proto.pointerUp = function (event, pointer) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent('pointerUp', event, [pointer]);\n\n this._dragPointerUp(event, pointer);\n };\n\n proto.pointerDone = function () {\n window.removeEventListener('scroll', this);\n delete this.pointerDownScroll;\n }; // -------------------------- dragging -------------------------- //\n\n\n proto.dragStart = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener('scroll', this);\n this.dispatchEvent('dragStart', event, [pointer]);\n };\n\n proto.pointerMove = function (event, pointer) {\n var moveVector = this._dragPointerMove(event, pointer);\n\n this.dispatchEvent('pointerMove', event, [pointer, moveVector]);\n\n this._dragMove(event, pointer, moveVector);\n };\n\n proto.dragMove = function (event, pointer, moveVector) {\n if (!this.isDraggable) {\n return;\n }\n\n event.preventDefault();\n this.previousDragX = this.dragX; // reverse if right-to-left\n\n var direction = this.options.rightToLeft ? -1 : 1;\n\n if (this.options.wrapAround) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\n }\n\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if (!this.options.wrapAround && this.slides.length) {\n // slow drag\n var originBound = Math.max(-this.slides[0].target, this.dragStartPosition);\n dragX = dragX > originBound ? (dragX + originBound) * 0.5 : dragX;\n var endBound = Math.min(-this.getLastSlide().target, this.dragStartPosition);\n dragX = dragX < endBound ? (dragX + endBound) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n this.dragMoveTime = new Date();\n this.dispatchEvent('dragMove', event, [pointer, moveVector]);\n };\n\n proto.dragEnd = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n\n if (this.options.freeScroll) {\n this.isFreeScrolling = true;\n } // set selectedIndex based on where flick will end up\n\n\n var index = this.dragEndRestingSelect();\n\n if (this.options.freeScroll && !this.options.wrapAround) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target && -restingX < this.getLastSlide().target;\n } else if (!this.options.freeScroll && index == this.selectedIndex) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n\n delete this.previousDragX; // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n\n this.isDragSelect = this.options.wrapAround;\n this.select(index);\n delete this.isDragSelect;\n this.dispatchEvent('dragEnd', event, [pointer]);\n };\n\n proto.dragEndRestingSelect = function () {\n var restingX = this.getRestingPosition(); // how far away from selected slide\n\n var distance = Math.abs(this.getSlideDistance(-restingX, this.selectedIndex)); // get closet resting going up and going down\n\n var positiveResting = this._getClosestResting(restingX, distance, 1);\n\n var negativeResting = this._getClosestResting(restingX, distance, -1); // use closer resting for wrap-around\n\n\n var index = positiveResting.distance < negativeResting.distance ? positiveResting.index : negativeResting.index;\n return index;\n };\n /**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\n\n\n proto._getClosestResting = function (restingX, distance, increment) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ? // if contain, keep going if distance is equal to minDistance\n function (dist, minDist) {\n return dist <= minDist;\n } : function (dist, minDist) {\n return dist < minDist;\n };\n\n while (condition(distance, minDistance)) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance(-restingX, index);\n\n if (distance === null) {\n break;\n }\n\n distance = Math.abs(distance);\n }\n\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment\n };\n };\n /**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\n\n\n proto.getSlideDistance = function (x, index) {\n var len = this.slides.length; // wrap around if at least 2 slides\n\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo(index, len) : index;\n var slide = this.slides[slideIndex];\n\n if (!slide) {\n return null;\n } // add distance for wrap-around slides\n\n\n var wrap = isWrapAround ? this.slideableWidth * Math.floor(index / len) : 0;\n return x - (slide.target + wrap);\n };\n\n proto.dragEndBoostSelect = function () {\n // do not boost if no previousDragX or dragMoveTime\n if (this.previousDragX === undefined || !this.dragMoveTime || // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100) {\n return 0;\n }\n\n var distance = this.getSlideDistance(-this.dragX, this.selectedIndex);\n var delta = this.previousDragX - this.dragX;\n\n if (distance > 0 && delta > 0) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if (distance < 0 && delta < 0) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n\n return 0;\n }; // ----- staticClick ----- //\n\n\n proto.staticClick = function (event, pointer) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell(event.target);\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf(clickedCell);\n this.dispatchEvent('staticClick', event, [pointer, cellElem, cellIndex]);\n }; // ----- scroll ----- //\n\n\n proto.onscroll = function () {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y; // cancel click/tap if scroll is too much\n\n if (Math.abs(scrollMoveX) > 3 || Math.abs(scrollMoveY) > 3) {\n this._pointerDone();\n }\n }; // ----- utils ----- //\n\n\n function getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n } // ----- ----- //\n\n\n return Flickity;\n});","// Flickity main\n\n/* eslint-disable max-params */\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter', 'get-size/get-size', 'fizzy-ui-utils/utils', './cell', './slide', './animate'], function (EvEmitter, getSize, utils, Cell, Slide, animatePrototype) {\n return factory(window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('ev-emitter'), require('get-size'), require('fizzy-ui-utils'), require('./cell'), require('./slide'), require('./animate'));\n } else {\n // browser global\n var _Flickity = window.Flickity;\n window.Flickity = factory(window, window.EvEmitter, window.getSize, window.fizzyUIUtils, _Flickity.Cell, _Flickity.Slide, _Flickity.animatePrototype);\n }\n})(window, function factory(window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype) {\n /* eslint-enable max-params */\n 'use strict'; // vars\n\n var jQuery = window.jQuery;\n var getComputedStyle = window.getComputedStyle;\n var console = window.console;\n\n function moveElements(elems, toElem) {\n elems = utils.makeArray(elems);\n\n while (elems.length) {\n toElem.appendChild(elems.shift());\n }\n } // -------------------------- Flickity -------------------------- //\n // globally unique identifiers\n\n\n var GUID = 0; // internal store of all Flickity intances\n\n var instances = {};\n\n function Flickity(element, options) {\n var queryElement = utils.getQueryElement(element);\n\n if (!queryElement) {\n if (console) {\n console.error('Bad element for Flickity: ' + (queryElement || element));\n }\n\n return;\n }\n\n this.element = queryElement; // do not initialize twice on same element\n\n if (this.element.flickityGUID) {\n var instance = instances[this.element.flickityGUID];\n if (instance) instance.option(options);\n return instance;\n } // add jQuery\n\n\n if (jQuery) {\n this.$element = jQuery(this.element);\n } // options\n\n\n this.options = utils.extend({}, this.constructor.defaults);\n this.option(options); // kick things off\n\n this._create();\n }\n\n Flickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075,\n // friction when free-scrolling\n friction: 0.28,\n // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true // watchCSS: false,\n // wrapAround: false\n\n }; // hash of methods triggered on _create()\n\n Flickity.createMethods = [];\n var proto = Flickity.prototype; // inherit EventEmitter\n\n utils.extend(proto, EvEmitter.prototype);\n\n proto._create = function () {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n\n instances[id] = this; // associate via id\n // initial properties\n\n this.selectedIndex = 0; // how many frames slider has been in same position\n\n this.restingFrames = 0; // initial physics properties\n\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left'; // create viewport & slider\n\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n\n this._createSlider();\n\n if (this.options.resize || this.options.watchCSS) {\n window.addEventListener('resize', this);\n } // add listeners from on option\n\n\n for (var eventName in this.options.on) {\n var listener = this.options.on[eventName];\n this.on(eventName, listener);\n }\n\n Flickity.createMethods.forEach(function (method) {\n this[method]();\n }, this);\n\n if (this.options.watchCSS) {\n this.watchCSS();\n } else {\n this.activate();\n }\n };\n /**\n * set options\n * @param {Object} opts - options to extend\n */\n\n\n proto.option = function (opts) {\n utils.extend(this.options, opts);\n };\n\n proto.activate = function () {\n if (this.isActive) {\n return;\n }\n\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n\n if (this.options.rightToLeft) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize(); // move initial cell elements so they can be loaded as cells\n\n var cellElems = this._filterFindCellElements(this.element.children);\n\n moveElements(cellElems, this.slider);\n this.viewport.appendChild(this.slider);\n this.element.appendChild(this.viewport); // get cells from children\n\n this.reloadCells();\n\n if (this.options.accessibility) {\n // allow element to focusable\n this.element.tabIndex = 0; // listen for key presses\n\n this.element.addEventListener('keydown', this);\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex(); // flag for initial activation, for using initialIndex\n\n this.isInitActivated = true; // ready event. #493\n\n this.dispatchEvent('ready');\n }; // slider positions the cells\n\n\n proto._createSlider = function () {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[this.originSide] = 0;\n this.slider = slider;\n };\n\n proto._filterFindCellElements = function (elems) {\n return utils.filterFindElements(elems, this.options.cellSelector);\n }; // goes through all children\n\n\n proto.reloadCells = function () {\n // collection of item elements\n this.cells = this._makeCells(this.slider.children);\n this.positionCells();\n\n this._getWrapShiftCells();\n\n this.setGallerySize();\n };\n /**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\n\n\n proto._makeCells = function (elems) {\n var cellElems = this._filterFindCellElements(elems); // create new Flickity for collection\n\n\n var cells = cellElems.map(function (cellElem) {\n return new Cell(cellElem, this);\n }, this);\n return cells;\n };\n\n proto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n };\n\n proto.getLastSlide = function () {\n return this.slides[this.slides.length - 1];\n }; // positions all cells\n\n\n proto.positionCells = function () {\n // size all cells\n this._sizeCells(this.cells); // position all cells\n\n\n this._positionCells(0);\n };\n /**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\n\n\n proto._positionCells = function (index) {\n index = index || 0; // also measure maxCellHeight\n // start 0 if positioning all cells\n\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0; // get cellX\n\n if (index > 0) {\n var startCell = this.cells[index - 1];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n\n var len = this.cells.length;\n\n for (var i = index; i < len; i++) {\n var cell = this.cells[i];\n cell.setPosition(cellX);\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max(cell.size.outerHeight, this.maxCellHeight);\n } // keep track of cellX for wrap-around\n\n\n this.slideableWidth = cellX; // slides\n\n this.updateSlides(); // contain slides target\n\n this._containSlides(); // update slidesWidth\n\n\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n };\n /**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\n\n\n proto._sizeCells = function (cells) {\n cells.forEach(function (cell) {\n cell.getSize();\n });\n }; // -------------------------- -------------------------- //\n\n\n proto.updateSlides = function () {\n this.slides = [];\n\n if (!this.cells.length) {\n return;\n }\n\n var slide = new Slide(this);\n this.slides.push(slide);\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach(function (cell, i) {\n // just add cell if first cell in slide\n if (!slide.cells.length) {\n slide.addCell(cell);\n return;\n }\n\n var slideWidth = slide.outerWidth - slide.firstMargin + (cell.size.outerWidth - cell.size[nextMargin]);\n\n if (canCellFit.call(this, i, slideWidth)) {\n slide.addCell(cell);\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n slide = new Slide(this);\n this.slides.push(slide);\n slide.addCell(cell);\n }\n }, this); // last slide\n\n slide.updateTarget(); // update .selectedSlide\n\n this.updateSelectedSlide();\n };\n\n proto._getCanCellFit = function () {\n var groupCells = this.options.groupCells;\n\n if (!groupCells) {\n return function () {\n return false;\n };\n } else if (typeof groupCells == 'number') {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt(groupCells, 10);\n return function (i) {\n return i % number !== 0;\n };\n } // default, group by width of slide\n // parse '75%\n\n\n var percentMatch = typeof groupCells == 'string' && groupCells.match(/^(\\d+)%$/);\n var percent = percentMatch ? parseInt(percentMatch[1], 10) / 100 : 1;\n return function (i, slideWidth) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= (this.size.innerWidth + 1) * percent;\n };\n }; // alias _init for jQuery plugin .flickity()\n\n\n proto._init = proto.reposition = function () {\n this.positionCells();\n this.positionSliderAtSelected();\n };\n\n proto.getSize = function () {\n this.size = getSize(this.element);\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n };\n\n var cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5\n },\n left: {\n left: 0,\n right: 1\n },\n right: {\n right: 0,\n left: 1\n }\n };\n\n proto.setCellAlign = function () {\n var shorthand = cellAlignShorthands[this.options.cellAlign];\n this.cellAlign = shorthand ? shorthand[this.originSide] : this.options.cellAlign;\n };\n\n proto.setGallerySize = function () {\n if (this.options.setGallerySize) {\n var height = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n };\n\n proto._getWrapShiftCells = function () {\n // only for wrap-around\n if (!this.options.wrapAround) {\n return;\n } // unshift previous cells\n\n\n this._unshiftCells(this.beforeShiftCells);\n\n this._unshiftCells(this.afterShiftCells); // get before cells\n // initial gap\n\n\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells(gapX, cellIndex, -1); // get after cells\n // ending gap between last cell and end of gallery viewport\n\n gapX = this.size.innerWidth - this.cursorPosition; // start cloning at first cell, working forwards\n\n this.afterShiftCells = this._getGapCells(gapX, 0, 1);\n };\n\n proto._getGapCells = function (gapX, cellIndex, increment) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n\n while (gapX > 0) {\n var cell = this.cells[cellIndex];\n\n if (!cell) {\n break;\n }\n\n cells.push(cell);\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n\n return cells;\n }; // ----- contain ----- //\n // contain cell targets so no excess sliding\n\n\n proto._containSlides = function () {\n if (!this.options.contain || this.options.wrapAround || !this.cells.length) {\n return;\n }\n\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[endMargin]; // content is less than gallery size\n\n var isContentSmaller = contentWidth < this.size.innerWidth; // bounds\n\n var beginBound = this.cursorPosition + this.cells[0].size[beginMargin];\n var endBound = contentWidth - this.size.innerWidth * (1 - this.cellAlign); // contain each cell target\n\n this.slides.forEach(function (slide) {\n if (isContentSmaller) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max(slide.target, beginBound);\n slide.target = Math.min(slide.target, endBound);\n }\n }, this);\n }; // ----- ----- //\n\n /**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\n\n\n proto.dispatchEvent = function (type, event, args) {\n var emitArgs = event ? [event].concat(args) : args;\n this.emitEvent(type, emitArgs);\n\n if (jQuery && this.$element) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n\n if (event) {\n // create jQuery event\n var jQEvent = new jQuery.Event(event);\n jQEvent.type = type;\n $event = jQEvent;\n }\n\n this.$element.trigger($event, args);\n }\n }; // -------------------------- select -------------------------- //\n\n /**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\n\n\n proto.select = function (index, isWrap, isInstant) {\n if (!this.isActive) {\n return;\n }\n\n index = parseInt(index, 10);\n\n this._wrapSelect(index);\n\n if (this.options.wrapAround || isWrap) {\n index = utils.modulo(index, this.slides.length);\n } // bail if invalid index\n\n\n if (!this.slides[index]) {\n return;\n }\n\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n\n if (isInstant) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n\n if (this.options.adaptiveHeight) {\n this.setGallerySize();\n } // events\n\n\n this.dispatchEvent('select', null, [index]); // change event if new index\n\n if (index != prevIndex) {\n this.dispatchEvent('change', null, [index]);\n } // old v1 event name, remove in v3\n\n\n this.dispatchEvent('cellSelect');\n }; // wraps position for wrapAround, to move to closest slide. #113\n\n\n proto._wrapSelect = function (index) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n\n if (!isWrapping) {\n return index;\n }\n\n var wrapIndex = utils.modulo(index, len); // go to shortest\n\n var delta = Math.abs(wrapIndex - this.selectedIndex);\n var backWrapDelta = Math.abs(wrapIndex + len - this.selectedIndex);\n var forewardWrapDelta = Math.abs(wrapIndex - len - this.selectedIndex);\n\n if (!this.isDragSelect && backWrapDelta < delta) {\n index += len;\n } else if (!this.isDragSelect && forewardWrapDelta < delta) {\n index -= len;\n } // wrap position so slider is within normal area\n\n\n if (index < 0) {\n this.x -= this.slideableWidth;\n } else if (index >= len) {\n this.x += this.slideableWidth;\n }\n };\n\n proto.previous = function (isWrap, isInstant) {\n this.select(this.selectedIndex - 1, isWrap, isInstant);\n };\n\n proto.next = function (isWrap, isInstant) {\n this.select(this.selectedIndex + 1, isWrap, isInstant);\n };\n\n proto.updateSelectedSlide = function () {\n var slide = this.slides[this.selectedIndex]; // selectedIndex could be outside of slides, if triggered before resize()\n\n if (!slide) {\n return;\n } // unselect previous selected slide\n\n\n this.unselectSelectedSlide(); // update new selected slide\n\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements(); // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n };\n\n proto.unselectSelectedSlide = function () {\n if (this.selectedSlide) {\n this.selectedSlide.unselect();\n }\n };\n\n proto.selectInitialIndex = function () {\n var initialIndex = this.options.initialIndex; // already activated, select previous selectedIndex\n\n if (this.isInitActivated) {\n this.select(this.selectedIndex, false, true);\n return;\n } // select with selector string\n\n\n if (initialIndex && typeof initialIndex == 'string') {\n var cell = this.queryCell(initialIndex);\n\n if (cell) {\n this.selectCell(initialIndex, false, true);\n return;\n }\n }\n\n var index = 0; // select with number\n\n if (initialIndex && this.slides[initialIndex]) {\n index = initialIndex;\n } // select instantly\n\n\n this.select(index, false, true);\n };\n /**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\n\n\n proto.selectCell = function (value, isWrap, isInstant) {\n // get cell\n var cell = this.queryCell(value);\n\n if (!cell) {\n return;\n }\n\n var index = this.getCellSlideIndex(cell);\n this.select(index, isWrap, isInstant);\n };\n\n proto.getCellSlideIndex = function (cell) {\n // get index of slides that has cell\n for (var i = 0; i < this.slides.length; i++) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf(cell);\n\n if (index != -1) {\n return i;\n }\n }\n }; // -------------------------- get cells -------------------------- //\n\n /**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\n\n\n proto.getCell = function (elem) {\n // loop through cells to get the one that matches\n for (var i = 0; i < this.cells.length; i++) {\n var cell = this.cells[i];\n\n if (cell.element == elem) {\n return cell;\n }\n }\n };\n /**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\n\n\n proto.getCells = function (elems) {\n elems = utils.makeArray(elems);\n var cells = [];\n elems.forEach(function (elem) {\n var cell = this.getCell(elem);\n\n if (cell) {\n cells.push(cell);\n }\n }, this);\n return cells;\n };\n /**\n * get cell elements\n * @returns {Array} cellElems\n */\n\n\n proto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n };\n /**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\n\n\n proto.getParentCell = function (elem) {\n // first check if elem is cell\n var cell = this.getCell(elem);\n\n if (cell) {\n return cell;\n } // try to get parent cell elem\n\n\n elem = utils.getParent(elem, '.flickity-slider > *');\n return this.getCell(elem);\n };\n /**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\n\n\n proto.getAdjacentCellElements = function (adjCount, index) {\n if (!adjCount) {\n return this.selectedSlide.getCellElements();\n }\n\n index = index === undefined ? this.selectedIndex : index;\n var len = this.slides.length;\n\n if (1 + adjCount * 2 >= len) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n\n for (var i = index - adjCount; i <= index + adjCount; i++) {\n var slideIndex = this.options.wrapAround ? utils.modulo(i, len) : i;\n var slide = this.slides[slideIndex];\n\n if (slide) {\n cellElems = cellElems.concat(slide.getCellElements());\n }\n }\n\n return cellElems;\n };\n /**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\n\n\n proto.queryCell = function (selector) {\n if (typeof selector == 'number') {\n // use number as index\n return this.cells[selector];\n }\n\n if (typeof selector == 'string') {\n // do not select invalid selectors from hash: #123, #/. #791\n if (selector.match(/^[#.]?[\\d/]/)) {\n return;\n } // use string as selector, get element\n\n\n selector = this.element.querySelector(selector);\n } // get cell from element\n\n\n return this.getCell(selector);\n }; // -------------------------- events -------------------------- //\n\n\n proto.uiChange = function () {\n this.emitEvent('uiChange');\n }; // keep focus on element when child UI elements are clicked\n\n\n proto.childUIPointerDown = function (event) {\n // HACK iOS does not allow touch events to bubble up?!\n if (event.type != 'touchstart') {\n event.preventDefault();\n }\n\n this.focus();\n }; // ----- resize ----- //\n\n\n proto.onresize = function () {\n this.watchCSS();\n this.resize();\n };\n\n utils.debounceMethod(Flickity, 'onresize', 150);\n\n proto.resize = function () {\n if (!this.isActive) {\n return;\n }\n\n this.getSize(); // wrap values\n\n if (this.options.wrapAround) {\n this.x = utils.modulo(this.x, this.slideableWidth);\n }\n\n this.positionCells();\n\n this._getWrapShiftCells();\n\n this.setGallerySize();\n this.emitEvent('resize'); // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell(selectedElement, false, true);\n }; // watches the :after property, activates/deactivates\n\n\n proto.watchCSS = function () {\n var watchOption = this.options.watchCSS;\n\n if (!watchOption) {\n return;\n }\n\n var afterContent = getComputedStyle(this.element, ':after').content; // activate if :after { content: 'flickity' }\n\n if (afterContent.indexOf('flickity') != -1) {\n this.activate();\n } else {\n this.deactivate();\n }\n }; // ----- keydown ----- //\n // go previous/next if left/right keys pressed\n\n\n proto.onkeydown = function (event) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n\n if (!this.options.accessibility || isNotFocused) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[event.keyCode];\n\n if (handler) {\n handler.call(this);\n }\n };\n\n Flickity.keyboardHandlers = {\n // left arrow\n 37: function _() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[leftMethod]();\n },\n // right arrow\n 39: function _() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[rightMethod]();\n }\n }; // ----- focus ----- //\n\n proto.focus = function () {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({\n preventScroll: true\n }); // hack to fix scroll jump after focus, #76\n\n if (window.pageYOffset != prevScrollY) {\n window.scrollTo(window.pageXOffset, prevScrollY);\n }\n }; // -------------------------- destroy -------------------------- //\n // deactivate all Flickity functionality, but keep stuff available\n\n\n proto.deactivate = function () {\n if (!this.isActive) {\n return;\n }\n\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide(); // destroy cells\n\n this.cells.forEach(function (cell) {\n cell.destroy();\n });\n this.element.removeChild(this.viewport); // move child elements back into element\n\n moveElements(this.slider.children, this.element);\n\n if (this.options.accessibility) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener('keydown', this);\n } // set flags\n\n\n this.isActive = false;\n this.emitEvent('deactivate');\n };\n\n proto.destroy = function () {\n this.deactivate();\n window.removeEventListener('resize', this);\n this.allOff();\n this.emitEvent('destroy');\n\n if (jQuery && this.$element) {\n jQuery.removeData(this.element, 'flickity');\n }\n\n delete this.element.flickityGUID;\n delete instances[this.guid];\n }; // -------------------------- prototype -------------------------- //\n\n\n utils.extend(proto, animatePrototype); // -------------------------- extras -------------------------- //\n\n /**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\n\n Flickity.data = function (elem) {\n elem = utils.getQueryElement(elem);\n var id = elem && elem.flickityGUID;\n return id && instances[id];\n };\n\n utils.htmlInit(Flickity, 'flickity');\n\n if (jQuery && jQuery.bridget) {\n jQuery.bridget('flickity', Flickity);\n } // set internal jQuery, for Webpack + jQuery v3, #478\n\n\n Flickity.setJQuery = function (jq) {\n jQuery = jq;\n };\n\n Flickity.Cell = Cell;\n Flickity.Slide = Slide;\n return Flickity;\n});","/*!\n * Flickity v2.2.2\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', './drag', './prev-next-button', './page-dots', './player', './add-remove-cell', './lazyload'], factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('./flickity'), require('./drag'), require('./prev-next-button'), require('./page-dots'), require('./player'), require('./add-remove-cell'), require('./lazyload'));\n }\n})(window, function factory(Flickity) {\n return Flickity;\n});","// lazyload\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'fizzy-ui-utils/utils'], function (Flickity, utils) {\n return factory(window, Flickity, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, utils) {\n 'use strict';\n\n Flickity.createMethods.push('_createLazyload');\n var proto = Flickity.prototype;\n\n proto._createLazyload = function () {\n this.on('select', this.lazyLoad);\n };\n\n proto.lazyLoad = function () {\n var lazyLoad = this.options.lazyLoad;\n\n if (!lazyLoad) {\n return;\n } // get adjacent cells, use lazyLoad option for adjacent count\n\n\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements(adjCount); // get lazy images in those cells\n\n var lazyImages = [];\n cellElems.forEach(function (cellElem) {\n var lazyCellImages = getCellLazyImages(cellElem);\n lazyImages = lazyImages.concat(lazyCellImages);\n }); // load lazy images\n\n lazyImages.forEach(function (img) {\n new LazyLoader(img, this);\n }, this);\n };\n\n function getCellLazyImages(cellElem) {\n // check if cell element is lazy image\n if (cellElem.nodeName == 'IMG') {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n\n if (lazyloadAttr || srcAttr || srcsetAttr) {\n return [cellElem];\n }\n } // select lazy images in cell\n\n\n var lazySelector = 'img[data-flickity-lazyload], ' + 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll(lazySelector);\n return utils.makeArray(imgs);\n } // -------------------------- LazyLoader -------------------------- //\n\n /**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\n\n\n function LazyLoader(img, flickity) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n }\n\n LazyLoader.prototype.handleEvent = utils.handleEvent;\n\n LazyLoader.prototype.load = function () {\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this); // get src & srcset\n\n var src = this.img.getAttribute('data-flickity-lazyload') || this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset'); // set src & serset\n\n this.img.src = src;\n\n if (srcset) {\n this.img.setAttribute('srcset', srcset);\n } // remove attr\n\n\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n };\n\n LazyLoader.prototype.onload = function (event) {\n this.complete(event, 'flickity-lazyloaded');\n };\n\n LazyLoader.prototype.onerror = function (event) {\n this.complete(event, 'flickity-lazyerror');\n };\n\n LazyLoader.prototype.complete = function (event, className) {\n // unbind events\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n var cell = this.flickity.getParentCell(this.img);\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange(cellElem);\n this.img.classList.add(className);\n this.flickity.dispatchEvent('lazyLoad', event, cellElem);\n }; // ----- ----- //\n\n\n Flickity.LazyLoader = LazyLoader;\n return Flickity;\n});","// page dots\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'unipointer/unipointer', 'fizzy-ui-utils/utils'], function (Flickity, Unipointer, utils) {\n return factory(window, Flickity, Unipointer, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('unipointer'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.Unipointer, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, Unipointer, utils) {\n // -------------------------- PageDots -------------------------- //\n 'use strict';\n\n function PageDots(parent) {\n this.parent = parent;\n\n this._create();\n }\n\n PageDots.prototype = Object.create(Unipointer.prototype);\n\n PageDots.prototype._create = function () {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots'; // create dots, array of elements\n\n this.dots = []; // events\n\n this.handleClick = this.onClick.bind(this);\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n };\n\n PageDots.prototype.activate = function () {\n this.setDots();\n this.holder.addEventListener('click', this.handleClick);\n this.bindStartEvent(this.holder); // add to DOM\n\n this.parent.element.appendChild(this.holder);\n };\n\n PageDots.prototype.deactivate = function () {\n this.holder.removeEventListener('click', this.handleClick);\n this.unbindStartEvent(this.holder); // remove from DOM\n\n this.parent.element.removeChild(this.holder);\n };\n\n PageDots.prototype.setDots = function () {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n\n if (delta > 0) {\n this.addDots(delta);\n } else if (delta < 0) {\n this.removeDots(-delta);\n }\n };\n\n PageDots.prototype.addDots = function (count) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for (var i = length; i < max; i++) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute('aria-label', 'Page dot ' + (i + 1));\n fragment.appendChild(dot);\n newDots.push(dot);\n }\n\n this.holder.appendChild(fragment);\n this.dots = this.dots.concat(newDots);\n };\n\n PageDots.prototype.removeDots = function (count) {\n // remove from this.dots collection\n var removeDots = this.dots.splice(this.dots.length - count, count); // remove from DOM\n\n removeDots.forEach(function (dot) {\n this.holder.removeChild(dot);\n }, this);\n };\n\n PageDots.prototype.updateSelected = function () {\n // remove selected class on previous\n if (this.selectedDot) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n } // don't proceed if no dots\n\n\n if (!this.dots.length) {\n return;\n }\n\n this.selectedDot = this.dots[this.parent.selectedIndex];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute('aria-current', 'step');\n };\n\n PageDots.prototype.onTap = // old method name, backwards-compatible\n PageDots.prototype.onClick = function (event) {\n var target = event.target; // only care about dot clicks\n\n if (target.nodeName != 'LI') {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf(target);\n this.parent.select(index);\n };\n\n PageDots.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n };\n\n Flickity.PageDots = PageDots; // -------------------------- Flickity -------------------------- //\n\n utils.extend(Flickity.defaults, {\n pageDots: true\n });\n Flickity.createMethods.push('_createPageDots');\n var proto = Flickity.prototype;\n\n proto._createPageDots = function () {\n if (!this.options.pageDots) {\n return;\n }\n\n this.pageDots = new PageDots(this); // events\n\n this.on('activate', this.activatePageDots);\n this.on('select', this.updateSelectedPageDots);\n this.on('cellChange', this.updatePageDots);\n this.on('resize', this.updatePageDots);\n this.on('deactivate', this.deactivatePageDots);\n };\n\n proto.activatePageDots = function () {\n this.pageDots.activate();\n };\n\n proto.updateSelectedPageDots = function () {\n this.pageDots.updateSelected();\n };\n\n proto.updatePageDots = function () {\n this.pageDots.setDots();\n };\n\n proto.deactivatePageDots = function () {\n this.pageDots.deactivate();\n }; // ----- ----- //\n\n\n Flickity.PageDots = PageDots;\n return Flickity;\n});","// player & autoPlay\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter', 'fizzy-ui-utils/utils', './flickity'], function (EvEmitter, utils, Flickity) {\n return factory(EvEmitter, utils, Flickity);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('ev-emitter'), require('fizzy-ui-utils'), require('./flickity'));\n } else {\n // browser global\n factory(window.EvEmitter, window.fizzyUIUtils, window.Flickity);\n }\n})(window, function factory(EvEmitter, utils, Flickity) {\n 'use strict'; // -------------------------- Player -------------------------- //\n\n function Player(parent) {\n this.parent = parent;\n this.state = 'stopped'; // visibility change event handler\n\n this.onVisibilityChange = this.visibilityChange.bind(this);\n this.onVisibilityPlay = this.visibilityPlay.bind(this);\n }\n\n Player.prototype = Object.create(EvEmitter.prototype); // start play\n\n Player.prototype.play = function () {\n if (this.state == 'playing') {\n return;\n } // do not play if page is hidden, start playing when page is visible\n\n\n var isPageHidden = document.hidden;\n\n if (isPageHidden) {\n document.addEventListener('visibilitychange', this.onVisibilityPlay);\n return;\n }\n\n this.state = 'playing'; // listen to visibility change\n\n document.addEventListener('visibilitychange', this.onVisibilityChange); // start ticking\n\n this.tick();\n };\n\n Player.prototype.tick = function () {\n // do not tick if not playing\n if (this.state != 'playing') {\n return;\n }\n\n var time = this.parent.options.autoPlay; // default to 3 seconds\n\n time = typeof time == 'number' ? time : 3000;\n\n var _this = this; // HACK: reset ticks if stopped and started within interval\n\n\n this.clear();\n this.timeout = setTimeout(function () {\n _this.parent.next(true);\n\n _this.tick();\n }, time);\n };\n\n Player.prototype.stop = function () {\n this.state = 'stopped';\n this.clear(); // remove visibility change event\n\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n };\n\n Player.prototype.clear = function () {\n clearTimeout(this.timeout);\n };\n\n Player.prototype.pause = function () {\n if (this.state == 'playing') {\n this.state = 'paused';\n this.clear();\n }\n };\n\n Player.prototype.unpause = function () {\n // re-start play if paused\n if (this.state == 'paused') {\n this.play();\n }\n }; // pause if page visibility is hidden, unpause if visible\n\n\n Player.prototype.visibilityChange = function () {\n var isPageHidden = document.hidden;\n this[isPageHidden ? 'pause' : 'unpause']();\n };\n\n Player.prototype.visibilityPlay = function () {\n this.play();\n document.removeEventListener('visibilitychange', this.onVisibilityPlay);\n }; // -------------------------- Flickity -------------------------- //\n\n\n utils.extend(Flickity.defaults, {\n pauseAutoPlayOnHover: true\n });\n Flickity.createMethods.push('_createPlayer');\n var proto = Flickity.prototype;\n\n proto._createPlayer = function () {\n this.player = new Player(this);\n this.on('activate', this.activatePlayer);\n this.on('uiChange', this.stopPlayer);\n this.on('pointerDown', this.stopPlayer);\n this.on('deactivate', this.deactivatePlayer);\n };\n\n proto.activatePlayer = function () {\n if (!this.options.autoPlay) {\n return;\n }\n\n this.player.play();\n this.element.addEventListener('mouseenter', this);\n }; // Player API, don't hate the ... thanks I know where the door is\n\n\n proto.playPlayer = function () {\n this.player.play();\n };\n\n proto.stopPlayer = function () {\n this.player.stop();\n };\n\n proto.pausePlayer = function () {\n this.player.pause();\n };\n\n proto.unpausePlayer = function () {\n this.player.unpause();\n };\n\n proto.deactivatePlayer = function () {\n this.player.stop();\n this.element.removeEventListener('mouseenter', this);\n }; // ----- mouseenter/leave ----- //\n // pause auto-play on hover\n\n\n proto.onmouseenter = function () {\n if (!this.options.pauseAutoPlayOnHover) {\n return;\n }\n\n this.player.pause();\n this.element.addEventListener('mouseleave', this);\n }; // resume auto-play on hover off\n\n\n proto.onmouseleave = function () {\n this.player.unpause();\n this.element.removeEventListener('mouseleave', this);\n }; // ----- ----- //\n\n\n Flickity.Player = Player;\n return Flickity;\n});","// prev/next buttons\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'unipointer/unipointer', 'fizzy-ui-utils/utils'], function (Flickity, Unipointer, utils) {\n return factory(window, Flickity, Unipointer, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('unipointer'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.Unipointer, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, Unipointer, utils) {\n 'use strict';\n\n var svgURI = 'http://www.w3.org/2000/svg'; // -------------------------- PrevNextButton -------------------------- //\n\n function PrevNextButton(direction, parent) {\n this.direction = direction;\n this.parent = parent;\n\n this._create();\n }\n\n PrevNextButton.prototype = Object.create(Unipointer.prototype);\n\n PrevNextButton.prototype._create = function () {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next'; // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n\n element.setAttribute('type', 'button'); // init as disabled\n\n this.disable();\n element.setAttribute('aria-label', this.isPrevious ? 'Previous' : 'Next'); // create arrow\n\n var svg = this.createSVG();\n element.appendChild(svg); // events\n\n this.parent.on('select', this.update.bind(this));\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n };\n\n PrevNextButton.prototype.activate = function () {\n this.bindStartEvent(this.element);\n this.element.addEventListener('click', this); // add to DOM\n\n this.parent.element.appendChild(this.element);\n };\n\n PrevNextButton.prototype.deactivate = function () {\n // remove from DOM\n this.parent.element.removeChild(this.element); // click events\n\n this.unbindStartEvent(this.element);\n this.element.removeEventListener('click', this);\n };\n\n PrevNextButton.prototype.createSVG = function () {\n var svg = document.createElementNS(svgURI, 'svg');\n svg.setAttribute('class', 'flickity-button-icon');\n svg.setAttribute('viewBox', '0 0 100 100');\n var path = document.createElementNS(svgURI, 'path');\n var pathMovements = getArrowMovements(this.parent.options.arrowShape);\n path.setAttribute('d', pathMovements);\n path.setAttribute('class', 'arrow'); // rotate arrow\n\n if (!this.isLeft) {\n path.setAttribute('transform', 'translate(100, 100) rotate(180) ');\n }\n\n svg.appendChild(path);\n return svg;\n }; // get SVG path movmement\n\n\n function getArrowMovements(shape) {\n // use shape as movement if string\n if (typeof shape == 'string') {\n return shape;\n } // create movement string\n\n\n return 'M ' + shape.x0 + ',50' + ' L ' + shape.x1 + ',' + (shape.y1 + 50) + ' L ' + shape.x2 + ',' + (shape.y2 + 50) + ' L ' + shape.x3 + ',50 ' + ' L ' + shape.x2 + ',' + (50 - shape.y2) + ' L ' + shape.x1 + ',' + (50 - shape.y1) + ' Z';\n }\n\n PrevNextButton.prototype.handleEvent = utils.handleEvent;\n\n PrevNextButton.prototype.onclick = function () {\n if (!this.isEnabled) {\n return;\n }\n\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[method]();\n }; // ----- ----- //\n\n\n PrevNextButton.prototype.enable = function () {\n if (this.isEnabled) {\n return;\n }\n\n this.element.disabled = false;\n this.isEnabled = true;\n };\n\n PrevNextButton.prototype.disable = function () {\n if (!this.isEnabled) {\n return;\n }\n\n this.element.disabled = true;\n this.isEnabled = false;\n };\n\n PrevNextButton.prototype.update = function () {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides; // enable is wrapAround and at least 2 slides\n\n if (this.parent.options.wrapAround && slides.length > 1) {\n this.enable();\n return;\n }\n\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[method]();\n };\n\n PrevNextButton.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n }; // -------------------------- Flickity prototype -------------------------- //\n\n\n utils.extend(Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60,\n y1: 50,\n x2: 70,\n y2: 40,\n x3: 30\n }\n });\n Flickity.createMethods.push('_createPrevNextButtons');\n var proto = Flickity.prototype;\n\n proto._createPrevNextButtons = function () {\n if (!this.options.prevNextButtons) {\n return;\n }\n\n this.prevButton = new PrevNextButton(-1, this);\n this.nextButton = new PrevNextButton(1, this);\n this.on('activate', this.activatePrevNextButtons);\n };\n\n proto.activatePrevNextButtons = function () {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on('deactivate', this.deactivatePrevNextButtons);\n };\n\n proto.deactivatePrevNextButtons = function () {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off('deactivate', this.deactivatePrevNextButtons);\n }; // -------------------------- -------------------------- //\n\n\n Flickity.PrevNextButton = PrevNextButton;\n return Flickity;\n});","// slide\n(function (window, factory) {\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n})(window, function factory() {\n 'use strict';\n\n function Slide(parent) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n }\n\n var proto = Slide.prototype;\n\n proto.addCell = function (cell) {\n this.cells.push(cell);\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max(cell.size.outerHeight, this.height); // first cell stuff\n\n if (this.cells.length == 1) {\n this.x = cell.x; // x comes from first cell\n\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[beginMargin];\n }\n };\n\n proto.updateTarget = function () {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[endMargin] : 0;\n var slideWidth = this.outerWidth - (this.firstMargin + lastMargin);\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n };\n\n proto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n };\n\n proto.select = function () {\n this.cells.forEach(function (cell) {\n cell.select();\n });\n };\n\n proto.unselect = function () {\n this.cells.forEach(function (cell) {\n cell.unselect();\n });\n };\n\n proto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n };\n\n return Slide;\n});","var hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach(obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n\n var l = obj.length;\n\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};","'use strict';\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function binder() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","\"use strict\";\n\nmodule.exports = global.fetch;","\"use strict\";\n\nmodule.exports = Object.assign;","'use strict';\n\nvar undefined;\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError; // eslint-disable-next-line consistent-return\n\nvar getEvalledConstructor = function getEvalledConstructor(expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n } catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nif ($gOPD) {\n try {\n $gOPD({}, '');\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n}\n\nvar throwTypeError = function throwTypeError() {\n throw new $TypeError();\n};\n\nvar ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, 'callee').get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n}() : throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar needsEval = {};\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n '%Array%': Array,\n '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '%AsyncFromSyncIteratorPrototype%': undefined,\n '%AsyncFunction%': needsEval,\n '%AsyncGenerator%': needsEval,\n '%AsyncGeneratorFunction%': needsEval,\n '%AsyncIteratorPrototype%': needsEval,\n '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n '%Boolean%': Boolean,\n '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '%Date%': Date,\n '%decodeURI%': decodeURI,\n '%decodeURIComponent%': decodeURIComponent,\n '%encodeURI%': encodeURI,\n '%encodeURIComponent%': encodeURIComponent,\n '%Error%': Error,\n '%eval%': eval,\n // eslint-disable-line no-eval\n '%EvalError%': EvalError,\n '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n '%Function%': $Function,\n '%GeneratorFunction%': needsEval,\n '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '%isFinite%': isFinite,\n '%isNaN%': isNaN,\n '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '%JSON%': typeof JSON === 'object' ? JSON : undefined,\n '%Map%': typeof Map === 'undefined' ? undefined : Map,\n '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '%Math%': Math,\n '%Number%': Number,\n '%Object%': Object,\n '%parseFloat%': parseFloat,\n '%parseInt%': parseInt,\n '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '%RangeError%': RangeError,\n '%ReferenceError%': ReferenceError,\n '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '%RegExp%': RegExp,\n '%Set%': typeof Set === 'undefined' ? undefined : Set,\n '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '%String%': String,\n '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '%Symbol%': hasSymbols ? Symbol : undefined,\n '%SyntaxError%': $SyntaxError,\n '%ThrowTypeError%': ThrowTypeError,\n '%TypedArray%': TypedArray,\n '%TypeError%': $TypeError,\n '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '%URIError%': URIError,\n '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n var value;\n\n if (name === '%AsyncFunction%') {\n value = getEvalledConstructor('async function () {}');\n } else if (name === '%GeneratorFunction%') {\n value = getEvalledConstructor('function* () {}');\n } else if (name === '%AsyncGeneratorFunction%') {\n value = getEvalledConstructor('async function* () {}');\n } else if (name === '%AsyncGenerator%') {\n var fn = doEval('%AsyncGeneratorFunction%');\n\n if (fn) {\n value = fn.prototype;\n }\n } else if (name === '%AsyncIteratorPrototype%') {\n var gen = doEval('%AsyncGenerator%');\n\n if (gen) {\n value = getProto(gen.prototype);\n }\n }\n\n INTRINSICS[name] = value;\n return value;\n};\n\nvar LEGACY_ALIASES = {\n '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n '%ArrayPrototype%': ['Array', 'prototype'],\n '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n '%ArrayProto_values%': ['Array', 'prototype', 'values'],\n '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n '%BooleanPrototype%': ['Boolean', 'prototype'],\n '%DataViewPrototype%': ['DataView', 'prototype'],\n '%DatePrototype%': ['Date', 'prototype'],\n '%ErrorPrototype%': ['Error', 'prototype'],\n '%EvalErrorPrototype%': ['EvalError', 'prototype'],\n '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n '%FunctionPrototype%': ['Function', 'prototype'],\n '%Generator%': ['GeneratorFunction', 'prototype'],\n '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n '%JSONParse%': ['JSON', 'parse'],\n '%JSONStringify%': ['JSON', 'stringify'],\n '%MapPrototype%': ['Map', 'prototype'],\n '%NumberPrototype%': ['Number', 'prototype'],\n '%ObjectPrototype%': ['Object', 'prototype'],\n '%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n '%PromisePrototype%': ['Promise', 'prototype'],\n '%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n '%Promise_all%': ['Promise', 'all'],\n '%Promise_reject%': ['Promise', 'reject'],\n '%Promise_resolve%': ['Promise', 'resolve'],\n '%RangeErrorPrototype%': ['RangeError', 'prototype'],\n '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n '%RegExpPrototype%': ['RegExp', 'prototype'],\n '%SetPrototype%': ['Set', 'prototype'],\n '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n '%StringPrototype%': ['String', 'prototype'],\n '%SymbolPrototype%': ['Symbol', 'prototype'],\n '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n '%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n '%TypeErrorPrototype%': ['TypeError', 'prototype'],\n '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n '%URIErrorPrototype%': ['URIError', 'prototype'],\n '%WeakMapPrototype%': ['WeakMap', 'prototype'],\n '%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\n\nvar hasOwn = require('has');\n\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to match backslashes in property paths. */\n\nvar stringToPath = function stringToPath(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n\n if (first === '%' && last !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n } else if (last === '%' && first !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n }\n\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n });\n return result;\n};\n/* end adaptation */\n\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n var intrinsicName = name;\n var alias;\n\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = '%' + alias[0] + '%';\n }\n\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n\n if (typeof value === 'undefined' && !allowMissing) {\n throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return {\n alias: alias,\n name: intrinsicName,\n value: value\n };\n }\n\n throw new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== 'string' || name.length === 0) {\n throw new $TypeError('intrinsic name must be a non-empty string');\n }\n\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n var parts = stringToPath(name);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n\n if ((first === '\"' || first === \"'\" || first === '`' || last === '\"' || last === \"'\" || last === '`') && first !== last) {\n throw new $SyntaxError('property names with quotes must have matching quotes');\n }\n\n if (part === 'constructor' || !isOwn) {\n skipFurtherCaching = true;\n }\n\n intrinsicBaseName += '.' + part;\n intrinsicRealName = '%' + intrinsicBaseName + '%';\n\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n }\n\n return void undefined;\n }\n\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc; // By convention, when a data property is converted to an accessor\n // property to emulate a data property that does not suffer from\n // the override mistake, that accessor's getter is marked with\n // an `originalValue` property. Here, when we detect this, we\n // uphold the illusion by pretending to see that original data\n // property, i.e., returning the value rather than the getter\n // itself.\n\n if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n\n return value;\n};","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n/* globals console: false */\n(function (window, factory) {\n /* jshint strict: false */\n\n /* globals define, module */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n})(window, function factory() {\n 'use strict'; // -------------------------- helpers -------------------------- //\n // get a number from a string, not a percentage\n\n function getStyleSize(value) {\n var num = parseFloat(value); // not a percent like '100%', and a number\n\n var isValid = value.indexOf('%') == -1 && !isNaN(num);\n return isValid && num;\n }\n\n function noop() {}\n\n var logError = typeof console == 'undefined' ? noop : function (message) {\n console.error(message);\n }; // -------------------------- measurements -------------------------- //\n\n var measurements = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth'];\n var measurementsLength = measurements.length;\n\n function getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n size[measurement] = 0;\n }\n\n return size;\n } // -------------------------- getStyle -------------------------- //\n\n /**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\n\n\n function getStyle(elem) {\n var style = getComputedStyle(elem);\n\n if (!style) {\n logError('Style returned ' + style + '. Are you running this code in a hidden iframe on Firefox? ' + 'See https://bit.ly/getsizebug1');\n }\n\n return style;\n } // -------------------------- setup -------------------------- //\n\n\n var isSetup = false;\n var isBoxSizeOuter;\n /**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\n\n function setup() {\n // setup once\n if (isSetup) {\n return;\n }\n\n isSetup = true; // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n var body = document.body || document.documentElement;\n body.appendChild(div);\n var style = getStyle(div); // round value for browser zoom. desandro/masonry#928\n\n isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n body.removeChild(div);\n } // -------------------------- getSize -------------------------- //\n\n\n function getSize(elem) {\n setup(); // use querySeletor if elem is string\n\n if (typeof elem == 'string') {\n elem = document.querySelector(elem);\n } // do not proceed on non-objects\n\n\n if (!elem || typeof elem != 'object' || !elem.nodeType) {\n return;\n }\n\n var style = getStyle(elem); // if hidden, everything is 0\n\n if (style.display == 'none') {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; // get all measurements\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n var value = style[measurement];\n var num = parseFloat(value); // any 'auto', 'medium' value will be 0\n\n size[measurement] = !isNaN(num) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; // overwrite width and height if we can get it from style\n\n var styleWidth = getStyleSize(style.width);\n\n if (styleWidth !== false) {\n size.width = styleWidth + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\n }\n\n var styleHeight = getStyleSize(style.height);\n\n if (styleHeight !== false) {\n size.height = styleHeight + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\n }\n\n size.innerWidth = size.width - (paddingWidth + borderWidth);\n size.innerHeight = size.height - (paddingHeight + borderHeight);\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n return size;\n }\n\n return getSize;\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n 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,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\n}\nexport function __spreadArray(to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\n to[j] = from[i];\n }\n\n return to;\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\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 || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n 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) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : 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],\n 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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\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) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n 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}\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}","import { __assign } from \"tslib\";\nimport { parse } from 'graphql';\nvar docCache = new Map();\nvar fragmentSourceMap = new Map();\nvar printFragmentWarnings = true;\nvar experimentalFragmentVariables = false;\n\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\n\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\n\nfunction processFragments(ast) {\n var seenKeys = new Set();\n var definitions = [];\n ast.definitions.forEach(function (fragmentDefinition) {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n var sourceKeySet = fragmentSourceMap.get(fragmentName);\n\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\" + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\" + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n } else if (!sourceKeySet) {\n fragmentSourceMap.set(fragmentName, sourceKeySet = new Set());\n }\n\n sourceKeySet.add(sourceKey);\n\n if (!seenKeys.has(sourceKey)) {\n seenKeys.add(sourceKey);\n definitions.push(fragmentDefinition);\n }\n } else {\n definitions.push(fragmentDefinition);\n }\n });\n return __assign(__assign({}, ast), {\n definitions: definitions\n });\n}\n\nfunction stripLoc(doc) {\n var workSet = new Set(doc.definitions);\n workSet.forEach(function (node) {\n if (node.loc) delete node.loc;\n Object.keys(node).forEach(function (key) {\n var value = node[key];\n\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n var loc = doc.loc;\n\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n\n return doc;\n}\n\nfunction parseDocument(source) {\n var cacheKey = normalize(source);\n\n if (!docCache.has(cacheKey)) {\n var parsed = parse(source, {\n experimentalFragmentVariables: experimentalFragmentVariables\n });\n\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n\n docCache.set(cacheKey, stripLoc(processFragments(parsed)));\n }\n\n return docCache.get(cacheKey);\n}\n\nexport function gql(literals) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n if (typeof literals === 'string') {\n literals = [literals];\n }\n\n var result = literals[0];\n args.forEach(function (arg, i) {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n } else {\n result += arg;\n }\n\n result += literals[i + 1];\n });\n return parseDocument(result);\n}\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\nvar extras = {\n gql: gql,\n resetCaches: resetCaches,\n disableFragmentWarnings: disableFragmentWarnings,\n enableExperimentalFragmentVariables: enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables: disableExperimentalFragmentVariables\n};\n\n(function (gql_1) {\n gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables;\n})(gql || (gql = {}));\n\ngql[\"default\"] = gql;\nexport default gql;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n} // FIXME:\n// flowlint uninitialized-instance-property:off\n\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 * A message describing the Error for debugging purposes.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n *\n * Note: should be treated as readonly, despite invariant usage.\n */\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\n\n function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n var _locations2, _source2, _positions2, _extensions2;\n\n var _this;\n\n _classCallCheck(this, GraphQLError);\n\n _this = _super.call(this, message); // Compute list of blame nodes.\n\n var _nodes = Array.isArray(nodes) ? nodes.length !== 0 ? nodes : undefined : nodes ? [nodes] : undefined; // Compute locations in the source for the given nodes/positions.\n\n\n var _source = source;\n\n if (!_source && _nodes) {\n var _nodes$0$loc;\n\n _source = (_nodes$0$loc = _nodes[0].loc) === null || _nodes$0$loc === void 0 ? void 0 : _nodes$0$loc.source;\n }\n\n var _positions = positions;\n\n if (!_positions && _nodes) {\n _positions = _nodes.reduce(function (list, node) {\n if (node.loc) {\n list.push(node.loc.start);\n }\n\n return list;\n }, []);\n }\n\n if (_positions && _positions.length === 0) {\n _positions = undefined;\n }\n\n var _locations;\n\n if (positions && source) {\n _locations = positions.map(function (pos) {\n return getLocation(source, pos);\n });\n } else if (_nodes) {\n _locations = _nodes.reduce(function (list, node) {\n if (node.loc) {\n list.push(getLocation(node.loc.source, node.loc.start));\n }\n\n return list;\n }, []);\n }\n\n var _extensions = extensions;\n\n if (_extensions == null && originalError != null) {\n var originalExtensions = originalError.extensions;\n\n if (isObjectLike(originalExtensions)) {\n _extensions = originalExtensions;\n }\n }\n\n Object.defineProperties(_assertThisInitialized(_this), {\n name: {\n value: 'GraphQLError'\n },\n message: {\n value: message,\n // By being enumerable, JSON.stringify will include `message` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: true,\n writable: true\n },\n locations: {\n // Coercing falsy values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: (_locations2 = _locations) !== null && _locations2 !== void 0 ? _locations2 : undefined,\n // By being enumerable, JSON.stringify will include `locations` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: _locations != null\n },\n path: {\n // Coercing falsy values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: path !== null && path !== void 0 ? path : undefined,\n // By being enumerable, JSON.stringify will include `path` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: path != null\n },\n nodes: {\n value: _nodes !== null && _nodes !== void 0 ? _nodes : undefined\n },\n source: {\n value: (_source2 = _source) !== null && _source2 !== void 0 ? _source2 : undefined\n },\n positions: {\n value: (_positions2 = _positions) !== null && _positions2 !== void 0 ? _positions2 : undefined\n },\n originalError: {\n value: originalError\n },\n extensions: {\n // Coercing falsy values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: (_extensions2 = _extensions) !== null && _extensions2 !== void 0 ? _extensions2 : undefined,\n // By being enumerable, JSON.stringify will include `path` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: _extensions != null\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/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i2 = 0, _error$nodes2 = error.nodes; _i2 < _error$nodes2.length; _i2++) {\n var node = _error$nodes2[_i2];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i4 = 0, _error$locations2 = error.locations; _i4 < _error$locations2.length; _i4++) {\n var location = _error$locations2[_i4];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\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 * Note: This file is autogenerated using \"resources/gen-version.js\" script and\n * automatically updated by \"npm version\" command.\n */\n\n/**\n * A string containing the version of the GraphQL.js library\n */\nexport var version = '15.5.0';\n/**\n * An object containing the components of the GraphQL.js version string\n */\n\nexport var versionInfo = Object.freeze({\n major: 15,\n minor: 5,\n patch: 0,\n preReleaseTag: null\n});","/**\n * Returns true if the value acts like a Promise, i.e. has a \"then\" function,\n * otherwise returns false.\n */\n// eslint-disable-next-line no-redeclare\nexport default function isPromise(value) {\n return typeof (value === null || value === void 0 ? void 0 : value.then) === 'function';\n}","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound]\nvar find = Array.prototype.find ? function (list, predicate) {\n return Array.prototype.find.call(list, predicate);\n} : function (list, predicate) {\n for (var _i2 = 0; _i2 < list.length; _i2++) {\n var value = list[_i2];\n\n if (predicate(value)) {\n return value;\n }\n }\n};\nexport default find;","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441\nvar objectValues = Object.values || function (obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n};\n\nexport default objectValues;","import inspect from \"../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Given an arbitrary value, presumably thrown while attempting to execute a\n * GraphQL operation, produce a new GraphQLError aware of the location in the\n * document responsible for the original Error.\n */\n\nexport function locatedError(rawOriginalError, nodes, path) {\n var _nodes; // Sometimes a non-error is thrown, wrap it as an Error instance to ensure a consistent Error interface.\n\n\n var originalError = rawOriginalError instanceof Error ? rawOriginalError : new Error('Unexpected error value: ' + inspect(rawOriginalError)); // Note: this uses a brand-check to support GraphQL errors originating from other contexts.\n\n if (Array.isArray(originalError.path)) {\n return originalError;\n }\n\n return new GraphQLError(originalError.message, (_nodes = originalError.nodes) !== null && _nodes !== void 0 ? _nodes : nodes, originalError.source, originalError.positions, path, originalError);\n}","import devAssert from \"../jsutils/devAssert.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nvar NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/;\n/**\n * Upholds the spec rules about naming.\n */\n\nexport function assertValidName(name) {\n var error = isValidNameError(name);\n\n if (error) {\n throw error;\n }\n\n return name;\n}\n/**\n * Returns an Error if a name is invalid.\n */\n\nexport function isValidNameError(name) {\n typeof name === 'string' || devAssert(0, 'Expected name to be a string.');\n\n if (name.length > 1 && name[0] === '_' && name[1] === '_') {\n return new GraphQLError(\"Name \\\"\".concat(name, \"\\\" must not begin with \\\"__\\\", which is reserved by GraphQL introspection.\"));\n }\n\n if (!NAME_RX.test(name)) {\n return new GraphQLError(\"Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but \\\"\".concat(name, \"\\\" does not.\"));\n }\n}","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441\nvar objectEntries = Object.entries || function (obj) {\n return Object.keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n};\n\nexport default objectEntries;","/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * for each value in the array.\n *\n * This provides a convenient lookup for the array items if the key function\n * produces unique results.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: { name: 'Jon', num: '555-1234' },\n * // Jenny: { name: 'Jenny', num: '867-5309' } }\n * const entriesByName = keyMap(\n * phoneBook,\n * entry => entry.name\n * )\n *\n * // { name: 'Jenny', num: '857-6309' }\n * const jennyEntry = entriesByName['Jenny']\n *\n */\nexport default function keyMap(list, keyFn) {\n return list.reduce(function (map, item) {\n map[keyFn(item)] = item;\n return map;\n }, Object.create(null));\n}","import objectEntries from \"../polyfills/objectEntries.mjs\";\n/**\n * Creates an object map with the same keys as `map` and values generated by\n * running each value of `map` thru `fn`.\n */\n\nexport default function mapValue(map, fn) {\n var result = Object.create(null);\n\n for (var _i2 = 0, _objectEntries2 = objectEntries(map); _i2 < _objectEntries2.length; _i2++) {\n var _ref2 = _objectEntries2[_i2];\n var _key = _ref2[0];\n var _value = _ref2[1];\n result[_key] = fn(_value, _key);\n }\n\n return result;\n}","import objectEntries from \"../polyfills/objectEntries.mjs\";\nexport default function toObjMap(obj) {\n /* eslint-enable no-redeclare */\n if (Object.getPrototypeOf(obj) === null) {\n return obj;\n }\n\n var map = Object.create(null);\n\n for (var _i2 = 0, _objectEntries2 = objectEntries(obj); _i2 < _objectEntries2.length; _i2++) {\n var _ref2 = _objectEntries2[_i2];\n var key = _ref2[0];\n var value = _ref2[1];\n map[key] = value;\n }\n\n return map;\n}","/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * and a function to produce the values from each item in the array.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: '555-1234', Jenny: '867-5309' }\n * const phonesByName = keyValMap(\n * phoneBook,\n * entry => entry.name,\n * entry => entry.num\n * )\n *\n */\nexport default function keyValMap(list, keyFn, valFn) {\n return list.reduce(function (map, item) {\n map[keyFn(item)] = valFn(item);\n return map;\n }, Object.create(null));\n}","var MAX_SUGGESTIONS = 5;\n/**\n * Given [ A, B, C ] return ' Did you mean A, B, or C?'.\n */\n// eslint-disable-next-line no-redeclare\n\nexport default function didYouMean(firstArg, secondArg) {\n var _ref = typeof firstArg === 'string' ? [firstArg, secondArg] : [undefined, firstArg],\n subMessage = _ref[0],\n suggestionsArg = _ref[1];\n\n var message = ' Did you mean ';\n\n if (subMessage) {\n message += subMessage + ' ';\n }\n\n var suggestions = suggestionsArg.map(function (x) {\n return \"\\\"\".concat(x, \"\\\"\");\n });\n\n switch (suggestions.length) {\n case 0:\n return '';\n\n case 1:\n return message + suggestions[0] + '?';\n\n case 2:\n return message + suggestions[0] + ' or ' + suggestions[1] + '?';\n }\n\n var selected = suggestions.slice(0, MAX_SUGGESTIONS);\n var lastItem = selected.pop();\n return message + selected.join(', ') + ', or ' + lastItem + '?';\n}","/**\n * Returns the first argument it receives.\n */\nexport default function identityFunc(x) {\n return x;\n}","/**\n * Returns a number indicating whether a reference string comes before, or after,\n * or is the same as the given string in natural sort order.\n *\n * See: https://en.wikipedia.org/wiki/Natural_sort_order\n *\n */\nexport default function naturalCompare(aStr, bStr) {\n var aIdx = 0;\n var bIdx = 0;\n\n while (aIdx < aStr.length && bIdx < bStr.length) {\n var aChar = aStr.charCodeAt(aIdx);\n var bChar = bStr.charCodeAt(bIdx);\n\n if (isDigit(aChar) && isDigit(bChar)) {\n var aNum = 0;\n\n do {\n ++aIdx;\n aNum = aNum * 10 + aChar - DIGIT_0;\n aChar = aStr.charCodeAt(aIdx);\n } while (isDigit(aChar) && aNum > 0);\n\n var bNum = 0;\n\n do {\n ++bIdx;\n bNum = bNum * 10 + bChar - DIGIT_0;\n bChar = bStr.charCodeAt(bIdx);\n } while (isDigit(bChar) && bNum > 0);\n\n if (aNum < bNum) {\n return -1;\n }\n\n if (aNum > bNum) {\n return 1;\n }\n } else {\n if (aChar < bChar) {\n return -1;\n }\n\n if (aChar > bChar) {\n return 1;\n }\n\n ++aIdx;\n ++bIdx;\n }\n }\n\n return aStr.length - bStr.length;\n}\nvar DIGIT_0 = 48;\nvar DIGIT_9 = 57;\n\nfunction isDigit(code) {\n return !isNaN(code) && DIGIT_0 <= code && code <= DIGIT_9;\n}","import naturalCompare from \"./naturalCompare.mjs\";\n/**\n * Given an invalid input string and a list of valid options, returns a filtered\n * list of valid options sorted based on their similarity with the input.\n */\n\nexport default function suggestionList(input, options) {\n var optionsByDistance = Object.create(null);\n var lexicalDistance = new LexicalDistance(input);\n var threshold = Math.floor(input.length * 0.4) + 1;\n\n for (var _i2 = 0; _i2 < options.length; _i2++) {\n var option = options[_i2];\n var distance = lexicalDistance.measure(option, threshold);\n\n if (distance !== undefined) {\n optionsByDistance[option] = distance;\n }\n }\n\n return Object.keys(optionsByDistance).sort(function (a, b) {\n var distanceDiff = optionsByDistance[a] - optionsByDistance[b];\n return distanceDiff !== 0 ? distanceDiff : naturalCompare(a, b);\n });\n}\n/**\n * Computes the lexical distance between strings A and B.\n *\n * The \"distance\" between two strings is given by counting the minimum number\n * of edits needed to transform string A into string B. An edit can be an\n * insertion, deletion, or substitution of a single character, or a swap of two\n * adjacent characters.\n *\n * Includes a custom alteration from Damerau-Levenshtein to treat case changes\n * as a single edit which helps identify mis-cased values with an edit distance\n * of 1.\n *\n * This distance can be useful for detecting typos in input or sorting\n */\n\nvar LexicalDistance = /*#__PURE__*/function () {\n function LexicalDistance(input) {\n this._input = input;\n this._inputLowerCase = input.toLowerCase();\n this._inputArray = stringToArray(this._inputLowerCase);\n this._rows = [new Array(input.length + 1).fill(0), new Array(input.length + 1).fill(0), new Array(input.length + 1).fill(0)];\n }\n\n var _proto = LexicalDistance.prototype;\n\n _proto.measure = function measure(option, threshold) {\n if (this._input === option) {\n return 0;\n }\n\n var optionLowerCase = option.toLowerCase(); // Any case change counts as a single edit\n\n if (this._inputLowerCase === optionLowerCase) {\n return 1;\n }\n\n var a = stringToArray(optionLowerCase);\n var b = this._inputArray;\n\n if (a.length < b.length) {\n var tmp = a;\n a = b;\n b = tmp;\n }\n\n var aLength = a.length;\n var bLength = b.length;\n\n if (aLength - bLength > threshold) {\n return undefined;\n }\n\n var rows = this._rows;\n\n for (var j = 0; j <= bLength; j++) {\n rows[0][j] = j;\n }\n\n for (var i = 1; i <= aLength; i++) {\n var upRow = rows[(i - 1) % 3];\n var currentRow = rows[i % 3];\n var smallestCell = currentRow[0] = i;\n\n for (var _j = 1; _j <= bLength; _j++) {\n var cost = a[i - 1] === b[_j - 1] ? 0 : 1;\n var currentCell = Math.min(upRow[_j] + 1, // delete\n currentRow[_j - 1] + 1, // insert\n upRow[_j - 1] + cost // substitute\n );\n\n if (i > 1 && _j > 1 && a[i - 1] === b[_j - 2] && a[i - 2] === b[_j - 1]) {\n // transposition\n var doubleDiagonalCell = rows[(i - 2) % 3][_j - 2];\n currentCell = Math.min(currentCell, doubleDiagonalCell + 1);\n }\n\n if (currentCell < smallestCell) {\n smallestCell = currentCell;\n }\n\n currentRow[_j] = currentCell;\n } // Early exit, since distance can't go smaller than smallest element of the previous row.\n\n\n if (smallestCell > threshold) {\n return undefined;\n }\n }\n\n var distance = rows[aLength % 3][bLength];\n return distance <= threshold ? distance : undefined;\n };\n\n return LexicalDistance;\n}();\n\nfunction stringToArray(str) {\n var strLength = str.length;\n var array = new Array(strLength);\n\n for (var i = 0; i < strLength; ++i) {\n array[i] = str.charCodeAt(i);\n }\n\n return array;\n}","import inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport keyValMap from \"../jsutils/keyValMap.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value\n * will reflect the provided GraphQL value AST.\n *\n * | GraphQL Value | JavaScript Value |\n * | -------------------- | ---------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String / Enum | String |\n * | Int / Float | Number |\n * | Null | null |\n *\n */\n\nexport function valueFromASTUntyped(valueNode, variables) {\n switch (valueNode.kind) {\n case Kind.NULL:\n return null;\n\n case Kind.INT:\n return parseInt(valueNode.value, 10);\n\n case Kind.FLOAT:\n return parseFloat(valueNode.value);\n\n case Kind.STRING:\n case Kind.ENUM:\n case Kind.BOOLEAN:\n return valueNode.value;\n\n case Kind.LIST:\n return valueNode.values.map(function (node) {\n return valueFromASTUntyped(node, variables);\n });\n\n case Kind.OBJECT:\n return keyValMap(valueNode.fields, function (field) {\n return field.name.value;\n }, function (field) {\n return valueFromASTUntyped(field.value, variables);\n });\n\n case Kind.VARIABLE:\n return variables === null || variables === void 0 ? void 0 : variables[valueNode.name.value];\n } // istanbul ignore next (Not reachable. All possible value nodes have been considered)\n\n\n false || invariant(0, 'Unexpected value node: ' + inspect(valueNode));\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport objectEntries from \"../polyfills/objectEntries.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport mapValue from \"../jsutils/mapValue.mjs\";\nimport toObjMap from \"../jsutils/toObjMap.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport keyValMap from \"../jsutils/keyValMap.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\nimport didYouMean from \"../jsutils/didYouMean.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport identityFunc from \"../jsutils/identityFunc.mjs\";\nimport defineInspect from \"../jsutils/defineInspect.mjs\";\nimport suggestionList from \"../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { valueFromASTUntyped } from \"../utilities/valueFromASTUntyped.mjs\";\nexport function isType(type) {\n return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type) || isListType(type) || isNonNullType(type);\n}\nexport function assertType(type) {\n if (!isType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL type.\"));\n }\n\n return type;\n}\n/**\n * There are predicates for each kind of GraphQL type.\n */\n// eslint-disable-next-line no-redeclare\n\nexport function isScalarType(type) {\n return instanceOf(type, GraphQLScalarType);\n}\nexport function assertScalarType(type) {\n if (!isScalarType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Scalar type.\"));\n }\n\n return type;\n} // eslint-disable-next-line no-redeclare\n\nexport function isObjectType(type) {\n return instanceOf(type, GraphQLObjectType);\n}\nexport function assertObjectType(type) {\n if (!isObjectType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Object type.\"));\n }\n\n return type;\n} // eslint-disable-next-line no-redeclare\n\nexport function isInterfaceType(type) {\n return instanceOf(type, GraphQLInterfaceType);\n}\nexport function assertInterfaceType(type) {\n if (!isInterfaceType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Interface type.\"));\n }\n\n return type;\n} // eslint-disable-next-line no-redeclare\n\nexport function isUnionType(type) {\n return instanceOf(type, GraphQLUnionType);\n}\nexport function assertUnionType(type) {\n if (!isUnionType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Union type.\"));\n }\n\n return type;\n} // eslint-disable-next-line no-redeclare\n\nexport function isEnumType(type) {\n return instanceOf(type, GraphQLEnumType);\n}\nexport function assertEnumType(type) {\n if (!isEnumType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Enum type.\"));\n }\n\n return type;\n} // eslint-disable-next-line no-redeclare\n\nexport function isInputObjectType(type) {\n return instanceOf(type, GraphQLInputObjectType);\n}\nexport function assertInputObjectType(type) {\n if (!isInputObjectType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Input Object type.\"));\n }\n\n return type;\n} // eslint-disable-next-line no-redeclare\n\nexport function isListType(type) {\n return instanceOf(type, GraphQLList);\n}\nexport function assertListType(type) {\n if (!isListType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL List type.\"));\n }\n\n return type;\n} // eslint-disable-next-line no-redeclare\n\nexport function isNonNullType(type) {\n return instanceOf(type, GraphQLNonNull);\n}\nexport function assertNonNullType(type) {\n if (!isNonNullType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Non-Null type.\"));\n }\n\n return type;\n}\n/**\n * These types may be used as input types for arguments and directives.\n */\n\nexport function isInputType(type) {\n return isScalarType(type) || isEnumType(type) || isInputObjectType(type) || isWrappingType(type) && isInputType(type.ofType);\n}\nexport function assertInputType(type) {\n if (!isInputType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL input type.\"));\n }\n\n return type;\n}\n/**\n * These types may be used as output types as the result of fields.\n */\n\nexport function isOutputType(type) {\n return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isWrappingType(type) && isOutputType(type.ofType);\n}\nexport function assertOutputType(type) {\n if (!isOutputType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL output type.\"));\n }\n\n return type;\n}\n/**\n * These types may describe types which may be leaf values.\n */\n\nexport function isLeafType(type) {\n return isScalarType(type) || isEnumType(type);\n}\nexport function assertLeafType(type) {\n if (!isLeafType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL leaf type.\"));\n }\n\n return type;\n}\n/**\n * These types may describe the parent context of a selection set.\n */\n\nexport function isCompositeType(type) {\n return isObjectType(type) || isInterfaceType(type) || isUnionType(type);\n}\nexport function assertCompositeType(type) {\n if (!isCompositeType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL composite type.\"));\n }\n\n return type;\n}\n/**\n * These types may describe the parent context of a selection set.\n */\n\nexport function isAbstractType(type) {\n return isInterfaceType(type) || isUnionType(type);\n}\nexport function assertAbstractType(type) {\n if (!isAbstractType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL abstract type.\"));\n }\n\n return type;\n}\n/**\n * List Type Wrapper\n *\n * A list is a wrapping type which points to another type.\n * Lists are often created within the context of defining the fields of\n * an object type.\n *\n * Example:\n *\n * const PersonType = new GraphQLObjectType({\n * name: 'Person',\n * fields: () => ({\n * parents: { type: new GraphQLList(PersonType) },\n * children: { type: new GraphQLList(PersonType) },\n * })\n * })\n *\n */\n// FIXME: workaround to fix issue with Babel parser\n\n/* ::\ndeclare class GraphQLList<+T: GraphQLType> {\n +ofType: T;\n static (ofType: T): GraphQLList;\n // Note: constructors cannot be used for covariant types. Drop the \"new\".\n constructor(ofType: GraphQLType): void;\n}\n*/\n\nexport function GraphQLList(ofType) {\n // istanbul ignore else (to be removed in v16.0.0)\n if (this instanceof GraphQLList) {\n this.ofType = assertType(ofType);\n } else {\n return new GraphQLList(ofType);\n }\n} // Need to cast through any to alter the prototype.\n\nGraphQLList.prototype.toString = function toString() {\n return '[' + String(this.ofType) + ']';\n};\n\nGraphQLList.prototype.toJSON = function toJSON() {\n return this.toString();\n};\n\nObject.defineProperty(GraphQLList.prototype, SYMBOL_TO_STRING_TAG, {\n get: function get() {\n return 'GraphQLList';\n }\n}); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLList);\n/**\n * Non-Null Type Wrapper\n *\n * A non-null is a wrapping type which points to another type.\n * Non-null types enforce that their values are never null and can ensure\n * an error is raised if this ever occurs during a request. It is useful for\n * fields which you can make a strong guarantee on non-nullability, for example\n * usually the id field of a database row will never be null.\n *\n * Example:\n *\n * const RowType = new GraphQLObjectType({\n * name: 'Row',\n * fields: () => ({\n * id: { type: new GraphQLNonNull(GraphQLString) },\n * })\n * })\n *\n * Note: the enforcement of non-nullability occurs within the executor.\n */\n// FIXME: workaround to fix issue with Babel parser\n\n/* ::\ndeclare class GraphQLNonNull<+T: GraphQLNullableType> {\n +ofType: T;\n static (ofType: T): GraphQLNonNull;\n // Note: constructors cannot be used for covariant types. Drop the \"new\".\n constructor(ofType: GraphQLType): void;\n}\n*/\n\nexport function GraphQLNonNull(ofType) {\n // istanbul ignore else (to be removed in v16.0.0)\n if (this instanceof GraphQLNonNull) {\n this.ofType = assertNullableType(ofType);\n } else {\n return new GraphQLNonNull(ofType);\n }\n} // Need to cast through any to alter the prototype.\n\nGraphQLNonNull.prototype.toString = function toString() {\n return String(this.ofType) + '!';\n};\n\nGraphQLNonNull.prototype.toJSON = function toJSON() {\n return this.toString();\n};\n\nObject.defineProperty(GraphQLNonNull.prototype, SYMBOL_TO_STRING_TAG, {\n get: function get() {\n return 'GraphQLNonNull';\n }\n}); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLNonNull);\n/**\n * These types wrap and modify other types\n */\n\nexport function isWrappingType(type) {\n return isListType(type) || isNonNullType(type);\n}\nexport function assertWrappingType(type) {\n if (!isWrappingType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL wrapping type.\"));\n }\n\n return type;\n}\n/**\n * These types can all accept null as a value.\n */\n\nexport function isNullableType(type) {\n return isType(type) && !isNonNullType(type);\n}\nexport function assertNullableType(type) {\n if (!isNullableType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL nullable type.\"));\n }\n\n return type;\n}\n/* eslint-disable no-redeclare */\n\nexport function getNullableType(type) {\n /* eslint-enable no-redeclare */\n if (type) {\n return isNonNullType(type) ? type.ofType : type;\n }\n}\n/**\n * These named types do not include modifiers like List or NonNull.\n */\n\nexport function isNamedType(type) {\n return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type);\n}\nexport function assertNamedType(type) {\n if (!isNamedType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL named type.\"));\n }\n\n return type;\n}\n/* eslint-disable no-redeclare */\n\nexport function getNamedType(type) {\n /* eslint-enable no-redeclare */\n if (type) {\n var unwrappedType = type;\n\n while (isWrappingType(unwrappedType)) {\n unwrappedType = unwrappedType.ofType;\n }\n\n return unwrappedType;\n }\n}\n/**\n * Used while defining GraphQL types to allow for circular references in\n * otherwise immutable type definitions.\n */\n\nfunction resolveThunk(thunk) {\n // $FlowFixMe[incompatible-use]\n return typeof thunk === 'function' ? thunk() : thunk;\n}\n\nfunction undefineIfEmpty(arr) {\n return arr && arr.length > 0 ? arr : undefined;\n}\n/**\n * Scalar Type Definition\n *\n * The leaf values of any request and input values to arguments are\n * Scalars (or Enums) and are defined with a name and a series of functions\n * used to parse input from ast or variables and to ensure validity.\n *\n * If a type's serialize function does not return a value (i.e. it returns\n * `undefined`) then an error will be raised and a `null` value will be returned\n * in the response. If the serialize function returns `null`, then no error will\n * be included in the response.\n *\n * Example:\n *\n * const OddType = new GraphQLScalarType({\n * name: 'Odd',\n * serialize(value) {\n * if (value % 2 === 1) {\n * return value;\n * }\n * }\n * });\n *\n */\n\n\nexport var GraphQLScalarType = /*#__PURE__*/function () {\n function GraphQLScalarType(config) {\n var _config$parseValue, _config$serialize, _config$parseLiteral;\n\n var parseValue = (_config$parseValue = config.parseValue) !== null && _config$parseValue !== void 0 ? _config$parseValue : identityFunc;\n this.name = config.name;\n this.description = config.description;\n this.specifiedByUrl = config.specifiedByUrl;\n this.serialize = (_config$serialize = config.serialize) !== null && _config$serialize !== void 0 ? _config$serialize : identityFunc;\n this.parseValue = parseValue;\n this.parseLiteral = (_config$parseLiteral = config.parseLiteral) !== null && _config$parseLiteral !== void 0 ? _config$parseLiteral : function (node, variables) {\n return parseValue(valueFromASTUntyped(node, variables));\n };\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.specifiedByUrl == null || typeof config.specifiedByUrl === 'string' || devAssert(0, \"\".concat(this.name, \" must provide \\\"specifiedByUrl\\\" as a string, \") + \"but got: \".concat(inspect(config.specifiedByUrl), \".\"));\n config.serialize == null || typeof config.serialize === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"serialize\\\" function. If this custom Scalar is also used as an input type, ensure \\\"parseValue\\\" and \\\"parseLiteral\\\" functions are also provided.\"));\n\n if (config.parseLiteral) {\n typeof config.parseValue === 'function' && typeof config.parseLiteral === 'function' || devAssert(0, \"\".concat(this.name, \" must provide both \\\"parseValue\\\" and \\\"parseLiteral\\\" functions.\"));\n }\n }\n\n var _proto = GraphQLScalarType.prototype;\n\n _proto.toConfig = function toConfig() {\n var _this$extensionASTNod;\n\n return {\n name: this.name,\n description: this.description,\n specifiedByUrl: this.specifiedByUrl,\n serialize: this.serialize,\n parseValue: this.parseValue,\n parseLiteral: this.parseLiteral,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : []\n };\n };\n\n _proto.toString = function toString() {\n return this.name;\n };\n\n _proto.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLScalarType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLScalarType';\n }\n }]);\n\n return GraphQLScalarType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLScalarType);\n/**\n * Object Type Definition\n *\n * Almost all of the GraphQL types you define will be object types. Object types\n * have a name, but most importantly describe their fields.\n *\n * Example:\n *\n * const AddressType = new GraphQLObjectType({\n * name: 'Address',\n * fields: {\n * street: { type: GraphQLString },\n * number: { type: GraphQLInt },\n * formatted: {\n * type: GraphQLString,\n * resolve(obj) {\n * return obj.number + ' ' + obj.street\n * }\n * }\n * }\n * });\n *\n * When two types need to refer to each other, or a type needs to refer to\n * itself in a field, you can use a function expression (aka a closure or a\n * thunk) to supply the fields lazily.\n *\n * Example:\n *\n * const PersonType = new GraphQLObjectType({\n * name: 'Person',\n * fields: () => ({\n * name: { type: GraphQLString },\n * bestFriend: { type: PersonType },\n * })\n * });\n *\n */\n\nexport var GraphQLObjectType = /*#__PURE__*/function () {\n function GraphQLObjectType(config) {\n this.name = config.name;\n this.description = config.description;\n this.isTypeOf = config.isTypeOf;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._fields = defineFieldMap.bind(undefined, config);\n this._interfaces = defineInterfaces.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.isTypeOf == null || typeof config.isTypeOf === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"isTypeOf\\\" as a function, \") + \"but got: \".concat(inspect(config.isTypeOf), \".\"));\n }\n\n var _proto2 = GraphQLObjectType.prototype;\n\n _proto2.getFields = function getFields() {\n if (typeof this._fields === 'function') {\n this._fields = this._fields();\n }\n\n return this._fields;\n };\n\n _proto2.getInterfaces = function getInterfaces() {\n if (typeof this._interfaces === 'function') {\n this._interfaces = this._interfaces();\n }\n\n return this._interfaces;\n };\n\n _proto2.toConfig = function toConfig() {\n return {\n name: this.name,\n description: this.description,\n interfaces: this.getInterfaces(),\n fields: fieldsToFieldsConfig(this.getFields()),\n isTypeOf: this.isTypeOf,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: this.extensionASTNodes || []\n };\n };\n\n _proto2.toString = function toString() {\n return this.name;\n };\n\n _proto2.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLObjectType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLObjectType';\n }\n }]);\n\n return GraphQLObjectType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLObjectType);\n\nfunction defineInterfaces(config) {\n var _resolveThunk;\n\n var interfaces = (_resolveThunk = resolveThunk(config.interfaces)) !== null && _resolveThunk !== void 0 ? _resolveThunk : [];\n Array.isArray(interfaces) || devAssert(0, \"\".concat(config.name, \" interfaces must be an Array or a function which returns an Array.\"));\n return interfaces;\n}\n\nfunction defineFieldMap(config) {\n var fieldMap = resolveThunk(config.fields);\n isPlainObj(fieldMap) || devAssert(0, \"\".concat(config.name, \" fields must be an object with field names as keys or a function which returns such an object.\"));\n return mapValue(fieldMap, function (fieldConfig, fieldName) {\n var _fieldConfig$args;\n\n isPlainObj(fieldConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" field config must be an object.\"));\n !('isDeprecated' in fieldConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" should provide \\\"deprecationReason\\\" instead of \\\"isDeprecated\\\".\"));\n fieldConfig.resolve == null || typeof fieldConfig.resolve === 'function' || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" field resolver must be a function if \") + \"provided, but got: \".concat(inspect(fieldConfig.resolve), \".\"));\n var argsConfig = (_fieldConfig$args = fieldConfig.args) !== null && _fieldConfig$args !== void 0 ? _fieldConfig$args : {};\n isPlainObj(argsConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" args must be an object with argument names as keys.\"));\n var args = objectEntries(argsConfig).map(function (_ref) {\n var argName = _ref[0],\n argConfig = _ref[1];\n return {\n name: argName,\n description: argConfig.description,\n type: argConfig.type,\n defaultValue: argConfig.defaultValue,\n deprecationReason: argConfig.deprecationReason,\n extensions: argConfig.extensions && toObjMap(argConfig.extensions),\n astNode: argConfig.astNode\n };\n });\n return {\n name: fieldName,\n description: fieldConfig.description,\n type: fieldConfig.type,\n args: args,\n resolve: fieldConfig.resolve,\n subscribe: fieldConfig.subscribe,\n isDeprecated: fieldConfig.deprecationReason != null,\n deprecationReason: fieldConfig.deprecationReason,\n extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),\n astNode: fieldConfig.astNode\n };\n });\n}\n\nfunction isPlainObj(obj) {\n return isObjectLike(obj) && !Array.isArray(obj);\n}\n\nfunction fieldsToFieldsConfig(fields) {\n return mapValue(fields, function (field) {\n return {\n description: field.description,\n type: field.type,\n args: argsToArgsConfig(field.args),\n resolve: field.resolve,\n subscribe: field.subscribe,\n deprecationReason: field.deprecationReason,\n extensions: field.extensions,\n astNode: field.astNode\n };\n });\n}\n/**\n * @internal\n */\n\n\nexport function argsToArgsConfig(args) {\n return keyValMap(args, function (arg) {\n return arg.name;\n }, function (arg) {\n return {\n description: arg.description,\n type: arg.type,\n defaultValue: arg.defaultValue,\n deprecationReason: arg.deprecationReason,\n extensions: arg.extensions,\n astNode: arg.astNode\n };\n });\n}\nexport function isRequiredArgument(arg) {\n return isNonNullType(arg.type) && arg.defaultValue === undefined;\n}\n/**\n * Interface Type Definition\n *\n * When a field can return one of a heterogeneous set of types, a Interface type\n * is used to describe what types are possible, what fields are in common across\n * all types, as well as a function to determine which type is actually used\n * when the field is resolved.\n *\n * Example:\n *\n * const EntityType = new GraphQLInterfaceType({\n * name: 'Entity',\n * fields: {\n * name: { type: GraphQLString }\n * }\n * });\n *\n */\n\nexport var GraphQLInterfaceType = /*#__PURE__*/function () {\n function GraphQLInterfaceType(config) {\n this.name = config.name;\n this.description = config.description;\n this.resolveType = config.resolveType;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._fields = defineFieldMap.bind(undefined, config);\n this._interfaces = defineInterfaces.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.resolveType == null || typeof config.resolveType === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"resolveType\\\" as a function, \") + \"but got: \".concat(inspect(config.resolveType), \".\"));\n }\n\n var _proto3 = GraphQLInterfaceType.prototype;\n\n _proto3.getFields = function getFields() {\n if (typeof this._fields === 'function') {\n this._fields = this._fields();\n }\n\n return this._fields;\n };\n\n _proto3.getInterfaces = function getInterfaces() {\n if (typeof this._interfaces === 'function') {\n this._interfaces = this._interfaces();\n }\n\n return this._interfaces;\n };\n\n _proto3.toConfig = function toConfig() {\n var _this$extensionASTNod2;\n\n return {\n name: this.name,\n description: this.description,\n interfaces: this.getInterfaces(),\n fields: fieldsToFieldsConfig(this.getFields()),\n resolveType: this.resolveType,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod2 = this.extensionASTNodes) !== null && _this$extensionASTNod2 !== void 0 ? _this$extensionASTNod2 : []\n };\n };\n\n _proto3.toString = function toString() {\n return this.name;\n };\n\n _proto3.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLInterfaceType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLInterfaceType';\n }\n }]);\n\n return GraphQLInterfaceType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLInterfaceType);\n/**\n * Union Type Definition\n *\n * When a field can return one of a heterogeneous set of types, a Union type\n * is used to describe what types are possible as well as providing a function\n * to determine which type is actually used when the field is resolved.\n *\n * Example:\n *\n * const PetType = new GraphQLUnionType({\n * name: 'Pet',\n * types: [ DogType, CatType ],\n * resolveType(value) {\n * if (value instanceof Dog) {\n * return DogType;\n * }\n * if (value instanceof Cat) {\n * return CatType;\n * }\n * }\n * });\n *\n */\n\nexport var GraphQLUnionType = /*#__PURE__*/function () {\n function GraphQLUnionType(config) {\n this.name = config.name;\n this.description = config.description;\n this.resolveType = config.resolveType;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._types = defineTypes.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.resolveType == null || typeof config.resolveType === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"resolveType\\\" as a function, \") + \"but got: \".concat(inspect(config.resolveType), \".\"));\n }\n\n var _proto4 = GraphQLUnionType.prototype;\n\n _proto4.getTypes = function getTypes() {\n if (typeof this._types === 'function') {\n this._types = this._types();\n }\n\n return this._types;\n };\n\n _proto4.toConfig = function toConfig() {\n var _this$extensionASTNod3;\n\n return {\n name: this.name,\n description: this.description,\n types: this.getTypes(),\n resolveType: this.resolveType,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod3 = this.extensionASTNodes) !== null && _this$extensionASTNod3 !== void 0 ? _this$extensionASTNod3 : []\n };\n };\n\n _proto4.toString = function toString() {\n return this.name;\n };\n\n _proto4.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLUnionType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLUnionType';\n }\n }]);\n\n return GraphQLUnionType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLUnionType);\n\nfunction defineTypes(config) {\n var types = resolveThunk(config.types);\n Array.isArray(types) || devAssert(0, \"Must provide Array of types or a function which returns such an array for Union \".concat(config.name, \".\"));\n return types;\n}\n/**\n * Enum Type Definition\n *\n * Some leaf values of requests and input values are Enums. GraphQL serializes\n * Enum values as strings, however internally Enums can be represented by any\n * kind of type, often integers.\n *\n * Example:\n *\n * const RGBType = new GraphQLEnumType({\n * name: 'RGB',\n * values: {\n * RED: { value: 0 },\n * GREEN: { value: 1 },\n * BLUE: { value: 2 }\n * }\n * });\n *\n * Note: If a value is not provided in a definition, the name of the enum value\n * will be used as its internal value.\n */\n\n\nexport var GraphQLEnumType\n/* */\n=\n/*#__PURE__*/\nfunction () {\n function GraphQLEnumType(config) {\n this.name = config.name;\n this.description = config.description;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._values = defineEnumValues(this.name, config.values);\n this._valueLookup = new Map(this._values.map(function (enumValue) {\n return [enumValue.value, enumValue];\n }));\n this._nameLookup = keyMap(this._values, function (value) {\n return value.name;\n });\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n }\n\n var _proto5 = GraphQLEnumType.prototype;\n\n _proto5.getValues = function getValues() {\n return this._values;\n };\n\n _proto5.getValue = function getValue(name) {\n return this._nameLookup[name];\n };\n\n _proto5.serialize = function serialize(outputValue) {\n var enumValue = this._valueLookup.get(outputValue);\n\n if (enumValue === undefined) {\n throw new GraphQLError(\"Enum \\\"\".concat(this.name, \"\\\" cannot represent value: \").concat(inspect(outputValue)));\n }\n\n return enumValue.name;\n };\n\n _proto5.parseValue = function parseValue(inputValue)\n /* T */\n {\n if (typeof inputValue !== 'string') {\n var valueStr = inspect(inputValue);\n throw new GraphQLError(\"Enum \\\"\".concat(this.name, \"\\\" cannot represent non-string value: \").concat(valueStr, \".\") + didYouMeanEnumValue(this, valueStr));\n }\n\n var enumValue = this.getValue(inputValue);\n\n if (enumValue == null) {\n throw new GraphQLError(\"Value \\\"\".concat(inputValue, \"\\\" does not exist in \\\"\").concat(this.name, \"\\\" enum.\") + didYouMeanEnumValue(this, inputValue));\n }\n\n return enumValue.value;\n };\n\n _proto5.parseLiteral = function parseLiteral(valueNode, _variables)\n /* T */\n {\n // Note: variables will be resolved to a value before calling this function.\n if (valueNode.kind !== Kind.ENUM) {\n var valueStr = print(valueNode);\n throw new GraphQLError(\"Enum \\\"\".concat(this.name, \"\\\" cannot represent non-enum value: \").concat(valueStr, \".\") + didYouMeanEnumValue(this, valueStr), valueNode);\n }\n\n var enumValue = this.getValue(valueNode.value);\n\n if (enumValue == null) {\n var _valueStr = print(valueNode);\n\n throw new GraphQLError(\"Value \\\"\".concat(_valueStr, \"\\\" does not exist in \\\"\").concat(this.name, \"\\\" enum.\") + didYouMeanEnumValue(this, _valueStr), valueNode);\n }\n\n return enumValue.value;\n };\n\n _proto5.toConfig = function toConfig() {\n var _this$extensionASTNod4;\n\n var values = keyValMap(this.getValues(), function (value) {\n return value.name;\n }, function (value) {\n return {\n description: value.description,\n value: value.value,\n deprecationReason: value.deprecationReason,\n extensions: value.extensions,\n astNode: value.astNode\n };\n });\n return {\n name: this.name,\n description: this.description,\n values: values,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod4 = this.extensionASTNodes) !== null && _this$extensionASTNod4 !== void 0 ? _this$extensionASTNod4 : []\n };\n };\n\n _proto5.toString = function toString() {\n return this.name;\n };\n\n _proto5.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLEnumType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLEnumType';\n }\n }]);\n\n return GraphQLEnumType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLEnumType);\n\nfunction didYouMeanEnumValue(enumType, unknownValueStr) {\n var allNames = enumType.getValues().map(function (value) {\n return value.name;\n });\n var suggestedValues = suggestionList(unknownValueStr, allNames);\n return didYouMean('the enum value', suggestedValues);\n}\n\nfunction defineEnumValues(typeName, valueMap) {\n isPlainObj(valueMap) || devAssert(0, \"\".concat(typeName, \" values must be an object with value names as keys.\"));\n return objectEntries(valueMap).map(function (_ref2) {\n var valueName = _ref2[0],\n valueConfig = _ref2[1];\n isPlainObj(valueConfig) || devAssert(0, \"\".concat(typeName, \".\").concat(valueName, \" must refer to an object with a \\\"value\\\" key \") + \"representing an internal value but got: \".concat(inspect(valueConfig), \".\"));\n !('isDeprecated' in valueConfig) || devAssert(0, \"\".concat(typeName, \".\").concat(valueName, \" should provide \\\"deprecationReason\\\" instead of \\\"isDeprecated\\\".\"));\n return {\n name: valueName,\n description: valueConfig.description,\n value: valueConfig.value !== undefined ? valueConfig.value : valueName,\n isDeprecated: valueConfig.deprecationReason != null,\n deprecationReason: valueConfig.deprecationReason,\n extensions: valueConfig.extensions && toObjMap(valueConfig.extensions),\n astNode: valueConfig.astNode\n };\n });\n}\n/**\n * Input Object Type Definition\n *\n * An input object defines a structured collection of fields which may be\n * supplied to a field argument.\n *\n * Using `NonNull` will ensure that a value must be provided by the query\n *\n * Example:\n *\n * const GeoPoint = new GraphQLInputObjectType({\n * name: 'GeoPoint',\n * fields: {\n * lat: { type: new GraphQLNonNull(GraphQLFloat) },\n * lon: { type: new GraphQLNonNull(GraphQLFloat) },\n * alt: { type: GraphQLFloat, defaultValue: 0 },\n * }\n * });\n *\n */\n\n\nexport var GraphQLInputObjectType = /*#__PURE__*/function () {\n function GraphQLInputObjectType(config) {\n this.name = config.name;\n this.description = config.description;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._fields = defineInputFieldMap.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n }\n\n var _proto6 = GraphQLInputObjectType.prototype;\n\n _proto6.getFields = function getFields() {\n if (typeof this._fields === 'function') {\n this._fields = this._fields();\n }\n\n return this._fields;\n };\n\n _proto6.toConfig = function toConfig() {\n var _this$extensionASTNod5;\n\n var fields = mapValue(this.getFields(), function (field) {\n return {\n description: field.description,\n type: field.type,\n defaultValue: field.defaultValue,\n extensions: field.extensions,\n astNode: field.astNode\n };\n });\n return {\n name: this.name,\n description: this.description,\n fields: fields,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod5 = this.extensionASTNodes) !== null && _this$extensionASTNod5 !== void 0 ? _this$extensionASTNod5 : []\n };\n };\n\n _proto6.toString = function toString() {\n return this.name;\n };\n\n _proto6.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLInputObjectType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLInputObjectType';\n }\n }]);\n\n return GraphQLInputObjectType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLInputObjectType);\n\nfunction defineInputFieldMap(config) {\n var fieldMap = resolveThunk(config.fields);\n isPlainObj(fieldMap) || devAssert(0, \"\".concat(config.name, \" fields must be an object with field names as keys or a function which returns such an object.\"));\n return mapValue(fieldMap, function (fieldConfig, fieldName) {\n !('resolve' in fieldConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" field has a resolve property, but Input Types cannot define resolvers.\"));\n return {\n name: fieldName,\n description: fieldConfig.description,\n type: fieldConfig.type,\n defaultValue: fieldConfig.defaultValue,\n deprecationReason: fieldConfig.deprecationReason,\n extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),\n astNode: fieldConfig.astNode\n };\n });\n}\n\nexport function isRequiredInputField(field) {\n return isNonNullType(field.type) && field.defaultValue === undefined;\n}","import { isInterfaceType, isObjectType, isListType, isNonNullType, isAbstractType } from \"../type/definition.mjs\";\n/**\n * Provided two types, return true if the types are equal (invariant).\n */\n\nexport function isEqualType(typeA, typeB) {\n // Equivalent types are equal.\n if (typeA === typeB) {\n return true;\n } // If either type is non-null, the other must also be non-null.\n\n\n if (isNonNullType(typeA) && isNonNullType(typeB)) {\n return isEqualType(typeA.ofType, typeB.ofType);\n } // If either type is a list, the other must also be a list.\n\n\n if (isListType(typeA) && isListType(typeB)) {\n return isEqualType(typeA.ofType, typeB.ofType);\n } // Otherwise the types are not equal.\n\n\n return false;\n}\n/**\n * Provided a type and a super type, return true if the first type is either\n * equal or a subset of the second super type (covariant).\n */\n\nexport function isTypeSubTypeOf(schema, maybeSubType, superType) {\n // Equivalent type is a valid subtype\n if (maybeSubType === superType) {\n return true;\n } // If superType is non-null, maybeSubType must also be non-null.\n\n\n if (isNonNullType(superType)) {\n if (isNonNullType(maybeSubType)) {\n return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);\n }\n\n return false;\n }\n\n if (isNonNullType(maybeSubType)) {\n // If superType is nullable, maybeSubType may be non-null or nullable.\n return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);\n } // If superType type is a list, maybeSubType type must also be a list.\n\n\n if (isListType(superType)) {\n if (isListType(maybeSubType)) {\n return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);\n }\n\n return false;\n }\n\n if (isListType(maybeSubType)) {\n // If superType is not a list, maybeSubType must also be not a list.\n return false;\n } // If superType type is an abstract type, check if it is super type of maybeSubType.\n // Otherwise, the child type is not a valid subtype of the parent type.\n\n\n return isAbstractType(superType) && (isInterfaceType(maybeSubType) || isObjectType(maybeSubType)) && schema.isSubType(superType, maybeSubType);\n}\n/**\n * Provided two composite types, determine if they \"overlap\". Two composite\n * types overlap when the Sets of possible concrete types for each intersect.\n *\n * This is often used to determine if a fragment of a given type could possibly\n * be visited in a context of another type.\n *\n * This function is commutative.\n */\n\nexport function doTypesOverlap(schema, typeA, typeB) {\n // Equivalent types overlap\n if (typeA === typeB) {\n return true;\n }\n\n if (isAbstractType(typeA)) {\n if (isAbstractType(typeB)) {\n // If both types are abstract, then determine if there is any intersection\n // between possible concrete types of each.\n return schema.getPossibleTypes(typeA).some(function (type) {\n return schema.isSubType(typeB, type);\n });\n } // Determine if the latter type is a possible concrete type of the former.\n\n\n return schema.isSubType(typeA, typeB);\n }\n\n if (isAbstractType(typeB)) {\n // Determine if the former type is a possible concrete type of the latter.\n return schema.isSubType(typeB, typeA);\n } // Otherwise the types do not overlap.\n\n\n return false;\n}","import { SYMBOL_ITERATOR } from \"./symbols.mjs\";\n/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound]\n\nvar arrayFrom = Array.from || function (obj, mapFn, thisArg) {\n if (obj == null) {\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\n } // Is Iterable?\n\n\n var iteratorMethod = obj[SYMBOL_ITERATOR];\n\n if (typeof iteratorMethod === 'function') {\n var iterator = iteratorMethod.call(obj);\n var result = [];\n var step;\n\n for (var i = 0; !(step = iterator.next()).done; ++i) {\n result.push(mapFn.call(thisArg, step.value, i)); // Infinite Iterators could cause forEach to run forever.\n // After a very large number of iterations, produce an error.\n // istanbul ignore if (Too big to actually test)\n\n if (i > 9999999) {\n throw new TypeError('Near-infinite iteration.');\n }\n }\n\n return result;\n } // Is Array like?\n\n\n var length = obj.length;\n\n if (typeof length === 'number' && length >= 0 && length % 1 === 0) {\n var _result = [];\n\n for (var _i = 0; _i < length; ++_i) {\n if (Object.prototype.hasOwnProperty.call(obj, _i)) {\n _result.push(mapFn.call(thisArg, obj[_i], _i));\n }\n }\n\n return _result;\n }\n\n return [];\n};\n\nexport default arrayFrom;","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441\nvar isFinitePolyfill = Number.isFinite || function (value) {\n return typeof value === 'number' && isFinite(value);\n};\n\nexport default isFinitePolyfill;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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\nimport { SYMBOL_ITERATOR } from \"../polyfills/symbols.mjs\";\n/**\n * Safer version of `Array.from` that return `null` if value isn't convertible to array.\n * Also protects against Array-like objects without items.\n *\n * @example\n *\n * safeArrayFrom([ 1, 2, 3 ]) // [1, 2, 3]\n * safeArrayFrom('ABC') // null\n * safeArrayFrom({ length: 1 }) // null\n * safeArrayFrom({ length: 1, 0: 'Alpha' }) // ['Alpha']\n * safeArrayFrom({ key: 'value' }) // null\n * safeArrayFrom(new Map()) // []\n *\n */\n\nexport default function safeArrayFrom(collection) {\n var mapFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (item) {\n return item;\n };\n\n if (collection == null || _typeof(collection) !== 'object') {\n return null;\n }\n\n if (Array.isArray(collection)) {\n return collection.map(mapFn);\n } // Is Iterable?\n\n\n var iteratorMethod = collection[SYMBOL_ITERATOR];\n\n if (typeof iteratorMethod === 'function') {\n // $FlowFixMe[incompatible-use]\n var iterator = iteratorMethod.call(collection);\n var result = [];\n var step;\n\n for (var i = 0; !(step = iterator.next()).done; ++i) {\n result.push(mapFn(step.value, i));\n }\n\n return result;\n } // Is Array like?\n\n\n var length = collection.length;\n\n if (typeof length === 'number' && length >= 0 && length % 1 === 0) {\n var _result = [];\n\n for (var _i = 0; _i < length; ++_i) {\n if (!Object.prototype.hasOwnProperty.call(collection, _i)) {\n return null;\n }\n\n _result.push(mapFn(collection[String(_i)], _i));\n }\n\n return _result;\n }\n\n return null;\n}","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441\nvar isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n};\n\nexport default isInteger;","import isFinite from \"../polyfills/isFinite.mjs\";\nimport isInteger from \"../polyfills/isInteger.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { GraphQLScalarType } from \"./definition.mjs\"; // As per the GraphQL Spec, Integers are only treated as valid when a valid\n// 32-bit signed integer, providing the broadest support across platforms.\n//\n// n.b. JavaScript's integers are safe between -(2^53 - 1) and 2^53 - 1 because\n// they are internally represented as IEEE 754 doubles.\n\nvar MAX_INT = 2147483647;\nvar MIN_INT = -2147483648;\n\nfunction serializeInt(outputValue) {\n var coercedValue = serializeObject(outputValue);\n\n if (typeof coercedValue === 'boolean') {\n return coercedValue ? 1 : 0;\n }\n\n var num = coercedValue;\n\n if (typeof coercedValue === 'string' && coercedValue !== '') {\n num = Number(coercedValue);\n }\n\n if (!isInteger(num)) {\n throw new GraphQLError(\"Int cannot represent non-integer value: \".concat(inspect(coercedValue)));\n }\n\n if (num > MAX_INT || num < MIN_INT) {\n throw new GraphQLError('Int cannot represent non 32-bit signed integer value: ' + inspect(coercedValue));\n }\n\n return num;\n}\n\nfunction coerceInt(inputValue) {\n if (!isInteger(inputValue)) {\n throw new GraphQLError(\"Int cannot represent non-integer value: \".concat(inspect(inputValue)));\n }\n\n if (inputValue > MAX_INT || inputValue < MIN_INT) {\n throw new GraphQLError(\"Int cannot represent non 32-bit signed integer value: \".concat(inputValue));\n }\n\n return inputValue;\n}\n\nexport var GraphQLInt = new GraphQLScalarType({\n name: 'Int',\n description: 'The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.',\n serialize: serializeInt,\n parseValue: coerceInt,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.INT) {\n throw new GraphQLError(\"Int cannot represent non-integer value: \".concat(print(valueNode)), valueNode);\n }\n\n var num = parseInt(valueNode.value, 10);\n\n if (num > MAX_INT || num < MIN_INT) {\n throw new GraphQLError(\"Int cannot represent non 32-bit signed integer value: \".concat(valueNode.value), valueNode);\n }\n\n return num;\n }\n});\n\nfunction serializeFloat(outputValue) {\n var coercedValue = serializeObject(outputValue);\n\n if (typeof coercedValue === 'boolean') {\n return coercedValue ? 1 : 0;\n }\n\n var num = coercedValue;\n\n if (typeof coercedValue === 'string' && coercedValue !== '') {\n num = Number(coercedValue);\n }\n\n if (!isFinite(num)) {\n throw new GraphQLError(\"Float cannot represent non numeric value: \".concat(inspect(coercedValue)));\n }\n\n return num;\n}\n\nfunction coerceFloat(inputValue) {\n if (!isFinite(inputValue)) {\n throw new GraphQLError(\"Float cannot represent non numeric value: \".concat(inspect(inputValue)));\n }\n\n return inputValue;\n}\n\nexport var GraphQLFloat = new GraphQLScalarType({\n name: 'Float',\n description: 'The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).',\n serialize: serializeFloat,\n parseValue: coerceFloat,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.FLOAT && valueNode.kind !== Kind.INT) {\n throw new GraphQLError(\"Float cannot represent non numeric value: \".concat(print(valueNode)), valueNode);\n }\n\n return parseFloat(valueNode.value);\n }\n}); // Support serializing objects with custom valueOf() or toJSON() functions -\n// a common way to represent a complex value which can be represented as\n// a string (ex: MongoDB id objects).\n\nfunction serializeObject(outputValue) {\n if (isObjectLike(outputValue)) {\n if (typeof outputValue.valueOf === 'function') {\n var valueOfResult = outputValue.valueOf();\n\n if (!isObjectLike(valueOfResult)) {\n return valueOfResult;\n }\n }\n\n if (typeof outputValue.toJSON === 'function') {\n // $FlowFixMe[incompatible-use]\n return outputValue.toJSON();\n }\n }\n\n return outputValue;\n}\n\nfunction serializeString(outputValue) {\n var coercedValue = serializeObject(outputValue); // Serialize string, boolean and number values to a string, but do not\n // attempt to coerce object, function, symbol, or other types as strings.\n\n if (typeof coercedValue === 'string') {\n return coercedValue;\n }\n\n if (typeof coercedValue === 'boolean') {\n return coercedValue ? 'true' : 'false';\n }\n\n if (isFinite(coercedValue)) {\n return coercedValue.toString();\n }\n\n throw new GraphQLError(\"String cannot represent value: \".concat(inspect(outputValue)));\n}\n\nfunction coerceString(inputValue) {\n if (typeof inputValue !== 'string') {\n throw new GraphQLError(\"String cannot represent a non string value: \".concat(inspect(inputValue)));\n }\n\n return inputValue;\n}\n\nexport var GraphQLString = new GraphQLScalarType({\n name: 'String',\n description: 'The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.',\n serialize: serializeString,\n parseValue: coerceString,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.STRING) {\n throw new GraphQLError(\"String cannot represent a non string value: \".concat(print(valueNode)), valueNode);\n }\n\n return valueNode.value;\n }\n});\n\nfunction serializeBoolean(outputValue) {\n var coercedValue = serializeObject(outputValue);\n\n if (typeof coercedValue === 'boolean') {\n return coercedValue;\n }\n\n if (isFinite(coercedValue)) {\n return coercedValue !== 0;\n }\n\n throw new GraphQLError(\"Boolean cannot represent a non boolean value: \".concat(inspect(coercedValue)));\n}\n\nfunction coerceBoolean(inputValue) {\n if (typeof inputValue !== 'boolean') {\n throw new GraphQLError(\"Boolean cannot represent a non boolean value: \".concat(inspect(inputValue)));\n }\n\n return inputValue;\n}\n\nexport var GraphQLBoolean = new GraphQLScalarType({\n name: 'Boolean',\n description: 'The `Boolean` scalar type represents `true` or `false`.',\n serialize: serializeBoolean,\n parseValue: coerceBoolean,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.BOOLEAN) {\n throw new GraphQLError(\"Boolean cannot represent a non boolean value: \".concat(print(valueNode)), valueNode);\n }\n\n return valueNode.value;\n }\n});\n\nfunction serializeID(outputValue) {\n var coercedValue = serializeObject(outputValue);\n\n if (typeof coercedValue === 'string') {\n return coercedValue;\n }\n\n if (isInteger(coercedValue)) {\n return String(coercedValue);\n }\n\n throw new GraphQLError(\"ID cannot represent value: \".concat(inspect(outputValue)));\n}\n\nfunction coerceID(inputValue) {\n if (typeof inputValue === 'string') {\n return inputValue;\n }\n\n if (isInteger(inputValue)) {\n return inputValue.toString();\n }\n\n throw new GraphQLError(\"ID cannot represent value: \".concat(inspect(inputValue)));\n}\n\nexport var GraphQLID = new GraphQLScalarType({\n name: 'ID',\n description: 'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.',\n serialize: serializeID,\n parseValue: coerceID,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.STRING && valueNode.kind !== Kind.INT) {\n throw new GraphQLError('ID cannot represent a non-string and non-integer value: ' + print(valueNode), valueNode);\n }\n\n return valueNode.value;\n }\n});\nexport var specifiedScalarTypes = Object.freeze([GraphQLString, GraphQLInt, GraphQLFloat, GraphQLBoolean, GraphQLID]);\nexport function isSpecifiedScalarType(type) {\n return specifiedScalarTypes.some(function (_ref) {\n var name = _ref.name;\n return type.name === name;\n });\n}","import isFinite from \"../polyfills/isFinite.mjs\";\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport safeArrayFrom from \"../jsutils/safeArrayFrom.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { GraphQLID } from \"../type/scalars.mjs\";\nimport { isLeafType, isEnumType, isInputObjectType, isListType, isNonNullType } from \"../type/definition.mjs\";\n/**\n * Produces a GraphQL Value AST given a JavaScript object.\n * Function will match JavaScript/JSON values to GraphQL AST schema format\n * by using suggested GraphQLInputType. For example:\n *\n * astFromValue(\"value\", GraphQLString)\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * JavaScript values.\n *\n * | JSON Value | GraphQL Value |\n * | ------------- | -------------------- |\n * | Object | Input Object |\n * | Array | List |\n * | Boolean | Boolean |\n * | String | String / Enum Value |\n * | Number | Int / Float |\n * | Mixed | Enum Value |\n * | null | NullValue |\n *\n */\n\nexport function astFromValue(value, type) {\n if (isNonNullType(type)) {\n var astValue = astFromValue(value, type.ofType);\n\n if ((astValue === null || astValue === void 0 ? void 0 : astValue.kind) === Kind.NULL) {\n return null;\n }\n\n return astValue;\n } // only explicit null, not undefined, NaN\n\n\n if (value === null) {\n return {\n kind: Kind.NULL\n };\n } // undefined\n\n\n if (value === undefined) {\n return null;\n } // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but\n // the value is not an array, convert the value using the list's item type.\n\n\n if (isListType(type)) {\n var itemType = type.ofType;\n var items = safeArrayFrom(value);\n\n if (items != null) {\n var valuesNodes = [];\n\n for (var _i2 = 0; _i2 < items.length; _i2++) {\n var item = items[_i2];\n var itemNode = astFromValue(item, itemType);\n\n if (itemNode != null) {\n valuesNodes.push(itemNode);\n }\n }\n\n return {\n kind: Kind.LIST,\n values: valuesNodes\n };\n }\n\n return astFromValue(value, itemType);\n } // Populate the fields of the input object by creating ASTs from each value\n // in the JavaScript object according to the fields in the input type.\n\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(value)) {\n return null;\n }\n\n var fieldNodes = [];\n\n for (var _i4 = 0, _objectValues2 = objectValues(type.getFields()); _i4 < _objectValues2.length; _i4++) {\n var field = _objectValues2[_i4];\n var fieldValue = astFromValue(value[field.name], field.type);\n\n if (fieldValue) {\n fieldNodes.push({\n kind: Kind.OBJECT_FIELD,\n name: {\n kind: Kind.NAME,\n value: field.name\n },\n value: fieldValue\n });\n }\n }\n\n return {\n kind: Kind.OBJECT,\n fields: fieldNodes\n };\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isLeafType(type)) {\n // Since value is an internally represented value, it must be serialized\n // to an externally represented value before converting into an AST.\n var serialized = type.serialize(value);\n\n if (serialized == null) {\n return null;\n } // Others serialize based on their corresponding JavaScript scalar types.\n\n\n if (typeof serialized === 'boolean') {\n return {\n kind: Kind.BOOLEAN,\n value: serialized\n };\n } // JavaScript numbers can be Int or Float values.\n\n\n if (typeof serialized === 'number' && isFinite(serialized)) {\n var stringNum = String(serialized);\n return integerStringRegExp.test(stringNum) ? {\n kind: Kind.INT,\n value: stringNum\n } : {\n kind: Kind.FLOAT,\n value: stringNum\n };\n }\n\n if (typeof serialized === 'string') {\n // Enum types use Enum literals.\n if (isEnumType(type)) {\n return {\n kind: Kind.ENUM,\n value: serialized\n };\n } // ID types can use Int literals.\n\n\n if (type === GraphQLID && integerStringRegExp.test(serialized)) {\n return {\n kind: Kind.INT,\n value: serialized\n };\n }\n\n return {\n kind: Kind.STRING,\n value: serialized\n };\n }\n\n throw new TypeError(\"Cannot convert value to AST: \".concat(inspect(serialized), \".\"));\n } // istanbul ignore next (Not reachable. All possible input types have been considered)\n\n\n false || invariant(0, 'Unexpected input type: ' + inspect(type));\n}\n/**\n * IntValue:\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit ( Digit+ )?\n */\n\nvar integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;","import objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { DirectiveLocation } from \"../language/directiveLocation.mjs\";\nimport { astFromValue } from \"../utilities/astFromValue.mjs\";\nimport { GraphQLString, GraphQLBoolean } from \"./scalars.mjs\";\nimport { GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLEnumType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isAbstractType } from \"./definition.mjs\";\nexport var __Schema = new GraphQLObjectType({\n name: '__Schema',\n description: 'A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.',\n fields: function fields() {\n return {\n description: {\n type: GraphQLString,\n resolve: function resolve(schema) {\n return schema.description;\n }\n },\n types: {\n description: 'A list of all types supported by this server.',\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__Type))),\n resolve: function resolve(schema) {\n return objectValues(schema.getTypeMap());\n }\n },\n queryType: {\n description: 'The type that query operations will be rooted at.',\n type: new GraphQLNonNull(__Type),\n resolve: function resolve(schema) {\n return schema.getQueryType();\n }\n },\n mutationType: {\n description: 'If this server supports mutation, the type that mutation operations will be rooted at.',\n type: __Type,\n resolve: function resolve(schema) {\n return schema.getMutationType();\n }\n },\n subscriptionType: {\n description: 'If this server support subscription, the type that subscription operations will be rooted at.',\n type: __Type,\n resolve: function resolve(schema) {\n return schema.getSubscriptionType();\n }\n },\n directives: {\n description: 'A list of all directives supported by this server.',\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__Directive))),\n resolve: function resolve(schema) {\n return schema.getDirectives();\n }\n }\n };\n }\n});\nexport var __Directive = new GraphQLObjectType({\n name: '__Directive',\n description: \"A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\\n\\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.\",\n fields: function fields() {\n return {\n name: {\n type: new GraphQLNonNull(GraphQLString),\n resolve: function resolve(directive) {\n return directive.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(directive) {\n return directive.description;\n }\n },\n isRepeatable: {\n type: new GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(directive) {\n return directive.isRepeatable;\n }\n },\n locations: {\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__DirectiveLocation))),\n resolve: function resolve(directive) {\n return directive.locations;\n }\n },\n args: {\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__InputValue))),\n resolve: function resolve(directive) {\n return directive.args;\n }\n }\n };\n }\n});\nexport var __DirectiveLocation = new GraphQLEnumType({\n name: '__DirectiveLocation',\n description: 'A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.',\n values: {\n QUERY: {\n value: DirectiveLocation.QUERY,\n description: 'Location adjacent to a query operation.'\n },\n MUTATION: {\n value: DirectiveLocation.MUTATION,\n description: 'Location adjacent to a mutation operation.'\n },\n SUBSCRIPTION: {\n value: DirectiveLocation.SUBSCRIPTION,\n description: 'Location adjacent to a subscription operation.'\n },\n FIELD: {\n value: DirectiveLocation.FIELD,\n description: 'Location adjacent to a field.'\n },\n FRAGMENT_DEFINITION: {\n value: DirectiveLocation.FRAGMENT_DEFINITION,\n description: 'Location adjacent to a fragment definition.'\n },\n FRAGMENT_SPREAD: {\n value: DirectiveLocation.FRAGMENT_SPREAD,\n description: 'Location adjacent to a fragment spread.'\n },\n INLINE_FRAGMENT: {\n value: DirectiveLocation.INLINE_FRAGMENT,\n description: 'Location adjacent to an inline fragment.'\n },\n VARIABLE_DEFINITION: {\n value: DirectiveLocation.VARIABLE_DEFINITION,\n description: 'Location adjacent to a variable definition.'\n },\n SCHEMA: {\n value: DirectiveLocation.SCHEMA,\n description: 'Location adjacent to a schema definition.'\n },\n SCALAR: {\n value: DirectiveLocation.SCALAR,\n description: 'Location adjacent to a scalar definition.'\n },\n OBJECT: {\n value: DirectiveLocation.OBJECT,\n description: 'Location adjacent to an object type definition.'\n },\n FIELD_DEFINITION: {\n value: DirectiveLocation.FIELD_DEFINITION,\n description: 'Location adjacent to a field definition.'\n },\n ARGUMENT_DEFINITION: {\n value: DirectiveLocation.ARGUMENT_DEFINITION,\n description: 'Location adjacent to an argument definition.'\n },\n INTERFACE: {\n value: DirectiveLocation.INTERFACE,\n description: 'Location adjacent to an interface definition.'\n },\n UNION: {\n value: DirectiveLocation.UNION,\n description: 'Location adjacent to a union definition.'\n },\n ENUM: {\n value: DirectiveLocation.ENUM,\n description: 'Location adjacent to an enum definition.'\n },\n ENUM_VALUE: {\n value: DirectiveLocation.ENUM_VALUE,\n description: 'Location adjacent to an enum value definition.'\n },\n INPUT_OBJECT: {\n value: DirectiveLocation.INPUT_OBJECT,\n description: 'Location adjacent to an input object type definition.'\n },\n INPUT_FIELD_DEFINITION: {\n value: DirectiveLocation.INPUT_FIELD_DEFINITION,\n description: 'Location adjacent to an input object field definition.'\n }\n }\n});\nexport var __Type = new GraphQLObjectType({\n name: '__Type',\n description: 'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\\n\\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByUrl`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.',\n fields: function fields() {\n return {\n kind: {\n type: new GraphQLNonNull(__TypeKind),\n resolve: function resolve(type) {\n if (isScalarType(type)) {\n return TypeKind.SCALAR;\n }\n\n if (isObjectType(type)) {\n return TypeKind.OBJECT;\n }\n\n if (isInterfaceType(type)) {\n return TypeKind.INTERFACE;\n }\n\n if (isUnionType(type)) {\n return TypeKind.UNION;\n }\n\n if (isEnumType(type)) {\n return TypeKind.ENUM;\n }\n\n if (isInputObjectType(type)) {\n return TypeKind.INPUT_OBJECT;\n }\n\n if (isListType(type)) {\n return TypeKind.LIST;\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isNonNullType(type)) {\n return TypeKind.NON_NULL;\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, \"Unexpected type: \\\"\".concat(inspect(type), \"\\\".\"));\n }\n },\n name: {\n type: GraphQLString,\n resolve: function resolve(type) {\n return type.name !== undefined ? type.name : undefined;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(type) {\n return type.description !== undefined ? type.description : undefined;\n }\n },\n specifiedByUrl: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.specifiedByUrl !== undefined ? obj.specifiedByUrl : undefined;\n }\n },\n fields: {\n type: new GraphQLList(new GraphQLNonNull(__Field)),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(type, _ref) {\n var includeDeprecated = _ref.includeDeprecated;\n\n if (isObjectType(type) || isInterfaceType(type)) {\n var fields = objectValues(type.getFields());\n return includeDeprecated ? fields : fields.filter(function (field) {\n return field.deprecationReason == null;\n });\n }\n }\n },\n interfaces: {\n type: new GraphQLList(new GraphQLNonNull(__Type)),\n resolve: function resolve(type) {\n if (isObjectType(type) || isInterfaceType(type)) {\n return type.getInterfaces();\n }\n }\n },\n possibleTypes: {\n type: new GraphQLList(new GraphQLNonNull(__Type)),\n resolve: function resolve(type, _args, _context, _ref2) {\n var schema = _ref2.schema;\n\n if (isAbstractType(type)) {\n return schema.getPossibleTypes(type);\n }\n }\n },\n enumValues: {\n type: new GraphQLList(new GraphQLNonNull(__EnumValue)),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(type, _ref3) {\n var includeDeprecated = _ref3.includeDeprecated;\n\n if (isEnumType(type)) {\n var values = type.getValues();\n return includeDeprecated ? values : values.filter(function (field) {\n return field.deprecationReason == null;\n });\n }\n }\n },\n inputFields: {\n type: new GraphQLList(new GraphQLNonNull(__InputValue)),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(type, _ref4) {\n var includeDeprecated = _ref4.includeDeprecated;\n\n if (isInputObjectType(type)) {\n var values = objectValues(type.getFields());\n return includeDeprecated ? values : values.filter(function (field) {\n return field.deprecationReason == null;\n });\n }\n }\n },\n ofType: {\n type: __Type,\n resolve: function resolve(type) {\n return type.ofType !== undefined ? type.ofType : undefined;\n }\n }\n };\n }\n});\nexport var __Field = new GraphQLObjectType({\n name: '__Field',\n description: 'Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.',\n fields: function fields() {\n return {\n name: {\n type: new GraphQLNonNull(GraphQLString),\n resolve: function resolve(field) {\n return field.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(field) {\n return field.description;\n }\n },\n args: {\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__InputValue))),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(field, _ref5) {\n var includeDeprecated = _ref5.includeDeprecated;\n return includeDeprecated ? field.args : field.args.filter(function (arg) {\n return arg.deprecationReason == null;\n });\n }\n },\n type: {\n type: new GraphQLNonNull(__Type),\n resolve: function resolve(field) {\n return field.type;\n }\n },\n isDeprecated: {\n type: new GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(field) {\n return field.deprecationReason != null;\n }\n },\n deprecationReason: {\n type: GraphQLString,\n resolve: function resolve(field) {\n return field.deprecationReason;\n }\n }\n };\n }\n});\nexport var __InputValue = new GraphQLObjectType({\n name: '__InputValue',\n description: 'Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.',\n fields: function fields() {\n return {\n name: {\n type: new GraphQLNonNull(GraphQLString),\n resolve: function resolve(inputValue) {\n return inputValue.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(inputValue) {\n return inputValue.description;\n }\n },\n type: {\n type: new GraphQLNonNull(__Type),\n resolve: function resolve(inputValue) {\n return inputValue.type;\n }\n },\n defaultValue: {\n type: GraphQLString,\n description: 'A GraphQL-formatted string representing the default value for this input value.',\n resolve: function resolve(inputValue) {\n var type = inputValue.type,\n defaultValue = inputValue.defaultValue;\n var valueAST = astFromValue(defaultValue, type);\n return valueAST ? print(valueAST) : null;\n }\n },\n isDeprecated: {\n type: new GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(field) {\n return field.deprecationReason != null;\n }\n },\n deprecationReason: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.deprecationReason;\n }\n }\n };\n }\n});\nexport var __EnumValue = new GraphQLObjectType({\n name: '__EnumValue',\n description: 'One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.',\n fields: function fields() {\n return {\n name: {\n type: new GraphQLNonNull(GraphQLString),\n resolve: function resolve(enumValue) {\n return enumValue.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(enumValue) {\n return enumValue.description;\n }\n },\n isDeprecated: {\n type: new GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(enumValue) {\n return enumValue.deprecationReason != null;\n }\n },\n deprecationReason: {\n type: GraphQLString,\n resolve: function resolve(enumValue) {\n return enumValue.deprecationReason;\n }\n }\n };\n }\n});\nexport var TypeKind = Object.freeze({\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n INPUT_OBJECT: 'INPUT_OBJECT',\n LIST: 'LIST',\n NON_NULL: 'NON_NULL'\n});\nexport var __TypeKind = new GraphQLEnumType({\n name: '__TypeKind',\n description: 'An enum describing what kind of type a given `__Type` is.',\n values: {\n SCALAR: {\n value: TypeKind.SCALAR,\n description: 'Indicates this type is a scalar.'\n },\n OBJECT: {\n value: TypeKind.OBJECT,\n description: 'Indicates this type is an object. `fields` and `interfaces` are valid fields.'\n },\n INTERFACE: {\n value: TypeKind.INTERFACE,\n description: 'Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.'\n },\n UNION: {\n value: TypeKind.UNION,\n description: 'Indicates this type is a union. `possibleTypes` is a valid field.'\n },\n ENUM: {\n value: TypeKind.ENUM,\n description: 'Indicates this type is an enum. `enumValues` is a valid field.'\n },\n INPUT_OBJECT: {\n value: TypeKind.INPUT_OBJECT,\n description: 'Indicates this type is an input object. `inputFields` is a valid field.'\n },\n LIST: {\n value: TypeKind.LIST,\n description: 'Indicates this type is a list. `ofType` is a valid field.'\n },\n NON_NULL: {\n value: TypeKind.NON_NULL,\n description: 'Indicates this type is a non-null. `ofType` is a valid field.'\n }\n }\n});\n/**\n * Note that these are GraphQLField and not GraphQLFieldConfig,\n * so the format for args is different.\n */\n\nexport var SchemaMetaFieldDef = {\n name: '__schema',\n type: new GraphQLNonNull(__Schema),\n description: 'Access the current type schema of this server.',\n args: [],\n resolve: function resolve(_source, _args, _context, _ref6) {\n var schema = _ref6.schema;\n return schema;\n },\n isDeprecated: false,\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n};\nexport var TypeMetaFieldDef = {\n name: '__type',\n type: __Type,\n description: 'Request the type information of a single type.',\n args: [{\n name: 'name',\n description: undefined,\n type: new GraphQLNonNull(GraphQLString),\n defaultValue: undefined,\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n }],\n resolve: function resolve(_source, _ref7, _context, _ref8) {\n var name = _ref7.name;\n var schema = _ref8.schema;\n return schema.getType(name);\n },\n isDeprecated: false,\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n};\nexport var TypeNameMetaFieldDef = {\n name: '__typename',\n type: new GraphQLNonNull(GraphQLString),\n description: 'The name of the current Object type at runtime.',\n args: [],\n resolve: function resolve(_source, _args, _context, _ref9) {\n var parentType = _ref9.parentType;\n return parentType.name;\n },\n isDeprecated: false,\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n};\nexport var introspectionTypes = Object.freeze([__Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind]);\nexport function isIntrospectionType(type) {\n return introspectionTypes.some(function (_ref10) {\n var name = _ref10.name;\n return type.name === name;\n });\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport objectEntries from \"../polyfills/objectEntries.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport toObjMap from \"../jsutils/toObjMap.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport defineInspect from \"../jsutils/defineInspect.mjs\";\nimport { DirectiveLocation } from \"../language/directiveLocation.mjs\";\nimport { GraphQLString, GraphQLBoolean } from \"./scalars.mjs\";\nimport { argsToArgsConfig, GraphQLNonNull } from \"./definition.mjs\";\n/**\n * Test if the given value is a GraphQL directive.\n */\n// eslint-disable-next-line no-redeclare\n\nexport function isDirective(directive) {\n return instanceOf(directive, GraphQLDirective);\n}\nexport function assertDirective(directive) {\n if (!isDirective(directive)) {\n throw new Error(\"Expected \".concat(inspect(directive), \" to be a GraphQL directive.\"));\n }\n\n return directive;\n}\n/**\n * Directives are used by the GraphQL runtime as a way of modifying execution\n * behavior. Type system creators will usually not create these directly.\n */\n\nexport var GraphQLDirective = /*#__PURE__*/function () {\n function GraphQLDirective(config) {\n var _config$isRepeatable, _config$args;\n\n this.name = config.name;\n this.description = config.description;\n this.locations = config.locations;\n this.isRepeatable = (_config$isRepeatable = config.isRepeatable) !== null && _config$isRepeatable !== void 0 ? _config$isRepeatable : false;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n config.name || devAssert(0, 'Directive must be named.');\n Array.isArray(config.locations) || devAssert(0, \"@\".concat(config.name, \" locations must be an Array.\"));\n var args = (_config$args = config.args) !== null && _config$args !== void 0 ? _config$args : {};\n isObjectLike(args) && !Array.isArray(args) || devAssert(0, \"@\".concat(config.name, \" args must be an object with argument names as keys.\"));\n this.args = objectEntries(args).map(function (_ref) {\n var argName = _ref[0],\n argConfig = _ref[1];\n return {\n name: argName,\n description: argConfig.description,\n type: argConfig.type,\n defaultValue: argConfig.defaultValue,\n deprecationReason: argConfig.deprecationReason,\n extensions: argConfig.extensions && toObjMap(argConfig.extensions),\n astNode: argConfig.astNode\n };\n });\n }\n\n var _proto = GraphQLDirective.prototype;\n\n _proto.toConfig = function toConfig() {\n return {\n name: this.name,\n description: this.description,\n locations: this.locations,\n args: argsToArgsConfig(this.args),\n isRepeatable: this.isRepeatable,\n extensions: this.extensions,\n astNode: this.astNode\n };\n };\n\n _proto.toString = function toString() {\n return '@' + this.name;\n };\n\n _proto.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLDirective, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLDirective';\n }\n }]);\n\n return GraphQLDirective;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLDirective);\n/**\n * Used to conditionally include fields or fragments.\n */\n\nexport var GraphQLIncludeDirective = new GraphQLDirective({\n name: 'include',\n description: 'Directs the executor to include this field or fragment only when the `if` argument is true.',\n locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],\n args: {\n if: {\n type: new GraphQLNonNull(GraphQLBoolean),\n description: 'Included when true.'\n }\n }\n});\n/**\n * Used to conditionally skip (exclude) fields or fragments.\n */\n\nexport var GraphQLSkipDirective = new GraphQLDirective({\n name: 'skip',\n description: 'Directs the executor to skip this field or fragment when the `if` argument is true.',\n locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],\n args: {\n if: {\n type: new GraphQLNonNull(GraphQLBoolean),\n description: 'Skipped when true.'\n }\n }\n});\n/**\n * Constant string used for default reason for a deprecation.\n */\n\nexport var DEFAULT_DEPRECATION_REASON = 'No longer supported';\n/**\n * Used to declare element of a GraphQL schema as deprecated.\n */\n\nexport var GraphQLDeprecatedDirective = new GraphQLDirective({\n name: 'deprecated',\n description: 'Marks an element of a GraphQL schema as no longer supported.',\n locations: [DirectiveLocation.FIELD_DEFINITION, DirectiveLocation.ARGUMENT_DEFINITION, DirectiveLocation.INPUT_FIELD_DEFINITION, DirectiveLocation.ENUM_VALUE],\n args: {\n reason: {\n type: GraphQLString,\n description: 'Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).',\n defaultValue: DEFAULT_DEPRECATION_REASON\n }\n }\n});\n/**\n * Used to provide a URL for specifying the behaviour of custom scalar definitions.\n */\n\nexport var GraphQLSpecifiedByDirective = new GraphQLDirective({\n name: 'specifiedBy',\n description: 'Exposes a URL that specifies the behaviour of this scalar.',\n locations: [DirectiveLocation.SCALAR],\n args: {\n url: {\n type: new GraphQLNonNull(GraphQLString),\n description: 'The URL that specifies the behaviour of this scalar.'\n }\n }\n});\n/**\n * The full list of specified directives.\n */\n\nexport var specifiedDirectives = Object.freeze([GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, GraphQLSpecifiedByDirective]);\nexport function isSpecifiedDirective(directive) {\n return specifiedDirectives.some(function (_ref2) {\n var name = _ref2.name;\n return name === directive.name;\n });\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport find from \"../polyfills/find.mjs\";\nimport arrayFrom from \"../polyfills/arrayFrom.mjs\";\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport toObjMap from \"../jsutils/toObjMap.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { __Schema } from \"./introspection.mjs\";\nimport { GraphQLDirective, isDirective, specifiedDirectives } from \"./directives.mjs\";\nimport { isObjectType, isInterfaceType, isUnionType, isInputObjectType, getNamedType } from \"./definition.mjs\";\n/**\n * Test if the given value is a GraphQL schema.\n */\n// eslint-disable-next-line no-redeclare\n\nexport function isSchema(schema) {\n return instanceOf(schema, GraphQLSchema);\n}\nexport function assertSchema(schema) {\n if (!isSchema(schema)) {\n throw new Error(\"Expected \".concat(inspect(schema), \" to be a GraphQL schema.\"));\n }\n\n return schema;\n}\n/**\n * Schema Definition\n *\n * A Schema is created by supplying the root types of each type of operation,\n * query and mutation (optional). A schema definition is then supplied to the\n * validator and executor.\n *\n * Example:\n *\n * const MyAppSchema = new GraphQLSchema({\n * query: MyAppQueryRootType,\n * mutation: MyAppMutationRootType,\n * })\n *\n * Note: When the schema is constructed, by default only the types that are\n * reachable by traversing the root types are included, other types must be\n * explicitly referenced.\n *\n * Example:\n *\n * const characterInterface = new GraphQLInterfaceType({\n * name: 'Character',\n * ...\n * });\n *\n * const humanType = new GraphQLObjectType({\n * name: 'Human',\n * interfaces: [characterInterface],\n * ...\n * });\n *\n * const droidType = new GraphQLObjectType({\n * name: 'Droid',\n * interfaces: [characterInterface],\n * ...\n * });\n *\n * const schema = new GraphQLSchema({\n * query: new GraphQLObjectType({\n * name: 'Query',\n * fields: {\n * hero: { type: characterInterface, ... },\n * }\n * }),\n * ...\n * // Since this schema references only the `Character` interface it's\n * // necessary to explicitly list the types that implement it if\n * // you want them to be included in the final schema.\n * types: [humanType, droidType],\n * })\n *\n * Note: If an array of `directives` are provided to GraphQLSchema, that will be\n * the exact list of directives represented and allowed. If `directives` is not\n * provided then a default set of the specified directives (e.g. @include and\n * @skip) will be used. If you wish to provide *additional* directives to these\n * specified directives, you must explicitly declare them. Example:\n *\n * const MyAppSchema = new GraphQLSchema({\n * ...\n * directives: specifiedDirectives.concat([ myCustomDirective ]),\n * })\n *\n */\n\nexport var GraphQLSchema = /*#__PURE__*/function () {\n // Used as a cache for validateSchema().\n function GraphQLSchema(config) {\n var _config$directives; // If this schema was built from a source known to be valid, then it may be\n // marked with assumeValid to avoid an additional type system validation.\n\n\n this.__validationErrors = config.assumeValid === true ? [] : undefined; // Check for common mistakes during construction to produce early errors.\n\n isObjectLike(config) || devAssert(0, 'Must provide configuration object.');\n !config.types || Array.isArray(config.types) || devAssert(0, \"\\\"types\\\" must be Array if provided but got: \".concat(inspect(config.types), \".\"));\n !config.directives || Array.isArray(config.directives) || devAssert(0, '\"directives\" must be Array if provided but got: ' + \"\".concat(inspect(config.directives), \".\"));\n this.description = config.description;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = config.extensionASTNodes;\n this._queryType = config.query;\n this._mutationType = config.mutation;\n this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default.\n\n this._directives = (_config$directives = config.directives) !== null && _config$directives !== void 0 ? _config$directives : specifiedDirectives; // To preserve order of user-provided types, we add first to add them to\n // the set of \"collected\" types, so `collectReferencedTypes` ignore them.\n\n var allReferencedTypes = new Set(config.types);\n\n if (config.types != null) {\n for (var _i2 = 0, _config$types2 = config.types; _i2 < _config$types2.length; _i2++) {\n var type = _config$types2[_i2]; // When we ready to process this type, we remove it from \"collected\" types\n // and then add it together with all dependent types in the correct position.\n\n allReferencedTypes.delete(type);\n collectReferencedTypes(type, allReferencedTypes);\n }\n }\n\n if (this._queryType != null) {\n collectReferencedTypes(this._queryType, allReferencedTypes);\n }\n\n if (this._mutationType != null) {\n collectReferencedTypes(this._mutationType, allReferencedTypes);\n }\n\n if (this._subscriptionType != null) {\n collectReferencedTypes(this._subscriptionType, allReferencedTypes);\n }\n\n for (var _i4 = 0, _this$_directives2 = this._directives; _i4 < _this$_directives2.length; _i4++) {\n var directive = _this$_directives2[_i4]; // Directives are not validated until validateSchema() is called.\n\n if (isDirective(directive)) {\n for (var _i6 = 0, _directive$args2 = directive.args; _i6 < _directive$args2.length; _i6++) {\n var arg = _directive$args2[_i6];\n collectReferencedTypes(arg.type, allReferencedTypes);\n }\n }\n }\n\n collectReferencedTypes(__Schema, allReferencedTypes); // Storing the resulting map for reference by the schema.\n\n this._typeMap = Object.create(null);\n this._subTypeMap = Object.create(null); // Keep track of all implementations by interface name.\n\n this._implementationsMap = Object.create(null);\n\n for (var _i8 = 0, _arrayFrom2 = arrayFrom(allReferencedTypes); _i8 < _arrayFrom2.length; _i8++) {\n var namedType = _arrayFrom2[_i8];\n\n if (namedType == null) {\n continue;\n }\n\n var typeName = namedType.name;\n typeName || devAssert(0, 'One of the provided types for building the Schema is missing a name.');\n\n if (this._typeMap[typeName] !== undefined) {\n throw new Error(\"Schema must contain uniquely named types but contains multiple types named \\\"\".concat(typeName, \"\\\".\"));\n }\n\n this._typeMap[typeName] = namedType;\n\n if (isInterfaceType(namedType)) {\n // Store implementations by interface.\n for (var _i10 = 0, _namedType$getInterfa2 = namedType.getInterfaces(); _i10 < _namedType$getInterfa2.length; _i10++) {\n var iface = _namedType$getInterfa2[_i10];\n\n if (isInterfaceType(iface)) {\n var implementations = this._implementationsMap[iface.name];\n\n if (implementations === undefined) {\n implementations = this._implementationsMap[iface.name] = {\n objects: [],\n interfaces: []\n };\n }\n\n implementations.interfaces.push(namedType);\n }\n }\n } else if (isObjectType(namedType)) {\n // Store implementations by objects.\n for (var _i12 = 0, _namedType$getInterfa4 = namedType.getInterfaces(); _i12 < _namedType$getInterfa4.length; _i12++) {\n var _iface = _namedType$getInterfa4[_i12];\n\n if (isInterfaceType(_iface)) {\n var _implementations = this._implementationsMap[_iface.name];\n\n if (_implementations === undefined) {\n _implementations = this._implementationsMap[_iface.name] = {\n objects: [],\n interfaces: []\n };\n }\n\n _implementations.objects.push(namedType);\n }\n }\n }\n }\n }\n\n var _proto = GraphQLSchema.prototype;\n\n _proto.getQueryType = function getQueryType() {\n return this._queryType;\n };\n\n _proto.getMutationType = function getMutationType() {\n return this._mutationType;\n };\n\n _proto.getSubscriptionType = function getSubscriptionType() {\n return this._subscriptionType;\n };\n\n _proto.getTypeMap = function getTypeMap() {\n return this._typeMap;\n };\n\n _proto.getType = function getType(name) {\n return this.getTypeMap()[name];\n };\n\n _proto.getPossibleTypes = function getPossibleTypes(abstractType) {\n return isUnionType(abstractType) ? abstractType.getTypes() : this.getImplementations(abstractType).objects;\n };\n\n _proto.getImplementations = function getImplementations(interfaceType) {\n var implementations = this._implementationsMap[interfaceType.name];\n return implementations !== null && implementations !== void 0 ? implementations : {\n objects: [],\n interfaces: []\n };\n } // @deprecated: use isSubType instead - will be removed in v16.\n ;\n\n _proto.isPossibleType = function isPossibleType(abstractType, possibleType) {\n return this.isSubType(abstractType, possibleType);\n };\n\n _proto.isSubType = function isSubType(abstractType, maybeSubType) {\n var map = this._subTypeMap[abstractType.name];\n\n if (map === undefined) {\n map = Object.create(null);\n\n if (isUnionType(abstractType)) {\n for (var _i14 = 0, _abstractType$getType2 = abstractType.getTypes(); _i14 < _abstractType$getType2.length; _i14++) {\n var type = _abstractType$getType2[_i14];\n map[type.name] = true;\n }\n } else {\n var implementations = this.getImplementations(abstractType);\n\n for (var _i16 = 0, _implementations$obje2 = implementations.objects; _i16 < _implementations$obje2.length; _i16++) {\n var _type = _implementations$obje2[_i16];\n map[_type.name] = true;\n }\n\n for (var _i18 = 0, _implementations$inte2 = implementations.interfaces; _i18 < _implementations$inte2.length; _i18++) {\n var _type2 = _implementations$inte2[_i18];\n map[_type2.name] = true;\n }\n }\n\n this._subTypeMap[abstractType.name] = map;\n }\n\n return map[maybeSubType.name] !== undefined;\n };\n\n _proto.getDirectives = function getDirectives() {\n return this._directives;\n };\n\n _proto.getDirective = function getDirective(name) {\n return find(this.getDirectives(), function (directive) {\n return directive.name === name;\n });\n };\n\n _proto.toConfig = function toConfig() {\n var _this$extensionASTNod;\n\n return {\n description: this.description,\n query: this.getQueryType(),\n mutation: this.getMutationType(),\n subscription: this.getSubscriptionType(),\n types: objectValues(this.getTypeMap()),\n directives: this.getDirectives().slice(),\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : [],\n assumeValid: this.__validationErrors !== undefined\n };\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLSchema, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLSchema';\n }\n }]);\n\n return GraphQLSchema;\n}();\n\nfunction collectReferencedTypes(type, typeSet) {\n var namedType = getNamedType(type);\n\n if (!typeSet.has(namedType)) {\n typeSet.add(namedType);\n\n if (isUnionType(namedType)) {\n for (var _i20 = 0, _namedType$getTypes2 = namedType.getTypes(); _i20 < _namedType$getTypes2.length; _i20++) {\n var memberType = _namedType$getTypes2[_i20];\n collectReferencedTypes(memberType, typeSet);\n }\n } else if (isObjectType(namedType) || isInterfaceType(namedType)) {\n for (var _i22 = 0, _namedType$getInterfa6 = namedType.getInterfaces(); _i22 < _namedType$getInterfa6.length; _i22++) {\n var interfaceType = _namedType$getInterfa6[_i22];\n collectReferencedTypes(interfaceType, typeSet);\n }\n\n for (var _i24 = 0, _objectValues2 = objectValues(namedType.getFields()); _i24 < _objectValues2.length; _i24++) {\n var field = _objectValues2[_i24];\n collectReferencedTypes(field.type, typeSet);\n\n for (var _i26 = 0, _field$args2 = field.args; _i26 < _field$args2.length; _i26++) {\n var arg = _field$args2[_i26];\n collectReferencedTypes(arg.type, typeSet);\n }\n }\n } else if (isInputObjectType(namedType)) {\n for (var _i28 = 0, _objectValues4 = objectValues(namedType.getFields()); _i28 < _objectValues4.length; _i28++) {\n var _field = _objectValues4[_i28];\n collectReferencedTypes(_field.type, typeSet);\n }\n }\n }\n\n return typeSet;\n}","import find from \"../polyfills/find.mjs\";\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { locatedError } from \"../error/locatedError.mjs\";\nimport { isValidNameError } from \"../utilities/assertValidName.mjs\";\nimport { isEqualType, isTypeSubTypeOf } from \"../utilities/typeComparators.mjs\";\nimport { assertSchema } from \"./schema.mjs\";\nimport { isIntrospectionType } from \"./introspection.mjs\";\nimport { isDirective, GraphQLDeprecatedDirective } from \"./directives.mjs\";\nimport { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isNonNullType, isInputType, isOutputType, isRequiredArgument, isRequiredInputField } from \"./definition.mjs\";\n/**\n * Implements the \"Type Validation\" sub-sections of the specification's\n * \"Type System\" section.\n *\n * Validation runs synchronously, returning an array of encountered errors, or\n * an empty array if no errors were encountered and the Schema is valid.\n */\n\nexport function validateSchema(schema) {\n // First check to ensure the provided value is in fact a GraphQLSchema.\n assertSchema(schema); // If this Schema has already been validated, return the previous results.\n\n if (schema.__validationErrors) {\n return schema.__validationErrors;\n } // Validate the schema, producing a list of errors.\n\n\n var context = new SchemaValidationContext(schema);\n validateRootTypes(context);\n validateDirectives(context);\n validateTypes(context); // Persist the results of validation before returning to ensure validation\n // does not run multiple times for this schema.\n\n var errors = context.getErrors();\n schema.__validationErrors = errors;\n return errors;\n}\n/**\n * Utility function which asserts a schema is valid by throwing an error if\n * it is invalid.\n */\n\nexport function assertValidSchema(schema) {\n var errors = validateSchema(schema);\n\n if (errors.length !== 0) {\n throw new Error(errors.map(function (error) {\n return error.message;\n }).join('\\n\\n'));\n }\n}\n\nvar SchemaValidationContext = /*#__PURE__*/function () {\n function SchemaValidationContext(schema) {\n this._errors = [];\n this.schema = schema;\n }\n\n var _proto = SchemaValidationContext.prototype;\n\n _proto.reportError = function reportError(message, nodes) {\n var _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes;\n\n this.addError(new GraphQLError(message, _nodes));\n };\n\n _proto.addError = function addError(error) {\n this._errors.push(error);\n };\n\n _proto.getErrors = function getErrors() {\n return this._errors;\n };\n\n return SchemaValidationContext;\n}();\n\nfunction validateRootTypes(context) {\n var schema = context.schema;\n var queryType = schema.getQueryType();\n\n if (!queryType) {\n context.reportError('Query root type must be provided.', schema.astNode);\n } else if (!isObjectType(queryType)) {\n var _getOperationTypeNode;\n\n context.reportError(\"Query root type must be Object type, it cannot be \".concat(inspect(queryType), \".\"), (_getOperationTypeNode = getOperationTypeNode(schema, 'query')) !== null && _getOperationTypeNode !== void 0 ? _getOperationTypeNode : queryType.astNode);\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType && !isObjectType(mutationType)) {\n var _getOperationTypeNode2;\n\n context.reportError('Mutation root type must be Object type if provided, it cannot be ' + \"\".concat(inspect(mutationType), \".\"), (_getOperationTypeNode2 = getOperationTypeNode(schema, 'mutation')) !== null && _getOperationTypeNode2 !== void 0 ? _getOperationTypeNode2 : mutationType.astNode);\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType && !isObjectType(subscriptionType)) {\n var _getOperationTypeNode3;\n\n context.reportError('Subscription root type must be Object type if provided, it cannot be ' + \"\".concat(inspect(subscriptionType), \".\"), (_getOperationTypeNode3 = getOperationTypeNode(schema, 'subscription')) !== null && _getOperationTypeNode3 !== void 0 ? _getOperationTypeNode3 : subscriptionType.astNode);\n }\n}\n\nfunction getOperationTypeNode(schema, operation) {\n var operationNodes = getAllSubNodes(schema, function (node) {\n return node.operationTypes;\n });\n\n for (var _i2 = 0; _i2 < operationNodes.length; _i2++) {\n var node = operationNodes[_i2];\n\n if (node.operation === operation) {\n return node.type;\n }\n }\n\n return undefined;\n}\n\nfunction validateDirectives(context) {\n for (var _i4 = 0, _context$schema$getDi2 = context.schema.getDirectives(); _i4 < _context$schema$getDi2.length; _i4++) {\n var directive = _context$schema$getDi2[_i4]; // Ensure all directives are in fact GraphQL directives.\n\n if (!isDirective(directive)) {\n context.reportError(\"Expected directive but got: \".concat(inspect(directive), \".\"), directive === null || directive === void 0 ? void 0 : directive.astNode);\n continue;\n } // Ensure they are named correctly.\n\n\n validateName(context, directive); // TODO: Ensure proper locations.\n // Ensure the arguments are valid.\n\n for (var _i6 = 0, _directive$args2 = directive.args; _i6 < _directive$args2.length; _i6++) {\n var arg = _directive$args2[_i6]; // Ensure they are named correctly.\n\n validateName(context, arg); // Ensure the type is an input type.\n\n if (!isInputType(arg.type)) {\n context.reportError(\"The type of @\".concat(directive.name, \"(\").concat(arg.name, \":) must be Input Type \") + \"but got: \".concat(inspect(arg.type), \".\"), arg.astNode);\n }\n\n if (isRequiredArgument(arg) && arg.deprecationReason != null) {\n var _arg$astNode;\n\n context.reportError(\"Required argument @\".concat(directive.name, \"(\").concat(arg.name, \":) cannot be deprecated.\"), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)\n (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type]);\n }\n }\n }\n}\n\nfunction validateName(context, node) {\n // Ensure names are valid, however introspection types opt out.\n var error = isValidNameError(node.name);\n\n if (error) {\n context.addError(locatedError(error, node.astNode));\n }\n}\n\nfunction validateTypes(context) {\n var validateInputObjectCircularRefs = createInputObjectCircularRefsValidator(context);\n var typeMap = context.schema.getTypeMap();\n\n for (var _i8 = 0, _objectValues2 = objectValues(typeMap); _i8 < _objectValues2.length; _i8++) {\n var type = _objectValues2[_i8]; // Ensure all provided types are in fact GraphQL type.\n\n if (!isNamedType(type)) {\n context.reportError(\"Expected GraphQL named type but got: \".concat(inspect(type), \".\"), type.astNode);\n continue;\n } // Ensure it is named correctly (excluding introspection types).\n\n\n if (!isIntrospectionType(type)) {\n validateName(context, type);\n }\n\n if (isObjectType(type)) {\n // Ensure fields are valid\n validateFields(context, type); // Ensure objects implement the interfaces they claim to.\n\n validateInterfaces(context, type);\n } else if (isInterfaceType(type)) {\n // Ensure fields are valid.\n validateFields(context, type); // Ensure interfaces implement the interfaces they claim to.\n\n validateInterfaces(context, type);\n } else if (isUnionType(type)) {\n // Ensure Unions include valid member types.\n validateUnionMembers(context, type);\n } else if (isEnumType(type)) {\n // Ensure Enums have valid values.\n validateEnumValues(context, type);\n } else if (isInputObjectType(type)) {\n // Ensure Input Object fields are valid.\n validateInputFields(context, type); // Ensure Input Objects do not contain non-nullable circular references\n\n validateInputObjectCircularRefs(type);\n }\n }\n}\n\nfunction validateFields(context, type) {\n var fields = objectValues(type.getFields()); // Objects and Interfaces both must define one or more fields.\n\n if (fields.length === 0) {\n context.reportError(\"Type \".concat(type.name, \" must define one or more fields.\"), getAllNodes(type));\n }\n\n for (var _i10 = 0; _i10 < fields.length; _i10++) {\n var field = fields[_i10]; // Ensure they are named correctly.\n\n validateName(context, field); // Ensure the type is an output type\n\n if (!isOutputType(field.type)) {\n var _field$astNode;\n\n context.reportError(\"The type of \".concat(type.name, \".\").concat(field.name, \" must be Output Type \") + \"but got: \".concat(inspect(field.type), \".\"), (_field$astNode = field.astNode) === null || _field$astNode === void 0 ? void 0 : _field$astNode.type);\n } // Ensure the arguments are valid\n\n\n for (var _i12 = 0, _field$args2 = field.args; _i12 < _field$args2.length; _i12++) {\n var arg = _field$args2[_i12];\n var argName = arg.name; // Ensure they are named correctly.\n\n validateName(context, arg); // Ensure the type is an input type\n\n if (!isInputType(arg.type)) {\n var _arg$astNode2;\n\n context.reportError(\"The type of \".concat(type.name, \".\").concat(field.name, \"(\").concat(argName, \":) must be Input \") + \"Type but got: \".concat(inspect(arg.type), \".\"), (_arg$astNode2 = arg.astNode) === null || _arg$astNode2 === void 0 ? void 0 : _arg$astNode2.type);\n }\n\n if (isRequiredArgument(arg) && arg.deprecationReason != null) {\n var _arg$astNode3;\n\n context.reportError(\"Required argument \".concat(type.name, \".\").concat(field.name, \"(\").concat(argName, \":) cannot be deprecated.\"), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)\n (_arg$astNode3 = arg.astNode) === null || _arg$astNode3 === void 0 ? void 0 : _arg$astNode3.type]);\n }\n }\n }\n}\n\nfunction validateInterfaces(context, type) {\n var ifaceTypeNames = Object.create(null);\n\n for (var _i14 = 0, _type$getInterfaces2 = type.getInterfaces(); _i14 < _type$getInterfaces2.length; _i14++) {\n var iface = _type$getInterfaces2[_i14];\n\n if (!isInterfaceType(iface)) {\n context.reportError(\"Type \".concat(inspect(type), \" must only implement Interface types, \") + \"it cannot implement \".concat(inspect(iface), \".\"), getAllImplementsInterfaceNodes(type, iface));\n continue;\n }\n\n if (type === iface) {\n context.reportError(\"Type \".concat(type.name, \" cannot implement itself because it would create a circular reference.\"), getAllImplementsInterfaceNodes(type, iface));\n continue;\n }\n\n if (ifaceTypeNames[iface.name]) {\n context.reportError(\"Type \".concat(type.name, \" can only implement \").concat(iface.name, \" once.\"), getAllImplementsInterfaceNodes(type, iface));\n continue;\n }\n\n ifaceTypeNames[iface.name] = true;\n validateTypeImplementsAncestors(context, type, iface);\n validateTypeImplementsInterface(context, type, iface);\n }\n}\n\nfunction validateTypeImplementsInterface(context, type, iface) {\n var typeFieldMap = type.getFields(); // Assert each interface field is implemented.\n\n for (var _i16 = 0, _objectValues4 = objectValues(iface.getFields()); _i16 < _objectValues4.length; _i16++) {\n var ifaceField = _objectValues4[_i16];\n var fieldName = ifaceField.name;\n var typeField = typeFieldMap[fieldName]; // Assert interface field exists on type.\n\n if (!typeField) {\n context.reportError(\"Interface field \".concat(iface.name, \".\").concat(fieldName, \" expected but \").concat(type.name, \" does not provide it.\"), [ifaceField.astNode].concat(getAllNodes(type)));\n continue;\n } // Assert interface field type is satisfied by type field type, by being\n // a valid subtype. (covariant)\n\n\n if (!isTypeSubTypeOf(context.schema, typeField.type, ifaceField.type)) {\n var _ifaceField$astNode, _typeField$astNode;\n\n context.reportError(\"Interface field \".concat(iface.name, \".\").concat(fieldName, \" expects type \") + \"\".concat(inspect(ifaceField.type), \" but \").concat(type.name, \".\").concat(fieldName, \" \") + \"is type \".concat(inspect(typeField.type), \".\"), [// istanbul ignore next (TODO need to write coverage tests)\n (_ifaceField$astNode = ifaceField.astNode) === null || _ifaceField$astNode === void 0 ? void 0 : _ifaceField$astNode.type, // istanbul ignore next (TODO need to write coverage tests)\n (_typeField$astNode = typeField.astNode) === null || _typeField$astNode === void 0 ? void 0 : _typeField$astNode.type]);\n } // Assert each interface field arg is implemented.\n\n\n var _loop = function _loop(_i18, _ifaceField$args2) {\n var ifaceArg = _ifaceField$args2[_i18];\n var argName = ifaceArg.name;\n var typeArg = find(typeField.args, function (arg) {\n return arg.name === argName;\n }); // Assert interface field arg exists on object field.\n\n if (!typeArg) {\n context.reportError(\"Interface field argument \".concat(iface.name, \".\").concat(fieldName, \"(\").concat(argName, \":) expected but \").concat(type.name, \".\").concat(fieldName, \" does not provide it.\"), [ifaceArg.astNode, typeField.astNode]);\n return \"continue\";\n } // Assert interface field arg type matches object field arg type.\n // (invariant)\n // TODO: change to contravariant?\n\n\n if (!isEqualType(ifaceArg.type, typeArg.type)) {\n var _ifaceArg$astNode, _typeArg$astNode;\n\n context.reportError(\"Interface field argument \".concat(iface.name, \".\").concat(fieldName, \"(\").concat(argName, \":) \") + \"expects type \".concat(inspect(ifaceArg.type), \" but \") + \"\".concat(type.name, \".\").concat(fieldName, \"(\").concat(argName, \":) is type \") + \"\".concat(inspect(typeArg.type), \".\"), [// istanbul ignore next (TODO need to write coverage tests)\n (_ifaceArg$astNode = ifaceArg.astNode) === null || _ifaceArg$astNode === void 0 ? void 0 : _ifaceArg$astNode.type, // istanbul ignore next (TODO need to write coverage tests)\n (_typeArg$astNode = typeArg.astNode) === null || _typeArg$astNode === void 0 ? void 0 : _typeArg$astNode.type]);\n } // TODO: validate default values?\n\n };\n\n for (var _i18 = 0, _ifaceField$args2 = ifaceField.args; _i18 < _ifaceField$args2.length; _i18++) {\n var _ret = _loop(_i18, _ifaceField$args2);\n\n if (_ret === \"continue\") continue;\n } // Assert additional arguments must not be required.\n\n\n var _loop2 = function _loop2(_i20, _typeField$args2) {\n var typeArg = _typeField$args2[_i20];\n var argName = typeArg.name;\n var ifaceArg = find(ifaceField.args, function (arg) {\n return arg.name === argName;\n });\n\n if (!ifaceArg && isRequiredArgument(typeArg)) {\n context.reportError(\"Object field \".concat(type.name, \".\").concat(fieldName, \" includes required argument \").concat(argName, \" that is missing from the Interface field \").concat(iface.name, \".\").concat(fieldName, \".\"), [typeArg.astNode, ifaceField.astNode]);\n }\n };\n\n for (var _i20 = 0, _typeField$args2 = typeField.args; _i20 < _typeField$args2.length; _i20++) {\n _loop2(_i20, _typeField$args2);\n }\n }\n}\n\nfunction validateTypeImplementsAncestors(context, type, iface) {\n var ifaceInterfaces = type.getInterfaces();\n\n for (var _i22 = 0, _iface$getInterfaces2 = iface.getInterfaces(); _i22 < _iface$getInterfaces2.length; _i22++) {\n var transitive = _iface$getInterfaces2[_i22];\n\n if (ifaceInterfaces.indexOf(transitive) === -1) {\n context.reportError(transitive === type ? \"Type \".concat(type.name, \" cannot implement \").concat(iface.name, \" because it would create a circular reference.\") : \"Type \".concat(type.name, \" must implement \").concat(transitive.name, \" because it is implemented by \").concat(iface.name, \".\"), [].concat(getAllImplementsInterfaceNodes(iface, transitive), getAllImplementsInterfaceNodes(type, iface)));\n }\n }\n}\n\nfunction validateUnionMembers(context, union) {\n var memberTypes = union.getTypes();\n\n if (memberTypes.length === 0) {\n context.reportError(\"Union type \".concat(union.name, \" must define one or more member types.\"), getAllNodes(union));\n }\n\n var includedTypeNames = Object.create(null);\n\n for (var _i24 = 0; _i24 < memberTypes.length; _i24++) {\n var memberType = memberTypes[_i24];\n\n if (includedTypeNames[memberType.name]) {\n context.reportError(\"Union type \".concat(union.name, \" can only include type \").concat(memberType.name, \" once.\"), getUnionMemberTypeNodes(union, memberType.name));\n continue;\n }\n\n includedTypeNames[memberType.name] = true;\n\n if (!isObjectType(memberType)) {\n context.reportError(\"Union type \".concat(union.name, \" can only include Object types, \") + \"it cannot include \".concat(inspect(memberType), \".\"), getUnionMemberTypeNodes(union, String(memberType)));\n }\n }\n}\n\nfunction validateEnumValues(context, enumType) {\n var enumValues = enumType.getValues();\n\n if (enumValues.length === 0) {\n context.reportError(\"Enum type \".concat(enumType.name, \" must define one or more values.\"), getAllNodes(enumType));\n }\n\n for (var _i26 = 0; _i26 < enumValues.length; _i26++) {\n var enumValue = enumValues[_i26];\n var valueName = enumValue.name; // Ensure valid name.\n\n validateName(context, enumValue);\n\n if (valueName === 'true' || valueName === 'false' || valueName === 'null') {\n context.reportError(\"Enum type \".concat(enumType.name, \" cannot include value: \").concat(valueName, \".\"), enumValue.astNode);\n }\n }\n}\n\nfunction validateInputFields(context, inputObj) {\n var fields = objectValues(inputObj.getFields());\n\n if (fields.length === 0) {\n context.reportError(\"Input Object type \".concat(inputObj.name, \" must define one or more fields.\"), getAllNodes(inputObj));\n } // Ensure the arguments are valid\n\n\n for (var _i28 = 0; _i28 < fields.length; _i28++) {\n var field = fields[_i28]; // Ensure they are named correctly.\n\n validateName(context, field); // Ensure the type is an input type\n\n if (!isInputType(field.type)) {\n var _field$astNode2;\n\n context.reportError(\"The type of \".concat(inputObj.name, \".\").concat(field.name, \" must be Input Type \") + \"but got: \".concat(inspect(field.type), \".\"), (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 ? void 0 : _field$astNode2.type);\n }\n\n if (isRequiredInputField(field) && field.deprecationReason != null) {\n var _field$astNode3;\n\n context.reportError(\"Required input field \".concat(inputObj.name, \".\").concat(field.name, \" cannot be deprecated.\"), [getDeprecatedDirectiveNode(field.astNode), // istanbul ignore next (TODO need to write coverage tests)\n (_field$astNode3 = field.astNode) === null || _field$astNode3 === void 0 ? void 0 : _field$astNode3.type]);\n }\n }\n}\n\nfunction createInputObjectCircularRefsValidator(context) {\n // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'.\n // Tracks already visited types to maintain O(N) and to ensure that cycles\n // are not redundantly reported.\n var visitedTypes = Object.create(null); // Array of types nodes used to produce meaningful errors\n\n var fieldPath = []; // Position in the type path\n\n var fieldPathIndexByTypeName = Object.create(null);\n return detectCycleRecursive; // This does a straight-forward DFS to find cycles.\n // It does not terminate when a cycle was found but continues to explore\n // the graph to find all possible cycles.\n\n function detectCycleRecursive(inputObj) {\n if (visitedTypes[inputObj.name]) {\n return;\n }\n\n visitedTypes[inputObj.name] = true;\n fieldPathIndexByTypeName[inputObj.name] = fieldPath.length;\n var fields = objectValues(inputObj.getFields());\n\n for (var _i30 = 0; _i30 < fields.length; _i30++) {\n var field = fields[_i30];\n\n if (isNonNullType(field.type) && isInputObjectType(field.type.ofType)) {\n var fieldType = field.type.ofType;\n var cycleIndex = fieldPathIndexByTypeName[fieldType.name];\n fieldPath.push(field);\n\n if (cycleIndex === undefined) {\n detectCycleRecursive(fieldType);\n } else {\n var cyclePath = fieldPath.slice(cycleIndex);\n var pathStr = cyclePath.map(function (fieldObj) {\n return fieldObj.name;\n }).join('.');\n context.reportError(\"Cannot reference Input Object \\\"\".concat(fieldType.name, \"\\\" within itself through a series of non-null fields: \\\"\").concat(pathStr, \"\\\".\"), cyclePath.map(function (fieldObj) {\n return fieldObj.astNode;\n }));\n }\n\n fieldPath.pop();\n }\n }\n\n fieldPathIndexByTypeName[inputObj.name] = undefined;\n }\n}\n\nfunction getAllNodes(object) {\n var astNode = object.astNode,\n extensionASTNodes = object.extensionASTNodes;\n return astNode ? extensionASTNodes ? [astNode].concat(extensionASTNodes) : [astNode] : extensionASTNodes !== null && extensionASTNodes !== void 0 ? extensionASTNodes : [];\n}\n\nfunction getAllSubNodes(object, getter) {\n var subNodes = [];\n\n for (var _i32 = 0, _getAllNodes2 = getAllNodes(object); _i32 < _getAllNodes2.length; _i32++) {\n var _getter;\n\n var node = _getAllNodes2[_i32]; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n subNodes = subNodes.concat((_getter = getter(node)) !== null && _getter !== void 0 ? _getter : []);\n }\n\n return subNodes;\n}\n\nfunction getAllImplementsInterfaceNodes(type, iface) {\n return getAllSubNodes(type, function (typeNode) {\n return typeNode.interfaces;\n }).filter(function (ifaceNode) {\n return ifaceNode.name.value === iface.name;\n });\n}\n\nfunction getUnionMemberTypeNodes(union, typeName) {\n return getAllSubNodes(union, function (unionNode) {\n return unionNode.types;\n }).filter(function (typeNode) {\n return typeNode.name.value === typeName;\n });\n}\n\nfunction getDeprecatedDirectiveNode(definitionNode) {\n var _definitionNode$direc; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n return definitionNode === null || definitionNode === void 0 ? void 0 : (_definitionNode$direc = definitionNode.directives) === null || _definitionNode$direc === void 0 ? void 0 : _definitionNode$direc.find(function (node) {\n return node.name.value === GraphQLDeprecatedDirective.name;\n });\n}","import inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { GraphQLList, GraphQLNonNull } from \"../type/definition.mjs\";\n/**\n * Given a Schema and an AST node describing a type, return a GraphQLType\n * definition which applies to that type. For example, if provided the parsed\n * AST node for `[User]`, a GraphQLList instance will be returned, containing\n * the type called \"User\" found in the schema. If a type called \"User\" is not\n * found in the schema, then undefined will be returned.\n */\n\n/* eslint-disable no-redeclare */\n\nexport function typeFromAST(schema, typeNode) {\n /* eslint-enable no-redeclare */\n var innerType;\n\n if (typeNode.kind === Kind.LIST_TYPE) {\n innerType = typeFromAST(schema, typeNode.type);\n return innerType && new GraphQLList(innerType);\n }\n\n if (typeNode.kind === Kind.NON_NULL_TYPE) {\n innerType = typeFromAST(schema, typeNode.type);\n return innerType && new GraphQLNonNull(innerType);\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (typeNode.kind === Kind.NAMED_TYPE) {\n return schema.getType(typeNode.name.value);\n } // istanbul ignore next (Not reachable. All possible type nodes have been considered)\n\n\n false || invariant(0, 'Unexpected type node: ' + inspect(typeNode));\n}","import find from \"../polyfills/find.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { isNode } from \"../language/ast.mjs\";\nimport { getVisitFn } from \"../language/visitor.mjs\";\nimport { isObjectType, isInterfaceType, isEnumType, isInputObjectType, isListType, isCompositeType, isInputType, isOutputType, getNullableType, getNamedType } from \"../type/definition.mjs\";\nimport { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from \"../type/introspection.mjs\";\nimport { typeFromAST } from \"./typeFromAST.mjs\";\n/**\n * TypeInfo is a utility class which, given a GraphQL schema, can keep track\n * of the current field and type definitions at any point in a GraphQL document\n * AST during a recursive descent by calling `enter(node)` and `leave(node)`.\n */\n\nexport var TypeInfo = /*#__PURE__*/function () {\n function TypeInfo(schema, // NOTE: this experimental optional second parameter is only needed in order\n // to support non-spec-compliant code bases. You should never need to use it.\n // It may disappear in the future.\n getFieldDefFn, // Initial type may be provided in rare cases to facilitate traversals\n // beginning somewhere other than documents.\n initialType) {\n this._schema = schema;\n this._typeStack = [];\n this._parentTypeStack = [];\n this._inputTypeStack = [];\n this._fieldDefStack = [];\n this._defaultValueStack = [];\n this._directive = null;\n this._argument = null;\n this._enumValue = null;\n this._getFieldDef = getFieldDefFn !== null && getFieldDefFn !== void 0 ? getFieldDefFn : getFieldDef;\n\n if (initialType) {\n if (isInputType(initialType)) {\n this._inputTypeStack.push(initialType);\n }\n\n if (isCompositeType(initialType)) {\n this._parentTypeStack.push(initialType);\n }\n\n if (isOutputType(initialType)) {\n this._typeStack.push(initialType);\n }\n }\n }\n\n var _proto = TypeInfo.prototype;\n\n _proto.getType = function getType() {\n if (this._typeStack.length > 0) {\n return this._typeStack[this._typeStack.length - 1];\n }\n };\n\n _proto.getParentType = function getParentType() {\n if (this._parentTypeStack.length > 0) {\n return this._parentTypeStack[this._parentTypeStack.length - 1];\n }\n };\n\n _proto.getInputType = function getInputType() {\n if (this._inputTypeStack.length > 0) {\n return this._inputTypeStack[this._inputTypeStack.length - 1];\n }\n };\n\n _proto.getParentInputType = function getParentInputType() {\n if (this._inputTypeStack.length > 1) {\n return this._inputTypeStack[this._inputTypeStack.length - 2];\n }\n };\n\n _proto.getFieldDef = function getFieldDef() {\n if (this._fieldDefStack.length > 0) {\n return this._fieldDefStack[this._fieldDefStack.length - 1];\n }\n };\n\n _proto.getDefaultValue = function getDefaultValue() {\n if (this._defaultValueStack.length > 0) {\n return this._defaultValueStack[this._defaultValueStack.length - 1];\n }\n };\n\n _proto.getDirective = function getDirective() {\n return this._directive;\n };\n\n _proto.getArgument = function getArgument() {\n return this._argument;\n };\n\n _proto.getEnumValue = function getEnumValue() {\n return this._enumValue;\n };\n\n _proto.enter = function enter(node) {\n var schema = this._schema; // Note: many of the types below are explicitly typed as \"mixed\" to drop\n // any assumptions of a valid schema to ensure runtime types are properly\n // checked before continuing since TypeInfo is used as part of validation\n // which occurs before guarantees of schema and document validity.\n\n switch (node.kind) {\n case Kind.SELECTION_SET:\n {\n var namedType = getNamedType(this.getType());\n\n this._parentTypeStack.push(isCompositeType(namedType) ? namedType : undefined);\n\n break;\n }\n\n case Kind.FIELD:\n {\n var parentType = this.getParentType();\n var fieldDef;\n var fieldType;\n\n if (parentType) {\n fieldDef = this._getFieldDef(schema, parentType, node);\n\n if (fieldDef) {\n fieldType = fieldDef.type;\n }\n }\n\n this._fieldDefStack.push(fieldDef);\n\n this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);\n\n break;\n }\n\n case Kind.DIRECTIVE:\n this._directive = schema.getDirective(node.name.value);\n break;\n\n case Kind.OPERATION_DEFINITION:\n {\n var type;\n\n switch (node.operation) {\n case 'query':\n type = schema.getQueryType();\n break;\n\n case 'mutation':\n type = schema.getMutationType();\n break;\n\n case 'subscription':\n type = schema.getSubscriptionType();\n break;\n }\n\n this._typeStack.push(isObjectType(type) ? type : undefined);\n\n break;\n }\n\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n {\n var typeConditionAST = node.typeCondition;\n var outputType = typeConditionAST ? typeFromAST(schema, typeConditionAST) : getNamedType(this.getType());\n\n this._typeStack.push(isOutputType(outputType) ? outputType : undefined);\n\n break;\n }\n\n case Kind.VARIABLE_DEFINITION:\n {\n var inputType = typeFromAST(schema, node.type);\n\n this._inputTypeStack.push(isInputType(inputType) ? inputType : undefined);\n\n break;\n }\n\n case Kind.ARGUMENT:\n {\n var _this$getDirective;\n\n var argDef;\n var argType;\n var fieldOrDirective = (_this$getDirective = this.getDirective()) !== null && _this$getDirective !== void 0 ? _this$getDirective : this.getFieldDef();\n\n if (fieldOrDirective) {\n argDef = find(fieldOrDirective.args, function (arg) {\n return arg.name === node.name.value;\n });\n\n if (argDef) {\n argType = argDef.type;\n }\n }\n\n this._argument = argDef;\n\n this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);\n\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n\n break;\n }\n\n case Kind.LIST:\n {\n var listType = getNullableType(this.getInputType());\n var itemType = isListType(listType) ? listType.ofType : listType; // List positions never have a default value.\n\n this._defaultValueStack.push(undefined);\n\n this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);\n\n break;\n }\n\n case Kind.OBJECT_FIELD:\n {\n var objectType = getNamedType(this.getInputType());\n var inputFieldType;\n var inputField;\n\n if (isInputObjectType(objectType)) {\n inputField = objectType.getFields()[node.name.value];\n\n if (inputField) {\n inputFieldType = inputField.type;\n }\n }\n\n this._defaultValueStack.push(inputField ? inputField.defaultValue : undefined);\n\n this._inputTypeStack.push(isInputType(inputFieldType) ? inputFieldType : undefined);\n\n break;\n }\n\n case Kind.ENUM:\n {\n var enumType = getNamedType(this.getInputType());\n var enumValue;\n\n if (isEnumType(enumType)) {\n enumValue = enumType.getValue(node.value);\n }\n\n this._enumValue = enumValue;\n break;\n }\n }\n };\n\n _proto.leave = function leave(node) {\n switch (node.kind) {\n case Kind.SELECTION_SET:\n this._parentTypeStack.pop();\n\n break;\n\n case Kind.FIELD:\n this._fieldDefStack.pop();\n\n this._typeStack.pop();\n\n break;\n\n case Kind.DIRECTIVE:\n this._directive = null;\n break;\n\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n this._typeStack.pop();\n\n break;\n\n case Kind.VARIABLE_DEFINITION:\n this._inputTypeStack.pop();\n\n break;\n\n case Kind.ARGUMENT:\n this._argument = null;\n\n this._defaultValueStack.pop();\n\n this._inputTypeStack.pop();\n\n break;\n\n case Kind.LIST:\n case Kind.OBJECT_FIELD:\n this._defaultValueStack.pop();\n\n this._inputTypeStack.pop();\n\n break;\n\n case Kind.ENUM:\n this._enumValue = null;\n break;\n }\n };\n\n return TypeInfo;\n}();\n/**\n * Not exactly the same as the executor's definition of getFieldDef, in this\n * statically evaluated environment we do not always have an Object type,\n * and need to handle Interface and Union types.\n */\n\nfunction getFieldDef(schema, parentType, fieldNode) {\n var name = fieldNode.name.value;\n\n if (name === SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {\n return SchemaMetaFieldDef;\n }\n\n if (name === TypeMetaFieldDef.name && schema.getQueryType() === parentType) {\n return TypeMetaFieldDef;\n }\n\n if (name === TypeNameMetaFieldDef.name && isCompositeType(parentType)) {\n return TypeNameMetaFieldDef;\n }\n\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n return parentType.getFields()[name];\n }\n}\n/**\n * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n */\n\n\nexport function visitWithTypeInfo(typeInfo, visitor) {\n return {\n enter: function enter(node) {\n typeInfo.enter(node);\n var fn = getVisitFn(visitor, node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitor, arguments);\n\n if (result !== undefined) {\n typeInfo.leave(node);\n\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n\n return result;\n }\n },\n leave: function leave(node) {\n var fn = getVisitFn(visitor, node.kind,\n /* isLeaving */\n true);\n var result;\n\n if (fn) {\n result = fn.apply(visitor, arguments);\n }\n\n typeInfo.leave(node);\n return result;\n }\n };\n}","import { Kind } from \"./kinds.mjs\";\nexport function isDefinitionNode(node) {\n return isExecutableDefinitionNode(node) || isTypeSystemDefinitionNode(node) || isTypeSystemExtensionNode(node);\n}\nexport function isExecutableDefinitionNode(node) {\n return node.kind === Kind.OPERATION_DEFINITION || node.kind === Kind.FRAGMENT_DEFINITION;\n}\nexport function isSelectionNode(node) {\n return node.kind === Kind.FIELD || node.kind === Kind.FRAGMENT_SPREAD || node.kind === Kind.INLINE_FRAGMENT;\n}\nexport function isValueNode(node) {\n return node.kind === Kind.VARIABLE || node.kind === Kind.INT || node.kind === Kind.FLOAT || node.kind === Kind.STRING || node.kind === Kind.BOOLEAN || node.kind === Kind.NULL || node.kind === Kind.ENUM || node.kind === Kind.LIST || node.kind === Kind.OBJECT;\n}\nexport function isTypeNode(node) {\n return node.kind === Kind.NAMED_TYPE || node.kind === Kind.LIST_TYPE || node.kind === Kind.NON_NULL_TYPE;\n}\nexport function isTypeSystemDefinitionNode(node) {\n return node.kind === Kind.SCHEMA_DEFINITION || isTypeDefinitionNode(node) || node.kind === Kind.DIRECTIVE_DEFINITION;\n}\nexport function isTypeDefinitionNode(node) {\n return node.kind === Kind.SCALAR_TYPE_DEFINITION || node.kind === Kind.OBJECT_TYPE_DEFINITION || node.kind === Kind.INTERFACE_TYPE_DEFINITION || node.kind === Kind.UNION_TYPE_DEFINITION || node.kind === Kind.ENUM_TYPE_DEFINITION || node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION;\n}\nexport function isTypeSystemExtensionNode(node) {\n return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n return node.kind === Kind.SCALAR_TYPE_EXTENSION || node.kind === Kind.OBJECT_TYPE_EXTENSION || node.kind === Kind.INTERFACE_TYPE_EXTENSION || node.kind === Kind.UNION_TYPE_EXTENSION || node.kind === Kind.ENUM_TYPE_EXTENSION || node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION;\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { isExecutableDefinitionNode } from \"../../language/predicates.mjs\";\n/**\n * Executable definitions\n *\n * A GraphQL document is only valid for execution if all definitions are either\n * operation or fragment definitions.\n */\n\nexport function ExecutableDefinitionsRule(context) {\n return {\n Document: function Document(node) {\n for (var _i2 = 0, _node$definitions2 = node.definitions; _i2 < _node$definitions2.length; _i2++) {\n var definition = _node$definitions2[_i2];\n\n if (!isExecutableDefinitionNode(definition)) {\n var defName = definition.kind === Kind.SCHEMA_DEFINITION || definition.kind === Kind.SCHEMA_EXTENSION ? 'schema' : '\"' + definition.name.value + '\"';\n context.reportError(new GraphQLError(\"The \".concat(defName, \" definition is not executable.\"), definition));\n }\n }\n\n return false;\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Unique operation names\n *\n * A GraphQL document is only valid if all defined operations have unique names.\n */\n\nexport function UniqueOperationNamesRule(context) {\n var knownOperationNames = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition(node) {\n var operationName = node.name;\n\n if (operationName) {\n if (knownOperationNames[operationName.value]) {\n context.reportError(new GraphQLError(\"There can be only one operation named \\\"\".concat(operationName.value, \"\\\".\"), [knownOperationNames[operationName.value], operationName]));\n } else {\n knownOperationNames[operationName.value] = operationName;\n }\n }\n\n return false;\n },\n FragmentDefinition: function FragmentDefinition() {\n return false;\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\n/**\n * Lone anonymous operation\n *\n * A GraphQL document is only valid if when it contains an anonymous operation\n * (the query short-hand) that it contains only that one operation definition.\n */\n\nexport function LoneAnonymousOperationRule(context) {\n var operationCount = 0;\n return {\n Document: function Document(node) {\n operationCount = node.definitions.filter(function (definition) {\n return definition.kind === Kind.OPERATION_DEFINITION;\n }).length;\n },\n OperationDefinition: function OperationDefinition(node) {\n if (!node.name && operationCount > 1) {\n context.reportError(new GraphQLError('This anonymous operation must be the only defined operation.', node));\n }\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Subscriptions must only include one field.\n *\n * A GraphQL subscription is valid only if it contains a single root field.\n */\n\nexport function SingleFieldSubscriptionsRule(context) {\n return {\n OperationDefinition: function OperationDefinition(node) {\n if (node.operation === 'subscription') {\n if (node.selectionSet.selections.length !== 1) {\n context.reportError(new GraphQLError(node.name ? \"Subscription \\\"\".concat(node.name.value, \"\\\" must select only one top level field.\") : 'Anonymous Subscription must select only one top level field.', node.selectionSet.selections.slice(1)));\n }\n }\n }\n };\n}","import didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isTypeDefinitionNode, isTypeSystemDefinitionNode, isTypeSystemExtensionNode } from \"../../language/predicates.mjs\";\nimport { specifiedScalarTypes } from \"../../type/scalars.mjs\";\nimport { introspectionTypes } from \"../../type/introspection.mjs\";\n/**\n * Known type names\n *\n * A GraphQL document is only valid if referenced types (specifically\n * variable definitions and fragment conditions) are defined by the type schema.\n */\n\nexport function KnownTypeNamesRule(context) {\n var schema = context.getSchema();\n var existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);\n var definedTypes = Object.create(null);\n\n for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {\n var def = _context$getDocument$2[_i2];\n\n if (isTypeDefinitionNode(def)) {\n definedTypes[def.name.value] = true;\n }\n }\n\n var typeNames = Object.keys(existingTypesMap).concat(Object.keys(definedTypes));\n return {\n NamedType: function NamedType(node, _1, parent, _2, ancestors) {\n var typeName = node.name.value;\n\n if (!existingTypesMap[typeName] && !definedTypes[typeName]) {\n var _ancestors$;\n\n var definitionNode = (_ancestors$ = ancestors[2]) !== null && _ancestors$ !== void 0 ? _ancestors$ : parent;\n var isSDL = definitionNode != null && isSDLNode(definitionNode);\n\n if (isSDL && isStandardTypeName(typeName)) {\n return;\n }\n\n var suggestedTypes = suggestionList(typeName, isSDL ? standardTypeNames.concat(typeNames) : typeNames);\n context.reportError(new GraphQLError(\"Unknown type \\\"\".concat(typeName, \"\\\".\") + didYouMean(suggestedTypes), node));\n }\n }\n };\n}\nvar standardTypeNames = [].concat(specifiedScalarTypes, introspectionTypes).map(function (type) {\n return type.name;\n});\n\nfunction isStandardTypeName(typeName) {\n return standardTypeNames.indexOf(typeName) !== -1;\n}\n\nfunction isSDLNode(value) {\n return !Array.isArray(value) && (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value));\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { isCompositeType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\n/**\n * Fragments on composite type\n *\n * Fragments use a type condition to determine if they apply, since fragments\n * can only be spread into a composite type (object, interface, or union), the\n * type condition must also be a composite type.\n */\n\nexport function FragmentsOnCompositeTypesRule(context) {\n return {\n InlineFragment: function InlineFragment(node) {\n var typeCondition = node.typeCondition;\n\n if (typeCondition) {\n var type = typeFromAST(context.getSchema(), typeCondition);\n\n if (type && !isCompositeType(type)) {\n var typeStr = print(typeCondition);\n context.reportError(new GraphQLError(\"Fragment cannot condition on non composite type \\\"\".concat(typeStr, \"\\\".\"), typeCondition));\n }\n }\n },\n FragmentDefinition: function FragmentDefinition(node) {\n var type = typeFromAST(context.getSchema(), node.typeCondition);\n\n if (type && !isCompositeType(type)) {\n var typeStr = print(node.typeCondition);\n context.reportError(new GraphQLError(\"Fragment \\\"\".concat(node.name.value, \"\\\" cannot condition on non composite type \\\"\").concat(typeStr, \"\\\".\"), node.typeCondition));\n }\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { isInputType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\n/**\n * Variables are input types\n *\n * A GraphQL operation is only valid if all the variables it defines are of\n * input types (scalar, enum, or input object).\n */\n\nexport function VariablesAreInputTypesRule(context) {\n return {\n VariableDefinition: function VariableDefinition(node) {\n var type = typeFromAST(context.getSchema(), node.type);\n\n if (type && !isInputType(type)) {\n var variableName = node.variable.name.value;\n var typeName = print(node.type);\n context.reportError(new GraphQLError(\"Variable \\\"$\".concat(variableName, \"\\\" cannot be non-input type \\\"\").concat(typeName, \"\\\".\"), node.type));\n }\n }\n };\n}","import inspect from \"../../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { getNamedType, isLeafType } from \"../../type/definition.mjs\";\n/**\n * Scalar leafs\n *\n * A GraphQL document is valid only if all leaf fields (fields without\n * sub selections) are of scalar or enum types.\n */\n\nexport function ScalarLeafsRule(context) {\n return {\n Field: function Field(node) {\n var type = context.getType();\n var selectionSet = node.selectionSet;\n\n if (type) {\n if (isLeafType(getNamedType(type))) {\n if (selectionSet) {\n var fieldName = node.name.value;\n var typeStr = inspect(type);\n context.reportError(new GraphQLError(\"Field \\\"\".concat(fieldName, \"\\\" must not have a selection since type \\\"\").concat(typeStr, \"\\\" has no subfields.\"), selectionSet));\n }\n } else if (!selectionSet) {\n var _fieldName = node.name.value;\n\n var _typeStr = inspect(type);\n\n context.reportError(new GraphQLError(\"Field \\\"\".concat(_fieldName, \"\\\" of type \\\"\").concat(_typeStr, \"\\\" must have a selection of subfields. Did you mean \\\"\").concat(_fieldName, \" { ... }\\\"?\"), node));\n }\n }\n }\n };\n}","import arrayFrom from \"../../polyfills/arrayFrom.mjs\";\nimport didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport naturalCompare from \"../../jsutils/naturalCompare.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isObjectType, isInterfaceType, isAbstractType } from \"../../type/definition.mjs\";\n/**\n * Fields on correct type\n *\n * A GraphQL document is only valid if all fields selected are defined by the\n * parent type, or are an allowed meta field such as __typename.\n */\n\nexport function FieldsOnCorrectTypeRule(context) {\n return {\n Field: function Field(node) {\n var type = context.getParentType();\n\n if (type) {\n var fieldDef = context.getFieldDef();\n\n if (!fieldDef) {\n // This field doesn't exist, lets look for suggestions.\n var schema = context.getSchema();\n var fieldName = node.name.value; // First determine if there are any suggested types to condition on.\n\n var suggestion = didYouMean('to use an inline fragment on', getSuggestedTypeNames(schema, type, fieldName)); // If there are no suggested types, then perhaps this was a typo?\n\n if (suggestion === '') {\n suggestion = didYouMean(getSuggestedFieldNames(type, fieldName));\n } // Report an error, including helpful suggestions.\n\n\n context.reportError(new GraphQLError(\"Cannot query field \\\"\".concat(fieldName, \"\\\" on type \\\"\").concat(type.name, \"\\\".\") + suggestion, node));\n }\n }\n }\n };\n}\n/**\n * Go through all of the implementations of type, as well as the interfaces that\n * they implement. If any of those types include the provided field, suggest them,\n * sorted by how often the type is referenced.\n */\n\nfunction getSuggestedTypeNames(schema, type, fieldName) {\n if (!isAbstractType(type)) {\n // Must be an Object type, which does not have possible fields.\n return [];\n }\n\n var suggestedTypes = new Set();\n var usageCount = Object.create(null);\n\n for (var _i2 = 0, _schema$getPossibleTy2 = schema.getPossibleTypes(type); _i2 < _schema$getPossibleTy2.length; _i2++) {\n var possibleType = _schema$getPossibleTy2[_i2];\n\n if (!possibleType.getFields()[fieldName]) {\n continue;\n } // This object type defines this field.\n\n\n suggestedTypes.add(possibleType);\n usageCount[possibleType.name] = 1;\n\n for (var _i4 = 0, _possibleType$getInte2 = possibleType.getInterfaces(); _i4 < _possibleType$getInte2.length; _i4++) {\n var _usageCount$possibleI;\n\n var possibleInterface = _possibleType$getInte2[_i4];\n\n if (!possibleInterface.getFields()[fieldName]) {\n continue;\n } // This interface type defines this field.\n\n\n suggestedTypes.add(possibleInterface);\n usageCount[possibleInterface.name] = ((_usageCount$possibleI = usageCount[possibleInterface.name]) !== null && _usageCount$possibleI !== void 0 ? _usageCount$possibleI : 0) + 1;\n }\n }\n\n return arrayFrom(suggestedTypes).sort(function (typeA, typeB) {\n // Suggest both interface and object types based on how common they are.\n var usageCountDiff = usageCount[typeB.name] - usageCount[typeA.name];\n\n if (usageCountDiff !== 0) {\n return usageCountDiff;\n } // Suggest super types first followed by subtypes\n\n\n if (isInterfaceType(typeA) && schema.isSubType(typeA, typeB)) {\n return -1;\n }\n\n if (isInterfaceType(typeB) && schema.isSubType(typeB, typeA)) {\n return 1;\n }\n\n return naturalCompare(typeA.name, typeB.name);\n }).map(function (x) {\n return x.name;\n });\n}\n/**\n * For the field name provided, determine if there are any similar field names\n * that may be the result of a typo.\n */\n\n\nfunction getSuggestedFieldNames(type, fieldName) {\n if (isObjectType(type) || isInterfaceType(type)) {\n var possibleFieldNames = Object.keys(type.getFields());\n return suggestionList(fieldName, possibleFieldNames);\n } // Otherwise, must be a Union type, which does not define fields.\n\n\n return [];\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Unique fragment names\n *\n * A GraphQL document is only valid if all defined fragments have unique names.\n */\n\nexport function UniqueFragmentNamesRule(context) {\n var knownFragmentNames = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition() {\n return false;\n },\n FragmentDefinition: function FragmentDefinition(node) {\n var fragmentName = node.name.value;\n\n if (knownFragmentNames[fragmentName]) {\n context.reportError(new GraphQLError(\"There can be only one fragment named \\\"\".concat(fragmentName, \"\\\".\"), [knownFragmentNames[fragmentName], node.name]));\n } else {\n knownFragmentNames[fragmentName] = node.name;\n }\n\n return false;\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Known fragment names\n *\n * A GraphQL document is only valid if all `...Fragment` fragment spreads refer\n * to fragments defined in the same document.\n */\n\nexport function KnownFragmentNamesRule(context) {\n return {\n FragmentSpread: function FragmentSpread(node) {\n var fragmentName = node.name.value;\n var fragment = context.getFragment(fragmentName);\n\n if (!fragment) {\n context.reportError(new GraphQLError(\"Unknown fragment \\\"\".concat(fragmentName, \"\\\".\"), node.name));\n }\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * No unused fragments\n *\n * A GraphQL document is only valid if all fragment definitions are spread\n * within operations, or spread within other fragments spread within operations.\n */\n\nexport function NoUnusedFragmentsRule(context) {\n var operationDefs = [];\n var fragmentDefs = [];\n return {\n OperationDefinition: function OperationDefinition(node) {\n operationDefs.push(node);\n return false;\n },\n FragmentDefinition: function FragmentDefinition(node) {\n fragmentDefs.push(node);\n return false;\n },\n Document: {\n leave: function leave() {\n var fragmentNameUsed = Object.create(null);\n\n for (var _i2 = 0; _i2 < operationDefs.length; _i2++) {\n var operation = operationDefs[_i2];\n\n for (var _i4 = 0, _context$getRecursive2 = context.getRecursivelyReferencedFragments(operation); _i4 < _context$getRecursive2.length; _i4++) {\n var fragment = _context$getRecursive2[_i4];\n fragmentNameUsed[fragment.name.value] = true;\n }\n }\n\n for (var _i6 = 0; _i6 < fragmentDefs.length; _i6++) {\n var fragmentDef = fragmentDefs[_i6];\n var fragName = fragmentDef.name.value;\n\n if (fragmentNameUsed[fragName] !== true) {\n context.reportError(new GraphQLError(\"Fragment \\\"\".concat(fragName, \"\\\" is never used.\"), fragmentDef));\n }\n }\n }\n }\n };\n}","import inspect from \"../../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isCompositeType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\nimport { doTypesOverlap } from \"../../utilities/typeComparators.mjs\";\n/**\n * Possible fragment spread\n *\n * A fragment spread is only valid if the type condition could ever possibly\n * be true: if there is a non-empty intersection of the possible parent types,\n * and possible types which pass the type condition.\n */\n\nexport function PossibleFragmentSpreadsRule(context) {\n return {\n InlineFragment: function InlineFragment(node) {\n var fragType = context.getType();\n var parentType = context.getParentType();\n\n if (isCompositeType(fragType) && isCompositeType(parentType) && !doTypesOverlap(context.getSchema(), fragType, parentType)) {\n var parentTypeStr = inspect(parentType);\n var fragTypeStr = inspect(fragType);\n context.reportError(new GraphQLError(\"Fragment cannot be spread here as objects of type \\\"\".concat(parentTypeStr, \"\\\" can never be of type \\\"\").concat(fragTypeStr, \"\\\".\"), node));\n }\n },\n FragmentSpread: function FragmentSpread(node) {\n var fragName = node.name.value;\n var fragType = getFragmentType(context, fragName);\n var parentType = context.getParentType();\n\n if (fragType && parentType && !doTypesOverlap(context.getSchema(), fragType, parentType)) {\n var parentTypeStr = inspect(parentType);\n var fragTypeStr = inspect(fragType);\n context.reportError(new GraphQLError(\"Fragment \\\"\".concat(fragName, \"\\\" cannot be spread here as objects of type \\\"\").concat(parentTypeStr, \"\\\" can never be of type \\\"\").concat(fragTypeStr, \"\\\".\"), node));\n }\n }\n };\n}\n\nfunction getFragmentType(context, name) {\n var frag = context.getFragment(name);\n\n if (frag) {\n var type = typeFromAST(context.getSchema(), frag.typeCondition);\n\n if (isCompositeType(type)) {\n return type;\n }\n }\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nexport function NoFragmentCyclesRule(context) {\n // Tracks already visited fragments to maintain O(N) and to ensure that cycles\n // are not redundantly reported.\n var visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors\n\n var spreadPath = []; // Position in the spread path\n\n var spreadPathIndexByName = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition() {\n return false;\n },\n FragmentDefinition: function FragmentDefinition(node) {\n detectCycleRecursive(node);\n return false;\n }\n }; // This does a straight-forward DFS to find cycles.\n // It does not terminate when a cycle was found but continues to explore\n // the graph to find all possible cycles.\n\n function detectCycleRecursive(fragment) {\n if (visitedFrags[fragment.name.value]) {\n return;\n }\n\n var fragmentName = fragment.name.value;\n visitedFrags[fragmentName] = true;\n var spreadNodes = context.getFragmentSpreads(fragment.selectionSet);\n\n if (spreadNodes.length === 0) {\n return;\n }\n\n spreadPathIndexByName[fragmentName] = spreadPath.length;\n\n for (var _i2 = 0; _i2 < spreadNodes.length; _i2++) {\n var spreadNode = spreadNodes[_i2];\n var spreadName = spreadNode.name.value;\n var cycleIndex = spreadPathIndexByName[spreadName];\n spreadPath.push(spreadNode);\n\n if (cycleIndex === undefined) {\n var spreadFragment = context.getFragment(spreadName);\n\n if (spreadFragment) {\n detectCycleRecursive(spreadFragment);\n }\n } else {\n var cyclePath = spreadPath.slice(cycleIndex);\n var viaPath = cyclePath.slice(0, -1).map(function (s) {\n return '\"' + s.name.value + '\"';\n }).join(', ');\n context.reportError(new GraphQLError(\"Cannot spread fragment \\\"\".concat(spreadName, \"\\\" within itself\") + (viaPath !== '' ? \" via \".concat(viaPath, \".\") : '.'), cyclePath));\n }\n\n spreadPath.pop();\n }\n\n spreadPathIndexByName[fragmentName] = undefined;\n }\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Unique variable names\n *\n * A GraphQL operation is only valid if all its variables are uniquely named.\n */\n\nexport function UniqueVariableNamesRule(context) {\n var knownVariableNames = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition() {\n knownVariableNames = Object.create(null);\n },\n VariableDefinition: function VariableDefinition(node) {\n var variableName = node.variable.name.value;\n\n if (knownVariableNames[variableName]) {\n context.reportError(new GraphQLError(\"There can be only one variable named \\\"$\".concat(variableName, \"\\\".\"), [knownVariableNames[variableName], node.variable.name]));\n } else {\n knownVariableNames[variableName] = node.variable.name;\n }\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * No undefined variables\n *\n * A GraphQL operation is only valid if all variables encountered, both directly\n * and via fragment spreads, are defined by that operation.\n */\n\nexport function NoUndefinedVariablesRule(context) {\n var variableNameDefined = Object.create(null);\n return {\n OperationDefinition: {\n enter: function enter() {\n variableNameDefined = Object.create(null);\n },\n leave: function leave(operation) {\n var usages = context.getRecursiveVariableUsages(operation);\n\n for (var _i2 = 0; _i2 < usages.length; _i2++) {\n var _ref2 = usages[_i2];\n var node = _ref2.node;\n var varName = node.name.value;\n\n if (variableNameDefined[varName] !== true) {\n context.reportError(new GraphQLError(operation.name ? \"Variable \\\"$\".concat(varName, \"\\\" is not defined by operation \\\"\").concat(operation.name.value, \"\\\".\") : \"Variable \\\"$\".concat(varName, \"\\\" is not defined.\"), [node, operation]));\n }\n }\n }\n },\n VariableDefinition: function VariableDefinition(node) {\n variableNameDefined[node.variable.name.value] = true;\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * No unused variables\n *\n * A GraphQL operation is only valid if all variables defined by an operation\n * are used, either directly or within a spread fragment.\n */\n\nexport function NoUnusedVariablesRule(context) {\n var variableDefs = [];\n return {\n OperationDefinition: {\n enter: function enter() {\n variableDefs = [];\n },\n leave: function leave(operation) {\n var variableNameUsed = Object.create(null);\n var usages = context.getRecursiveVariableUsages(operation);\n\n for (var _i2 = 0; _i2 < usages.length; _i2++) {\n var _ref2 = usages[_i2];\n var node = _ref2.node;\n variableNameUsed[node.name.value] = true;\n }\n\n for (var _i4 = 0, _variableDefs2 = variableDefs; _i4 < _variableDefs2.length; _i4++) {\n var variableDef = _variableDefs2[_i4];\n var variableName = variableDef.variable.name.value;\n\n if (variableNameUsed[variableName] !== true) {\n context.reportError(new GraphQLError(operation.name ? \"Variable \\\"$\".concat(variableName, \"\\\" is never used in operation \\\"\").concat(operation.name.value, \"\\\".\") : \"Variable \\\"$\".concat(variableName, \"\\\" is never used.\"), variableDef));\n }\n }\n }\n },\n VariableDefinition: function VariableDefinition(def) {\n variableDefs.push(def);\n }\n };\n}","import inspect from \"../../jsutils/inspect.mjs\";\nimport invariant from \"../../jsutils/invariant.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { DirectiveLocation } from \"../../language/directiveLocation.mjs\";\nimport { specifiedDirectives } from \"../../type/directives.mjs\";\n/**\n * Known directives\n *\n * A GraphQL document is only valid if all `@directives` are known by the\n * schema and legally positioned.\n */\n\nexport function KnownDirectivesRule(context) {\n var locationsMap = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {\n var directive = definedDirectives[_i2];\n locationsMap[directive.name] = directive.locations;\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {\n var def = astDefinitions[_i4];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n locationsMap[def.name.value] = def.locations.map(function (name) {\n return name.value;\n });\n }\n }\n\n return {\n Directive: function Directive(node, _key, _parent, _path, ancestors) {\n var name = node.name.value;\n var locations = locationsMap[name];\n\n if (!locations) {\n context.reportError(new GraphQLError(\"Unknown directive \\\"@\".concat(name, \"\\\".\"), node));\n return;\n }\n\n var candidateLocation = getDirectiveLocationForASTPath(ancestors);\n\n if (candidateLocation && locations.indexOf(candidateLocation) === -1) {\n context.reportError(new GraphQLError(\"Directive \\\"@\".concat(name, \"\\\" may not be used on \").concat(candidateLocation, \".\"), node));\n }\n }\n };\n}\n\nfunction getDirectiveLocationForASTPath(ancestors) {\n var appliedTo = ancestors[ancestors.length - 1];\n !Array.isArray(appliedTo) || invariant(0);\n\n switch (appliedTo.kind) {\n case Kind.OPERATION_DEFINITION:\n return getDirectiveLocationForOperation(appliedTo.operation);\n\n case Kind.FIELD:\n return DirectiveLocation.FIELD;\n\n case Kind.FRAGMENT_SPREAD:\n return DirectiveLocation.FRAGMENT_SPREAD;\n\n case Kind.INLINE_FRAGMENT:\n return DirectiveLocation.INLINE_FRAGMENT;\n\n case Kind.FRAGMENT_DEFINITION:\n return DirectiveLocation.FRAGMENT_DEFINITION;\n\n case Kind.VARIABLE_DEFINITION:\n return DirectiveLocation.VARIABLE_DEFINITION;\n\n case Kind.SCHEMA_DEFINITION:\n case Kind.SCHEMA_EXTENSION:\n return DirectiveLocation.SCHEMA;\n\n case Kind.SCALAR_TYPE_DEFINITION:\n case Kind.SCALAR_TYPE_EXTENSION:\n return DirectiveLocation.SCALAR;\n\n case Kind.OBJECT_TYPE_DEFINITION:\n case Kind.OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.OBJECT;\n\n case Kind.FIELD_DEFINITION:\n return DirectiveLocation.FIELD_DEFINITION;\n\n case Kind.INTERFACE_TYPE_DEFINITION:\n case Kind.INTERFACE_TYPE_EXTENSION:\n return DirectiveLocation.INTERFACE;\n\n case Kind.UNION_TYPE_DEFINITION:\n case Kind.UNION_TYPE_EXTENSION:\n return DirectiveLocation.UNION;\n\n case Kind.ENUM_TYPE_DEFINITION:\n case Kind.ENUM_TYPE_EXTENSION:\n return DirectiveLocation.ENUM;\n\n case Kind.ENUM_VALUE_DEFINITION:\n return DirectiveLocation.ENUM_VALUE;\n\n case Kind.INPUT_OBJECT_TYPE_DEFINITION:\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.INPUT_OBJECT;\n\n case Kind.INPUT_VALUE_DEFINITION:\n {\n var parentNode = ancestors[ancestors.length - 3];\n return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION ? DirectiveLocation.INPUT_FIELD_DEFINITION : DirectiveLocation.ARGUMENT_DEFINITION;\n }\n }\n}\n\nfunction getDirectiveLocationForOperation(operation) {\n switch (operation) {\n case 'query':\n return DirectiveLocation.QUERY;\n\n case 'mutation':\n return DirectiveLocation.MUTATION;\n\n case 'subscription':\n return DirectiveLocation.SUBSCRIPTION;\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected operation: ' + inspect(operation));\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { isTypeDefinitionNode, isTypeExtensionNode } from \"../../language/predicates.mjs\";\nimport { specifiedDirectives } from \"../../type/directives.mjs\";\n/**\n * Unique directive names per location\n *\n * A GraphQL document is only valid if all non-repeatable directives at\n * a given location are uniquely named.\n */\n\nexport function UniqueDirectivesPerLocationRule(context) {\n var uniqueDirectiveMap = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {\n var directive = definedDirectives[_i2];\n uniqueDirectiveMap[directive.name] = !directive.isRepeatable;\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {\n var def = astDefinitions[_i4];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n uniqueDirectiveMap[def.name.value] = !def.repeatable;\n }\n }\n\n var schemaDirectives = Object.create(null);\n var typeDirectivesMap = Object.create(null);\n return {\n // Many different AST nodes may contain directives. Rather than listing\n // them all, just listen for entering any node, and check to see if it\n // defines any directives.\n enter: function enter(node) {\n if (node.directives == null) {\n return;\n }\n\n var seenDirectives;\n\n if (node.kind === Kind.SCHEMA_DEFINITION || node.kind === Kind.SCHEMA_EXTENSION) {\n seenDirectives = schemaDirectives;\n } else if (isTypeDefinitionNode(node) || isTypeExtensionNode(node)) {\n var typeName = node.name.value;\n seenDirectives = typeDirectivesMap[typeName];\n\n if (seenDirectives === undefined) {\n typeDirectivesMap[typeName] = seenDirectives = Object.create(null);\n }\n } else {\n seenDirectives = Object.create(null);\n }\n\n for (var _i6 = 0, _node$directives2 = node.directives; _i6 < _node$directives2.length; _i6++) {\n var _directive = _node$directives2[_i6];\n var directiveName = _directive.name.value;\n\n if (uniqueDirectiveMap[directiveName]) {\n if (seenDirectives[directiveName]) {\n context.reportError(new GraphQLError(\"The directive \\\"@\".concat(directiveName, \"\\\" can only be used once at this location.\"), [seenDirectives[directiveName], _directive]));\n } else {\n seenDirectives[directiveName] = _directive;\n }\n }\n }\n }\n };\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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\nimport didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { specifiedDirectives } from \"../../type/directives.mjs\";\n/**\n * Known argument names\n *\n * A GraphQL field is only valid if all supplied arguments are defined by\n * that field.\n */\n\nexport function KnownArgumentNamesRule(context) {\n return _objectSpread(_objectSpread({}, KnownArgumentNamesOnDirectivesRule(context)), {}, {\n Argument: function Argument(argNode) {\n var argDef = context.getArgument();\n var fieldDef = context.getFieldDef();\n var parentType = context.getParentType();\n\n if (!argDef && fieldDef && parentType) {\n var argName = argNode.name.value;\n var knownArgsNames = fieldDef.args.map(function (arg) {\n return arg.name;\n });\n var suggestions = suggestionList(argName, knownArgsNames);\n context.reportError(new GraphQLError(\"Unknown argument \\\"\".concat(argName, \"\\\" on field \\\"\").concat(parentType.name, \".\").concat(fieldDef.name, \"\\\".\") + didYouMean(suggestions), argNode));\n }\n }\n });\n}\n/**\n * @internal\n */\n\nexport function KnownArgumentNamesOnDirectivesRule(context) {\n var directiveArgs = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {\n var directive = definedDirectives[_i2];\n directiveArgs[directive.name] = directive.args.map(function (arg) {\n return arg.name;\n });\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {\n var def = astDefinitions[_i4];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n var _def$arguments; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var argsNodes = (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 ? _def$arguments : [];\n directiveArgs[def.name.value] = argsNodes.map(function (arg) {\n return arg.name.value;\n });\n }\n }\n\n return {\n Directive: function Directive(directiveNode) {\n var directiveName = directiveNode.name.value;\n var knownArgs = directiveArgs[directiveName];\n\n if (directiveNode.arguments && knownArgs) {\n for (var _i6 = 0, _directiveNode$argume2 = directiveNode.arguments; _i6 < _directiveNode$argume2.length; _i6++) {\n var argNode = _directiveNode$argume2[_i6];\n var argName = argNode.name.value;\n\n if (knownArgs.indexOf(argName) === -1) {\n var suggestions = suggestionList(argName, knownArgs);\n context.reportError(new GraphQLError(\"Unknown argument \\\"\".concat(argName, \"\\\" on directive \\\"@\").concat(directiveName, \"\\\".\") + didYouMean(suggestions), argNode));\n }\n }\n }\n\n return false;\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Unique argument names\n *\n * A GraphQL field or directive is only valid if all supplied arguments are\n * uniquely named.\n */\n\nexport function UniqueArgumentNamesRule(context) {\n var knownArgNames = Object.create(null);\n return {\n Field: function Field() {\n knownArgNames = Object.create(null);\n },\n Directive: function Directive() {\n knownArgNames = Object.create(null);\n },\n Argument: function Argument(node) {\n var argName = node.name.value;\n\n if (knownArgNames[argName]) {\n context.reportError(new GraphQLError(\"There can be only one argument named \\\"\".concat(argName, \"\\\".\"), [knownArgNames[argName], node.name]));\n } else {\n knownArgNames[argName] = node.name;\n }\n\n return false;\n }\n };\n}","import objectValues from \"../../polyfills/objectValues.mjs\";\nimport keyMap from \"../../jsutils/keyMap.mjs\";\nimport inspect from \"../../jsutils/inspect.mjs\";\nimport didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { isLeafType, isInputObjectType, isListType, isNonNullType, isRequiredInputField, getNullableType, getNamedType } from \"../../type/definition.mjs\";\n/**\n * Value literals of correct type\n *\n * A GraphQL document is only valid if all value literals are of the type\n * expected at their position.\n */\n\nexport function ValuesOfCorrectTypeRule(context) {\n return {\n ListValue: function ListValue(node) {\n // Note: TypeInfo will traverse into a list's item type, so look to the\n // parent input type to check if it is a list.\n var type = getNullableType(context.getParentInputType());\n\n if (!isListType(type)) {\n isValidValueNode(context, node);\n return false; // Don't traverse further.\n }\n },\n ObjectValue: function ObjectValue(node) {\n var type = getNamedType(context.getInputType());\n\n if (!isInputObjectType(type)) {\n isValidValueNode(context, node);\n return false; // Don't traverse further.\n } // Ensure every required field exists.\n\n\n var fieldNodeMap = keyMap(node.fields, function (field) {\n return field.name.value;\n });\n\n for (var _i2 = 0, _objectValues2 = objectValues(type.getFields()); _i2 < _objectValues2.length; _i2++) {\n var fieldDef = _objectValues2[_i2];\n var fieldNode = fieldNodeMap[fieldDef.name];\n\n if (!fieldNode && isRequiredInputField(fieldDef)) {\n var typeStr = inspect(fieldDef.type);\n context.reportError(new GraphQLError(\"Field \\\"\".concat(type.name, \".\").concat(fieldDef.name, \"\\\" of required type \\\"\").concat(typeStr, \"\\\" was not provided.\"), node));\n }\n }\n },\n ObjectField: function ObjectField(node) {\n var parentType = getNamedType(context.getParentInputType());\n var fieldType = context.getInputType();\n\n if (!fieldType && isInputObjectType(parentType)) {\n var suggestions = suggestionList(node.name.value, Object.keys(parentType.getFields()));\n context.reportError(new GraphQLError(\"Field \\\"\".concat(node.name.value, \"\\\" is not defined by type \\\"\").concat(parentType.name, \"\\\".\") + didYouMean(suggestions), node));\n }\n },\n NullValue: function NullValue(node) {\n var type = context.getInputType();\n\n if (isNonNullType(type)) {\n context.reportError(new GraphQLError(\"Expected value of type \\\"\".concat(inspect(type), \"\\\", found \").concat(print(node), \".\"), node));\n }\n },\n EnumValue: function EnumValue(node) {\n return isValidValueNode(context, node);\n },\n IntValue: function IntValue(node) {\n return isValidValueNode(context, node);\n },\n FloatValue: function FloatValue(node) {\n return isValidValueNode(context, node);\n },\n StringValue: function StringValue(node) {\n return isValidValueNode(context, node);\n },\n BooleanValue: function BooleanValue(node) {\n return isValidValueNode(context, node);\n }\n };\n}\n/**\n * Any value literal may be a valid representation of a Scalar, depending on\n * that scalar type.\n */\n\nfunction isValidValueNode(context, node) {\n // Report any error at the full type expected by the location.\n var locationType = context.getInputType();\n\n if (!locationType) {\n return;\n }\n\n var type = getNamedType(locationType);\n\n if (!isLeafType(type)) {\n var typeStr = inspect(locationType);\n context.reportError(new GraphQLError(\"Expected value of type \\\"\".concat(typeStr, \"\\\", found \").concat(print(node), \".\"), node));\n return;\n } // Scalars and Enums determine if a literal value is valid via parseLiteral(),\n // which may throw or return an invalid value to indicate failure.\n\n\n try {\n var parseResult = type.parseLiteral(node, undefined\n /* variables */\n );\n\n if (parseResult === undefined) {\n var _typeStr = inspect(locationType);\n\n context.reportError(new GraphQLError(\"Expected value of type \\\"\".concat(_typeStr, \"\\\", found \").concat(print(node), \".\"), node));\n }\n } catch (error) {\n var _typeStr2 = inspect(locationType);\n\n if (error instanceof GraphQLError) {\n context.reportError(error);\n } else {\n context.reportError(new GraphQLError(\"Expected value of type \\\"\".concat(_typeStr2, \"\\\", found \").concat(print(node), \"; \") + error.message, node, undefined, undefined, undefined, error));\n }\n }\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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\nimport inspect from \"../../jsutils/inspect.mjs\";\nimport keyMap from \"../../jsutils/keyMap.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { specifiedDirectives } from \"../../type/directives.mjs\";\nimport { isType, isRequiredArgument } from \"../../type/definition.mjs\";\n/**\n * Provided required arguments\n *\n * A field or directive is only valid if all required (non-null without a\n * default value) field arguments have been provided.\n */\n\nexport function ProvidedRequiredArgumentsRule(context) {\n return _objectSpread(_objectSpread({}, ProvidedRequiredArgumentsOnDirectivesRule(context)), {}, {\n Field: {\n // Validate on leave to allow for deeper errors to appear first.\n leave: function leave(fieldNode) {\n var _fieldNode$arguments;\n\n var fieldDef = context.getFieldDef();\n\n if (!fieldDef) {\n return false;\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var argNodes = (_fieldNode$arguments = fieldNode.arguments) !== null && _fieldNode$arguments !== void 0 ? _fieldNode$arguments : [];\n var argNodeMap = keyMap(argNodes, function (arg) {\n return arg.name.value;\n });\n\n for (var _i2 = 0, _fieldDef$args2 = fieldDef.args; _i2 < _fieldDef$args2.length; _i2++) {\n var argDef = _fieldDef$args2[_i2];\n var argNode = argNodeMap[argDef.name];\n\n if (!argNode && isRequiredArgument(argDef)) {\n var argTypeStr = inspect(argDef.type);\n context.reportError(new GraphQLError(\"Field \\\"\".concat(fieldDef.name, \"\\\" argument \\\"\").concat(argDef.name, \"\\\" of type \\\"\").concat(argTypeStr, \"\\\" is required, but it was not provided.\"), fieldNode));\n }\n }\n }\n }\n });\n}\n/**\n * @internal\n */\n\nexport function ProvidedRequiredArgumentsOnDirectivesRule(context) {\n var requiredArgsMap = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i4 = 0; _i4 < definedDirectives.length; _i4++) {\n var directive = definedDirectives[_i4];\n requiredArgsMap[directive.name] = keyMap(directive.args.filter(isRequiredArgument), function (arg) {\n return arg.name;\n });\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i6 = 0; _i6 < astDefinitions.length; _i6++) {\n var def = astDefinitions[_i6];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n var _def$arguments; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var argNodes = (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 ? _def$arguments : [];\n requiredArgsMap[def.name.value] = keyMap(argNodes.filter(isRequiredArgumentNode), function (arg) {\n return arg.name.value;\n });\n }\n }\n\n return {\n Directive: {\n // Validate on leave to allow for deeper errors to appear first.\n leave: function leave(directiveNode) {\n var directiveName = directiveNode.name.value;\n var requiredArgs = requiredArgsMap[directiveName];\n\n if (requiredArgs) {\n var _directiveNode$argume; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var _argNodes = (_directiveNode$argume = directiveNode.arguments) !== null && _directiveNode$argume !== void 0 ? _directiveNode$argume : [];\n\n var argNodeMap = keyMap(_argNodes, function (arg) {\n return arg.name.value;\n });\n\n for (var _i8 = 0, _Object$keys2 = Object.keys(requiredArgs); _i8 < _Object$keys2.length; _i8++) {\n var argName = _Object$keys2[_i8];\n\n if (!argNodeMap[argName]) {\n var argType = requiredArgs[argName].type;\n var argTypeStr = isType(argType) ? inspect(argType) : print(argType);\n context.reportError(new GraphQLError(\"Directive \\\"@\".concat(directiveName, \"\\\" argument \\\"\").concat(argName, \"\\\" of type \\\"\").concat(argTypeStr, \"\\\" is required, but it was not provided.\"), directiveNode));\n }\n }\n }\n }\n }\n };\n}\n\nfunction isRequiredArgumentNode(arg) {\n return arg.type.kind === Kind.NON_NULL_TYPE && arg.defaultValue == null;\n}","import inspect from \"../../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { isNonNullType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\nimport { isTypeSubTypeOf } from \"../../utilities/typeComparators.mjs\";\n/**\n * Variables passed to field arguments conform to type\n */\n\nexport function VariablesInAllowedPositionRule(context) {\n var varDefMap = Object.create(null);\n return {\n OperationDefinition: {\n enter: function enter() {\n varDefMap = Object.create(null);\n },\n leave: function leave(operation) {\n var usages = context.getRecursiveVariableUsages(operation);\n\n for (var _i2 = 0; _i2 < usages.length; _i2++) {\n var _ref2 = usages[_i2];\n var node = _ref2.node;\n var type = _ref2.type;\n var defaultValue = _ref2.defaultValue;\n var varName = node.name.value;\n var varDef = varDefMap[varName];\n\n if (varDef && type) {\n // A var type is allowed if it is the same or more strict (e.g. is\n // a subtype of) than the expected type. It can be more strict if\n // the variable type is non-null when the expected type is nullable.\n // If both are list types, the variable item type can be more strict\n // than the expected item type (contravariant).\n var schema = context.getSchema();\n var varType = typeFromAST(schema, varDef.type);\n\n if (varType && !allowedVariableUsage(schema, varType, varDef.defaultValue, type, defaultValue)) {\n var varTypeStr = inspect(varType);\n var typeStr = inspect(type);\n context.reportError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" of type \\\"\").concat(varTypeStr, \"\\\" used in position expecting type \\\"\").concat(typeStr, \"\\\".\"), [varDef, node]));\n }\n }\n }\n }\n },\n VariableDefinition: function VariableDefinition(node) {\n varDefMap[node.variable.name.value] = node;\n }\n };\n}\n/**\n * Returns true if the variable is allowed in the location it was found,\n * which includes considering if default values exist for either the variable\n * or the location at which it is located.\n */\n\nfunction allowedVariableUsage(schema, varType, varDefaultValue, locationType, locationDefaultValue) {\n if (isNonNullType(locationType) && !isNonNullType(varType)) {\n var hasNonNullVariableDefaultValue = varDefaultValue != null && varDefaultValue.kind !== Kind.NULL;\n var hasLocationDefaultValue = locationDefaultValue !== undefined;\n\n if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) {\n return false;\n }\n\n var nullableLocationType = locationType.ofType;\n return isTypeSubTypeOf(schema, varType, nullableLocationType);\n }\n\n return isTypeSubTypeOf(schema, varType, locationType);\n}","import find from \"../../polyfills/find.mjs\";\nimport objectEntries from \"../../polyfills/objectEntries.mjs\";\nimport inspect from \"../../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { getNamedType, isNonNullType, isLeafType, isObjectType, isListType, isInterfaceType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\n\nfunction reasonMessage(reason) {\n if (Array.isArray(reason)) {\n return reason.map(function (_ref) {\n var responseName = _ref[0],\n subReason = _ref[1];\n return \"subfields \\\"\".concat(responseName, \"\\\" conflict because \") + reasonMessage(subReason);\n }).join(' and ');\n }\n\n return reason;\n}\n/**\n * Overlapping fields can be merged\n *\n * A selection set is only valid if all fields (including spreading any\n * fragments) either correspond to distinct response names or can be merged\n * without ambiguity.\n */\n\n\nexport function OverlappingFieldsCanBeMergedRule(context) {\n // A memoization for when two fragments are compared \"between\" each other for\n // conflicts. Two fragments may be compared many times, so memoizing this can\n // dramatically improve the performance of this validator.\n var comparedFragmentPairs = new PairSet(); // A cache for the \"field map\" and list of fragment names found in any given\n // selection set. Selection sets may be asked for this information multiple\n // times, so this improves the performance of this validator.\n\n var cachedFieldsAndFragmentNames = new Map();\n return {\n SelectionSet: function SelectionSet(selectionSet) {\n var conflicts = findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, context.getParentType(), selectionSet);\n\n for (var _i2 = 0; _i2 < conflicts.length; _i2++) {\n var _ref3 = conflicts[_i2];\n var _ref2$ = _ref3[0];\n var responseName = _ref2$[0];\n var reason = _ref2$[1];\n var fields1 = _ref3[1];\n var fields2 = _ref3[2];\n var reasonMsg = reasonMessage(reason);\n context.reportError(new GraphQLError(\"Fields \\\"\".concat(responseName, \"\\\" conflict because \").concat(reasonMsg, \". Use different aliases on the fields to fetch both if this was intentional.\"), fields1.concat(fields2)));\n }\n }\n };\n}\n/**\n * Algorithm:\n *\n * Conflicts occur when two fields exist in a query which will produce the same\n * response name, but represent differing values, thus creating a conflict.\n * The algorithm below finds all conflicts via making a series of comparisons\n * between fields. In order to compare as few fields as possible, this makes\n * a series of comparisons \"within\" sets of fields and \"between\" sets of fields.\n *\n * Given any selection set, a collection produces both a set of fields by\n * also including all inline fragments, as well as a list of fragments\n * referenced by fragment spreads.\n *\n * A) Each selection set represented in the document first compares \"within\" its\n * collected set of fields, finding any conflicts between every pair of\n * overlapping fields.\n * Note: This is the *only time* that a the fields \"within\" a set are compared\n * to each other. After this only fields \"between\" sets are compared.\n *\n * B) Also, if any fragment is referenced in a selection set, then a\n * comparison is made \"between\" the original set of fields and the\n * referenced fragment.\n *\n * C) Also, if multiple fragments are referenced, then comparisons\n * are made \"between\" each referenced fragment.\n *\n * D) When comparing \"between\" a set of fields and a referenced fragment, first\n * a comparison is made between each field in the original set of fields and\n * each field in the the referenced set of fields.\n *\n * E) Also, if any fragment is referenced in the referenced selection set,\n * then a comparison is made \"between\" the original set of fields and the\n * referenced fragment (recursively referring to step D).\n *\n * F) When comparing \"between\" two fragments, first a comparison is made between\n * each field in the first referenced set of fields and each field in the the\n * second referenced set of fields.\n *\n * G) Also, any fragments referenced by the first must be compared to the\n * second, and any fragments referenced by the second must be compared to the\n * first (recursively referring to step F).\n *\n * H) When comparing two fields, if both have selection sets, then a comparison\n * is made \"between\" both selection sets, first comparing the set of fields in\n * the first selection set with the set of fields in the second.\n *\n * I) Also, if any fragment is referenced in either selection set, then a\n * comparison is made \"between\" the other set of fields and the\n * referenced fragment.\n *\n * J) Also, if two fragments are referenced in both selection sets, then a\n * comparison is made \"between\" the two fragments.\n *\n */\n// Find all conflicts found \"within\" a selection set, including those found\n// via spreading in fragments. Called when visiting each SelectionSet in the\n// GraphQL Document.\n\nfunction findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentType, selectionSet) {\n var conflicts = [];\n\n var _getFieldsAndFragment = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet),\n fieldMap = _getFieldsAndFragment[0],\n fragmentNames = _getFieldsAndFragment[1]; // (A) Find find all conflicts \"within\" the fields of this selection set.\n // Note: this is the *only place* `collectConflictsWithin` is called.\n\n\n collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap);\n\n if (fragmentNames.length !== 0) {\n // (B) Then collect conflicts between these fields and those represented by\n // each spread fragment name found.\n for (var i = 0; i < fragmentNames.length; i++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fieldMap, fragmentNames[i]); // (C) Then compare this fragment with all other fragments found in this\n // selection set to collect conflicts between fragments spread together.\n // This compares each item in the list of fragment names to every other\n // item in that same list (except for itself).\n\n for (var j = i + 1; j < fragmentNames.length; j++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fragmentNames[i], fragmentNames[j]);\n }\n }\n }\n\n return conflicts;\n} // Collect all conflicts found between a set of fields and a fragment reference\n// including via spreading in any nested fragments.\n\n\nfunction collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentName) {\n var fragment = context.getFragment(fragmentName);\n\n if (!fragment) {\n return;\n }\n\n var _getReferencedFieldsA = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment),\n fieldMap2 = _getReferencedFieldsA[0],\n fragmentNames2 = _getReferencedFieldsA[1]; // Do not compare a fragment's fieldMap to itself.\n\n\n if (fieldMap === fieldMap2) {\n return;\n } // (D) First collect any conflicts between the provided collection of fields\n // and the collection of fields represented by the given fragment.\n\n\n collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fieldMap2); // (E) Then collect any conflicts between the provided collection of fields\n // and any fragment names found in the given fragment.\n\n for (var i = 0; i < fragmentNames2.length; i++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentNames2[i]);\n }\n} // Collect all conflicts found between two fragments, including via spreading in\n// any nested fragments.\n\n\nfunction collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentName2) {\n // No need to compare a fragment to itself.\n if (fragmentName1 === fragmentName2) {\n return;\n } // Memoize so two fragments are not compared for conflicts more than once.\n\n\n if (comparedFragmentPairs.has(fragmentName1, fragmentName2, areMutuallyExclusive)) {\n return;\n }\n\n comparedFragmentPairs.add(fragmentName1, fragmentName2, areMutuallyExclusive);\n var fragment1 = context.getFragment(fragmentName1);\n var fragment2 = context.getFragment(fragmentName2);\n\n if (!fragment1 || !fragment2) {\n return;\n }\n\n var _getReferencedFieldsA2 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment1),\n fieldMap1 = _getReferencedFieldsA2[0],\n fragmentNames1 = _getReferencedFieldsA2[1];\n\n var _getReferencedFieldsA3 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment2),\n fieldMap2 = _getReferencedFieldsA3[0],\n fragmentNames2 = _getReferencedFieldsA3[1]; // (F) First, collect all conflicts between these two collections of fields\n // (not including any nested fragments).\n\n\n collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (G) Then collect conflicts between the first fragment and any nested\n // fragments spread in the second fragment.\n\n for (var j = 0; j < fragmentNames2.length; j++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentNames2[j]);\n } // (G) Then collect conflicts between the second fragment and any nested\n // fragments spread in the first fragment.\n\n\n for (var i = 0; i < fragmentNames1.length; i++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[i], fragmentName2);\n }\n} // Find all conflicts found between two selection sets, including those found\n// via spreading in fragments. Called when determining if conflicts exist\n// between the sub-fields of two overlapping fields.\n\n\nfunction findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, parentType1, selectionSet1, parentType2, selectionSet2) {\n var conflicts = [];\n\n var _getFieldsAndFragment2 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType1, selectionSet1),\n fieldMap1 = _getFieldsAndFragment2[0],\n fragmentNames1 = _getFieldsAndFragment2[1];\n\n var _getFieldsAndFragment3 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType2, selectionSet2),\n fieldMap2 = _getFieldsAndFragment3[0],\n fragmentNames2 = _getFieldsAndFragment3[1]; // (H) First, collect all conflicts between these two collections of field.\n\n\n collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (I) Then collect conflicts between the first collection of fields and\n // those referenced by each fragment name associated with the second.\n\n if (fragmentNames2.length !== 0) {\n for (var j = 0; j < fragmentNames2.length; j++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fragmentNames2[j]);\n }\n } // (I) Then collect conflicts between the second collection of fields and\n // those referenced by each fragment name associated with the first.\n\n\n if (fragmentNames1.length !== 0) {\n for (var i = 0; i < fragmentNames1.length; i++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap2, fragmentNames1[i]);\n }\n } // (J) Also collect conflicts between any fragment names by the first and\n // fragment names by the second. This compares each item in the first set of\n // names to each item in the second set of names.\n\n\n for (var _i3 = 0; _i3 < fragmentNames1.length; _i3++) {\n for (var _j = 0; _j < fragmentNames2.length; _j++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[_i3], fragmentNames2[_j]);\n }\n }\n\n return conflicts;\n} // Collect all Conflicts \"within\" one collection of fields.\n\n\nfunction collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap) {\n // A field map is a keyed collection, where each key represents a response\n // name and the value at that key is a list of all fields which provide that\n // response name. For every response name, if there are multiple fields, they\n // must be compared to find a potential conflict.\n for (var _i5 = 0, _objectEntries2 = objectEntries(fieldMap); _i5 < _objectEntries2.length; _i5++) {\n var _ref5 = _objectEntries2[_i5];\n var responseName = _ref5[0];\n var fields = _ref5[1]; // This compares every field in the list to every other field in this list\n // (except to itself). If the list only has one item, nothing needs to\n // be compared.\n\n if (fields.length > 1) {\n for (var i = 0; i < fields.length; i++) {\n for (var j = i + 1; j < fields.length; j++) {\n var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, // within one collection is never mutually exclusive\n responseName, fields[i], fields[j]);\n\n if (conflict) {\n conflicts.push(conflict);\n }\n }\n }\n }\n }\n} // Collect all Conflicts between two collections of fields. This is similar to,\n// but different from the `collectConflictsWithin` function above. This check\n// assumes that `collectConflictsWithin` has already been called on each\n// provided collection of fields. This is true because this validator traverses\n// each individual selection set.\n\n\nfunction collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, fieldMap1, fieldMap2) {\n // A field map is a keyed collection, where each key represents a response\n // name and the value at that key is a list of all fields which provide that\n // response name. For any response name which appears in both provided field\n // maps, each field from the first field map must be compared to every field\n // in the second field map to find potential conflicts.\n for (var _i7 = 0, _Object$keys2 = Object.keys(fieldMap1); _i7 < _Object$keys2.length; _i7++) {\n var responseName = _Object$keys2[_i7];\n var fields2 = fieldMap2[responseName];\n\n if (fields2) {\n var fields1 = fieldMap1[responseName];\n\n for (var i = 0; i < fields1.length; i++) {\n for (var j = 0; j < fields2.length; j++) {\n var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, fields1[i], fields2[j]);\n\n if (conflict) {\n conflicts.push(conflict);\n }\n }\n }\n }\n }\n} // Determines if there is a conflict between two particular fields, including\n// comparing their sub-fields.\n\n\nfunction findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, field1, field2) {\n var parentType1 = field1[0],\n node1 = field1[1],\n def1 = field1[2];\n var parentType2 = field2[0],\n node2 = field2[1],\n def2 = field2[2]; // If it is known that two fields could not possibly apply at the same\n // time, due to the parent types, then it is safe to permit them to diverge\n // in aliased field or arguments used as they will not present any ambiguity\n // by differing.\n // It is known that two parent types could never overlap if they are\n // different Object types. Interface or Union types might overlap - if not\n // in the current state of the schema, then perhaps in some future version,\n // thus may not safely diverge.\n\n var areMutuallyExclusive = parentFieldsAreMutuallyExclusive || parentType1 !== parentType2 && isObjectType(parentType1) && isObjectType(parentType2);\n\n if (!areMutuallyExclusive) {\n var _node1$arguments, _node2$arguments; // Two aliases must refer to the same field.\n\n\n var name1 = node1.name.value;\n var name2 = node2.name.value;\n\n if (name1 !== name2) {\n return [[responseName, \"\\\"\".concat(name1, \"\\\" and \\\"\").concat(name2, \"\\\" are different fields\")], [node1], [node2]];\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var args1 = (_node1$arguments = node1.arguments) !== null && _node1$arguments !== void 0 ? _node1$arguments : []; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var args2 = (_node2$arguments = node2.arguments) !== null && _node2$arguments !== void 0 ? _node2$arguments : []; // Two field calls must have the same arguments.\n\n if (!sameArguments(args1, args2)) {\n return [[responseName, 'they have differing arguments'], [node1], [node2]];\n }\n } // The return type for each field.\n\n\n var type1 = def1 === null || def1 === void 0 ? void 0 : def1.type;\n var type2 = def2 === null || def2 === void 0 ? void 0 : def2.type;\n\n if (type1 && type2 && doTypesConflict(type1, type2)) {\n return [[responseName, \"they return conflicting types \\\"\".concat(inspect(type1), \"\\\" and \\\"\").concat(inspect(type2), \"\\\"\")], [node1], [node2]];\n } // Collect and compare sub-fields. Use the same \"visited fragment names\" list\n // for both collections so fields in a fragment reference are never\n // compared to themselves.\n\n\n var selectionSet1 = node1.selectionSet;\n var selectionSet2 = node2.selectionSet;\n\n if (selectionSet1 && selectionSet2) {\n var conflicts = findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, getNamedType(type1), selectionSet1, getNamedType(type2), selectionSet2);\n return subfieldConflicts(conflicts, responseName, node1, node2);\n }\n}\n\nfunction sameArguments(arguments1, arguments2) {\n if (arguments1.length !== arguments2.length) {\n return false;\n }\n\n return arguments1.every(function (argument1) {\n var argument2 = find(arguments2, function (argument) {\n return argument.name.value === argument1.name.value;\n });\n\n if (!argument2) {\n return false;\n }\n\n return sameValue(argument1.value, argument2.value);\n });\n}\n\nfunction sameValue(value1, value2) {\n return print(value1) === print(value2);\n} // Two types conflict if both types could not apply to a value simultaneously.\n// Composite types are ignored as their individual field types will be compared\n// later recursively. However List and Non-Null types must match.\n\n\nfunction doTypesConflict(type1, type2) {\n if (isListType(type1)) {\n return isListType(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;\n }\n\n if (isListType(type2)) {\n return true;\n }\n\n if (isNonNullType(type1)) {\n return isNonNullType(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;\n }\n\n if (isNonNullType(type2)) {\n return true;\n }\n\n if (isLeafType(type1) || isLeafType(type2)) {\n return type1 !== type2;\n }\n\n return false;\n} // Given a selection set, return the collection of fields (a mapping of response\n// name to field nodes and definitions) as well as a list of fragment names\n// referenced via fragment spreads.\n\n\nfunction getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet) {\n var cached = cachedFieldsAndFragmentNames.get(selectionSet);\n\n if (!cached) {\n var nodeAndDefs = Object.create(null);\n var fragmentNames = Object.create(null);\n\n _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames);\n\n cached = [nodeAndDefs, Object.keys(fragmentNames)];\n cachedFieldsAndFragmentNames.set(selectionSet, cached);\n }\n\n return cached;\n} // Given a reference to a fragment, return the represented collection of fields\n// as well as a list of nested fragment names referenced via fragment spreads.\n\n\nfunction getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment) {\n // Short-circuit building a type from the node if possible.\n var cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet);\n\n if (cached) {\n return cached;\n }\n\n var fragmentType = typeFromAST(context.getSchema(), fragment.typeCondition);\n return getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragmentType, fragment.selectionSet);\n}\n\nfunction _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames) {\n for (var _i9 = 0, _selectionSet$selecti2 = selectionSet.selections; _i9 < _selectionSet$selecti2.length; _i9++) {\n var selection = _selectionSet$selecti2[_i9];\n\n switch (selection.kind) {\n case Kind.FIELD:\n {\n var fieldName = selection.name.value;\n var fieldDef = void 0;\n\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n fieldDef = parentType.getFields()[fieldName];\n }\n\n var responseName = selection.alias ? selection.alias.value : fieldName;\n\n if (!nodeAndDefs[responseName]) {\n nodeAndDefs[responseName] = [];\n }\n\n nodeAndDefs[responseName].push([parentType, selection, fieldDef]);\n break;\n }\n\n case Kind.FRAGMENT_SPREAD:\n fragmentNames[selection.name.value] = true;\n break;\n\n case Kind.INLINE_FRAGMENT:\n {\n var typeCondition = selection.typeCondition;\n var inlineFragmentType = typeCondition ? typeFromAST(context.getSchema(), typeCondition) : parentType;\n\n _collectFieldsAndFragmentNames(context, inlineFragmentType, selection.selectionSet, nodeAndDefs, fragmentNames);\n\n break;\n }\n }\n }\n} // Given a series of Conflicts which occurred between two sub-fields, generate\n// a single Conflict.\n\n\nfunction subfieldConflicts(conflicts, responseName, node1, node2) {\n if (conflicts.length > 0) {\n return [[responseName, conflicts.map(function (_ref6) {\n var reason = _ref6[0];\n return reason;\n })], conflicts.reduce(function (allFields, _ref7) {\n var fields1 = _ref7[1];\n return allFields.concat(fields1);\n }, [node1]), conflicts.reduce(function (allFields, _ref8) {\n var fields2 = _ref8[2];\n return allFields.concat(fields2);\n }, [node2])];\n }\n}\n/**\n * A way to keep track of pairs of things when the ordering of the pair does\n * not matter. We do this by maintaining a sort of double adjacency sets.\n */\n\n\nvar PairSet = /*#__PURE__*/function () {\n function PairSet() {\n this._data = Object.create(null);\n }\n\n var _proto = PairSet.prototype;\n\n _proto.has = function has(a, b, areMutuallyExclusive) {\n var first = this._data[a];\n var result = first && first[b];\n\n if (result === undefined) {\n return false;\n } // areMutuallyExclusive being false is a superset of being true,\n // hence if we want to know if this PairSet \"has\" these two with no\n // exclusivity, we have to ensure it was added as such.\n\n\n if (areMutuallyExclusive === false) {\n return result === false;\n }\n\n return true;\n };\n\n _proto.add = function add(a, b, areMutuallyExclusive) {\n this._pairSetAdd(a, b, areMutuallyExclusive);\n\n this._pairSetAdd(b, a, areMutuallyExclusive);\n };\n\n _proto._pairSetAdd = function _pairSetAdd(a, b, areMutuallyExclusive) {\n var map = this._data[a];\n\n if (!map) {\n map = Object.create(null);\n this._data[a] = map;\n }\n\n map[b] = areMutuallyExclusive;\n };\n\n return PairSet;\n}();","var _defKindToExtKind;\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\nimport inspect from \"../../jsutils/inspect.mjs\";\nimport invariant from \"../../jsutils/invariant.mjs\";\nimport didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { isTypeDefinitionNode } from \"../../language/predicates.mjs\";\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from \"../../type/definition.mjs\";\n/**\n * Possible type extension\n *\n * A type extension is only valid if the type is defined and has the same kind.\n */\n\nexport function PossibleTypeExtensionsRule(context) {\n var schema = context.getSchema();\n var definedTypes = Object.create(null);\n\n for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {\n var def = _context$getDocument$2[_i2];\n\n if (isTypeDefinitionNode(def)) {\n definedTypes[def.name.value] = def;\n }\n }\n\n return {\n ScalarTypeExtension: checkExtension,\n ObjectTypeExtension: checkExtension,\n InterfaceTypeExtension: checkExtension,\n UnionTypeExtension: checkExtension,\n EnumTypeExtension: checkExtension,\n InputObjectTypeExtension: checkExtension\n };\n\n function checkExtension(node) {\n var typeName = node.name.value;\n var defNode = definedTypes[typeName];\n var existingType = schema === null || schema === void 0 ? void 0 : schema.getType(typeName);\n var expectedKind;\n\n if (defNode) {\n expectedKind = defKindToExtKind[defNode.kind];\n } else if (existingType) {\n expectedKind = typeToExtKind(existingType);\n }\n\n if (expectedKind) {\n if (expectedKind !== node.kind) {\n var kindStr = extensionKindToTypeName(node.kind);\n context.reportError(new GraphQLError(\"Cannot extend non-\".concat(kindStr, \" type \\\"\").concat(typeName, \"\\\".\"), defNode ? [defNode, node] : node));\n }\n } else {\n var allTypeNames = Object.keys(definedTypes);\n\n if (schema) {\n allTypeNames = allTypeNames.concat(Object.keys(schema.getTypeMap()));\n }\n\n var suggestedTypes = suggestionList(typeName, allTypeNames);\n context.reportError(new GraphQLError(\"Cannot extend type \\\"\".concat(typeName, \"\\\" because it is not defined.\") + didYouMean(suggestedTypes), node.name));\n }\n }\n}\nvar defKindToExtKind = (_defKindToExtKind = {}, _defineProperty(_defKindToExtKind, Kind.SCALAR_TYPE_DEFINITION, Kind.SCALAR_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.OBJECT_TYPE_DEFINITION, Kind.OBJECT_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INTERFACE_TYPE_DEFINITION, Kind.INTERFACE_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.UNION_TYPE_DEFINITION, Kind.UNION_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.ENUM_TYPE_DEFINITION, Kind.ENUM_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_EXTENSION), _defKindToExtKind);\n\nfunction typeToExtKind(type) {\n if (isScalarType(type)) {\n return Kind.SCALAR_TYPE_EXTENSION;\n }\n\n if (isObjectType(type)) {\n return Kind.OBJECT_TYPE_EXTENSION;\n }\n\n if (isInterfaceType(type)) {\n return Kind.INTERFACE_TYPE_EXTENSION;\n }\n\n if (isUnionType(type)) {\n return Kind.UNION_TYPE_EXTENSION;\n }\n\n if (isEnumType(type)) {\n return Kind.ENUM_TYPE_EXTENSION;\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n return Kind.INPUT_OBJECT_TYPE_EXTENSION;\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n}\n\nfunction extensionKindToTypeName(kind) {\n switch (kind) {\n case Kind.SCALAR_TYPE_EXTENSION:\n return 'scalar';\n\n case Kind.OBJECT_TYPE_EXTENSION:\n return 'object';\n\n case Kind.INTERFACE_TYPE_EXTENSION:\n return 'interface';\n\n case Kind.UNION_TYPE_EXTENSION:\n return 'union';\n\n case Kind.ENUM_TYPE_EXTENSION:\n return 'enum';\n\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return 'input object';\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected kind: ' + inspect(kind));\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Unique input field names\n *\n * A GraphQL input object value is only valid if all supplied fields are\n * uniquely named.\n */\n\nexport function UniqueInputFieldNamesRule(context) {\n var knownNameStack = [];\n var knownNames = Object.create(null);\n return {\n ObjectValue: {\n enter: function enter() {\n knownNameStack.push(knownNames);\n knownNames = Object.create(null);\n },\n leave: function leave() {\n knownNames = knownNameStack.pop();\n }\n },\n ObjectField: function ObjectField(node) {\n var fieldName = node.name.value;\n\n if (knownNames[fieldName]) {\n context.reportError(new GraphQLError(\"There can be only one input field named \\\"\".concat(fieldName, \"\\\".\"), [knownNames[fieldName], node.name]));\n } else {\n knownNames[fieldName] = node.name;\n }\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Lone Schema definition\n *\n * A GraphQL document is only valid if it contains only one schema definition.\n */\n\nexport function LoneSchemaDefinitionRule(context) {\n var _ref, _ref2, _oldSchema$astNode;\n\n var oldSchema = context.getSchema();\n var alreadyDefined = (_ref = (_ref2 = (_oldSchema$astNode = oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.astNode) !== null && _oldSchema$astNode !== void 0 ? _oldSchema$astNode : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getQueryType()) !== null && _ref2 !== void 0 ? _ref2 : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getMutationType()) !== null && _ref !== void 0 ? _ref : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getSubscriptionType();\n var schemaDefinitionsCount = 0;\n return {\n SchemaDefinition: function SchemaDefinition(node) {\n if (alreadyDefined) {\n context.reportError(new GraphQLError('Cannot define a new schema within a schema extension.', node));\n return;\n }\n\n if (schemaDefinitionsCount > 0) {\n context.reportError(new GraphQLError('Must provide only one schema definition.', node));\n }\n\n ++schemaDefinitionsCount;\n }\n };\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Unique operation types\n *\n * A GraphQL document is only valid if it has only one type per operation.\n */\n\nexport function UniqueOperationTypesRule(context) {\n var schema = context.getSchema();\n var definedOperationTypes = Object.create(null);\n var existingOperationTypes = schema ? {\n query: schema.getQueryType(),\n mutation: schema.getMutationType(),\n subscription: schema.getSubscriptionType()\n } : {};\n return {\n SchemaDefinition: checkOperationTypes,\n SchemaExtension: checkOperationTypes\n };\n\n function checkOperationTypes(node) {\n var _node$operationTypes; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var operationTypesNodes = (_node$operationTypes = node.operationTypes) !== null && _node$operationTypes !== void 0 ? _node$operationTypes : [];\n\n for (var _i2 = 0; _i2 < operationTypesNodes.length; _i2++) {\n var operationType = operationTypesNodes[_i2];\n var operation = operationType.operation;\n var alreadyDefinedOperationType = definedOperationTypes[operation];\n\n if (existingOperationTypes[operation]) {\n context.reportError(new GraphQLError(\"Type for \".concat(operation, \" already defined in the schema. It cannot be redefined.\"), operationType));\n } else if (alreadyDefinedOperationType) {\n context.reportError(new GraphQLError(\"There can be only one \".concat(operation, \" type in schema.\"), [alreadyDefinedOperationType, operationType]));\n } else {\n definedOperationTypes[operation] = operationType;\n }\n }\n\n return false;\n }\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Unique type names\n *\n * A GraphQL document is only valid if all defined types have unique names.\n */\n\nexport function UniqueTypeNamesRule(context) {\n var knownTypeNames = Object.create(null);\n var schema = context.getSchema();\n return {\n ScalarTypeDefinition: checkTypeName,\n ObjectTypeDefinition: checkTypeName,\n InterfaceTypeDefinition: checkTypeName,\n UnionTypeDefinition: checkTypeName,\n EnumTypeDefinition: checkTypeName,\n InputObjectTypeDefinition: checkTypeName\n };\n\n function checkTypeName(node) {\n var typeName = node.name.value;\n\n if (schema !== null && schema !== void 0 && schema.getType(typeName)) {\n context.reportError(new GraphQLError(\"Type \\\"\".concat(typeName, \"\\\" already exists in the schema. It cannot also be defined in this type definition.\"), node.name));\n return;\n }\n\n if (knownTypeNames[typeName]) {\n context.reportError(new GraphQLError(\"There can be only one type named \\\"\".concat(typeName, \"\\\".\"), [knownTypeNames[typeName], node.name]));\n } else {\n knownTypeNames[typeName] = node.name;\n }\n\n return false;\n }\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isEnumType } from \"../../type/definition.mjs\";\n/**\n * Unique enum value names\n *\n * A GraphQL enum type is only valid if all its values are uniquely named.\n */\n\nexport function UniqueEnumValueNamesRule(context) {\n var schema = context.getSchema();\n var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);\n var knownValueNames = Object.create(null);\n return {\n EnumTypeDefinition: checkValueUniqueness,\n EnumTypeExtension: checkValueUniqueness\n };\n\n function checkValueUniqueness(node) {\n var _node$values;\n\n var typeName = node.name.value;\n\n if (!knownValueNames[typeName]) {\n knownValueNames[typeName] = Object.create(null);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var valueNodes = (_node$values = node.values) !== null && _node$values !== void 0 ? _node$values : [];\n var valueNames = knownValueNames[typeName];\n\n for (var _i2 = 0; _i2 < valueNodes.length; _i2++) {\n var valueDef = valueNodes[_i2];\n var valueName = valueDef.name.value;\n var existingType = existingTypeMap[typeName];\n\n if (isEnumType(existingType) && existingType.getValue(valueName)) {\n context.reportError(new GraphQLError(\"Enum value \\\"\".concat(typeName, \".\").concat(valueName, \"\\\" already exists in the schema. It cannot also be defined in this type extension.\"), valueDef.name));\n } else if (valueNames[valueName]) {\n context.reportError(new GraphQLError(\"Enum value \\\"\".concat(typeName, \".\").concat(valueName, \"\\\" can only be defined once.\"), [valueNames[valueName], valueDef.name]));\n } else {\n valueNames[valueName] = valueDef.name;\n }\n }\n\n return false;\n }\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isObjectType, isInterfaceType, isInputObjectType } from \"../../type/definition.mjs\";\n/**\n * Unique field definition names\n *\n * A GraphQL complex type is only valid if all its fields are uniquely named.\n */\n\nexport function UniqueFieldDefinitionNamesRule(context) {\n var schema = context.getSchema();\n var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);\n var knownFieldNames = Object.create(null);\n return {\n InputObjectTypeDefinition: checkFieldUniqueness,\n InputObjectTypeExtension: checkFieldUniqueness,\n InterfaceTypeDefinition: checkFieldUniqueness,\n InterfaceTypeExtension: checkFieldUniqueness,\n ObjectTypeDefinition: checkFieldUniqueness,\n ObjectTypeExtension: checkFieldUniqueness\n };\n\n function checkFieldUniqueness(node) {\n var _node$fields;\n\n var typeName = node.name.value;\n\n if (!knownFieldNames[typeName]) {\n knownFieldNames[typeName] = Object.create(null);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var fieldNodes = (_node$fields = node.fields) !== null && _node$fields !== void 0 ? _node$fields : [];\n var fieldNames = knownFieldNames[typeName];\n\n for (var _i2 = 0; _i2 < fieldNodes.length; _i2++) {\n var fieldDef = fieldNodes[_i2];\n var fieldName = fieldDef.name.value;\n\n if (hasField(existingTypeMap[typeName], fieldName)) {\n context.reportError(new GraphQLError(\"Field \\\"\".concat(typeName, \".\").concat(fieldName, \"\\\" already exists in the schema. It cannot also be defined in this type extension.\"), fieldDef.name));\n } else if (fieldNames[fieldName]) {\n context.reportError(new GraphQLError(\"Field \\\"\".concat(typeName, \".\").concat(fieldName, \"\\\" can only be defined once.\"), [fieldNames[fieldName], fieldDef.name]));\n } else {\n fieldNames[fieldName] = fieldDef.name;\n }\n }\n\n return false;\n }\n}\n\nfunction hasField(type, fieldName) {\n if (isObjectType(type) || isInterfaceType(type) || isInputObjectType(type)) {\n return type.getFields()[fieldName] != null;\n }\n\n return false;\n}","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n/**\n * Unique directive names\n *\n * A GraphQL document is only valid if all defined directives have unique names.\n */\n\nexport function UniqueDirectiveNamesRule(context) {\n var knownDirectiveNames = Object.create(null);\n var schema = context.getSchema();\n return {\n DirectiveDefinition: function DirectiveDefinition(node) {\n var directiveName = node.name.value;\n\n if (schema !== null && schema !== void 0 && schema.getDirective(directiveName)) {\n context.reportError(new GraphQLError(\"Directive \\\"@\".concat(directiveName, \"\\\" already exists in the schema. It cannot be redefined.\"), node.name));\n return;\n }\n\n if (knownDirectiveNames[directiveName]) {\n context.reportError(new GraphQLError(\"There can be only one directive named \\\"@\".concat(directiveName, \"\\\".\"), [knownDirectiveNames[directiveName], node.name]));\n } else {\n knownDirectiveNames[directiveName] = node.name;\n }\n\n return false;\n }\n };\n}","// Spec Section: \"Executable Definitions\"\nimport { ExecutableDefinitionsRule } from \"./rules/ExecutableDefinitionsRule.mjs\"; // Spec Section: \"Operation Name Uniqueness\"\n\nimport { UniqueOperationNamesRule } from \"./rules/UniqueOperationNamesRule.mjs\"; // Spec Section: \"Lone Anonymous Operation\"\n\nimport { LoneAnonymousOperationRule } from \"./rules/LoneAnonymousOperationRule.mjs\"; // Spec Section: \"Subscriptions with Single Root Field\"\n\nimport { SingleFieldSubscriptionsRule } from \"./rules/SingleFieldSubscriptionsRule.mjs\"; // Spec Section: \"Fragment Spread Type Existence\"\n\nimport { KnownTypeNamesRule } from \"./rules/KnownTypeNamesRule.mjs\"; // Spec Section: \"Fragments on Composite Types\"\n\nimport { FragmentsOnCompositeTypesRule } from \"./rules/FragmentsOnCompositeTypesRule.mjs\"; // Spec Section: \"Variables are Input Types\"\n\nimport { VariablesAreInputTypesRule } from \"./rules/VariablesAreInputTypesRule.mjs\"; // Spec Section: \"Leaf Field Selections\"\n\nimport { ScalarLeafsRule } from \"./rules/ScalarLeafsRule.mjs\"; // Spec Section: \"Field Selections on Objects, Interfaces, and Unions Types\"\n\nimport { FieldsOnCorrectTypeRule } from \"./rules/FieldsOnCorrectTypeRule.mjs\"; // Spec Section: \"Fragment Name Uniqueness\"\n\nimport { UniqueFragmentNamesRule } from \"./rules/UniqueFragmentNamesRule.mjs\"; // Spec Section: \"Fragment spread target defined\"\n\nimport { KnownFragmentNamesRule } from \"./rules/KnownFragmentNamesRule.mjs\"; // Spec Section: \"Fragments must be used\"\n\nimport { NoUnusedFragmentsRule } from \"./rules/NoUnusedFragmentsRule.mjs\"; // Spec Section: \"Fragment spread is possible\"\n\nimport { PossibleFragmentSpreadsRule } from \"./rules/PossibleFragmentSpreadsRule.mjs\"; // Spec Section: \"Fragments must not form cycles\"\n\nimport { NoFragmentCyclesRule } from \"./rules/NoFragmentCyclesRule.mjs\"; // Spec Section: \"Variable Uniqueness\"\n\nimport { UniqueVariableNamesRule } from \"./rules/UniqueVariableNamesRule.mjs\"; // Spec Section: \"All Variable Used Defined\"\n\nimport { NoUndefinedVariablesRule } from \"./rules/NoUndefinedVariablesRule.mjs\"; // Spec Section: \"All Variables Used\"\n\nimport { NoUnusedVariablesRule } from \"./rules/NoUnusedVariablesRule.mjs\"; // Spec Section: \"Directives Are Defined\"\n\nimport { KnownDirectivesRule } from \"./rules/KnownDirectivesRule.mjs\"; // Spec Section: \"Directives Are Unique Per Location\"\n\nimport { UniqueDirectivesPerLocationRule } from \"./rules/UniqueDirectivesPerLocationRule.mjs\"; // Spec Section: \"Argument Names\"\n\nimport { KnownArgumentNamesRule, KnownArgumentNamesOnDirectivesRule } from \"./rules/KnownArgumentNamesRule.mjs\"; // Spec Section: \"Argument Uniqueness\"\n\nimport { UniqueArgumentNamesRule } from \"./rules/UniqueArgumentNamesRule.mjs\"; // Spec Section: \"Value Type Correctness\"\n\nimport { ValuesOfCorrectTypeRule } from \"./rules/ValuesOfCorrectTypeRule.mjs\"; // Spec Section: \"Argument Optionality\"\n\nimport { ProvidedRequiredArgumentsRule, ProvidedRequiredArgumentsOnDirectivesRule } from \"./rules/ProvidedRequiredArgumentsRule.mjs\"; // Spec Section: \"All Variable Usages Are Allowed\"\n\nimport { VariablesInAllowedPositionRule } from \"./rules/VariablesInAllowedPositionRule.mjs\"; // Spec Section: \"Field Selection Merging\"\n\nimport { OverlappingFieldsCanBeMergedRule } from \"./rules/OverlappingFieldsCanBeMergedRule.mjs\"; // Spec Section: \"Input Object Field Uniqueness\"\n\nimport { UniqueInputFieldNamesRule } from \"./rules/UniqueInputFieldNamesRule.mjs\"; // SDL-specific validation rules\n\nimport { LoneSchemaDefinitionRule } from \"./rules/LoneSchemaDefinitionRule.mjs\";\nimport { UniqueOperationTypesRule } from \"./rules/UniqueOperationTypesRule.mjs\";\nimport { UniqueTypeNamesRule } from \"./rules/UniqueTypeNamesRule.mjs\";\nimport { UniqueEnumValueNamesRule } from \"./rules/UniqueEnumValueNamesRule.mjs\";\nimport { UniqueFieldDefinitionNamesRule } from \"./rules/UniqueFieldDefinitionNamesRule.mjs\";\nimport { UniqueDirectiveNamesRule } from \"./rules/UniqueDirectiveNamesRule.mjs\";\nimport { PossibleTypeExtensionsRule } from \"./rules/PossibleTypeExtensionsRule.mjs\";\n/**\n * This set includes all validation rules defined by the GraphQL spec.\n *\n * The order of the rules in this list has been adjusted to lead to the\n * most clear output when encountering multiple validation errors.\n */\n\nexport var specifiedRules = Object.freeze([ExecutableDefinitionsRule, UniqueOperationNamesRule, LoneAnonymousOperationRule, SingleFieldSubscriptionsRule, KnownTypeNamesRule, FragmentsOnCompositeTypesRule, VariablesAreInputTypesRule, ScalarLeafsRule, FieldsOnCorrectTypeRule, UniqueFragmentNamesRule, KnownFragmentNamesRule, NoUnusedFragmentsRule, PossibleFragmentSpreadsRule, NoFragmentCyclesRule, UniqueVariableNamesRule, NoUndefinedVariablesRule, NoUnusedVariablesRule, KnownDirectivesRule, UniqueDirectivesPerLocationRule, KnownArgumentNamesRule, UniqueArgumentNamesRule, ValuesOfCorrectTypeRule, ProvidedRequiredArgumentsRule, VariablesInAllowedPositionRule, OverlappingFieldsCanBeMergedRule, UniqueInputFieldNamesRule]);\n/**\n * @internal\n */\n\nexport var specifiedSDLRules = Object.freeze([LoneSchemaDefinitionRule, UniqueOperationTypesRule, UniqueTypeNamesRule, UniqueEnumValueNamesRule, UniqueFieldDefinitionNamesRule, UniqueDirectiveNamesRule, KnownTypeNamesRule, KnownDirectivesRule, UniqueDirectivesPerLocationRule, PossibleTypeExtensionsRule, KnownArgumentNamesOnDirectivesRule, UniqueArgumentNamesRule, UniqueInputFieldNamesRule, ProvidedRequiredArgumentsOnDirectivesRule]);","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport { Kind } from \"../language/kinds.mjs\";\nimport { visit } from \"../language/visitor.mjs\";\nimport { TypeInfo, visitWithTypeInfo } from \"../utilities/TypeInfo.mjs\";\n/**\n * An instance of this class is passed as the \"this\" context to all validators,\n * allowing access to commonly useful contextual information from within a\n * validation rule.\n */\n\nexport var ASTValidationContext = /*#__PURE__*/function () {\n function ASTValidationContext(ast, onError) {\n this._ast = ast;\n this._fragments = undefined;\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n this._onError = onError;\n }\n\n var _proto = ASTValidationContext.prototype;\n\n _proto.reportError = function reportError(error) {\n this._onError(error);\n };\n\n _proto.getDocument = function getDocument() {\n return this._ast;\n };\n\n _proto.getFragment = function getFragment(name) {\n var fragments = this._fragments;\n\n if (!fragments) {\n this._fragments = fragments = this.getDocument().definitions.reduce(function (frags, statement) {\n if (statement.kind === Kind.FRAGMENT_DEFINITION) {\n frags[statement.name.value] = statement;\n }\n\n return frags;\n }, Object.create(null));\n }\n\n return fragments[name];\n };\n\n _proto.getFragmentSpreads = function getFragmentSpreads(node) {\n var spreads = this._fragmentSpreads.get(node);\n\n if (!spreads) {\n spreads = [];\n var setsToVisit = [node];\n\n while (setsToVisit.length !== 0) {\n var set = setsToVisit.pop();\n\n for (var _i2 = 0, _set$selections2 = set.selections; _i2 < _set$selections2.length; _i2++) {\n var selection = _set$selections2[_i2];\n\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n\n this._fragmentSpreads.set(node, spreads);\n }\n\n return spreads;\n };\n\n _proto.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {\n var fragments = this._recursivelyReferencedFragments.get(operation);\n\n if (!fragments) {\n fragments = [];\n var collectedNames = Object.create(null);\n var nodesToVisit = [operation.selectionSet];\n\n while (nodesToVisit.length !== 0) {\n var node = nodesToVisit.pop();\n\n for (var _i4 = 0, _this$getFragmentSpre2 = this.getFragmentSpreads(node); _i4 < _this$getFragmentSpre2.length; _i4++) {\n var spread = _this$getFragmentSpre2[_i4];\n var fragName = spread.name.value;\n\n if (collectedNames[fragName] !== true) {\n collectedNames[fragName] = true;\n var fragment = this.getFragment(fragName);\n\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n\n return fragments;\n };\n\n return ASTValidationContext;\n}();\nexport var SDLValidationContext = /*#__PURE__*/function (_ASTValidationContext) {\n _inheritsLoose(SDLValidationContext, _ASTValidationContext);\n\n function SDLValidationContext(ast, schema, onError) {\n var _this;\n\n _this = _ASTValidationContext.call(this, ast, onError) || this;\n _this._schema = schema;\n return _this;\n }\n\n var _proto2 = SDLValidationContext.prototype;\n\n _proto2.getSchema = function getSchema() {\n return this._schema;\n };\n\n return SDLValidationContext;\n}(ASTValidationContext);\nexport var ValidationContext = /*#__PURE__*/function (_ASTValidationContext2) {\n _inheritsLoose(ValidationContext, _ASTValidationContext2);\n\n function ValidationContext(schema, ast, typeInfo, onError) {\n var _this2;\n\n _this2 = _ASTValidationContext2.call(this, ast, onError) || this;\n _this2._schema = schema;\n _this2._typeInfo = typeInfo;\n _this2._variableUsages = new Map();\n _this2._recursiveVariableUsages = new Map();\n return _this2;\n }\n\n var _proto3 = ValidationContext.prototype;\n\n _proto3.getSchema = function getSchema() {\n return this._schema;\n };\n\n _proto3.getVariableUsages = function getVariableUsages(node) {\n var usages = this._variableUsages.get(node);\n\n if (!usages) {\n var newUsages = [];\n var typeInfo = new TypeInfo(this._schema);\n visit(node, visitWithTypeInfo(typeInfo, {\n VariableDefinition: function VariableDefinition() {\n return false;\n },\n Variable: function Variable(variable) {\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n defaultValue: typeInfo.getDefaultValue()\n });\n }\n }));\n usages = newUsages;\n\n this._variableUsages.set(node, usages);\n }\n\n return usages;\n };\n\n _proto3.getRecursiveVariableUsages = function getRecursiveVariableUsages(operation) {\n var usages = this._recursiveVariableUsages.get(operation);\n\n if (!usages) {\n usages = this.getVariableUsages(operation);\n\n for (var _i6 = 0, _this$getRecursivelyR2 = this.getRecursivelyReferencedFragments(operation); _i6 < _this$getRecursivelyR2.length; _i6++) {\n var frag = _this$getRecursivelyR2[_i6];\n usages = usages.concat(this.getVariableUsages(frag));\n }\n\n this._recursiveVariableUsages.set(operation, usages);\n }\n\n return usages;\n };\n\n _proto3.getType = function getType() {\n return this._typeInfo.getType();\n };\n\n _proto3.getParentType = function getParentType() {\n return this._typeInfo.getParentType();\n };\n\n _proto3.getInputType = function getInputType() {\n return this._typeInfo.getInputType();\n };\n\n _proto3.getParentInputType = function getParentInputType() {\n return this._typeInfo.getParentInputType();\n };\n\n _proto3.getFieldDef = function getFieldDef() {\n return this._typeInfo.getFieldDef();\n };\n\n _proto3.getDirective = function getDirective() {\n return this._typeInfo.getDirective();\n };\n\n _proto3.getArgument = function getArgument() {\n return this._typeInfo.getArgument();\n };\n\n _proto3.getEnumValue = function getEnumValue() {\n return this._typeInfo.getEnumValue();\n };\n\n return ValidationContext;\n}(ASTValidationContext);","import devAssert from \"../jsutils/devAssert.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { visit, visitInParallel } from \"../language/visitor.mjs\";\nimport { assertValidSchema } from \"../type/validate.mjs\";\nimport { TypeInfo, visitWithTypeInfo } from \"../utilities/TypeInfo.mjs\";\nimport { specifiedRules, specifiedSDLRules } from \"./specifiedRules.mjs\";\nimport { SDLValidationContext, ValidationContext } from \"./ValidationContext.mjs\";\n/**\n * Implements the \"Validation\" section of the spec.\n *\n * Validation runs synchronously, returning an array of encountered errors, or\n * an empty array if no errors were encountered and the document is valid.\n *\n * A list of specific validation rules may be provided. If not provided, the\n * default list of rules defined by the GraphQL specification will be used.\n *\n * Each validation rules is a function which returns a visitor\n * (see the language/visitor API). Visitor methods are expected to return\n * GraphQLErrors, or Arrays of GraphQLErrors when invalid.\n *\n * Optionally a custom TypeInfo instance may be provided. If not provided, one\n * will be created from the provided schema.\n */\n\nexport function validate(schema, documentAST) {\n var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : specifiedRules;\n var typeInfo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new TypeInfo(schema);\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n maxErrors: undefined\n };\n documentAST || devAssert(0, 'Must provide document.'); // If the schema used for validation is invalid, throw an error.\n\n assertValidSchema(schema);\n var abortObj = Object.freeze({});\n var errors = [];\n var context = new ValidationContext(schema, documentAST, typeInfo, function (error) {\n if (options.maxErrors != null && errors.length >= options.maxErrors) {\n errors.push(new GraphQLError('Too many validation errors, error limit reached. Validation aborted.'));\n throw abortObj;\n }\n\n errors.push(error);\n }); // This uses a specialized visitor which runs multiple visitors in parallel,\n // while maintaining the visitor skip and break API.\n\n var visitor = visitInParallel(rules.map(function (rule) {\n return rule(context);\n })); // Visit the whole document with each instance of all provided rules.\n\n try {\n visit(documentAST, visitWithTypeInfo(typeInfo, visitor));\n } catch (e) {\n if (e !== abortObj) {\n throw e;\n }\n }\n\n return errors;\n}\n/**\n * @internal\n */\n\nexport function validateSDL(documentAST, schemaToExtend) {\n var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : specifiedSDLRules;\n var errors = [];\n var context = new SDLValidationContext(documentAST, schemaToExtend, function (error) {\n errors.push(error);\n });\n var visitors = rules.map(function (rule) {\n return rule(context);\n });\n visit(documentAST, visitInParallel(visitors));\n return errors;\n}\n/**\n * Utility function which asserts a SDL document is valid by throwing an error\n * if it is invalid.\n *\n * @internal\n */\n\nexport function assertValidSDL(documentAST) {\n var errors = validateSDL(documentAST);\n\n if (errors.length !== 0) {\n throw new Error(errors.map(function (error) {\n return error.message;\n }).join('\\n\\n'));\n }\n}\n/**\n * Utility function which asserts a SDL document is valid by throwing an error\n * if it is invalid.\n *\n * @internal\n */\n\nexport function assertValidSDLExtension(documentAST, schema) {\n var errors = validateSDL(documentAST, schema);\n\n if (errors.length !== 0) {\n throw new Error(errors.map(function (error) {\n return error.message;\n }).join('\\n\\n'));\n }\n}","/**\n * Given a Path and a key, return a new Path containing the new key.\n */\nexport function addPath(prev, key, typename) {\n return {\n prev: prev,\n key: key,\n typename: typename\n };\n}\n/**\n * Given a Path, return an Array of the path keys.\n */\n\nexport function pathToArray(path) {\n var flattened = [];\n var curr = path;\n\n while (curr) {\n flattened.push(curr.key);\n curr = curr.prev;\n }\n\n return flattened.reverse();\n}","import { GraphQLError } from \"../error/GraphQLError.mjs\";\n/**\n * Extracts the root type of the operation from the schema.\n */\n\nexport function getOperationRootType(schema, operation) {\n if (operation.operation === 'query') {\n var queryType = schema.getQueryType();\n\n if (!queryType) {\n throw new GraphQLError('Schema does not define the required query root type.', operation);\n }\n\n return queryType;\n }\n\n if (operation.operation === 'mutation') {\n var mutationType = schema.getMutationType();\n\n if (!mutationType) {\n throw new GraphQLError('Schema is not configured for mutations.', operation);\n }\n\n return mutationType;\n }\n\n if (operation.operation === 'subscription') {\n var subscriptionType = schema.getSubscriptionType();\n\n if (!subscriptionType) {\n throw new GraphQLError('Schema is not configured for subscriptions.', operation);\n }\n\n return subscriptionType;\n }\n\n throw new GraphQLError('Can only have query, mutation and subscription operations.', operation);\n}","/**\n * Build a string describing the path.\n */\nexport default function printPathArray(path) {\n return path.map(function (key) {\n return typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key;\n }).join('');\n}","import objectValues from \"../polyfills/objectValues.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { isLeafType, isInputObjectType, isListType, isNonNullType } from \"../type/definition.mjs\";\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * GraphQL Value literals.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n *\n * | GraphQL Value | JSON Value |\n * | -------------------- | ------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String | String |\n * | Int / Float | Number |\n * | Enum Value | Mixed |\n * | NullValue | null |\n *\n */\n\nexport function valueFromAST(valueNode, type, variables) {\n if (!valueNode) {\n // When there is no node, then there is also no value.\n // Importantly, this is different from returning the value null.\n return;\n }\n\n if (valueNode.kind === Kind.VARIABLE) {\n var variableName = valueNode.name.value;\n\n if (variables == null || variables[variableName] === undefined) {\n // No valid return value.\n return;\n }\n\n var variableValue = variables[variableName];\n\n if (variableValue === null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n } // Note: This does no further checking that this variable is correct.\n // This assumes that this query has been validated and the variable\n // usage here is of the correct type.\n\n\n return variableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n\n return valueFromAST(valueNode, type.ofType, variables);\n }\n\n if (valueNode.kind === Kind.NULL) {\n // This is explicitly returning the value null.\n return null;\n }\n\n if (isListType(type)) {\n var itemType = type.ofType;\n\n if (valueNode.kind === Kind.LIST) {\n var coercedValues = [];\n\n for (var _i2 = 0, _valueNode$values2 = valueNode.values; _i2 < _valueNode$values2.length; _i2++) {\n var itemNode = _valueNode$values2[_i2];\n\n if (isMissingVariable(itemNode, variables)) {\n // If an array contains a missing variable, it is either coerced to\n // null or if the item type is non-null, it considered invalid.\n if (isNonNullType(itemType)) {\n return; // Invalid: intentionally return no value.\n }\n\n coercedValues.push(null);\n } else {\n var itemValue = valueFromAST(itemNode, itemType, variables);\n\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n\n coercedValues.push(itemValue);\n }\n }\n\n return coercedValues;\n }\n\n var coercedValue = valueFromAST(valueNode, itemType, variables);\n\n if (coercedValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n\n return [coercedValue];\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n\n var coercedObj = Object.create(null);\n var fieldNodes = keyMap(valueNode.fields, function (field) {\n return field.name.value;\n });\n\n for (var _i4 = 0, _objectValues2 = objectValues(type.getFields()); _i4 < _objectValues2.length; _i4++) {\n var field = _objectValues2[_i4];\n var fieldNode = fieldNodes[field.name];\n\n if (!fieldNode || isMissingVariable(fieldNode.value, variables)) {\n if (field.defaultValue !== undefined) {\n coercedObj[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n return; // Invalid: intentionally return no value.\n }\n\n continue;\n }\n\n var fieldValue = valueFromAST(fieldNode.value, field.type, variables);\n\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n\n coercedObj[field.name] = fieldValue;\n }\n\n return coercedObj;\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isLeafType(type)) {\n // Scalars and Enums fulfill parsing a literal value via parseLiteral().\n // Invalid values represent a failure to parse correctly, in which case\n // no value is returned.\n var result;\n\n try {\n result = type.parseLiteral(valueNode, variables);\n } catch (_error) {\n return; // Invalid: intentionally return no value.\n }\n\n if (result === undefined) {\n return; // Invalid: intentionally return no value.\n }\n\n return result;\n } // istanbul ignore next (Not reachable. All possible input types have been considered)\n\n\n false || invariant(0, 'Unexpected input type: ' + inspect(type));\n} // Returns true if the provided valueNode is a variable which is not defined\n// in the set of variables.\n\nfunction isMissingVariable(valueNode, variables) {\n return valueNode.kind === Kind.VARIABLE && (variables == null || variables[valueNode.name.value] === undefined);\n}","import objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport didYouMean from \"../jsutils/didYouMean.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport safeArrayFrom from \"../jsutils/safeArrayFrom.mjs\";\nimport suggestionList from \"../jsutils/suggestionList.mjs\";\nimport printPathArray from \"../jsutils/printPathArray.mjs\";\nimport { addPath, pathToArray } from \"../jsutils/Path.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { isLeafType, isInputObjectType, isListType, isNonNullType } from \"../type/definition.mjs\";\n/**\n * Coerces a JavaScript value given a GraphQL Input Type.\n */\n\nexport function coerceInputValue(inputValue, type) {\n var onError = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultOnError;\n return coerceInputValueImpl(inputValue, type, onError);\n}\n\nfunction defaultOnError(path, invalidValue, error) {\n var errorPrefix = 'Invalid value ' + inspect(invalidValue);\n\n if (path.length > 0) {\n errorPrefix += \" at \\\"value\".concat(printPathArray(path), \"\\\"\");\n }\n\n error.message = errorPrefix + ': ' + error.message;\n throw error;\n}\n\nfunction coerceInputValueImpl(inputValue, type, onError, path) {\n if (isNonNullType(type)) {\n if (inputValue != null) {\n return coerceInputValueImpl(inputValue, type.ofType, onError, path);\n }\n\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected non-nullable type \\\"\".concat(inspect(type), \"\\\" not to be null.\")));\n return;\n }\n\n if (inputValue == null) {\n // Explicitly return the value null.\n return null;\n }\n\n if (isListType(type)) {\n var itemType = type.ofType;\n var coercedList = safeArrayFrom(inputValue, function (itemValue, index) {\n var itemPath = addPath(path, index, undefined);\n return coerceInputValueImpl(itemValue, itemType, onError, itemPath);\n });\n\n if (coercedList != null) {\n return coercedList;\n } // Lists accept a non-list value as a list of one.\n\n\n return [coerceInputValueImpl(inputValue, itemType, onError, path)];\n }\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue)) {\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \\\"\".concat(type.name, \"\\\" to be an object.\")));\n return;\n }\n\n var coercedValue = {};\n var fieldDefs = type.getFields();\n\n for (var _i2 = 0, _objectValues2 = objectValues(fieldDefs); _i2 < _objectValues2.length; _i2++) {\n var field = _objectValues2[_i2];\n var fieldValue = inputValue[field.name];\n\n if (fieldValue === undefined) {\n if (field.defaultValue !== undefined) {\n coercedValue[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n var typeStr = inspect(field.type);\n onError(pathToArray(path), inputValue, new GraphQLError(\"Field \\\"\".concat(field.name, \"\\\" of required type \\\"\").concat(typeStr, \"\\\" was not provided.\")));\n }\n\n continue;\n }\n\n coercedValue[field.name] = coerceInputValueImpl(fieldValue, field.type, onError, addPath(path, field.name, type.name));\n } // Ensure every provided field is defined.\n\n\n for (var _i4 = 0, _Object$keys2 = Object.keys(inputValue); _i4 < _Object$keys2.length; _i4++) {\n var fieldName = _Object$keys2[_i4];\n\n if (!fieldDefs[fieldName]) {\n var suggestions = suggestionList(fieldName, Object.keys(type.getFields()));\n onError(pathToArray(path), inputValue, new GraphQLError(\"Field \\\"\".concat(fieldName, \"\\\" is not defined by type \\\"\").concat(type.name, \"\\\".\") + didYouMean(suggestions)));\n }\n }\n\n return coercedValue;\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isLeafType(type)) {\n var parseResult; // Scalars and Enums determine if a input value is valid via parseValue(),\n // which can throw to indicate failure. If it throws, maintain a reference\n // to the original error.\n\n try {\n parseResult = type.parseValue(inputValue);\n } catch (error) {\n if (error instanceof GraphQLError) {\n onError(pathToArray(path), inputValue, error);\n } else {\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \\\"\".concat(type.name, \"\\\". \") + error.message, undefined, undefined, undefined, undefined, error));\n }\n\n return;\n }\n\n if (parseResult === undefined) {\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \\\"\".concat(type.name, \"\\\".\")));\n }\n\n return parseResult;\n } // istanbul ignore next (Not reachable. All possible input types have been considered)\n\n\n false || invariant(0, 'Unexpected input type: ' + inspect(type));\n}","import find from \"../polyfills/find.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport printPathArray from \"../jsutils/printPathArray.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { isInputType, isNonNullType } from \"../type/definition.mjs\";\nimport { typeFromAST } from \"../utilities/typeFromAST.mjs\";\nimport { valueFromAST } from \"../utilities/valueFromAST.mjs\";\nimport { coerceInputValue } from \"../utilities/coerceInputValue.mjs\";\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\n\nexport function getVariableValues(schema, varDefNodes, inputs, options) {\n var errors = [];\n var maxErrors = options === null || options === void 0 ? void 0 : options.maxErrors;\n\n try {\n var coerced = coerceVariableValues(schema, varDefNodes, inputs, function (error) {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError('Too many errors processing variables, error limit reached. Execution aborted.');\n }\n\n errors.push(error);\n });\n\n if (errors.length === 0) {\n return {\n coerced: coerced\n };\n }\n } catch (error) {\n errors.push(error);\n }\n\n return {\n errors: errors\n };\n}\n\nfunction coerceVariableValues(schema, varDefNodes, inputs, onError) {\n var coercedValues = {};\n\n var _loop = function _loop(_i2) {\n var varDefNode = varDefNodes[_i2];\n var varName = varDefNode.variable.name.value;\n var varType = typeFromAST(schema, varDefNode.type);\n\n if (!isInputType(varType)) {\n // Must use input types for variables. This should be caught during\n // validation, however is checked again here for safety.\n var varTypeStr = print(varDefNode.type);\n onError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" expected value of type \\\"\").concat(varTypeStr, \"\\\" which cannot be used as an input type.\"), varDefNode.type));\n return \"continue\";\n }\n\n if (!hasOwnProperty(inputs, varName)) {\n if (varDefNode.defaultValue) {\n coercedValues[varName] = valueFromAST(varDefNode.defaultValue, varType);\n } else if (isNonNullType(varType)) {\n var _varTypeStr = inspect(varType);\n\n onError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" of required type \\\"\").concat(_varTypeStr, \"\\\" was not provided.\"), varDefNode));\n }\n\n return \"continue\";\n }\n\n var value = inputs[varName];\n\n if (value === null && isNonNullType(varType)) {\n var _varTypeStr2 = inspect(varType);\n\n onError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" of non-null type \\\"\").concat(_varTypeStr2, \"\\\" must not be null.\"), varDefNode));\n return \"continue\";\n }\n\n coercedValues[varName] = coerceInputValue(value, varType, function (path, invalidValue, error) {\n var prefix = \"Variable \\\"$\".concat(varName, \"\\\" got invalid value \") + inspect(invalidValue);\n\n if (path.length > 0) {\n prefix += \" at \\\"\".concat(varName).concat(printPathArray(path), \"\\\"\");\n }\n\n onError(new GraphQLError(prefix + '; ' + error.message, varDefNode, undefined, undefined, undefined, error.originalError));\n });\n };\n\n for (var _i2 = 0; _i2 < varDefNodes.length; _i2++) {\n var _ret = _loop(_i2);\n\n if (_ret === \"continue\") continue;\n }\n\n return coercedValues;\n}\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\n\n\nexport function getArgumentValues(def, node, variableValues) {\n var _node$arguments;\n\n var coercedValues = {}; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var argumentNodes = (_node$arguments = node.arguments) !== null && _node$arguments !== void 0 ? _node$arguments : [];\n var argNodeMap = keyMap(argumentNodes, function (arg) {\n return arg.name.value;\n });\n\n for (var _i4 = 0, _def$args2 = def.args; _i4 < _def$args2.length; _i4++) {\n var argDef = _def$args2[_i4];\n var name = argDef.name;\n var argType = argDef.type;\n var argumentNode = argNodeMap[name];\n\n if (!argumentNode) {\n if (argDef.defaultValue !== undefined) {\n coercedValues[name] = argDef.defaultValue;\n } else if (isNonNullType(argType)) {\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" of required type \\\"\").concat(inspect(argType), \"\\\" \") + 'was not provided.', node);\n }\n\n continue;\n }\n\n var valueNode = argumentNode.value;\n var isNull = valueNode.kind === Kind.NULL;\n\n if (valueNode.kind === Kind.VARIABLE) {\n var variableName = valueNode.name.value;\n\n if (variableValues == null || !hasOwnProperty(variableValues, variableName)) {\n if (argDef.defaultValue !== undefined) {\n coercedValues[name] = argDef.defaultValue;\n } else if (isNonNullType(argType)) {\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" of required type \\\"\").concat(inspect(argType), \"\\\" \") + \"was provided the variable \\\"$\".concat(variableName, \"\\\" which was not provided a runtime value.\"), valueNode);\n }\n\n continue;\n }\n\n isNull = variableValues[variableName] == null;\n }\n\n if (isNull && isNonNullType(argType)) {\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" of non-null type \\\"\").concat(inspect(argType), \"\\\" \") + 'must not be null.', valueNode);\n }\n\n var coercedValue = valueFromAST(valueNode, argType, variableValues);\n\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" has invalid value \").concat(print(valueNode), \".\"), valueNode);\n }\n\n coercedValues[name] = coercedValue;\n }\n\n return coercedValues;\n}\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\n\nexport function getDirectiveValues(directiveDef, node, variableValues) {\n var directiveNode = node.directives && find(node.directives, function (directive) {\n return directive.name.value === directiveDef.name;\n });\n\n if (directiveNode) {\n return getArgumentValues(directiveDef, directiveNode, variableValues);\n }\n}\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import inspect from \"../jsutils/inspect.mjs\";\nimport memoize3 from \"../jsutils/memoize3.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport isPromise from \"../jsutils/isPromise.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport safeArrayFrom from \"../jsutils/safeArrayFrom.mjs\";\nimport promiseReduce from \"../jsutils/promiseReduce.mjs\";\nimport promiseForObject from \"../jsutils/promiseForObject.mjs\";\nimport { addPath, pathToArray } from \"../jsutils/Path.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { locatedError } from \"../error/locatedError.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { assertValidSchema } from \"../type/validate.mjs\";\nimport { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from \"../type/introspection.mjs\";\nimport { GraphQLIncludeDirective, GraphQLSkipDirective } from \"../type/directives.mjs\";\nimport { isNamedType, isObjectType, isAbstractType, isLeafType, isListType, isNonNullType } from \"../type/definition.mjs\";\nimport { typeFromAST } from \"../utilities/typeFromAST.mjs\";\nimport { getOperationRootType } from \"../utilities/getOperationRootType.mjs\";\nimport { getVariableValues, getArgumentValues, getDirectiveValues } from \"./values.mjs\";\n/**\n * Terminology\n *\n * \"Definitions\" are the generic name for top-level statements in the document.\n * Examples of this include:\n * 1) Operations (such as a query)\n * 2) Fragments\n *\n * \"Operations\" are a generic name for requests in the document.\n * Examples of this include:\n * 1) query,\n * 2) mutation\n *\n * \"Selections\" are the definitions that can appear legally and at\n * single level of the query. These include:\n * 1) field references e.g \"a\"\n * 2) fragment \"spreads\" e.g. \"...c\"\n * 3) inline fragment \"spreads\" e.g. \"...on Type { a }\"\n */\n\n/**\n * Data that must be available at all points during query execution.\n *\n * Namely, schema of the type system that is currently executing,\n * and the fragments defined in the query document\n */\n\nexport function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n return arguments.length === 1 ? executeImpl(argsOrSchema) : executeImpl({\n schema: argsOrSchema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n });\n}\n/**\n * Also implements the \"Evaluating requests\" section of the GraphQL specification.\n * However, it guarantees to complete synchronously (or throw an error) assuming\n * that all field resolvers are also synchronous.\n */\n\nexport function executeSync(args) {\n var result = executeImpl(args); // Assert that the execution was synchronous.\n\n if (isPromise(result)) {\n throw new Error('GraphQL execution failed to complete synchronously.');\n }\n\n return result;\n}\n\nfunction executeImpl(args) {\n var schema = args.schema,\n document = args.document,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n typeResolver = args.typeResolver; // If arguments are missing or incorrect, throw an error.\n\n assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,\n // a \"Response\" with only errors is returned.\n\n var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver); // Return early errors if execution context failed.\n\n if (Array.isArray(exeContext)) {\n return {\n errors: exeContext\n };\n } // Return a Promise that will eventually resolve to the data described by\n // The \"Response\" section of the GraphQL specification.\n //\n // If errors are encountered while executing a GraphQL field, only that\n // field and its descendants will be omitted, and sibling fields will still\n // be executed. An execution which encounters errors will still result in a\n // resolved Promise.\n\n\n var data = executeOperation(exeContext, exeContext.operation, rootValue);\n return buildResponse(exeContext, data);\n}\n/**\n * Given a completed execution context and data, build the { errors, data }\n * response defined by the \"Response\" section of the GraphQL specification.\n */\n\n\nfunction buildResponse(exeContext, data) {\n if (isPromise(data)) {\n return data.then(function (resolved) {\n return buildResponse(exeContext, resolved);\n });\n }\n\n return exeContext.errors.length === 0 ? {\n data: data\n } : {\n errors: exeContext.errors,\n data: data\n };\n}\n/**\n * Essential assertions before executing to provide developer feedback for\n * improper use of the GraphQL library.\n *\n * @internal\n */\n\n\nexport function assertValidExecutionArguments(schema, document, rawVariableValues) {\n document || devAssert(0, 'Must provide document.'); // If the schema used for execution is invalid, throw an error.\n\n assertValidSchema(schema); // Variables, if provided, must be an object.\n\n rawVariableValues == null || isObjectLike(rawVariableValues) || devAssert(0, 'Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.');\n}\n/**\n * Constructs a ExecutionContext object from the arguments passed to\n * execute, which we will pass throughout the other execution methods.\n *\n * Throws a GraphQLError if a valid execution context cannot be created.\n *\n * @internal\n */\n\nexport function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver, typeResolver) {\n var _definition$name, _operation$variableDe;\n\n var operation;\n var fragments = Object.create(null);\n\n for (var _i2 = 0, _document$definitions2 = document.definitions; _i2 < _document$definitions2.length; _i2++) {\n var definition = _document$definitions2[_i2];\n\n switch (definition.kind) {\n case Kind.OPERATION_DEFINITION:\n if (operationName == null) {\n if (operation !== undefined) {\n return [new GraphQLError('Must provide operation name if query contains multiple operations.')];\n }\n\n operation = definition;\n } else if (((_definition$name = definition.name) === null || _definition$name === void 0 ? void 0 : _definition$name.value) === operationName) {\n operation = definition;\n }\n\n break;\n\n case Kind.FRAGMENT_DEFINITION:\n fragments[definition.name.value] = definition;\n break;\n }\n }\n\n if (!operation) {\n if (operationName != null) {\n return [new GraphQLError(\"Unknown operation named \\\"\".concat(operationName, \"\\\".\"))];\n }\n\n return [new GraphQLError('Must provide an operation.')];\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var variableDefinitions = (_operation$variableDe = operation.variableDefinitions) !== null && _operation$variableDe !== void 0 ? _operation$variableDe : [];\n var coercedVariableValues = getVariableValues(schema, variableDefinitions, rawVariableValues !== null && rawVariableValues !== void 0 ? rawVariableValues : {}, {\n maxErrors: 50\n });\n\n if (coercedVariableValues.errors) {\n return coercedVariableValues.errors;\n }\n\n return {\n schema: schema,\n fragments: fragments,\n rootValue: rootValue,\n contextValue: contextValue,\n operation: operation,\n variableValues: coercedVariableValues.coerced,\n fieldResolver: fieldResolver !== null && fieldResolver !== void 0 ? fieldResolver : defaultFieldResolver,\n typeResolver: typeResolver !== null && typeResolver !== void 0 ? typeResolver : defaultTypeResolver,\n errors: []\n };\n}\n/**\n * Implements the \"Evaluating operations\" section of the spec.\n */\n\nfunction executeOperation(exeContext, operation, rootValue) {\n var type = getOperationRootType(exeContext.schema, operation);\n var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));\n var path = undefined; // Errors from sub-fields of a NonNull type may propagate to the top level,\n // at which point we still log the error and null the parent field, which\n // in this case is the entire response.\n\n try {\n var result = operation.operation === 'mutation' ? executeFieldsSerially(exeContext, type, rootValue, path, fields) : executeFields(exeContext, type, rootValue, path, fields);\n\n if (isPromise(result)) {\n return result.then(undefined, function (error) {\n exeContext.errors.push(error);\n return Promise.resolve(null);\n });\n }\n\n return result;\n } catch (error) {\n exeContext.errors.push(error);\n return null;\n }\n}\n/**\n * Implements the \"Evaluating selection sets\" section of the spec\n * for \"write\" mode.\n */\n\n\nfunction executeFieldsSerially(exeContext, parentType, sourceValue, path, fields) {\n return promiseReduce(Object.keys(fields), function (results, responseName) {\n var fieldNodes = fields[responseName];\n var fieldPath = addPath(path, responseName, parentType.name);\n var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);\n\n if (result === undefined) {\n return results;\n }\n\n if (isPromise(result)) {\n return result.then(function (resolvedResult) {\n results[responseName] = resolvedResult;\n return results;\n });\n }\n\n results[responseName] = result;\n return results;\n }, Object.create(null));\n}\n/**\n * Implements the \"Evaluating selection sets\" section of the spec\n * for \"read\" mode.\n */\n\n\nfunction executeFields(exeContext, parentType, sourceValue, path, fields) {\n var results = Object.create(null);\n var containsPromise = false;\n\n for (var _i4 = 0, _Object$keys2 = Object.keys(fields); _i4 < _Object$keys2.length; _i4++) {\n var responseName = _Object$keys2[_i4];\n var fieldNodes = fields[responseName];\n var fieldPath = addPath(path, responseName, parentType.name);\n var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);\n\n if (result !== undefined) {\n results[responseName] = result;\n\n if (isPromise(result)) {\n containsPromise = true;\n }\n }\n } // If there are no promises, we can just return the object\n\n\n if (!containsPromise) {\n return results;\n } // Otherwise, results is a map from field name to the result of resolving that\n // field, which is possibly a promise. Return a promise that will return this\n // same map, but with any promises replaced with the values they resolved to.\n\n\n return promiseForObject(results);\n}\n/**\n * Given a selectionSet, adds all of the fields in that selection to\n * the passed in map of fields, and returns it at the end.\n *\n * CollectFields requires the \"runtime type\" of an object. For a field which\n * returns an Interface or Union type, the \"runtime type\" will be the actual\n * Object type returned by that field.\n *\n * @internal\n */\n\n\nexport function collectFields(exeContext, runtimeType, selectionSet, fields, visitedFragmentNames) {\n for (var _i6 = 0, _selectionSet$selecti2 = selectionSet.selections; _i6 < _selectionSet$selecti2.length; _i6++) {\n var selection = _selectionSet$selecti2[_i6];\n\n switch (selection.kind) {\n case Kind.FIELD:\n {\n if (!shouldIncludeNode(exeContext, selection)) {\n continue;\n }\n\n var name = getFieldEntryKey(selection);\n\n if (!fields[name]) {\n fields[name] = [];\n }\n\n fields[name].push(selection);\n break;\n }\n\n case Kind.INLINE_FRAGMENT:\n {\n if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {\n continue;\n }\n\n collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);\n break;\n }\n\n case Kind.FRAGMENT_SPREAD:\n {\n var fragName = selection.name.value;\n\n if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {\n continue;\n }\n\n visitedFragmentNames[fragName] = true;\n var fragment = exeContext.fragments[fragName];\n\n if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {\n continue;\n }\n\n collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);\n break;\n }\n }\n }\n\n return fields;\n}\n/**\n * Determines if a field should be included based on the @include and @skip\n * directives, where @skip has higher precedence than @include.\n */\n\nfunction shouldIncludeNode(exeContext, node) {\n var skip = getDirectiveValues(GraphQLSkipDirective, node, exeContext.variableValues);\n\n if ((skip === null || skip === void 0 ? void 0 : skip.if) === true) {\n return false;\n }\n\n var include = getDirectiveValues(GraphQLIncludeDirective, node, exeContext.variableValues);\n\n if ((include === null || include === void 0 ? void 0 : include.if) === false) {\n return false;\n }\n\n return true;\n}\n/**\n * Determines if a fragment is applicable to the given type.\n */\n\n\nfunction doesFragmentConditionMatch(exeContext, fragment, type) {\n var typeConditionNode = fragment.typeCondition;\n\n if (!typeConditionNode) {\n return true;\n }\n\n var conditionalType = typeFromAST(exeContext.schema, typeConditionNode);\n\n if (conditionalType === type) {\n return true;\n }\n\n if (isAbstractType(conditionalType)) {\n return exeContext.schema.isSubType(conditionalType, type);\n }\n\n return false;\n}\n/**\n * Implements the logic to compute the key of a given field's entry\n */\n\n\nfunction getFieldEntryKey(node) {\n return node.alias ? node.alias.value : node.name.value;\n}\n/**\n * Resolves the field on the given source object. In particular, this\n * figures out the value that the field returns by calling its resolve function,\n * then calls completeValue to complete promises, serialize scalars, or execute\n * the sub-selection-set for objects.\n */\n\n\nfunction resolveField(exeContext, parentType, source, fieldNodes, path) {\n var _fieldDef$resolve;\n\n var fieldNode = fieldNodes[0];\n var fieldName = fieldNode.name.value;\n var fieldDef = getFieldDef(exeContext.schema, parentType, fieldName);\n\n if (!fieldDef) {\n return;\n }\n\n var returnType = fieldDef.type;\n var resolveFn = (_fieldDef$resolve = fieldDef.resolve) !== null && _fieldDef$resolve !== void 0 ? _fieldDef$resolve : exeContext.fieldResolver;\n var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path); // Get the resolve function, regardless of if its result is normal or abrupt (error).\n\n try {\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill any variable references.\n // TODO: find a way to memoize, in case this field is within a List type.\n var args = getArgumentValues(fieldDef, fieldNodes[0], exeContext.variableValues); // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n\n var _contextValue = exeContext.contextValue;\n var result = resolveFn(source, args, _contextValue, info);\n var completed;\n\n if (isPromise(result)) {\n completed = result.then(function (resolved) {\n return completeValue(exeContext, returnType, fieldNodes, info, path, resolved);\n });\n } else {\n completed = completeValue(exeContext, returnType, fieldNodes, info, path, result);\n }\n\n if (isPromise(completed)) {\n // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n // to take a second callback for the error case.\n return completed.then(undefined, function (rawError) {\n var error = locatedError(rawError, fieldNodes, pathToArray(path));\n return handleFieldError(error, returnType, exeContext);\n });\n }\n\n return completed;\n } catch (rawError) {\n var error = locatedError(rawError, fieldNodes, pathToArray(path));\n return handleFieldError(error, returnType, exeContext);\n }\n}\n/**\n * @internal\n */\n\n\nexport function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) {\n // The resolve function's optional fourth argument is a collection of\n // information about the current execution state.\n return {\n fieldName: fieldDef.name,\n fieldNodes: fieldNodes,\n returnType: fieldDef.type,\n parentType: parentType,\n path: path,\n schema: exeContext.schema,\n fragments: exeContext.fragments,\n rootValue: exeContext.rootValue,\n operation: exeContext.operation,\n variableValues: exeContext.variableValues\n };\n}\n\nfunction handleFieldError(error, returnType, exeContext) {\n // If the field type is non-nullable, then it is resolved without any\n // protection from errors, however it still properly locates the error.\n if (isNonNullType(returnType)) {\n throw error;\n } // Otherwise, error protection is applied, logging the error and resolving\n // a null value for this field if one is encountered.\n\n\n exeContext.errors.push(error);\n return null;\n}\n/**\n * Implements the instructions for completeValue as defined in the\n * \"Field entries\" section of the spec.\n *\n * If the field type is Non-Null, then this recursively completes the value\n * for the inner type. It throws a field error if that completion returns null,\n * as per the \"Nullability\" section of the spec.\n *\n * If the field type is a List, then this recursively completes the value\n * for the inner type on each item in the list.\n *\n * If the field type is a Scalar or Enum, ensures the completed value is a legal\n * value of the type by calling the `serialize` method of GraphQL type\n * definition.\n *\n * If the field is an abstract type, determine the runtime type of the value\n * and then complete based on that type\n *\n * Otherwise, the field type expects a sub-selection set, and will complete the\n * value by evaluating all sub-selections.\n */\n\n\nfunction completeValue(exeContext, returnType, fieldNodes, info, path, result) {\n // If result is an Error, throw a located error.\n if (result instanceof Error) {\n throw result;\n } // If field type is NonNull, complete for inner type, and throw field error\n // if result is null.\n\n\n if (isNonNullType(returnType)) {\n var completed = completeValue(exeContext, returnType.ofType, fieldNodes, info, path, result);\n\n if (completed === null) {\n throw new Error(\"Cannot return null for non-nullable field \".concat(info.parentType.name, \".\").concat(info.fieldName, \".\"));\n }\n\n return completed;\n } // If result value is null or undefined then return null.\n\n\n if (result == null) {\n return null;\n } // If field type is List, complete each item in the list with the inner type\n\n\n if (isListType(returnType)) {\n return completeListValue(exeContext, returnType, fieldNodes, info, path, result);\n } // If field type is a leaf type, Scalar or Enum, serialize to a valid value,\n // returning null if serialization is not possible.\n\n\n if (isLeafType(returnType)) {\n return completeLeafValue(returnType, result);\n } // If field type is an abstract type, Interface or Union, determine the\n // runtime Object type and complete for that type.\n\n\n if (isAbstractType(returnType)) {\n return completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result);\n } // If field type is Object, execute and complete all sub-selections.\n // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isObjectType(returnType)) {\n return completeObjectValue(exeContext, returnType, fieldNodes, info, path, result);\n } // istanbul ignore next (Not reachable. All possible output types have been considered)\n\n\n false || invariant(0, 'Cannot complete value of unexpected output type: ' + inspect(returnType));\n}\n/**\n * Complete a list value by completing each item in the list with the\n * inner type\n */\n\n\nfunction completeListValue(exeContext, returnType, fieldNodes, info, path, result) {\n // This is specified as a simple map, however we're optimizing the path\n // where the list contains no Promises by avoiding creating another Promise.\n var itemType = returnType.ofType;\n var containsPromise = false;\n var completedResults = safeArrayFrom(result, function (item, index) {\n // No need to modify the info object containing the path,\n // since from here on it is not ever accessed by resolver functions.\n var itemPath = addPath(path, index, undefined);\n\n try {\n var completedItem;\n\n if (isPromise(item)) {\n completedItem = item.then(function (resolved) {\n return completeValue(exeContext, itemType, fieldNodes, info, itemPath, resolved);\n });\n } else {\n completedItem = completeValue(exeContext, itemType, fieldNodes, info, itemPath, item);\n }\n\n if (isPromise(completedItem)) {\n containsPromise = true; // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n // to take a second callback for the error case.\n\n return completedItem.then(undefined, function (rawError) {\n var error = locatedError(rawError, fieldNodes, pathToArray(itemPath));\n return handleFieldError(error, itemType, exeContext);\n });\n }\n\n return completedItem;\n } catch (rawError) {\n var error = locatedError(rawError, fieldNodes, pathToArray(itemPath));\n return handleFieldError(error, itemType, exeContext);\n }\n });\n\n if (completedResults == null) {\n throw new GraphQLError(\"Expected Iterable, but did not find one for field \\\"\".concat(info.parentType.name, \".\").concat(info.fieldName, \"\\\".\"));\n }\n\n return containsPromise ? Promise.all(completedResults) : completedResults;\n}\n/**\n * Complete a Scalar or Enum by serializing to a valid value, returning\n * null if serialization is not possible.\n */\n\n\nfunction completeLeafValue(returnType, result) {\n var serializedResult = returnType.serialize(result);\n\n if (serializedResult === undefined) {\n throw new Error(\"Expected a value of type \\\"\".concat(inspect(returnType), \"\\\" but \") + \"received: \".concat(inspect(result)));\n }\n\n return serializedResult;\n}\n/**\n * Complete a value of an abstract type by determining the runtime object type\n * of that value, then complete the value for that type.\n */\n\n\nfunction completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result) {\n var _returnType$resolveTy;\n\n var resolveTypeFn = (_returnType$resolveTy = returnType.resolveType) !== null && _returnType$resolveTy !== void 0 ? _returnType$resolveTy : exeContext.typeResolver;\n var contextValue = exeContext.contextValue;\n var runtimeType = resolveTypeFn(result, contextValue, info, returnType);\n\n if (isPromise(runtimeType)) {\n return runtimeType.then(function (resolvedRuntimeType) {\n return completeObjectValue(exeContext, ensureValidRuntimeType(resolvedRuntimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);\n });\n }\n\n return completeObjectValue(exeContext, ensureValidRuntimeType(runtimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);\n}\n\nfunction ensureValidRuntimeType(runtimeTypeOrName, exeContext, returnType, fieldNodes, info, result) {\n if (runtimeTypeOrName == null) {\n throw new GraphQLError(\"Abstract type \\\"\".concat(returnType.name, \"\\\" must resolve to an Object type at runtime for field \\\"\").concat(info.parentType.name, \".\").concat(info.fieldName, \"\\\". Either the \\\"\").concat(returnType.name, \"\\\" type should provide a \\\"resolveType\\\" function or each possible type should provide an \\\"isTypeOf\\\" function.\"), fieldNodes);\n } // FIXME: temporary workaround until support for passing object types would be removed in v16.0.0\n\n\n var runtimeTypeName = isNamedType(runtimeTypeOrName) ? runtimeTypeOrName.name : runtimeTypeOrName;\n\n if (typeof runtimeTypeName !== 'string') {\n throw new GraphQLError(\"Abstract type \\\"\".concat(returnType.name, \"\\\" must resolve to an Object type at runtime for field \\\"\").concat(info.parentType.name, \".\").concat(info.fieldName, \"\\\" with \") + \"value \".concat(inspect(result), \", received \\\"\").concat(inspect(runtimeTypeOrName), \"\\\".\"));\n }\n\n var runtimeType = exeContext.schema.getType(runtimeTypeName);\n\n if (runtimeType == null) {\n throw new GraphQLError(\"Abstract type \\\"\".concat(returnType.name, \"\\\" was resolve to a type \\\"\").concat(runtimeTypeName, \"\\\" that does not exist inside schema.\"), fieldNodes);\n }\n\n if (!isObjectType(runtimeType)) {\n throw new GraphQLError(\"Abstract type \\\"\".concat(returnType.name, \"\\\" was resolve to a non-object type \\\"\").concat(runtimeTypeName, \"\\\".\"), fieldNodes);\n }\n\n if (!exeContext.schema.isSubType(returnType, runtimeType)) {\n throw new GraphQLError(\"Runtime Object type \\\"\".concat(runtimeType.name, \"\\\" is not a possible type for \\\"\").concat(returnType.name, \"\\\".\"), fieldNodes);\n }\n\n return runtimeType;\n}\n/**\n * Complete an Object value by executing all sub-selections.\n */\n\n\nfunction completeObjectValue(exeContext, returnType, fieldNodes, info, path, result) {\n // If there is an isTypeOf predicate function, call it with the\n // current result. If isTypeOf returns false, then raise an error rather\n // than continuing execution.\n if (returnType.isTypeOf) {\n var isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info);\n\n if (isPromise(isTypeOf)) {\n return isTypeOf.then(function (resolvedIsTypeOf) {\n if (!resolvedIsTypeOf) {\n throw invalidReturnTypeError(returnType, result, fieldNodes);\n }\n\n return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);\n });\n }\n\n if (!isTypeOf) {\n throw invalidReturnTypeError(returnType, result, fieldNodes);\n }\n }\n\n return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);\n}\n\nfunction invalidReturnTypeError(returnType, result, fieldNodes) {\n return new GraphQLError(\"Expected value of type \\\"\".concat(returnType.name, \"\\\" but got: \").concat(inspect(result), \".\"), fieldNodes);\n}\n\nfunction collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result) {\n // Collect sub-fields to execute to complete this value.\n var subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes);\n return executeFields(exeContext, returnType, result, path, subFieldNodes);\n}\n/**\n * A memoized collection of relevant subfields with regard to the return\n * type. Memoizing ensures the subfields are not repeatedly calculated, which\n * saves overhead when resolving lists of values.\n */\n\n\nvar collectSubfields = memoize3(_collectSubfields);\n\nfunction _collectSubfields(exeContext, returnType, fieldNodes) {\n var subFieldNodes = Object.create(null);\n var visitedFragmentNames = Object.create(null);\n\n for (var _i8 = 0; _i8 < fieldNodes.length; _i8++) {\n var node = fieldNodes[_i8];\n\n if (node.selectionSet) {\n subFieldNodes = collectFields(exeContext, returnType, node.selectionSet, subFieldNodes, visitedFragmentNames);\n }\n }\n\n return subFieldNodes;\n}\n/**\n * If a resolveType function is not given, then a default resolve behavior is\n * used which attempts two strategies:\n *\n * First, See if the provided value has a `__typename` field defined, if so, use\n * that value as name of the resolved type.\n *\n * Otherwise, test each possible type for the abstract type by calling\n * isTypeOf for the object being coerced, returning the first type that matches.\n */\n\n\nexport var defaultTypeResolver = function defaultTypeResolver(value, contextValue, info, abstractType) {\n // First, look for `__typename`.\n if (isObjectLike(value) && typeof value.__typename === 'string') {\n return value.__typename;\n } // Otherwise, test each possible type.\n\n\n var possibleTypes = info.schema.getPossibleTypes(abstractType);\n var promisedIsTypeOfResults = [];\n\n for (var i = 0; i < possibleTypes.length; i++) {\n var type = possibleTypes[i];\n\n if (type.isTypeOf) {\n var isTypeOfResult = type.isTypeOf(value, contextValue, info);\n\n if (isPromise(isTypeOfResult)) {\n promisedIsTypeOfResults[i] = isTypeOfResult;\n } else if (isTypeOfResult) {\n return type.name;\n }\n }\n }\n\n if (promisedIsTypeOfResults.length) {\n return Promise.all(promisedIsTypeOfResults).then(function (isTypeOfResults) {\n for (var _i9 = 0; _i9 < isTypeOfResults.length; _i9++) {\n if (isTypeOfResults[_i9]) {\n return possibleTypes[_i9].name;\n }\n }\n });\n }\n};\n/**\n * If a resolve function is not given, then a default resolve behavior is used\n * which takes the property of the source object of the same name as the field\n * and returns it as the result, or if it's a function, returns the result\n * of calling that function while passing along args and context value.\n */\n\nexport var defaultFieldResolver = function defaultFieldResolver(source, args, contextValue, info) {\n // ensure source is a value for which property access is acceptable.\n if (isObjectLike(source) || typeof source === 'function') {\n var property = source[info.fieldName];\n\n if (typeof property === 'function') {\n return source[info.fieldName](args, contextValue, info);\n }\n\n return property;\n }\n};\n/**\n * This method looks up the field on the given type definition.\n * It has special casing for the three introspection fields,\n * __schema, __type and __typename. __typename is special because\n * it can always be queried as a field, even in situations where no\n * other fields are allowed, like on a Union. __schema and __type\n * could get automatically added to the query type, but that would\n * require mutating type definitions, which would cause issues.\n *\n * @internal\n */\n\nexport function getFieldDef(schema, parentType, fieldName) {\n if (fieldName === SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {\n return SchemaMetaFieldDef;\n } else if (fieldName === TypeMetaFieldDef.name && schema.getQueryType() === parentType) {\n return TypeMetaFieldDef;\n } else if (fieldName === TypeNameMetaFieldDef.name) {\n return TypeNameMetaFieldDef;\n }\n\n return parentType.getFields()[fieldName];\n}","import isPromise from \"./isPromise.mjs\";\n/**\n * Similar to Array.prototype.reduce(), however the reducing callback may return\n * a Promise, in which case reduction will continue after each promise resolves.\n *\n * If the callback does not return a Promise, then this function will also not\n * return a Promise.\n */\n\nexport default function promiseReduce(values, callback, initialValue) {\n return values.reduce(function (previous, value) {\n return isPromise(previous) ? previous.then(function (resolved) {\n return callback(resolved, value);\n }) : callback(previous, value);\n }, initialValue);\n}","/**\n * This function transforms a JS object `ObjMap>` into\n * a `Promise>`\n *\n * This is akin to bluebird's `Promise.props`, but implemented only using\n * `Promise.all` so it will work with any implementation of ES6 promises.\n */\nexport default function promiseForObject(object) {\n var keys = Object.keys(object);\n var valuesAndPromises = keys.map(function (name) {\n return object[name];\n });\n return Promise.all(valuesAndPromises).then(function (values) {\n return values.reduce(function (resolvedObject, value, i) {\n resolvedObject[keys[i]] = value;\n return resolvedObject;\n }, Object.create(null));\n });\n}","/**\n * Memoizes the provided three-argument function.\n */\nexport default function memoize3(fn) {\n var cache0;\n return function memoized(a1, a2, a3) {\n if (!cache0) {\n cache0 = new WeakMap();\n }\n\n var cache1 = cache0.get(a1);\n var cache2;\n\n if (cache1) {\n cache2 = cache1.get(a2);\n\n if (cache2) {\n var cachedValue = cache2.get(a3);\n\n if (cachedValue !== undefined) {\n return cachedValue;\n }\n }\n } else {\n cache1 = new WeakMap();\n cache0.set(a1, cache1);\n }\n\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a2, cache2);\n }\n\n var newValue = fn(a1, a2, a3);\n cache2.set(a3, newValue);\n return newValue;\n };\n}","import isPromise from \"./jsutils/isPromise.mjs\";\nimport { parse } from \"./language/parser.mjs\";\nimport { validate } from \"./validation/validate.mjs\";\nimport { validateSchema } from \"./type/validate.mjs\";\nimport { execute } from \"./execution/execute.mjs\";\n/**\n * This is the primary entry point function for fulfilling GraphQL operations\n * by parsing, validating, and executing a GraphQL document along side a\n * GraphQL schema.\n *\n * More sophisticated GraphQL servers, such as those which persist queries,\n * may wish to separate the validation and execution phases to a static time\n * tooling step, and a server runtime step.\n *\n * Accepts either an object with named arguments, or individual arguments:\n *\n * schema:\n * The GraphQL type system to use when validating and executing a query.\n * source:\n * A GraphQL language formatted string representing the requested operation.\n * rootValue:\n * The value provided as the first argument to resolver functions on the top\n * level type (e.g. the query object type).\n * contextValue:\n * The context value is provided as an argument to resolver functions after\n * field arguments. It is used to pass shared information useful at any point\n * during executing this query, for example the currently logged in user and\n * connections to databases or other services.\n * variableValues:\n * A mapping of variable name to runtime value to use for all variables\n * defined in the requestString.\n * operationName:\n * The name of the operation to use if requestString contains multiple\n * possible operations. Can be omitted if requestString contains only\n * one operation.\n * fieldResolver:\n * A resolver function to use when one is not provided by the schema.\n * If not provided, the default field resolver is used (which looks for a\n * value or method on the source value with the field's name).\n * typeResolver:\n * A type resolver function to use when none is provided by the schema.\n * If not provided, the default type resolver is used (which looks for a\n * `__typename` field or alternatively calls the `isTypeOf` method).\n */\n\nexport function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n var _arguments = arguments;\n /* eslint-enable no-redeclare */\n // Always return a Promise for a consistent API.\n\n return new Promise(function (resolve) {\n return resolve( // Extract arguments from object args if provided.\n _arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({\n schema: argsOrSchema,\n source: source,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n }));\n });\n}\n/**\n * The graphqlSync function also fulfills GraphQL operations by parsing,\n * validating, and executing a GraphQL document along side a GraphQL schema.\n * However, it guarantees to complete synchronously (or throw an error) assuming\n * that all field resolvers are also synchronous.\n */\n\nexport function graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n var result = arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({\n schema: argsOrSchema,\n source: source,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n }); // Assert that the execution was synchronous.\n\n if (isPromise(result)) {\n throw new Error('GraphQL execution failed to complete synchronously.');\n }\n\n return result;\n}\n\nfunction graphqlImpl(args) {\n var schema = args.schema,\n source = args.source,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n typeResolver = args.typeResolver; // Validate Schema\n\n var schemaValidationErrors = validateSchema(schema);\n\n if (schemaValidationErrors.length > 0) {\n return {\n errors: schemaValidationErrors\n };\n } // Parse\n\n\n var document;\n\n try {\n document = parse(source);\n } catch (syntaxError) {\n return {\n errors: [syntaxError]\n };\n } // Validate\n\n\n var validationErrors = validate(schema, document);\n\n if (validationErrors.length > 0) {\n return {\n errors: validationErrors\n };\n } // Execute\n\n\n return execute({\n schema: schema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n });\n}","import { SYMBOL_ASYNC_ITERATOR } from \"../polyfills/symbols.mjs\";\n/**\n * Returns true if the provided object implements the AsyncIterator protocol via\n * either implementing a `Symbol.asyncIterator` or `\"@@asyncIterator\"` method.\n */\n// eslint-disable-next-line no-redeclare\n\nexport default function isAsyncIterable(maybeAsyncIterable) {\n return typeof (maybeAsyncIterable === null || maybeAsyncIterable === void 0 ? void 0 : maybeAsyncIterable[SYMBOL_ASYNC_ITERATOR]) === 'function';\n}","function _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\nimport { SYMBOL_ASYNC_ITERATOR } from \"../polyfills/symbols.mjs\";\n/**\n * Given an AsyncIterable and a callback function, return an AsyncIterator\n * which produces values mapped via calling the callback function.\n */\n\nexport default function mapAsyncIterator(iterable, callback, rejectCallback) {\n // $FlowFixMe[prop-missing]\n var iteratorMethod = iterable[SYMBOL_ASYNC_ITERATOR];\n var iterator = iteratorMethod.call(iterable);\n var $return;\n var abruptClose;\n\n if (typeof iterator.return === 'function') {\n $return = iterator.return;\n\n abruptClose = function abruptClose(error) {\n var rethrow = function rethrow() {\n return Promise.reject(error);\n };\n\n return $return.call(iterator).then(rethrow, rethrow);\n };\n }\n\n function mapResult(result) {\n return result.done ? result : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);\n }\n\n var mapReject;\n\n if (rejectCallback) {\n // Capture rejectCallback to ensure it cannot be null.\n var reject = rejectCallback;\n\n mapReject = function mapReject(error) {\n return asyncMapValue(error, reject).then(iteratorResult, abruptClose);\n };\n }\n /* TODO: Flow doesn't support symbols as keys:\n https://github.com/facebook/flow/issues/3258 */\n\n\n return _defineProperty({\n next: function next() {\n return iterator.next().then(mapResult, mapReject);\n },\n return: function _return() {\n return $return ? $return.call(iterator).then(mapResult, mapReject) : Promise.resolve({\n value: undefined,\n done: true\n });\n },\n throw: function _throw(error) {\n if (typeof iterator.throw === 'function') {\n return iterator.throw(error).then(mapResult, mapReject);\n }\n\n return Promise.reject(error).catch(abruptClose);\n }\n }, SYMBOL_ASYNC_ITERATOR, function () {\n return this;\n });\n}\n\nfunction asyncMapValue(value, callback) {\n return new Promise(function (resolve) {\n return resolve(callback(value));\n });\n}\n\nfunction iteratorResult(value) {\n return {\n value: value,\n done: false\n };\n}","import inspect from \"../jsutils/inspect.mjs\";\nimport isAsyncIterable from \"../jsutils/isAsyncIterable.mjs\";\nimport { addPath, pathToArray } from \"../jsutils/Path.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { locatedError } from \"../error/locatedError.mjs\";\nimport { getArgumentValues } from \"../execution/values.mjs\";\nimport { assertValidExecutionArguments, buildExecutionContext, buildResolveInfo, collectFields, execute, getFieldDef } from \"../execution/execute.mjs\";\nimport { getOperationRootType } from \"../utilities/getOperationRootType.mjs\";\nimport mapAsyncIterator from \"./mapAsyncIterator.mjs\";\nexport function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n return arguments.length === 1 ? subscribeImpl(argsOrSchema) : subscribeImpl({\n schema: argsOrSchema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n subscribeFieldResolver: subscribeFieldResolver\n });\n}\n/**\n * This function checks if the error is a GraphQLError. If it is, report it as\n * an ExecutionResult, containing only errors and no data. Otherwise treat the\n * error as a system-class error and re-throw it.\n */\n\nfunction reportGraphQLError(error) {\n if (error instanceof GraphQLError) {\n return {\n errors: [error]\n };\n }\n\n throw error;\n}\n\nfunction subscribeImpl(args) {\n var schema = args.schema,\n document = args.document,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n subscribeFieldResolver = args.subscribeFieldResolver;\n var sourcePromise = createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, subscribeFieldResolver); // For each payload yielded from a subscription, map it over the normal\n // GraphQL `execute` function, with `payload` as the rootValue.\n // This implements the \"MapSourceToResponseEvent\" algorithm described in\n // the GraphQL specification. The `execute` function provides the\n // \"ExecuteSubscriptionEvent\" algorithm, as it is nearly identical to the\n // \"ExecuteQuery\" algorithm, for which `execute` is also used.\n\n var mapSourceToResponse = function mapSourceToResponse(payload) {\n return execute({\n schema: schema,\n document: document,\n rootValue: payload,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver\n });\n }; // Resolve the Source Stream, then map every source value to a\n // ExecutionResult value as described above.\n\n\n return sourcePromise.then(function (resultOrStream) {\n return (// Note: Flow can't refine isAsyncIterable, so explicit casts are used.\n isAsyncIterable(resultOrStream) ? mapAsyncIterator(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream\n );\n });\n}\n/**\n * Implements the \"CreateSourceEventStream\" algorithm described in the\n * GraphQL specification, resolving the subscription source event stream.\n *\n * Returns a Promise which resolves to either an AsyncIterable (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to the AsyncIterable for the\n * event stream returned by the resolver.\n *\n * A Source Event Stream represents a sequence of events, each of which triggers\n * a GraphQL execution for that event.\n *\n * This may be useful when hosting the stateful subscription service in a\n * different process or machine than the stateless GraphQL execution engine,\n * or otherwise separating these two steps. For more on this, see the\n * \"Supporting Subscriptions at Scale\" information in the GraphQL specification.\n */\n\n\nexport function createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {\n // If arguments are missing or incorrectly typed, this is an internal\n // developer mistake which should throw an early error.\n assertValidExecutionArguments(schema, document, variableValues);\n return new Promise(function (resolve) {\n // If a valid context cannot be created due to incorrect arguments,\n // this will throw an error.\n var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);\n resolve( // Return early errors if execution context failed.\n Array.isArray(exeContext) ? {\n errors: exeContext\n } : executeSubscription(exeContext));\n }).catch(reportGraphQLError);\n}\n\nfunction executeSubscription(exeContext) {\n var schema = exeContext.schema,\n operation = exeContext.operation,\n variableValues = exeContext.variableValues,\n rootValue = exeContext.rootValue;\n var type = getOperationRootType(schema, operation);\n var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));\n var responseNames = Object.keys(fields);\n var responseName = responseNames[0];\n var fieldNodes = fields[responseName];\n var fieldNode = fieldNodes[0];\n var fieldName = fieldNode.name.value;\n var fieldDef = getFieldDef(schema, type, fieldName);\n\n if (!fieldDef) {\n throw new GraphQLError(\"The subscription field \\\"\".concat(fieldName, \"\\\" is not defined.\"), fieldNodes);\n }\n\n var path = addPath(undefined, responseName, type.name);\n var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path); // Coerce to Promise for easier error handling and consistent return type.\n\n return new Promise(function (resolveResult) {\n var _fieldDef$subscribe; // Implements the \"ResolveFieldEventStream\" algorithm from GraphQL specification.\n // It differs from \"ResolveFieldValue\" due to providing a different `resolveFn`.\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill any variable references.\n\n\n var args = getArgumentValues(fieldDef, fieldNodes[0], variableValues); // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n\n var contextValue = exeContext.contextValue; // Call the `subscribe()` resolver or the default resolver to produce an\n // AsyncIterable yielding raw payloads.\n\n var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;\n resolveResult(resolveFn(rootValue, args, contextValue, info));\n }).then(function (eventStream) {\n if (eventStream instanceof Error) {\n throw locatedError(eventStream, fieldNodes, pathToArray(path));\n } // Assert field returned an event stream, otherwise yield an error.\n\n\n if (!isAsyncIterable(eventStream)) {\n throw new Error('Subscription field must return Async Iterable. ' + \"Received: \".concat(inspect(eventStream), \".\"));\n }\n\n return eventStream;\n }, function (error) {\n throw locatedError(error, fieldNodes, pathToArray(path));\n });\n}","import invariant from \"../../../jsutils/invariant.mjs\";\nimport { GraphQLError } from \"../../../error/GraphQLError.mjs\";\nimport { getNamedType, isInputObjectType } from \"../../../type/definition.mjs\";\n/**\n * No deprecated\n *\n * A GraphQL document is only valid if all selected fields and all used enum values have not been\n * deprecated.\n *\n * Note: This rule is optional and is not part of the Validation section of the GraphQL\n * Specification. The main purpose of this rule is detection of deprecated usages and not\n * necessarily to forbid their use when querying a service.\n */\n\nexport function NoDeprecatedCustomRule(context) {\n return {\n Field: function Field(node) {\n var fieldDef = context.getFieldDef();\n var deprecationReason = fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.deprecationReason;\n\n if (fieldDef && deprecationReason != null) {\n var parentType = context.getParentType();\n parentType != null || invariant(0);\n context.reportError(new GraphQLError(\"The field \".concat(parentType.name, \".\").concat(fieldDef.name, \" is deprecated. \").concat(deprecationReason), node));\n }\n },\n Argument: function Argument(node) {\n var argDef = context.getArgument();\n var deprecationReason = argDef === null || argDef === void 0 ? void 0 : argDef.deprecationReason;\n\n if (argDef && deprecationReason != null) {\n var directiveDef = context.getDirective();\n\n if (directiveDef != null) {\n context.reportError(new GraphQLError(\"Directive \\\"@\".concat(directiveDef.name, \"\\\" argument \\\"\").concat(argDef.name, \"\\\" is deprecated. \").concat(deprecationReason), node));\n } else {\n var parentType = context.getParentType();\n var fieldDef = context.getFieldDef();\n parentType != null && fieldDef != null || invariant(0);\n context.reportError(new GraphQLError(\"Field \\\"\".concat(parentType.name, \".\").concat(fieldDef.name, \"\\\" argument \\\"\").concat(argDef.name, \"\\\" is deprecated. \").concat(deprecationReason), node));\n }\n }\n },\n ObjectField: function ObjectField(node) {\n var inputObjectDef = getNamedType(context.getParentInputType());\n\n if (isInputObjectType(inputObjectDef)) {\n var inputFieldDef = inputObjectDef.getFields()[node.name.value]; // flowlint-next-line unnecessary-optional-chain:off\n\n var deprecationReason = inputFieldDef === null || inputFieldDef === void 0 ? void 0 : inputFieldDef.deprecationReason;\n\n if (deprecationReason != null) {\n context.reportError(new GraphQLError(\"The input field \".concat(inputObjectDef.name, \".\").concat(inputFieldDef.name, \" is deprecated. \").concat(deprecationReason), node));\n }\n }\n },\n EnumValue: function EnumValue(node) {\n var enumValueDef = context.getEnumValue();\n var deprecationReason = enumValueDef === null || enumValueDef === void 0 ? void 0 : enumValueDef.deprecationReason;\n\n if (enumValueDef && deprecationReason != null) {\n var enumTypeDef = getNamedType(context.getInputType());\n enumTypeDef != null || invariant(0);\n context.reportError(new GraphQLError(\"The enum value \\\"\".concat(enumTypeDef.name, \".\").concat(enumValueDef.name, \"\\\" is deprecated. \").concat(deprecationReason), node));\n }\n }\n };\n}","import { GraphQLError } from \"../../../error/GraphQLError.mjs\";\nimport { getNamedType } from \"../../../type/definition.mjs\";\nimport { isIntrospectionType } from \"../../../type/introspection.mjs\";\n/**\n * Prohibit introspection queries\n *\n * A GraphQL document is only valid if all fields selected are not fields that\n * return an introspection type.\n *\n * Note: This rule is optional and is not part of the Validation section of the\n * GraphQL Specification. This rule effectively disables introspection, which\n * does not reflect best practices and should only be done if absolutely necessary.\n */\n\nexport function NoSchemaIntrospectionCustomRule(context) {\n return {\n Field: function Field(node) {\n var type = getNamedType(context.getType());\n\n if (type && isIntrospectionType(type)) {\n context.reportError(new GraphQLError(\"GraphQL introspection has been disabled, but the requested query contained the field \\\"\".concat(node.name.value, \"\\\".\"), node));\n }\n }\n };\n}","import devAssert from \"../jsutils/devAssert.mjs\";\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n */\n\nexport function formatError(error) {\n var _error$message;\n\n error || devAssert(0, 'Received null or undefined error.');\n var message = (_error$message = error.message) !== null && _error$message !== void 0 ? _error$message : 'An unknown error occurred.';\n var locations = error.locations;\n var path = error.path;\n var extensions = error.extensions;\n return extensions ? {\n message: message,\n locations: locations,\n path: path,\n extensions: extensions\n } : {\n message: message,\n locations: locations,\n path: path\n };\n}\n/**\n * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors\n */","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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\nexport function getIntrospectionQuery(options) {\n var optionsWithDefault = _objectSpread({\n descriptions: true,\n specifiedByUrl: false,\n directiveIsRepeatable: false,\n schemaDescription: false,\n inputValueDeprecation: false\n }, options);\n\n var descriptions = optionsWithDefault.descriptions ? 'description' : '';\n var specifiedByUrl = optionsWithDefault.specifiedByUrl ? 'specifiedByUrl' : '';\n var directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable ? 'isRepeatable' : '';\n var schemaDescription = optionsWithDefault.schemaDescription ? descriptions : '';\n\n function inputDeprecation(str) {\n return optionsWithDefault.inputValueDeprecation ? str : '';\n }\n\n return \"\\n query IntrospectionQuery {\\n __schema {\\n \".concat(schemaDescription, \"\\n queryType { name }\\n mutationType { name }\\n subscriptionType { name }\\n types {\\n ...FullType\\n }\\n directives {\\n name\\n \").concat(descriptions, \"\\n \").concat(directiveIsRepeatable, \"\\n locations\\n args\").concat(inputDeprecation('(includeDeprecated: true)'), \" {\\n ...InputValue\\n }\\n }\\n }\\n }\\n\\n fragment FullType on __Type {\\n kind\\n name\\n \").concat(descriptions, \"\\n \").concat(specifiedByUrl, \"\\n fields(includeDeprecated: true) {\\n name\\n \").concat(descriptions, \"\\n args\").concat(inputDeprecation('(includeDeprecated: true)'), \" {\\n ...InputValue\\n }\\n type {\\n ...TypeRef\\n }\\n isDeprecated\\n deprecationReason\\n }\\n inputFields\").concat(inputDeprecation('(includeDeprecated: true)'), \" {\\n ...InputValue\\n }\\n interfaces {\\n ...TypeRef\\n }\\n enumValues(includeDeprecated: true) {\\n name\\n \").concat(descriptions, \"\\n isDeprecated\\n deprecationReason\\n }\\n possibleTypes {\\n ...TypeRef\\n }\\n }\\n\\n fragment InputValue on __InputValue {\\n name\\n \").concat(descriptions, \"\\n type { ...TypeRef }\\n defaultValue\\n \").concat(inputDeprecation('isDeprecated'), \"\\n \").concat(inputDeprecation('deprecationReason'), \"\\n }\\n\\n fragment TypeRef on __Type {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n \");\n}","import { Kind } from \"../language/kinds.mjs\";\n/**\n * Returns an operation AST given a document AST and optionally an operation\n * name. If a name is not provided, an operation is only returned if only one is\n * provided in the document.\n */\n\nexport function getOperationAST(documentAST, operationName) {\n var operation = null;\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var definition = _documentAST$definiti2[_i2];\n\n if (definition.kind === Kind.OPERATION_DEFINITION) {\n var _definition$name;\n\n if (operationName == null) {\n // If no operation name was provided, only return an Operation if there\n // is one defined in the document. Upon encountering the second, return\n // null.\n if (operation) {\n return null;\n }\n\n operation = definition;\n } else if (((_definition$name = definition.name) === null || _definition$name === void 0 ? void 0 : _definition$name.value) === operationName) {\n return definition;\n }\n }\n }\n\n return operation;\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { parse } from \"../language/parser.mjs\";\nimport { executeSync } from \"../execution/execute.mjs\";\nimport { getIntrospectionQuery } from \"./getIntrospectionQuery.mjs\";\n/**\n * Build an IntrospectionQuery from a GraphQLSchema\n *\n * IntrospectionQuery is useful for utilities that care about type and field\n * relationships, but do not need to traverse through those relationships.\n *\n * This is the inverse of buildClientSchema. The primary use case is outside\n * of the server context, for instance when doing schema comparisons.\n */\n\nexport function introspectionFromSchema(schema, options) {\n var optionsWithDefaults = _objectSpread({\n specifiedByUrl: true,\n directiveIsRepeatable: true,\n schemaDescription: true,\n inputValueDeprecation: true\n }, options);\n\n var document = parse(getIntrospectionQuery(optionsWithDefaults));\n var result = executeSync({\n schema: schema,\n document: document\n });\n !result.errors && result.data || invariant(0);\n return result.data;\n}","import objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport keyValMap from \"../jsutils/keyValMap.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { parseValue } from \"../language/parser.mjs\";\nimport { GraphQLSchema } from \"../type/schema.mjs\";\nimport { GraphQLDirective } from \"../type/directives.mjs\";\nimport { specifiedScalarTypes } from \"../type/scalars.mjs\";\nimport { introspectionTypes, TypeKind } from \"../type/introspection.mjs\";\nimport { isInputType, isOutputType, GraphQLList, GraphQLNonNull, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, assertNullableType, assertObjectType, assertInterfaceType } from \"../type/definition.mjs\";\nimport { valueFromAST } from \"./valueFromAST.mjs\";\n/**\n * Build a GraphQLSchema for use by client tools.\n *\n * Given the result of a client running the introspection query, creates and\n * returns a GraphQLSchema instance which can be then used with all graphql-js\n * tools, but cannot be used to execute a query, as introspection does not\n * represent the \"resolver\", \"parse\" or \"serialize\" functions or any other\n * server-internal mechanisms.\n *\n * This function expects a complete introspection result. Don't forget to check\n * the \"errors\" field of a server response before calling this function.\n */\n\nexport function buildClientSchema(introspection, options) {\n isObjectLike(introspection) && isObjectLike(introspection.__schema) || devAssert(0, \"Invalid or incomplete introspection result. Ensure that you are passing \\\"data\\\" property of introspection response and no \\\"errors\\\" was returned alongside: \".concat(inspect(introspection), \".\")); // Get the schema from the introspection result.\n\n var schemaIntrospection = introspection.__schema; // Iterate through all types, getting the type definition for each.\n\n var typeMap = keyValMap(schemaIntrospection.types, function (typeIntrospection) {\n return typeIntrospection.name;\n }, function (typeIntrospection) {\n return buildType(typeIntrospection);\n }); // Include standard types only if they are used.\n\n for (var _i2 = 0, _ref2 = [].concat(specifiedScalarTypes, introspectionTypes); _i2 < _ref2.length; _i2++) {\n var stdType = _ref2[_i2];\n\n if (typeMap[stdType.name]) {\n typeMap[stdType.name] = stdType;\n }\n } // Get the root Query, Mutation, and Subscription types.\n\n\n var queryType = schemaIntrospection.queryType ? getObjectType(schemaIntrospection.queryType) : null;\n var mutationType = schemaIntrospection.mutationType ? getObjectType(schemaIntrospection.mutationType) : null;\n var subscriptionType = schemaIntrospection.subscriptionType ? getObjectType(schemaIntrospection.subscriptionType) : null; // Get the directives supported by Introspection, assuming empty-set if\n // directives were not queried for.\n\n var directives = schemaIntrospection.directives ? schemaIntrospection.directives.map(buildDirective) : []; // Then produce and return a Schema with these types.\n\n return new GraphQLSchema({\n description: schemaIntrospection.description,\n query: queryType,\n mutation: mutationType,\n subscription: subscriptionType,\n types: objectValues(typeMap),\n directives: directives,\n assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid\n }); // Given a type reference in introspection, return the GraphQLType instance.\n // preferring cached instances before building new instances.\n\n function getType(typeRef) {\n if (typeRef.kind === TypeKind.LIST) {\n var itemRef = typeRef.ofType;\n\n if (!itemRef) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n\n return new GraphQLList(getType(itemRef));\n }\n\n if (typeRef.kind === TypeKind.NON_NULL) {\n var nullableRef = typeRef.ofType;\n\n if (!nullableRef) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n\n var nullableType = getType(nullableRef);\n return new GraphQLNonNull(assertNullableType(nullableType));\n }\n\n return getNamedType(typeRef);\n }\n\n function getNamedType(typeRef) {\n var typeName = typeRef.name;\n\n if (!typeName) {\n throw new Error(\"Unknown type reference: \".concat(inspect(typeRef), \".\"));\n }\n\n var type = typeMap[typeName];\n\n if (!type) {\n throw new Error(\"Invalid or incomplete schema, unknown type: \".concat(typeName, \". Ensure that a full introspection query is used in order to build a client schema.\"));\n }\n\n return type;\n }\n\n function getObjectType(typeRef) {\n return assertObjectType(getNamedType(typeRef));\n }\n\n function getInterfaceType(typeRef) {\n return assertInterfaceType(getNamedType(typeRef));\n } // Given a type's introspection result, construct the correct\n // GraphQLType instance.\n\n\n function buildType(type) {\n if (type != null && type.name != null && type.kind != null) {\n switch (type.kind) {\n case TypeKind.SCALAR:\n return buildScalarDef(type);\n\n case TypeKind.OBJECT:\n return buildObjectDef(type);\n\n case TypeKind.INTERFACE:\n return buildInterfaceDef(type);\n\n case TypeKind.UNION:\n return buildUnionDef(type);\n\n case TypeKind.ENUM:\n return buildEnumDef(type);\n\n case TypeKind.INPUT_OBJECT:\n return buildInputObjectDef(type);\n }\n }\n\n var typeStr = inspect(type);\n throw new Error(\"Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: \".concat(typeStr, \".\"));\n }\n\n function buildScalarDef(scalarIntrospection) {\n return new GraphQLScalarType({\n name: scalarIntrospection.name,\n description: scalarIntrospection.description,\n specifiedByUrl: scalarIntrospection.specifiedByUrl\n });\n }\n\n function buildImplementationsList(implementingIntrospection) {\n // TODO: Temporary workaround until GraphQL ecosystem will fully support\n // 'interfaces' on interface types.\n if (implementingIntrospection.interfaces === null && implementingIntrospection.kind === TypeKind.INTERFACE) {\n return [];\n }\n\n if (!implementingIntrospection.interfaces) {\n var implementingIntrospectionStr = inspect(implementingIntrospection);\n throw new Error(\"Introspection result missing interfaces: \".concat(implementingIntrospectionStr, \".\"));\n }\n\n return implementingIntrospection.interfaces.map(getInterfaceType);\n }\n\n function buildObjectDef(objectIntrospection) {\n return new GraphQLObjectType({\n name: objectIntrospection.name,\n description: objectIntrospection.description,\n interfaces: function interfaces() {\n return buildImplementationsList(objectIntrospection);\n },\n fields: function fields() {\n return buildFieldDefMap(objectIntrospection);\n }\n });\n }\n\n function buildInterfaceDef(interfaceIntrospection) {\n return new GraphQLInterfaceType({\n name: interfaceIntrospection.name,\n description: interfaceIntrospection.description,\n interfaces: function interfaces() {\n return buildImplementationsList(interfaceIntrospection);\n },\n fields: function fields() {\n return buildFieldDefMap(interfaceIntrospection);\n }\n });\n }\n\n function buildUnionDef(unionIntrospection) {\n if (!unionIntrospection.possibleTypes) {\n var unionIntrospectionStr = inspect(unionIntrospection);\n throw new Error(\"Introspection result missing possibleTypes: \".concat(unionIntrospectionStr, \".\"));\n }\n\n return new GraphQLUnionType({\n name: unionIntrospection.name,\n description: unionIntrospection.description,\n types: function types() {\n return unionIntrospection.possibleTypes.map(getObjectType);\n }\n });\n }\n\n function buildEnumDef(enumIntrospection) {\n if (!enumIntrospection.enumValues) {\n var enumIntrospectionStr = inspect(enumIntrospection);\n throw new Error(\"Introspection result missing enumValues: \".concat(enumIntrospectionStr, \".\"));\n }\n\n return new GraphQLEnumType({\n name: enumIntrospection.name,\n description: enumIntrospection.description,\n values: keyValMap(enumIntrospection.enumValues, function (valueIntrospection) {\n return valueIntrospection.name;\n }, function (valueIntrospection) {\n return {\n description: valueIntrospection.description,\n deprecationReason: valueIntrospection.deprecationReason\n };\n })\n });\n }\n\n function buildInputObjectDef(inputObjectIntrospection) {\n if (!inputObjectIntrospection.inputFields) {\n var inputObjectIntrospectionStr = inspect(inputObjectIntrospection);\n throw new Error(\"Introspection result missing inputFields: \".concat(inputObjectIntrospectionStr, \".\"));\n }\n\n return new GraphQLInputObjectType({\n name: inputObjectIntrospection.name,\n description: inputObjectIntrospection.description,\n fields: function fields() {\n return buildInputValueDefMap(inputObjectIntrospection.inputFields);\n }\n });\n }\n\n function buildFieldDefMap(typeIntrospection) {\n if (!typeIntrospection.fields) {\n throw new Error(\"Introspection result missing fields: \".concat(inspect(typeIntrospection), \".\"));\n }\n\n return keyValMap(typeIntrospection.fields, function (fieldIntrospection) {\n return fieldIntrospection.name;\n }, buildField);\n }\n\n function buildField(fieldIntrospection) {\n var type = getType(fieldIntrospection.type);\n\n if (!isOutputType(type)) {\n var typeStr = inspect(type);\n throw new Error(\"Introspection must provide output type for fields, but received: \".concat(typeStr, \".\"));\n }\n\n if (!fieldIntrospection.args) {\n var fieldIntrospectionStr = inspect(fieldIntrospection);\n throw new Error(\"Introspection result missing field args: \".concat(fieldIntrospectionStr, \".\"));\n }\n\n return {\n description: fieldIntrospection.description,\n deprecationReason: fieldIntrospection.deprecationReason,\n type: type,\n args: buildInputValueDefMap(fieldIntrospection.args)\n };\n }\n\n function buildInputValueDefMap(inputValueIntrospections) {\n return keyValMap(inputValueIntrospections, function (inputValue) {\n return inputValue.name;\n }, buildInputValue);\n }\n\n function buildInputValue(inputValueIntrospection) {\n var type = getType(inputValueIntrospection.type);\n\n if (!isInputType(type)) {\n var typeStr = inspect(type);\n throw new Error(\"Introspection must provide input type for arguments, but received: \".concat(typeStr, \".\"));\n }\n\n var defaultValue = inputValueIntrospection.defaultValue != null ? valueFromAST(parseValue(inputValueIntrospection.defaultValue), type) : undefined;\n return {\n description: inputValueIntrospection.description,\n type: type,\n defaultValue: defaultValue,\n deprecationReason: inputValueIntrospection.deprecationReason\n };\n }\n\n function buildDirective(directiveIntrospection) {\n if (!directiveIntrospection.args) {\n var directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\"Introspection result missing directive args: \".concat(directiveIntrospectionStr, \".\"));\n }\n\n if (!directiveIntrospection.locations) {\n var _directiveIntrospectionStr = inspect(directiveIntrospection);\n\n throw new Error(\"Introspection result missing directive locations: \".concat(_directiveIntrospectionStr, \".\"));\n }\n\n return new GraphQLDirective({\n name: directiveIntrospection.name,\n description: directiveIntrospection.description,\n isRepeatable: directiveIntrospection.isRepeatable,\n locations: directiveIntrospection.locations.slice(),\n args: buildInputValueDefMap(directiveIntrospection.args)\n });\n }\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport mapValue from \"../jsutils/mapValue.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { TokenKind } from \"../language/tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"../language/blockString.mjs\";\nimport { isTypeDefinitionNode, isTypeExtensionNode } from \"../language/predicates.mjs\";\nimport { assertValidSDLExtension } from \"../validation/validate.mjs\";\nimport { getDirectiveValues } from \"../execution/values.mjs\";\nimport { assertSchema, GraphQLSchema } from \"../type/schema.mjs\";\nimport { specifiedScalarTypes, isSpecifiedScalarType } from \"../type/scalars.mjs\";\nimport { introspectionTypes, isIntrospectionType } from \"../type/introspection.mjs\";\nimport { GraphQLDirective, GraphQLDeprecatedDirective, GraphQLSpecifiedByDirective } from \"../type/directives.mjs\";\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isListType, isNonNullType, isEnumType, isInputObjectType, GraphQLList, GraphQLNonNull, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType } from \"../type/definition.mjs\";\nimport { valueFromAST } from \"./valueFromAST.mjs\";\n/**\n * Produces a new schema given an existing schema and a document which may\n * contain GraphQL type extensions and definitions. The original schema will\n * remain unaltered.\n *\n * Because a schema represents a graph of references, a schema cannot be\n * extended without effectively making an entire copy. We do not know until it's\n * too late if subgraphs remain unchanged.\n *\n * This algorithm copies the provided schema, applying extensions while\n * producing the copy. The original schema remains unaltered.\n *\n * Accepts options as a third argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\n\nexport function extendSchema(schema, documentAST, options) {\n assertSchema(schema);\n documentAST != null && documentAST.kind === Kind.DOCUMENT || devAssert(0, 'Must provide valid Document AST.');\n\n if ((options === null || options === void 0 ? void 0 : options.assumeValid) !== true && (options === null || options === void 0 ? void 0 : options.assumeValidSDL) !== true) {\n assertValidSDLExtension(documentAST, schema);\n }\n\n var schemaConfig = schema.toConfig();\n var extendedConfig = extendSchemaImpl(schemaConfig, documentAST, options);\n return schemaConfig === extendedConfig ? schema : new GraphQLSchema(extendedConfig);\n}\n/**\n * @internal\n */\n\nexport function extendSchemaImpl(schemaConfig, documentAST, options) {\n var _schemaDef, _schemaDef$descriptio, _schemaDef2, _options$assumeValid; // Collect the type definitions and extensions found in the document.\n\n\n var typeDefs = [];\n var typeExtensionsMap = Object.create(null); // New directives and types are separate because a directives and types can\n // have the same name. For example, a type named \"skip\".\n\n var directiveDefs = [];\n var schemaDef; // Schema extensions are collected which may add additional operation types.\n\n var schemaExtensions = [];\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var def = _documentAST$definiti2[_i2];\n\n if (def.kind === Kind.SCHEMA_DEFINITION) {\n schemaDef = def;\n } else if (def.kind === Kind.SCHEMA_EXTENSION) {\n schemaExtensions.push(def);\n } else if (isTypeDefinitionNode(def)) {\n typeDefs.push(def);\n } else if (isTypeExtensionNode(def)) {\n var extendedTypeName = def.name.value;\n var existingTypeExtensions = typeExtensionsMap[extendedTypeName];\n typeExtensionsMap[extendedTypeName] = existingTypeExtensions ? existingTypeExtensions.concat([def]) : [def];\n } else if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n directiveDefs.push(def);\n }\n } // If this document contains no new types, extensions, or directives then\n // return the same unmodified GraphQLSchema instance.\n\n\n if (Object.keys(typeExtensionsMap).length === 0 && typeDefs.length === 0 && directiveDefs.length === 0 && schemaExtensions.length === 0 && schemaDef == null) {\n return schemaConfig;\n }\n\n var typeMap = Object.create(null);\n\n for (var _i4 = 0, _schemaConfig$types2 = schemaConfig.types; _i4 < _schemaConfig$types2.length; _i4++) {\n var existingType = _schemaConfig$types2[_i4];\n typeMap[existingType.name] = extendNamedType(existingType);\n }\n\n for (var _i6 = 0; _i6 < typeDefs.length; _i6++) {\n var _stdTypeMap$name;\n\n var typeNode = typeDefs[_i6];\n var name = typeNode.name.value;\n typeMap[name] = (_stdTypeMap$name = stdTypeMap[name]) !== null && _stdTypeMap$name !== void 0 ? _stdTypeMap$name : buildType(typeNode);\n }\n\n var operationTypes = _objectSpread(_objectSpread({\n // Get the extended root operation types.\n query: schemaConfig.query && replaceNamedType(schemaConfig.query),\n mutation: schemaConfig.mutation && replaceNamedType(schemaConfig.mutation),\n subscription: schemaConfig.subscription && replaceNamedType(schemaConfig.subscription)\n }, schemaDef && getOperationTypes([schemaDef])), getOperationTypes(schemaExtensions)); // Then produce and return a Schema config with these types.\n\n\n return _objectSpread(_objectSpread({\n description: (_schemaDef = schemaDef) === null || _schemaDef === void 0 ? void 0 : (_schemaDef$descriptio = _schemaDef.description) === null || _schemaDef$descriptio === void 0 ? void 0 : _schemaDef$descriptio.value\n }, operationTypes), {}, {\n types: objectValues(typeMap),\n directives: [].concat(schemaConfig.directives.map(replaceDirective), directiveDefs.map(buildDirective)),\n extensions: undefined,\n astNode: (_schemaDef2 = schemaDef) !== null && _schemaDef2 !== void 0 ? _schemaDef2 : schemaConfig.astNode,\n extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExtensions),\n assumeValid: (_options$assumeValid = options === null || options === void 0 ? void 0 : options.assumeValid) !== null && _options$assumeValid !== void 0 ? _options$assumeValid : false\n }); // Below are functions used for producing this schema that have closed over\n // this scope and have access to the schema, cache, and newly defined types.\n\n function replaceType(type) {\n if (isListType(type)) {\n // $FlowFixMe[incompatible-return]\n return new GraphQLList(replaceType(type.ofType));\n }\n\n if (isNonNullType(type)) {\n // $FlowFixMe[incompatible-return]\n return new GraphQLNonNull(replaceType(type.ofType));\n }\n\n return replaceNamedType(type);\n }\n\n function replaceNamedType(type) {\n // Note: While this could make early assertions to get the correctly\n // typed values, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n return typeMap[type.name];\n }\n\n function replaceDirective(directive) {\n var config = directive.toConfig();\n return new GraphQLDirective(_objectSpread(_objectSpread({}, config), {}, {\n args: mapValue(config.args, extendArg)\n }));\n }\n\n function extendNamedType(type) {\n if (isIntrospectionType(type) || isSpecifiedScalarType(type)) {\n // Builtin types are not extended.\n return type;\n }\n\n if (isScalarType(type)) {\n return extendScalarType(type);\n }\n\n if (isObjectType(type)) {\n return extendObjectType(type);\n }\n\n if (isInterfaceType(type)) {\n return extendInterfaceType(type);\n }\n\n if (isUnionType(type)) {\n return extendUnionType(type);\n }\n\n if (isEnumType(type)) {\n return extendEnumType(type);\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n return extendInputObjectType(type);\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n }\n\n function extendInputObjectType(type) {\n var _typeExtensionsMap$co;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co !== void 0 ? _typeExtensionsMap$co : [];\n return new GraphQLInputObjectType(_objectSpread(_objectSpread({}, config), {}, {\n fields: function fields() {\n return _objectSpread(_objectSpread({}, mapValue(config.fields, function (field) {\n return _objectSpread(_objectSpread({}, field), {}, {\n type: replaceType(field.type)\n });\n })), buildInputFieldMap(extensions));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendEnumType(type) {\n var _typeExtensionsMap$ty;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$ty = typeExtensionsMap[type.name]) !== null && _typeExtensionsMap$ty !== void 0 ? _typeExtensionsMap$ty : [];\n return new GraphQLEnumType(_objectSpread(_objectSpread({}, config), {}, {\n values: _objectSpread(_objectSpread({}, config.values), buildEnumValueMap(extensions)),\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendScalarType(type) {\n var _typeExtensionsMap$co2;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co2 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co2 !== void 0 ? _typeExtensionsMap$co2 : [];\n var specifiedByUrl = config.specifiedByUrl;\n\n for (var _i8 = 0; _i8 < extensions.length; _i8++) {\n var _getSpecifiedByUrl;\n\n var extensionNode = extensions[_i8];\n specifiedByUrl = (_getSpecifiedByUrl = getSpecifiedByUrl(extensionNode)) !== null && _getSpecifiedByUrl !== void 0 ? _getSpecifiedByUrl : specifiedByUrl;\n }\n\n return new GraphQLScalarType(_objectSpread(_objectSpread({}, config), {}, {\n specifiedByUrl: specifiedByUrl,\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendObjectType(type) {\n var _typeExtensionsMap$co3;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co3 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co3 !== void 0 ? _typeExtensionsMap$co3 : [];\n return new GraphQLObjectType(_objectSpread(_objectSpread({}, config), {}, {\n interfaces: function interfaces() {\n return [].concat(type.getInterfaces().map(replaceNamedType), buildInterfaces(extensions));\n },\n fields: function fields() {\n return _objectSpread(_objectSpread({}, mapValue(config.fields, extendField)), buildFieldMap(extensions));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendInterfaceType(type) {\n var _typeExtensionsMap$co4;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co4 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co4 !== void 0 ? _typeExtensionsMap$co4 : [];\n return new GraphQLInterfaceType(_objectSpread(_objectSpread({}, config), {}, {\n interfaces: function interfaces() {\n return [].concat(type.getInterfaces().map(replaceNamedType), buildInterfaces(extensions));\n },\n fields: function fields() {\n return _objectSpread(_objectSpread({}, mapValue(config.fields, extendField)), buildFieldMap(extensions));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendUnionType(type) {\n var _typeExtensionsMap$co5;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co5 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co5 !== void 0 ? _typeExtensionsMap$co5 : [];\n return new GraphQLUnionType(_objectSpread(_objectSpread({}, config), {}, {\n types: function types() {\n return [].concat(type.getTypes().map(replaceNamedType), buildUnionTypes(extensions));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendField(field) {\n return _objectSpread(_objectSpread({}, field), {}, {\n type: replaceType(field.type),\n // $FlowFixMe[incompatible-call]\n args: mapValue(field.args, extendArg)\n });\n }\n\n function extendArg(arg) {\n return _objectSpread(_objectSpread({}, arg), {}, {\n type: replaceType(arg.type)\n });\n }\n\n function getOperationTypes(nodes) {\n var opTypes = {};\n\n for (var _i10 = 0; _i10 < nodes.length; _i10++) {\n var _node$operationTypes;\n\n var node = nodes[_i10]; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var operationTypesNodes = (_node$operationTypes = node.operationTypes) !== null && _node$operationTypes !== void 0 ? _node$operationTypes : [];\n\n for (var _i12 = 0; _i12 < operationTypesNodes.length; _i12++) {\n var operationType = operationTypesNodes[_i12];\n opTypes[operationType.operation] = getNamedType(operationType.type);\n }\n } // Note: While this could make early assertions to get the correctly\n // typed values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n\n\n return opTypes;\n }\n\n function getNamedType(node) {\n var _stdTypeMap$name2;\n\n var name = node.name.value;\n var type = (_stdTypeMap$name2 = stdTypeMap[name]) !== null && _stdTypeMap$name2 !== void 0 ? _stdTypeMap$name2 : typeMap[name];\n\n if (type === undefined) {\n throw new Error(\"Unknown type: \\\"\".concat(name, \"\\\".\"));\n }\n\n return type;\n }\n\n function getWrappedType(node) {\n if (node.kind === Kind.LIST_TYPE) {\n return new GraphQLList(getWrappedType(node.type));\n }\n\n if (node.kind === Kind.NON_NULL_TYPE) {\n return new GraphQLNonNull(getWrappedType(node.type));\n }\n\n return getNamedType(node);\n }\n\n function buildDirective(node) {\n var locations = node.locations.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n return new GraphQLDirective({\n name: node.name.value,\n description: getDescription(node, options),\n locations: locations,\n isRepeatable: node.repeatable,\n args: buildArgumentMap(node.arguments),\n astNode: node\n });\n }\n\n function buildFieldMap(nodes) {\n var fieldConfigMap = Object.create(null);\n\n for (var _i14 = 0; _i14 < nodes.length; _i14++) {\n var _node$fields;\n\n var node = nodes[_i14]; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var nodeFields = (_node$fields = node.fields) !== null && _node$fields !== void 0 ? _node$fields : [];\n\n for (var _i16 = 0; _i16 < nodeFields.length; _i16++) {\n var field = nodeFields[_i16];\n fieldConfigMap[field.name.value] = {\n // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n type: getWrappedType(field.type),\n description: getDescription(field, options),\n args: buildArgumentMap(field.arguments),\n deprecationReason: getDeprecationReason(field),\n astNode: field\n };\n }\n }\n\n return fieldConfigMap;\n }\n\n function buildArgumentMap(args) {\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var argsNodes = args !== null && args !== void 0 ? args : [];\n var argConfigMap = Object.create(null);\n\n for (var _i18 = 0; _i18 < argsNodes.length; _i18++) {\n var arg = argsNodes[_i18]; // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n\n var type = getWrappedType(arg.type);\n argConfigMap[arg.name.value] = {\n type: type,\n description: getDescription(arg, options),\n defaultValue: valueFromAST(arg.defaultValue, type),\n deprecationReason: getDeprecationReason(arg),\n astNode: arg\n };\n }\n\n return argConfigMap;\n }\n\n function buildInputFieldMap(nodes) {\n var inputFieldMap = Object.create(null);\n\n for (var _i20 = 0; _i20 < nodes.length; _i20++) {\n var _node$fields2;\n\n var node = nodes[_i20]; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var fieldsNodes = (_node$fields2 = node.fields) !== null && _node$fields2 !== void 0 ? _node$fields2 : [];\n\n for (var _i22 = 0; _i22 < fieldsNodes.length; _i22++) {\n var field = fieldsNodes[_i22]; // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n\n var type = getWrappedType(field.type);\n inputFieldMap[field.name.value] = {\n type: type,\n description: getDescription(field, options),\n defaultValue: valueFromAST(field.defaultValue, type),\n deprecationReason: getDeprecationReason(field),\n astNode: field\n };\n }\n }\n\n return inputFieldMap;\n }\n\n function buildEnumValueMap(nodes) {\n var enumValueMap = Object.create(null);\n\n for (var _i24 = 0; _i24 < nodes.length; _i24++) {\n var _node$values;\n\n var node = nodes[_i24]; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var valuesNodes = (_node$values = node.values) !== null && _node$values !== void 0 ? _node$values : [];\n\n for (var _i26 = 0; _i26 < valuesNodes.length; _i26++) {\n var value = valuesNodes[_i26];\n enumValueMap[value.name.value] = {\n description: getDescription(value, options),\n deprecationReason: getDeprecationReason(value),\n astNode: value\n };\n }\n }\n\n return enumValueMap;\n }\n\n function buildInterfaces(nodes) {\n var interfaces = [];\n\n for (var _i28 = 0; _i28 < nodes.length; _i28++) {\n var _node$interfaces;\n\n var node = nodes[_i28]; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var interfacesNodes = (_node$interfaces = node.interfaces) !== null && _node$interfaces !== void 0 ? _node$interfaces : [];\n\n for (var _i30 = 0; _i30 < interfacesNodes.length; _i30++) {\n var type = interfacesNodes[_i30]; // Note: While this could make assertions to get the correctly typed\n // values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable\n // results.\n\n interfaces.push(getNamedType(type));\n }\n }\n\n return interfaces;\n }\n\n function buildUnionTypes(nodes) {\n var types = [];\n\n for (var _i32 = 0; _i32 < nodes.length; _i32++) {\n var _node$types;\n\n var node = nodes[_i32]; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var typeNodes = (_node$types = node.types) !== null && _node$types !== void 0 ? _node$types : [];\n\n for (var _i34 = 0; _i34 < typeNodes.length; _i34++) {\n var type = typeNodes[_i34]; // Note: While this could make assertions to get the correctly typed\n // values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable\n // results.\n\n types.push(getNamedType(type));\n }\n }\n\n return types;\n }\n\n function buildType(astNode) {\n var _typeExtensionsMap$na;\n\n var name = astNode.name.value;\n var description = getDescription(astNode, options);\n var extensionNodes = (_typeExtensionsMap$na = typeExtensionsMap[name]) !== null && _typeExtensionsMap$na !== void 0 ? _typeExtensionsMap$na : [];\n\n switch (astNode.kind) {\n case Kind.OBJECT_TYPE_DEFINITION:\n {\n var extensionASTNodes = extensionNodes;\n var allNodes = [astNode].concat(extensionASTNodes);\n return new GraphQLObjectType({\n name: name,\n description: description,\n interfaces: function interfaces() {\n return buildInterfaces(allNodes);\n },\n fields: function fields() {\n return buildFieldMap(allNodes);\n },\n astNode: astNode,\n extensionASTNodes: extensionASTNodes\n });\n }\n\n case Kind.INTERFACE_TYPE_DEFINITION:\n {\n var _extensionASTNodes = extensionNodes;\n\n var _allNodes = [astNode].concat(_extensionASTNodes);\n\n return new GraphQLInterfaceType({\n name: name,\n description: description,\n interfaces: function interfaces() {\n return buildInterfaces(_allNodes);\n },\n fields: function fields() {\n return buildFieldMap(_allNodes);\n },\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes\n });\n }\n\n case Kind.ENUM_TYPE_DEFINITION:\n {\n var _extensionASTNodes2 = extensionNodes;\n\n var _allNodes2 = [astNode].concat(_extensionASTNodes2);\n\n return new GraphQLEnumType({\n name: name,\n description: description,\n values: buildEnumValueMap(_allNodes2),\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes2\n });\n }\n\n case Kind.UNION_TYPE_DEFINITION:\n {\n var _extensionASTNodes3 = extensionNodes;\n\n var _allNodes3 = [astNode].concat(_extensionASTNodes3);\n\n return new GraphQLUnionType({\n name: name,\n description: description,\n types: function types() {\n return buildUnionTypes(_allNodes3);\n },\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes3\n });\n }\n\n case Kind.SCALAR_TYPE_DEFINITION:\n {\n var _extensionASTNodes4 = extensionNodes;\n return new GraphQLScalarType({\n name: name,\n description: description,\n specifiedByUrl: getSpecifiedByUrl(astNode),\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes4\n });\n }\n\n case Kind.INPUT_OBJECT_TYPE_DEFINITION:\n {\n var _extensionASTNodes5 = extensionNodes;\n\n var _allNodes4 = [astNode].concat(_extensionASTNodes5);\n\n return new GraphQLInputObjectType({\n name: name,\n description: description,\n fields: function fields() {\n return buildInputFieldMap(_allNodes4);\n },\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes5\n });\n }\n } // istanbul ignore next (Not reachable. All possible type definition nodes have been considered)\n\n\n false || invariant(0, 'Unexpected type definition node: ' + inspect(astNode));\n }\n}\nvar stdTypeMap = keyMap(specifiedScalarTypes.concat(introspectionTypes), function (type) {\n return type.name;\n});\n/**\n * Given a field or enum value node, returns the string value for the\n * deprecation reason.\n */\n\nfunction getDeprecationReason(node) {\n var deprecated = getDirectiveValues(GraphQLDeprecatedDirective, node);\n return deprecated === null || deprecated === void 0 ? void 0 : deprecated.reason;\n}\n/**\n * Given a scalar node, returns the string value for the specifiedByUrl.\n */\n\n\nfunction getSpecifiedByUrl(node) {\n var specifiedBy = getDirectiveValues(GraphQLSpecifiedByDirective, node);\n return specifiedBy === null || specifiedBy === void 0 ? void 0 : specifiedBy.url;\n}\n/**\n * Given an ast node, returns its string description.\n * @deprecated: provided to ease adoption and will be removed in v16.\n *\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\n\n\nexport function getDescription(node, options) {\n if (node.description) {\n return node.description.value;\n }\n\n if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) {\n var rawValue = getLeadingCommentBlock(node);\n\n if (rawValue !== undefined) {\n return dedentBlockStringValue('\\n' + rawValue);\n }\n }\n}\n\nfunction getLeadingCommentBlock(node) {\n var loc = node.loc;\n\n if (!loc) {\n return;\n }\n\n var comments = [];\n var token = loc.startToken.prev;\n\n while (token != null && token.kind === TokenKind.COMMENT && token.next && token.prev && token.line + 1 === token.next.line && token.line !== token.prev.line) {\n var value = String(token.value);\n comments.push(value);\n token = token.prev;\n }\n\n return comments.length > 0 ? comments.reverse().join('\\n') : undefined;\n}","import devAssert from \"../jsutils/devAssert.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { parse } from \"../language/parser.mjs\";\nimport { assertValidSDL } from \"../validation/validate.mjs\";\nimport { GraphQLSchema } from \"../type/schema.mjs\";\nimport { specifiedDirectives } from \"../type/directives.mjs\";\nimport { extendSchemaImpl } from \"./extendSchema.mjs\";\n/**\n * This takes the ast of a schema document produced by the parse function in\n * src/language/parser.js.\n *\n * If no schema definition is provided, then it will look for types named Query\n * and Mutation.\n *\n * Given that AST it constructs a GraphQLSchema. The resulting schema\n * has no resolve methods, so execution will use default resolvers.\n *\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\n\nexport function buildASTSchema(documentAST, options) {\n documentAST != null && documentAST.kind === Kind.DOCUMENT || devAssert(0, 'Must provide valid Document AST.');\n\n if ((options === null || options === void 0 ? void 0 : options.assumeValid) !== true && (options === null || options === void 0 ? void 0 : options.assumeValidSDL) !== true) {\n assertValidSDL(documentAST);\n }\n\n var emptySchemaConfig = {\n description: undefined,\n types: [],\n directives: [],\n extensions: undefined,\n extensionASTNodes: [],\n assumeValid: false\n };\n var config = extendSchemaImpl(emptySchemaConfig, documentAST, options);\n\n if (config.astNode == null) {\n for (var _i2 = 0, _config$types2 = config.types; _i2 < _config$types2.length; _i2++) {\n var type = _config$types2[_i2];\n\n switch (type.name) {\n // Note: While this could make early assertions to get the correctly\n // typed values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n case 'Query':\n config.query = type;\n break;\n\n case 'Mutation':\n config.mutation = type;\n break;\n\n case 'Subscription':\n config.subscription = type;\n break;\n }\n }\n }\n\n var directives = config.directives; // If specified directives were not explicitly declared, add them.\n\n var _loop = function _loop(_i4) {\n var stdDirective = specifiedDirectives[_i4];\n\n if (directives.every(function (directive) {\n return directive.name !== stdDirective.name;\n })) {\n directives.push(stdDirective);\n }\n };\n\n for (var _i4 = 0; _i4 < specifiedDirectives.length; _i4++) {\n _loop(_i4);\n }\n\n return new GraphQLSchema(config);\n}\n/**\n * A helper function to build a GraphQLSchema directly from a source\n * document.\n */\n\nexport function buildSchema(source, options) {\n var document = parse(source, {\n noLocation: options === null || options === void 0 ? void 0 : options.noLocation,\n allowLegacySDLEmptyFields: options === null || options === void 0 ? void 0 : options.allowLegacySDLEmptyFields,\n allowLegacySDLImplementsInterfaces: options === null || options === void 0 ? void 0 : options.allowLegacySDLImplementsInterfaces,\n experimentalFragmentVariables: options === null || options === void 0 ? void 0 : options.experimentalFragmentVariables\n });\n return buildASTSchema(document, {\n commentDescriptions: options === null || options === void 0 ? void 0 : options.commentDescriptions,\n assumeValidSDL: options === null || options === void 0 ? void 0 : options.assumeValidSDL,\n assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid\n });\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport keyValMap from \"../jsutils/keyValMap.mjs\";\nimport naturalCompare from \"../jsutils/naturalCompare.mjs\";\nimport { GraphQLSchema } from \"../type/schema.mjs\";\nimport { GraphQLDirective } from \"../type/directives.mjs\";\nimport { isIntrospectionType } from \"../type/introspection.mjs\";\nimport { GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, isListType, isNonNullType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from \"../type/definition.mjs\";\n/**\n * Sort GraphQLSchema.\n *\n * This function returns a sorted copy of the given GraphQLSchema.\n */\n\nexport function lexicographicSortSchema(schema) {\n var schemaConfig = schema.toConfig();\n var typeMap = keyValMap(sortByName(schemaConfig.types), function (type) {\n return type.name;\n }, sortNamedType);\n return new GraphQLSchema(_objectSpread(_objectSpread({}, schemaConfig), {}, {\n types: objectValues(typeMap),\n directives: sortByName(schemaConfig.directives).map(sortDirective),\n query: replaceMaybeType(schemaConfig.query),\n mutation: replaceMaybeType(schemaConfig.mutation),\n subscription: replaceMaybeType(schemaConfig.subscription)\n }));\n\n function replaceType(type) {\n if (isListType(type)) {\n // $FlowFixMe[incompatible-return]\n return new GraphQLList(replaceType(type.ofType));\n } else if (isNonNullType(type)) {\n // $FlowFixMe[incompatible-return]\n return new GraphQLNonNull(replaceType(type.ofType));\n }\n\n return replaceNamedType(type);\n }\n\n function replaceNamedType(type) {\n return typeMap[type.name];\n }\n\n function replaceMaybeType(maybeType) {\n return maybeType && replaceNamedType(maybeType);\n }\n\n function sortDirective(directive) {\n var config = directive.toConfig();\n return new GraphQLDirective(_objectSpread(_objectSpread({}, config), {}, {\n locations: sortBy(config.locations, function (x) {\n return x;\n }),\n args: sortArgs(config.args)\n }));\n }\n\n function sortArgs(args) {\n return sortObjMap(args, function (arg) {\n return _objectSpread(_objectSpread({}, arg), {}, {\n type: replaceType(arg.type)\n });\n });\n }\n\n function sortFields(fieldsMap) {\n return sortObjMap(fieldsMap, function (field) {\n return _objectSpread(_objectSpread({}, field), {}, {\n type: replaceType(field.type),\n args: sortArgs(field.args)\n });\n });\n }\n\n function sortInputFields(fieldsMap) {\n return sortObjMap(fieldsMap, function (field) {\n return _objectSpread(_objectSpread({}, field), {}, {\n type: replaceType(field.type)\n });\n });\n }\n\n function sortTypes(arr) {\n return sortByName(arr).map(replaceNamedType);\n }\n\n function sortNamedType(type) {\n if (isScalarType(type) || isIntrospectionType(type)) {\n return type;\n }\n\n if (isObjectType(type)) {\n var config = type.toConfig();\n return new GraphQLObjectType(_objectSpread(_objectSpread({}, config), {}, {\n interfaces: function interfaces() {\n return sortTypes(config.interfaces);\n },\n fields: function fields() {\n return sortFields(config.fields);\n }\n }));\n }\n\n if (isInterfaceType(type)) {\n var _config = type.toConfig();\n\n return new GraphQLInterfaceType(_objectSpread(_objectSpread({}, _config), {}, {\n interfaces: function interfaces() {\n return sortTypes(_config.interfaces);\n },\n fields: function fields() {\n return sortFields(_config.fields);\n }\n }));\n }\n\n if (isUnionType(type)) {\n var _config2 = type.toConfig();\n\n return new GraphQLUnionType(_objectSpread(_objectSpread({}, _config2), {}, {\n types: function types() {\n return sortTypes(_config2.types);\n }\n }));\n }\n\n if (isEnumType(type)) {\n var _config3 = type.toConfig();\n\n return new GraphQLEnumType(_objectSpread(_objectSpread({}, _config3), {}, {\n values: sortObjMap(_config3.values)\n }));\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n var _config4 = type.toConfig();\n\n return new GraphQLInputObjectType(_objectSpread(_objectSpread({}, _config4), {}, {\n fields: function fields() {\n return sortInputFields(_config4.fields);\n }\n }));\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n }\n}\n\nfunction sortObjMap(map, sortValueFn) {\n var sortedMap = Object.create(null);\n var sortedKeys = sortBy(Object.keys(map), function (x) {\n return x;\n });\n\n for (var _i2 = 0; _i2 < sortedKeys.length; _i2++) {\n var key = sortedKeys[_i2];\n var value = map[key];\n sortedMap[key] = sortValueFn ? sortValueFn(value) : value;\n }\n\n return sortedMap;\n}\n\nfunction sortByName(array) {\n return sortBy(array, function (obj) {\n return obj.name;\n });\n}\n\nfunction sortBy(array, mapToKey) {\n return array.slice().sort(function (obj1, obj2) {\n var key1 = mapToKey(obj1);\n var key2 = mapToKey(obj2);\n return naturalCompare(key1, key2);\n });\n}","import objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { printBlockString } from \"../language/blockString.mjs\";\nimport { isIntrospectionType } from \"../type/introspection.mjs\";\nimport { GraphQLString, isSpecifiedScalarType } from \"../type/scalars.mjs\";\nimport { DEFAULT_DEPRECATION_REASON, isSpecifiedDirective } from \"../type/directives.mjs\";\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from \"../type/definition.mjs\";\nimport { astFromValue } from \"./astFromValue.mjs\";\n/**\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\n\nexport function printSchema(schema, options) {\n return printFilteredSchema(schema, function (n) {\n return !isSpecifiedDirective(n);\n }, isDefinedType, options);\n}\nexport function printIntrospectionSchema(schema, options) {\n return printFilteredSchema(schema, isSpecifiedDirective, isIntrospectionType, options);\n}\n\nfunction isDefinedType(type) {\n return !isSpecifiedScalarType(type) && !isIntrospectionType(type);\n}\n\nfunction printFilteredSchema(schema, directiveFilter, typeFilter, options) {\n var directives = schema.getDirectives().filter(directiveFilter);\n var types = objectValues(schema.getTypeMap()).filter(typeFilter);\n return [printSchemaDefinition(schema)].concat(directives.map(function (directive) {\n return printDirective(directive, options);\n }), types.map(function (type) {\n return printType(type, options);\n })).filter(Boolean).join('\\n\\n') + '\\n';\n}\n\nfunction printSchemaDefinition(schema) {\n if (schema.description == null && isSchemaOfCommonNames(schema)) {\n return;\n }\n\n var operationTypes = [];\n var queryType = schema.getQueryType();\n\n if (queryType) {\n operationTypes.push(\" query: \".concat(queryType.name));\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType) {\n operationTypes.push(\" mutation: \".concat(mutationType.name));\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType) {\n operationTypes.push(\" subscription: \".concat(subscriptionType.name));\n }\n\n return printDescription({}, schema) + \"schema {\\n\".concat(operationTypes.join('\\n'), \"\\n}\");\n}\n/**\n * GraphQL schema define root types for each type of operation. These types are\n * the same as any other type and can be named in any manner, however there is\n * a common naming convention:\n *\n * schema {\n * query: Query\n * mutation: Mutation\n * }\n *\n * When using this naming convention, the schema description can be omitted.\n */\n\n\nfunction isSchemaOfCommonNames(schema) {\n var queryType = schema.getQueryType();\n\n if (queryType && queryType.name !== 'Query') {\n return false;\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType && mutationType.name !== 'Mutation') {\n return false;\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType && subscriptionType.name !== 'Subscription') {\n return false;\n }\n\n return true;\n}\n\nexport function printType(type, options) {\n if (isScalarType(type)) {\n return printScalar(type, options);\n }\n\n if (isObjectType(type)) {\n return printObject(type, options);\n }\n\n if (isInterfaceType(type)) {\n return printInterface(type, options);\n }\n\n if (isUnionType(type)) {\n return printUnion(type, options);\n }\n\n if (isEnumType(type)) {\n return printEnum(type, options);\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n return printInputObject(type, options);\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n}\n\nfunction printScalar(type, options) {\n return printDescription(options, type) + \"scalar \".concat(type.name) + printSpecifiedByUrl(type);\n}\n\nfunction printImplementedInterfaces(type) {\n var interfaces = type.getInterfaces();\n return interfaces.length ? ' implements ' + interfaces.map(function (i) {\n return i.name;\n }).join(' & ') : '';\n}\n\nfunction printObject(type, options) {\n return printDescription(options, type) + \"type \".concat(type.name) + printImplementedInterfaces(type) + printFields(options, type);\n}\n\nfunction printInterface(type, options) {\n return printDescription(options, type) + \"interface \".concat(type.name) + printImplementedInterfaces(type) + printFields(options, type);\n}\n\nfunction printUnion(type, options) {\n var types = type.getTypes();\n var possibleTypes = types.length ? ' = ' + types.join(' | ') : '';\n return printDescription(options, type) + 'union ' + type.name + possibleTypes;\n}\n\nfunction printEnum(type, options) {\n var values = type.getValues().map(function (value, i) {\n return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value.deprecationReason);\n });\n return printDescription(options, type) + \"enum \".concat(type.name) + printBlock(values);\n}\n\nfunction printInputObject(type, options) {\n var fields = objectValues(type.getFields()).map(function (f, i) {\n return printDescription(options, f, ' ', !i) + ' ' + printInputValue(f);\n });\n return printDescription(options, type) + \"input \".concat(type.name) + printBlock(fields);\n}\n\nfunction printFields(options, type) {\n var fields = objectValues(type.getFields()).map(function (f, i) {\n return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f.deprecationReason);\n });\n return printBlock(fields);\n}\n\nfunction printBlock(items) {\n return items.length !== 0 ? ' {\\n' + items.join('\\n') + '\\n}' : '';\n}\n\nfunction printArgs(options, args) {\n var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n if (args.length === 0) {\n return '';\n } // If every arg does not have a description, print them on one line.\n\n\n if (args.every(function (arg) {\n return !arg.description;\n })) {\n return '(' + args.map(printInputValue).join(', ') + ')';\n }\n\n return '(\\n' + args.map(function (arg, i) {\n return printDescription(options, arg, ' ' + indentation, !i) + ' ' + indentation + printInputValue(arg);\n }).join('\\n') + '\\n' + indentation + ')';\n}\n\nfunction printInputValue(arg) {\n var defaultAST = astFromValue(arg.defaultValue, arg.type);\n var argDecl = arg.name + ': ' + String(arg.type);\n\n if (defaultAST) {\n argDecl += \" = \".concat(print(defaultAST));\n }\n\n return argDecl + printDeprecated(arg.deprecationReason);\n}\n\nfunction printDirective(directive, options) {\n return printDescription(options, directive) + 'directive @' + directive.name + printArgs(options, directive.args) + (directive.isRepeatable ? ' repeatable' : '') + ' on ' + directive.locations.join(' | ');\n}\n\nfunction printDeprecated(reason) {\n if (reason == null) {\n return '';\n }\n\n var reasonAST = astFromValue(reason, GraphQLString);\n\n if (reasonAST && reason !== DEFAULT_DEPRECATION_REASON) {\n return ' @deprecated(reason: ' + print(reasonAST) + ')';\n }\n\n return ' @deprecated';\n}\n\nfunction printSpecifiedByUrl(scalar) {\n if (scalar.specifiedByUrl == null) {\n return '';\n }\n\n var url = scalar.specifiedByUrl;\n var urlAST = astFromValue(url, GraphQLString);\n urlAST || invariant(0, 'Unexpected null value returned from `astFromValue` for specifiedByUrl');\n return ' @specifiedBy(url: ' + print(urlAST) + ')';\n}\n\nfunction printDescription(options, def) {\n var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var firstInBlock = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var description = def.description;\n\n if (description == null) {\n return '';\n }\n\n if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) {\n return printDescriptionWithComments(description, indentation, firstInBlock);\n }\n\n var preferMultipleLines = description.length > 70;\n var blockString = printBlockString(description, '', preferMultipleLines);\n var prefix = indentation && !firstInBlock ? '\\n' + indentation : indentation;\n return prefix + blockString.replace(/\\n/g, '\\n' + indentation) + '\\n';\n}\n\nfunction printDescriptionWithComments(description, indentation, firstInBlock) {\n var prefix = indentation && !firstInBlock ? '\\n' : '';\n var comment = description.split('\\n').map(function (line) {\n return indentation + (line !== '' ? '# ' + line : '#');\n }).join('\\n');\n return prefix + comment + '\\n';\n}","/**\n * Provided a collection of ASTs, presumably each from different files,\n * concatenate the ASTs together into batched AST, useful for validating many\n * GraphQL source files which together represent one conceptual application.\n */\nexport function concatAST(documents) {\n var definitions = [];\n\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\n var doc = documents[_i2];\n definitions = definitions.concat(doc.definitions);\n }\n\n return {\n kind: 'Document',\n definitions: definitions\n };\n}","import { Kind } from \"../language/kinds.mjs\";\nimport { visit } from \"../language/visitor.mjs\";\n/**\n * separateOperations accepts a single AST document which may contain many\n * operations and fragments and returns a collection of AST documents each of\n * which contains a single operation as well the fragment definitions it\n * refers to.\n */\n\nexport function separateOperations(documentAST) {\n var operations = [];\n var depGraph = Object.create(null); // Populate metadata and build a dependency graph.\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var definitionNode = _documentAST$definiti2[_i2];\n\n switch (definitionNode.kind) {\n case Kind.OPERATION_DEFINITION:\n operations.push(definitionNode);\n break;\n\n case Kind.FRAGMENT_DEFINITION:\n depGraph[definitionNode.name.value] = collectDependencies(definitionNode.selectionSet);\n break;\n }\n } // For each operation, produce a new synthesized AST which includes only what\n // is necessary for completing that operation.\n\n\n var separatedDocumentASTs = Object.create(null);\n\n var _loop = function _loop(_i4) {\n var operation = operations[_i4];\n var dependencies = new Set();\n\n for (var _i6 = 0, _collectDependencies2 = collectDependencies(operation.selectionSet); _i6 < _collectDependencies2.length; _i6++) {\n var fragmentName = _collectDependencies2[_i6];\n collectTransitiveDependencies(dependencies, depGraph, fragmentName);\n } // Provides the empty string for anonymous operations.\n\n\n var operationName = operation.name ? operation.name.value : ''; // The list of definition nodes to be included for this operation, sorted\n // to retain the same order as the original document.\n\n separatedDocumentASTs[operationName] = {\n kind: Kind.DOCUMENT,\n definitions: documentAST.definitions.filter(function (node) {\n return node === operation || node.kind === Kind.FRAGMENT_DEFINITION && dependencies.has(node.name.value);\n })\n };\n };\n\n for (var _i4 = 0; _i4 < operations.length; _i4++) {\n _loop(_i4);\n }\n\n return separatedDocumentASTs;\n} // From a dependency graph, collects a list of transitive dependencies by\n// recursing through a dependency graph.\n\nfunction collectTransitiveDependencies(collected, depGraph, fromName) {\n if (!collected.has(fromName)) {\n collected.add(fromName);\n var immediateDeps = depGraph[fromName];\n\n if (immediateDeps !== undefined) {\n for (var _i8 = 0; _i8 < immediateDeps.length; _i8++) {\n var toName = immediateDeps[_i8];\n collectTransitiveDependencies(collected, depGraph, toName);\n }\n }\n }\n}\n\nfunction collectDependencies(selectionSet) {\n var dependencies = [];\n visit(selectionSet, {\n FragmentSpread: function FragmentSpread(node) {\n dependencies.push(node.name.value);\n }\n });\n return dependencies;\n}","import { Source, isSource } from \"../language/source.mjs\";\nimport { TokenKind } from \"../language/tokenKind.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"../language/lexer.mjs\";\nimport { dedentBlockStringValue, getBlockStringIndentation } from \"../language/blockString.mjs\";\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n * - UnicodeBOM\n * - WhiteSpace\n * - LineTerminator\n * - Comment\n * - Comma\n * - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * query SomeQuery($foo: String!, $bar: String) {\n * someField(foo: $foo, bar: $bar) {\n * a\n * b {\n * c\n * d\n * }\n * }\n * }\n *\n * Becomes:\n *\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n *\n * SDL example:\n *\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n * \"\"\"\n * Field description\n * \"\"\"\n * bar: String\n * }\n *\n * Becomes:\n *\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n */\n\nexport function stripIgnoredCharacters(source) {\n var sourceObj = isSource(source) ? source : new Source(source);\n var body = sourceObj.body;\n var lexer = new Lexer(sourceObj);\n var strippedBody = '';\n var wasLastAddedTokenNonPunctuator = false;\n\n while (lexer.advance().kind !== TokenKind.EOF) {\n var currentToken = lexer.token;\n var tokenKind = currentToken.kind;\n /**\n * Every two non-punctuator tokens should have space between them.\n * Also prevent case of non-punctuator token following by spread resulting\n * in invalid token (e.g. `1...` is invalid Float token).\n */\n\n var isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);\n\n if (wasLastAddedTokenNonPunctuator) {\n if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {\n strippedBody += ' ';\n }\n }\n\n var tokenBody = body.slice(currentToken.start, currentToken.end);\n\n if (tokenKind === TokenKind.BLOCK_STRING) {\n strippedBody += dedentBlockString(tokenBody);\n } else {\n strippedBody += tokenBody;\n }\n\n wasLastAddedTokenNonPunctuator = isNonPunctuator;\n }\n\n return strippedBody;\n}\n\nfunction dedentBlockString(blockStr) {\n // skip leading and trailing triple quotations\n var rawStr = blockStr.slice(3, -3);\n var body = dedentBlockStringValue(rawStr);\n\n if (getBlockStringIndentation(body) > 0) {\n body = '\\n' + body;\n }\n\n var lastChar = body[body.length - 1];\n var hasTrailingQuote = lastChar === '\"' && body.slice(-4) !== '\\\\\"\"\"';\n\n if (hasTrailingQuote || lastChar === '\\\\') {\n body += '\\n';\n }\n\n return '\"\"\"' + body + '\"\"\"';\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport naturalCompare from \"../jsutils/naturalCompare.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { visit } from \"../language/visitor.mjs\";\nimport { isSpecifiedScalarType } from \"../type/scalars.mjs\";\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNonNullType, isListType, isNamedType, isRequiredArgument, isRequiredInputField } from \"../type/definition.mjs\";\nimport { astFromValue } from \"./astFromValue.mjs\";\nexport var BreakingChangeType = Object.freeze({\n TYPE_REMOVED: 'TYPE_REMOVED',\n TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND',\n TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION',\n VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM',\n REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED',\n IMPLEMENTED_INTERFACE_REMOVED: 'IMPLEMENTED_INTERFACE_REMOVED',\n FIELD_REMOVED: 'FIELD_REMOVED',\n FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND',\n REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED',\n ARG_REMOVED: 'ARG_REMOVED',\n ARG_CHANGED_KIND: 'ARG_CHANGED_KIND',\n DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED',\n DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED',\n REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED',\n DIRECTIVE_REPEATABLE_REMOVED: 'DIRECTIVE_REPEATABLE_REMOVED',\n DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED'\n});\nexport var DangerousChangeType = Object.freeze({\n VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM',\n TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION',\n OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED',\n OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED',\n IMPLEMENTED_INTERFACE_ADDED: 'IMPLEMENTED_INTERFACE_ADDED',\n ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE'\n});\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of breaking changes covered by the other functions down below.\n */\n\nexport function findBreakingChanges(oldSchema, newSchema) {\n var breakingChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {\n return change.type in BreakingChangeType;\n });\n return breakingChanges;\n}\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of potentially dangerous changes covered by the other functions down below.\n */\n\nexport function findDangerousChanges(oldSchema, newSchema) {\n var dangerousChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {\n return change.type in DangerousChangeType;\n });\n return dangerousChanges;\n}\n\nfunction findSchemaChanges(oldSchema, newSchema) {\n return [].concat(findTypeChanges(oldSchema, newSchema), findDirectiveChanges(oldSchema, newSchema));\n}\n\nfunction findDirectiveChanges(oldSchema, newSchema) {\n var schemaChanges = [];\n var directivesDiff = diff(oldSchema.getDirectives(), newSchema.getDirectives());\n\n for (var _i2 = 0, _directivesDiff$remov2 = directivesDiff.removed; _i2 < _directivesDiff$remov2.length; _i2++) {\n var oldDirective = _directivesDiff$remov2[_i2];\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REMOVED,\n description: \"\".concat(oldDirective.name, \" was removed.\")\n });\n }\n\n for (var _i4 = 0, _directivesDiff$persi2 = directivesDiff.persisted; _i4 < _directivesDiff$persi2.length; _i4++) {\n var _ref2 = _directivesDiff$persi2[_i4];\n var _oldDirective = _ref2[0];\n var newDirective = _ref2[1];\n var argsDiff = diff(_oldDirective.args, newDirective.args);\n\n for (var _i6 = 0, _argsDiff$added2 = argsDiff.added; _i6 < _argsDiff$added2.length; _i6++) {\n var newArg = _argsDiff$added2[_i6];\n\n if (isRequiredArgument(newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,\n description: \"A required arg \".concat(newArg.name, \" on directive \").concat(_oldDirective.name, \" was added.\")\n });\n }\n }\n\n for (var _i8 = 0, _argsDiff$removed2 = argsDiff.removed; _i8 < _argsDiff$removed2.length; _i8++) {\n var oldArg = _argsDiff$removed2[_i8];\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,\n description: \"\".concat(oldArg.name, \" was removed from \").concat(_oldDirective.name, \".\")\n });\n }\n\n if (_oldDirective.isRepeatable && !newDirective.isRepeatable) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED,\n description: \"Repeatable flag was removed from \".concat(_oldDirective.name, \".\")\n });\n }\n\n for (var _i10 = 0, _oldDirective$locatio2 = _oldDirective.locations; _i10 < _oldDirective$locatio2.length; _i10++) {\n var location = _oldDirective$locatio2[_i10];\n\n if (newDirective.locations.indexOf(location) === -1) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,\n description: \"\".concat(location, \" was removed from \").concat(_oldDirective.name, \".\")\n });\n }\n }\n }\n\n return schemaChanges;\n}\n\nfunction findTypeChanges(oldSchema, newSchema) {\n var schemaChanges = [];\n var typesDiff = diff(objectValues(oldSchema.getTypeMap()), objectValues(newSchema.getTypeMap()));\n\n for (var _i12 = 0, _typesDiff$removed2 = typesDiff.removed; _i12 < _typesDiff$removed2.length; _i12++) {\n var oldType = _typesDiff$removed2[_i12];\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED,\n description: isSpecifiedScalarType(oldType) ? \"Standard scalar \".concat(oldType.name, \" was removed because it is not referenced anymore.\") : \"\".concat(oldType.name, \" was removed.\")\n });\n }\n\n for (var _i14 = 0, _typesDiff$persisted2 = typesDiff.persisted; _i14 < _typesDiff$persisted2.length; _i14++) {\n var _ref4 = _typesDiff$persisted2[_i14];\n var _oldType = _ref4[0];\n var newType = _ref4[1];\n\n if (isEnumType(_oldType) && isEnumType(newType)) {\n schemaChanges.push.apply(schemaChanges, findEnumTypeChanges(_oldType, newType));\n } else if (isUnionType(_oldType) && isUnionType(newType)) {\n schemaChanges.push.apply(schemaChanges, findUnionTypeChanges(_oldType, newType));\n } else if (isInputObjectType(_oldType) && isInputObjectType(newType)) {\n schemaChanges.push.apply(schemaChanges, findInputObjectTypeChanges(_oldType, newType));\n } else if (isObjectType(_oldType) && isObjectType(newType)) {\n schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType).concat(findImplementedInterfacesChanges(_oldType, newType)));\n } else if (isInterfaceType(_oldType) && isInterfaceType(newType)) {\n schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType).concat(findImplementedInterfacesChanges(_oldType, newType)));\n } else if (_oldType.constructor !== newType.constructor) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_CHANGED_KIND,\n description: \"\".concat(_oldType.name, \" changed from \") + \"\".concat(typeKindName(_oldType), \" to \").concat(typeKindName(newType), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findInputObjectTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var fieldsDiff = diff(objectValues(oldType.getFields()), objectValues(newType.getFields()));\n\n for (var _i16 = 0, _fieldsDiff$added2 = fieldsDiff.added; _i16 < _fieldsDiff$added2.length; _i16++) {\n var newField = _fieldsDiff$added2[_i16];\n\n if (isRequiredInputField(newField)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,\n description: \"A required field \".concat(newField.name, \" on input type \").concat(oldType.name, \" was added.\")\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,\n description: \"An optional field \".concat(newField.name, \" on input type \").concat(oldType.name, \" was added.\")\n });\n }\n }\n\n for (var _i18 = 0, _fieldsDiff$removed2 = fieldsDiff.removed; _i18 < _fieldsDiff$removed2.length; _i18++) {\n var oldField = _fieldsDiff$removed2[_i18];\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" was removed.\")\n });\n }\n\n for (var _i20 = 0, _fieldsDiff$persisted2 = fieldsDiff.persisted; _i20 < _fieldsDiff$persisted2.length; _i20++) {\n var _ref6 = _fieldsDiff$persisted2[_i20];\n var _oldField = _ref6[0];\n var _newField = _ref6[1];\n var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldField.type, _newField.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(_oldField.name, \" changed type from \") + \"\".concat(String(_oldField.type), \" to \").concat(String(_newField.type), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findUnionTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());\n\n for (var _i22 = 0, _possibleTypesDiff$ad2 = possibleTypesDiff.added; _i22 < _possibleTypesDiff$ad2.length; _i22++) {\n var newPossibleType = _possibleTypesDiff$ad2[_i22];\n schemaChanges.push({\n type: DangerousChangeType.TYPE_ADDED_TO_UNION,\n description: \"\".concat(newPossibleType.name, \" was added to union type \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i24 = 0, _possibleTypesDiff$re2 = possibleTypesDiff.removed; _i24 < _possibleTypesDiff$re2.length; _i24++) {\n var oldPossibleType = _possibleTypesDiff$re2[_i24];\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,\n description: \"\".concat(oldPossibleType.name, \" was removed from union type \").concat(oldType.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findEnumTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var valuesDiff = diff(oldType.getValues(), newType.getValues());\n\n for (var _i26 = 0, _valuesDiff$added2 = valuesDiff.added; _i26 < _valuesDiff$added2.length; _i26++) {\n var newValue = _valuesDiff$added2[_i26];\n schemaChanges.push({\n type: DangerousChangeType.VALUE_ADDED_TO_ENUM,\n description: \"\".concat(newValue.name, \" was added to enum type \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i28 = 0, _valuesDiff$removed2 = valuesDiff.removed; _i28 < _valuesDiff$removed2.length; _i28++) {\n var oldValue = _valuesDiff$removed2[_i28];\n schemaChanges.push({\n type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,\n description: \"\".concat(oldValue.name, \" was removed from enum type \").concat(oldType.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findImplementedInterfacesChanges(oldType, newType) {\n var schemaChanges = [];\n var interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());\n\n for (var _i30 = 0, _interfacesDiff$added2 = interfacesDiff.added; _i30 < _interfacesDiff$added2.length; _i30++) {\n var newInterface = _interfacesDiff$added2[_i30];\n schemaChanges.push({\n type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED,\n description: \"\".concat(newInterface.name, \" added to interfaces implemented by \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i32 = 0, _interfacesDiff$remov2 = interfacesDiff.removed; _i32 < _interfacesDiff$remov2.length; _i32++) {\n var oldInterface = _interfacesDiff$remov2[_i32];\n schemaChanges.push({\n type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED,\n description: \"\".concat(oldType.name, \" no longer implements interface \").concat(oldInterface.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findFieldChanges(oldType, newType) {\n var schemaChanges = [];\n var fieldsDiff = diff(objectValues(oldType.getFields()), objectValues(newType.getFields()));\n\n for (var _i34 = 0, _fieldsDiff$removed4 = fieldsDiff.removed; _i34 < _fieldsDiff$removed4.length; _i34++) {\n var oldField = _fieldsDiff$removed4[_i34];\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" was removed.\")\n });\n }\n\n for (var _i36 = 0, _fieldsDiff$persisted4 = fieldsDiff.persisted; _i36 < _fieldsDiff$persisted4.length; _i36++) {\n var _ref8 = _fieldsDiff$persisted4[_i36];\n var _oldField2 = _ref8[0];\n var newField = _ref8[1];\n schemaChanges.push.apply(schemaChanges, findArgChanges(oldType, _oldField2, newField));\n var isSafe = isChangeSafeForObjectOrInterfaceField(_oldField2.type, newField.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(_oldField2.name, \" changed type from \") + \"\".concat(String(_oldField2.type), \" to \").concat(String(newField.type), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findArgChanges(oldType, oldField, newField) {\n var schemaChanges = [];\n var argsDiff = diff(oldField.args, newField.args);\n\n for (var _i38 = 0, _argsDiff$removed4 = argsDiff.removed; _i38 < _argsDiff$removed4.length; _i38++) {\n var oldArg = _argsDiff$removed4[_i38];\n schemaChanges.push({\n type: BreakingChangeType.ARG_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(oldArg.name, \" was removed.\")\n });\n }\n\n for (var _i40 = 0, _argsDiff$persisted2 = argsDiff.persisted; _i40 < _argsDiff$persisted2.length; _i40++) {\n var _ref10 = _argsDiff$persisted2[_i40];\n var _oldArg = _ref10[0];\n var newArg = _ref10[1];\n var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldArg.type, newArg.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" has changed type from \") + \"\".concat(String(_oldArg.type), \" to \").concat(String(newArg.type), \".\")\n });\n } else if (_oldArg.defaultValue !== undefined) {\n if (newArg.defaultValue === undefined) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" defaultValue was removed.\")\n });\n } else {\n // Since we looking only for client's observable changes we should\n // compare default values in the same representation as they are\n // represented inside introspection.\n var oldValueStr = stringifyValue(_oldArg.defaultValue, _oldArg.type);\n var newValueStr = stringifyValue(newArg.defaultValue, newArg.type);\n\n if (oldValueStr !== newValueStr) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" has changed defaultValue from \").concat(oldValueStr, \" to \").concat(newValueStr, \".\")\n });\n }\n }\n }\n }\n\n for (var _i42 = 0, _argsDiff$added4 = argsDiff.added; _i42 < _argsDiff$added4.length; _i42++) {\n var _newArg = _argsDiff$added4[_i42];\n\n if (isRequiredArgument(_newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_ARG_ADDED,\n description: \"A required arg \".concat(_newArg.name, \" on \").concat(oldType.name, \".\").concat(oldField.name, \" was added.\")\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_ARG_ADDED,\n description: \"An optional arg \".concat(_newArg.name, \" on \").concat(oldType.name, \".\").concat(oldField.name, \" was added.\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction isChangeSafeForObjectOrInterfaceField(oldType, newType) {\n if (isListType(oldType)) {\n return (// if they're both lists, make sure the underlying types are compatible\n isListType(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) || // moving from nullable to non-null of the same underlying type is safe\n isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)\n );\n }\n\n if (isNonNullType(oldType)) {\n // if they're both non-null, make sure the underlying types are compatible\n return isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType);\n }\n\n return (// if they're both named types, see if their names are equivalent\n isNamedType(newType) && oldType.name === newType.name || // moving from nullable to non-null of the same underlying type is safe\n isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)\n );\n}\n\nfunction isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {\n if (isListType(oldType)) {\n // if they're both lists, make sure the underlying types are compatible\n return isListType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType);\n }\n\n if (isNonNullType(oldType)) {\n return (// if they're both non-null, make sure the underlying types are\n // compatible\n isNonNullType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) || // moving from non-null to nullable of the same underlying type is safe\n !isNonNullType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)\n );\n } // if they're both named types, see if their names are equivalent\n\n\n return isNamedType(newType) && oldType.name === newType.name;\n}\n\nfunction typeKindName(type) {\n if (isScalarType(type)) {\n return 'a Scalar type';\n }\n\n if (isObjectType(type)) {\n return 'an Object type';\n }\n\n if (isInterfaceType(type)) {\n return 'an Interface type';\n }\n\n if (isUnionType(type)) {\n return 'a Union type';\n }\n\n if (isEnumType(type)) {\n return 'an Enum type';\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n return 'an Input type';\n } // istanbul ignore next (Not reachable. All possible named types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n}\n\nfunction stringifyValue(value, type) {\n var ast = astFromValue(value, type);\n ast != null || invariant(0);\n var sortedAST = visit(ast, {\n ObjectValue: function ObjectValue(objectNode) {\n // Make a copy since sort mutates array\n var fields = [].concat(objectNode.fields);\n fields.sort(function (fieldA, fieldB) {\n return naturalCompare(fieldA.name.value, fieldB.name.value);\n });\n return _objectSpread(_objectSpread({}, objectNode), {}, {\n fields: fields\n });\n }\n });\n return print(sortedAST);\n}\n\nfunction diff(oldArray, newArray) {\n var added = [];\n var removed = [];\n var persisted = [];\n var oldMap = keyMap(oldArray, function (_ref11) {\n var name = _ref11.name;\n return name;\n });\n var newMap = keyMap(newArray, function (_ref12) {\n var name = _ref12.name;\n return name;\n });\n\n for (var _i44 = 0; _i44 < oldArray.length; _i44++) {\n var oldItem = oldArray[_i44];\n var newItem = newMap[oldItem.name];\n\n if (newItem === undefined) {\n removed.push(oldItem);\n } else {\n persisted.push([oldItem, newItem]);\n }\n }\n\n for (var _i46 = 0; _i46 < newArray.length; _i46++) {\n var _newItem = newArray[_i46];\n\n if (oldMap[_newItem.name] === undefined) {\n added.push(_newItem);\n }\n }\n\n return {\n added: added,\n persisted: persisted,\n removed: removed\n };\n}","import { validate } from \"../validation/validate.mjs\";\nimport { NoDeprecatedCustomRule } from \"../validation/rules/custom/NoDeprecatedCustomRule.mjs\";\n/**\n * A validation rule which reports deprecated usages.\n *\n * Returns a list of GraphQLError instances describing each deprecated use.\n *\n * @deprecated Please use `validate` with `NoDeprecatedCustomRule` instead:\n *\n * ```\n * import { validate, NoDeprecatedCustomRule } from 'graphql'\n *\n * const errors = validate(schema, document, [NoDeprecatedCustomRule])\n * ```\n */\n\nexport function findDeprecatedUsages(schema, ast) {\n return validate(schema, ast, [NoDeprecatedCustomRule]);\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}","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}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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/* eslint-disable flowtype/no-weak-types */\n\n\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 * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\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 (value) {\n var valueClass = value.constructor;\n var className = constructor.name;\n\n if (className && valueClass && valueClass.name === className) {\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(value, \"\\\" 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};","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}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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/**\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 */\n\n\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\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;","import defineInspect from \"../jsutils/defineInspect.mjs\";\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 */\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 * 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 * 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 * 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 */","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; // Note: next is only mutable during parsing, so we cast to allow this.\n\n\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 * 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}","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 */\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; // Legacy support for the SDL?\n\n\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}","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}","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}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\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 * 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 */\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// eslint-disable-next-line no-redeclare\n\nexport function isSource(source) {\n return instanceOf(source, Source);\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 */","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 /* eslint-disable no-undef-init */\n\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}","// 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';","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function () {\n return global[key] = (global[key] || 0) + 1;\n};","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (typeof origSymbol('foo') !== 'symbol') {\n return false;\n }\n\n if (typeof Symbol('bar') !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\n\nmodule.exports = function hasSymbols() {\n if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n return false;\n }\n\n if (typeof Symbol.iterator === 'symbol') {\n return true;\n }\n\n var obj = {};\n var sym = Symbol('test');\n var symObj = Object(sym);\n\n if (typeof sym === 'string') {\n return false;\n }\n\n if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n return false;\n }\n\n if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n return false;\n } // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\n var symVal = 42;\n obj[sym] = symVal;\n\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\n\n if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n\n var syms = Object.getOwnPropertySymbols(obj);\n\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyDescriptor === 'function') {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n\n return true;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction intervalMatches(interval, count) {\n if (interval.indexOf('-') > -1) {\n var p = interval.split('-');\n\n if (p[1] === 'inf') {\n var from = parseInt(p[0], 10);\n return count >= from;\n } else {\n var _from = parseInt(p[0], 10);\n\n var to = parseInt(p[1], 10);\n return count >= _from && count <= to;\n }\n } else {\n var match = parseInt(interval, 10);\n return match === count;\n }\n}\n\nexports.default = {\n name: 'interval',\n type: 'postProcessor',\n options: {\n intervalSeparator: ';',\n intervalRegex: /\\((\\S*)\\).*?\\[((.|\\n)*)\\]/,\n intervalSuffix: '_interval'\n },\n setOptions: function setOptions(options) {\n this.options = _extends({}, this.options, options);\n },\n process: function process(value, key, options, translator) {\n var _this = this;\n\n var p = value.split(this.options.intervalSeparator);\n var found = void 0;\n p.forEach(function (iv) {\n if (found) return;\n\n var match = _this.options.intervalRegex.exec(iv);\n\n if (match && intervalMatches(match[1], options.count || 0)) {\n found = match[2];\n }\n }); // not found fallback to classical plural\n\n if (!found) {\n var newOptions = _extends({}, options);\n\n if (typeof newOptions.postProcess === 'string') {\n delete newOptions.postProcess;\n } else {\n var index = newOptions.postProcess.indexOf('interval'); // <-- Not supported in -1) {\n newKeys = key.map(function (k) {\n return k.replace(_this.options.intervalSuffix, '');\n });\n }\n\n if (newKeys) found = translator.translate(newKeys, newOptions);\n }\n\n return found || value;\n }\n};","module.exports = require('./dist/commonjs/index.js').default;","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};","var checks = {};\n\nmodule.exports = function (src, callback) {\n if (src in checks) {\n return callback(checks[src]);\n }\n\n var img = new Image();\n\n img.onload = function () {\n checks[src] = true;\n callback(true);\n };\n\n img.onerror = function () {\n checks[src] = false;\n callback(false);\n };\n\n img.src = src;\n};","/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n(function (window, factory) {\n 'use strict'; // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter'], function (EvEmitter) {\n return factory(window, EvEmitter);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('ev-emitter'));\n } else {\n // browser global\n window.imagesLoaded = factory(window, window.EvEmitter);\n }\n})(typeof window !== 'undefined' ? window : this, // -------------------------- factory -------------------------- //\nfunction factory(window, EvEmitter) {\n 'use strict';\n\n var $ = window.jQuery;\n var console = window.console; // -------------------------- helpers -------------------------- //\n // extend objects\n\n function extend(a, b) {\n for (var prop in b) {\n a[prop] = b[prop];\n }\n\n return a;\n }\n\n var arraySlice = Array.prototype.slice; // turn element or nodeList into an array\n\n function makeArray(obj) {\n if (Array.isArray(obj)) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n\n if (isArrayLike) {\n // convert nodeList to array\n return arraySlice.call(obj);\n } // array of single index\n\n\n return [obj];\n } // -------------------------- imagesLoaded -------------------------- //\n\n /**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\n\n\n function ImagesLoaded(elem, options, onAlways) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if (!(this instanceof ImagesLoaded)) {\n return new ImagesLoaded(elem, options, onAlways);\n } // use elem as selector string\n\n\n var queryElem = elem;\n\n if (typeof elem == 'string') {\n queryElem = document.querySelectorAll(elem);\n } // bail if bad element\n\n\n if (!queryElem) {\n console.error('Bad element for imagesLoaded ' + (queryElem || elem));\n return;\n }\n\n this.elements = makeArray(queryElem);\n this.options = extend({}, this.options); // shift arguments if no options set\n\n if (typeof options == 'function') {\n onAlways = options;\n } else {\n extend(this.options, options);\n }\n\n if (onAlways) {\n this.on('always', onAlways);\n }\n\n this.getImages();\n\n if ($) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n } // HACK check async to allow time to bind listeners\n\n\n setTimeout(this.check.bind(this));\n }\n\n ImagesLoaded.prototype = Object.create(EvEmitter.prototype);\n ImagesLoaded.prototype.options = {};\n\n ImagesLoaded.prototype.getImages = function () {\n this.images = []; // filter & find items if we have an item selector\n\n this.elements.forEach(this.addElementImages, this);\n };\n /**\n * @param {Node} element\n */\n\n\n ImagesLoaded.prototype.addElementImages = function (elem) {\n // filter siblings\n if (elem.nodeName == 'IMG') {\n this.addImage(elem);\n } // get background image on element\n\n\n if (this.options.background === true) {\n this.addElementBackgroundImages(elem);\n } // find children\n // no non-element nodes, #143\n\n\n var nodeType = elem.nodeType;\n\n if (!nodeType || !elementNodeTypes[nodeType]) {\n return;\n }\n\n var childImgs = elem.querySelectorAll('img'); // concat childElems to filterFound array\n\n for (var i = 0; i < childImgs.length; i++) {\n var img = childImgs[i];\n this.addImage(img);\n } // get child background images\n\n\n if (typeof this.options.background == 'string') {\n var children = elem.querySelectorAll(this.options.background);\n\n for (i = 0; i < children.length; i++) {\n var child = children[i];\n this.addElementBackgroundImages(child);\n }\n }\n };\n\n var elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n };\n\n ImagesLoaded.prototype.addElementBackgroundImages = function (elem) {\n var style = getComputedStyle(elem);\n\n if (!style) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n } // get url inside url(\"...\")\n\n\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec(style.backgroundImage);\n\n while (matches !== null) {\n var url = matches && matches[2];\n\n if (url) {\n this.addBackground(url, elem);\n }\n\n matches = reURL.exec(style.backgroundImage);\n }\n };\n /**\n * @param {Image} img\n */\n\n\n ImagesLoaded.prototype.addImage = function (img) {\n var loadingImage = new LoadingImage(img);\n this.images.push(loadingImage);\n };\n\n ImagesLoaded.prototype.addBackground = function (url, elem) {\n var background = new Background(url, elem);\n this.images.push(background);\n };\n\n ImagesLoaded.prototype.check = function () {\n var _this = this;\n\n this.progressedCount = 0;\n this.hasAnyBroken = false; // complete if no images\n\n if (!this.images.length) {\n this.complete();\n return;\n }\n\n function onProgress(image, elem, message) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout(function () {\n _this.progress(image, elem, message);\n });\n }\n\n this.images.forEach(function (loadingImage) {\n loadingImage.once('progress', onProgress);\n loadingImage.check();\n });\n };\n\n ImagesLoaded.prototype.progress = function (image, elem, message) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; // progress event\n\n this.emitEvent('progress', [this, image, elem]);\n\n if (this.jqDeferred && this.jqDeferred.notify) {\n this.jqDeferred.notify(this, image);\n } // check if completed\n\n\n if (this.progressedCount == this.images.length) {\n this.complete();\n }\n\n if (this.options.debug && console) {\n console.log('progress: ' + message, image, elem);\n }\n };\n\n ImagesLoaded.prototype.complete = function () {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent(eventName, [this]);\n this.emitEvent('always', [this]);\n\n if (this.jqDeferred) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[jqMethod](this);\n }\n }; // -------------------------- -------------------------- //\n\n\n function LoadingImage(img) {\n this.img = img;\n }\n\n LoadingImage.prototype = Object.create(EvEmitter.prototype);\n\n LoadingImage.prototype.check = function () {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n\n if (isComplete) {\n // report based on naturalWidth\n this.confirm(this.img.naturalWidth !== 0, 'naturalWidth');\n return;\n } // If none of the checks above matched, simulate loading on detached element.\n\n\n this.proxyImage = new Image();\n this.proxyImage.addEventListener('load', this);\n this.proxyImage.addEventListener('error', this); // bind to image as well for Firefox. #191\n\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this);\n this.proxyImage.src = this.img.src;\n };\n\n LoadingImage.prototype.getIsImageComplete = function () {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n };\n\n LoadingImage.prototype.confirm = function (isLoaded, message) {\n this.isLoaded = isLoaded;\n this.emitEvent('progress', [this, this.img, message]);\n }; // ----- events ----- //\n // trigger specified handler for event type\n\n\n LoadingImage.prototype.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n };\n\n LoadingImage.prototype.onload = function () {\n this.confirm(true, 'onload');\n this.unbindEvents();\n };\n\n LoadingImage.prototype.onerror = function () {\n this.confirm(false, 'onerror');\n this.unbindEvents();\n };\n\n LoadingImage.prototype.unbindEvents = function () {\n this.proxyImage.removeEventListener('load', this);\n this.proxyImage.removeEventListener('error', this);\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n }; // -------------------------- Background -------------------------- //\n\n\n function Background(url, element) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n } // inherit LoadingImage prototype\n\n\n Background.prototype = Object.create(LoadingImage.prototype);\n\n Background.prototype.check = function () {\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this);\n this.img.src = this.url; // check if image is already complete\n\n var isComplete = this.getIsImageComplete();\n\n if (isComplete) {\n this.confirm(this.img.naturalWidth !== 0, 'naturalWidth');\n this.unbindEvents();\n }\n };\n\n Background.prototype.unbindEvents = function () {\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n };\n\n Background.prototype.confirm = function (isLoaded, message) {\n this.isLoaded = isLoaded;\n this.emitEvent('progress', [this, this.element, message]);\n }; // -------------------------- jQuery -------------------------- //\n\n\n ImagesLoaded.makeJQueryPlugin = function (jQuery) {\n jQuery = jQuery || window.jQuery;\n\n if (!jQuery) {\n return;\n } // set local variable\n\n\n $ = jQuery; // $().imagesLoaded()\n\n $.fn.imagesLoaded = function (options, callback) {\n var instance = new ImagesLoaded(this, options, callback);\n return instance.jqDeferred.promise($(this));\n };\n }; // try making plugin\n\n\n ImagesLoaded.makeJQueryPlugin(); // -------------------------- -------------------------- //\n\n return ImagesLoaded;\n});","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","'use strict';\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n\n return $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n\n return value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && $toString(value) !== '[object Array]' && $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","'use strict';\n\nvar getDay = Date.prototype.getDay;\n\nvar tryDateObject = function tryDateGetDayCall(value) {\n try {\n getDay.call(value);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag;\n\nmodule.exports = function isDateObject(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n\n return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar getProto = Object.getPrototypeOf;\n\nvar getGeneratorFunc = function getGeneratorFunc() {\n // eslint-disable-line consistent-return\n if (!hasToStringTag) {\n return false;\n }\n\n try {\n return Function('return function*() {}')();\n } catch (e) {}\n};\n\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n if (typeof fn !== 'function') {\n return false;\n }\n\n if (isFnRegex.test(fnToStr.call(fn))) {\n return true;\n }\n\n if (!hasToStringTag) {\n var str = toStr.call(fn);\n return str === '[object GeneratorFunction]';\n }\n\n if (!getProto) {\n return false;\n }\n\n if (typeof GeneratorFunction === 'undefined') {\n var generatorFunc = getGeneratorFunc();\n GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n }\n\n return getProto(fn) === GeneratorFunction;\n};","'use strict';\n\nvar callBound = require('call-bind/callBound');\n\nvar hasSymbols = require('has-symbols/shams')();\n\nvar hasToStringTag = hasSymbols && !!Symbol.toStringTag;\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n has = callBound('Object.prototype.hasOwnProperty');\n $exec = callBound('RegExp.prototype.exec');\n isRegexMarker = {};\n\n var throwRegexMarker = function throwRegexMarker() {\n throw isRegexMarker;\n };\n\n badStringifier = {\n toString: throwRegexMarker,\n valueOf: throwRegexMarker\n };\n\n if (typeof Symbol.toPrimitive === 'symbol') {\n badStringifier[Symbol.toPrimitive] = throwRegexMarker;\n }\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\nmodule.exports = hasToStringTag // eslint-disable-next-line consistent-return\n? function isRegex(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n\n var descriptor = gOPD(value, 'lastIndex');\n var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\n if (!hasLastIndexDataProperty) {\n return false;\n }\n\n try {\n $exec(value, badStringifier);\n } catch (e) {\n return e === isRegexMarker;\n }\n} : function isRegex(value) {\n // In older browsers, typeof regex incorrectly returns 'function'\n if (!value || typeof value !== 'object' && typeof value !== 'function') {\n return false;\n }\n\n return $toString(value) === regexClass;\n};","'use strict';\n\nvar forEach = require('foreach');\n\nvar availableTypedArrays = require('available-typed-arrays');\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar hasSymbols = require('has-symbols')();\n\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n for (var i = 0; i < array.length; i += 1) {\n if (array[i] === value) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\n\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\n\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nif (hasToStringTag && gOPD && getPrototypeOf) {\n forEach(typedArrays, function (typedArray) {\n var arr = new global[typedArray]();\n\n if (!(Symbol.toStringTag in arr)) {\n throw new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.');\n }\n\n var proto = getPrototypeOf(arr);\n var descriptor = gOPD(proto, Symbol.toStringTag);\n\n if (!descriptor) {\n var superProto = getPrototypeOf(proto);\n descriptor = gOPD(superProto, Symbol.toStringTag);\n }\n\n toStrTags[typedArray] = descriptor.get;\n });\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n var anyTrue = false;\n forEach(toStrTags, function (getter, typedArray) {\n if (!anyTrue) {\n try {\n anyTrue = getter.call(value) === typedArray;\n } catch (e) {\n /**/\n }\n }\n });\n return anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n\n if (!hasToStringTag) {\n var tag = $slice($toString(value), 8, -1);\n return $indexOf(typedArrays, tag) > -1;\n }\n\n if (!gOPD) {\n return false;\n }\n\n return tryTypedArrays(value);\n};","require(\"core-js/modules/es.string.trim-start.js\");\n\n(function (exports) {\n \"use strict\";\n\n function isArray(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n } else {\n return false;\n }\n }\n\n function isObject(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n } else {\n return false;\n }\n }\n\n function strictDeepEqual(first, second) {\n // Check the scalar case first.\n if (first === second) {\n return true;\n } // Check if they are the same type.\n\n\n var firstType = Object.prototype.toString.call(first);\n\n if (firstType !== Object.prototype.toString.call(second)) {\n return false;\n } // We know that first and second have the same type so we can just check the\n // first type from now on.\n\n\n if (isArray(first) === true) {\n // Short circuit if they're not the same length;\n if (first.length !== second.length) {\n return false;\n }\n\n for (var i = 0; i < first.length; i++) {\n if (strictDeepEqual(first[i], second[i]) === false) {\n return false;\n }\n }\n\n return true;\n }\n\n if (isObject(first) === true) {\n // An object is equal if it has the same key/value pairs.\n var keysSeen = {};\n\n for (var key in first) {\n if (hasOwnProperty.call(first, key)) {\n if (strictDeepEqual(first[key], second[key]) === false) {\n return false;\n }\n\n keysSeen[key] = true;\n }\n } // Now check that there aren't any keys in second that weren't\n // in first.\n\n\n for (var key2 in second) {\n if (hasOwnProperty.call(second, key2)) {\n if (keysSeen[key2] !== true) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n return false;\n }\n\n function isFalse(obj) {\n // From the spec:\n // A false value corresponds to the following values:\n // Empty list\n // Empty object\n // Empty string\n // False boolean\n // null value\n // First check the scalar values.\n if (obj === \"\" || obj === false || obj === null) {\n return true;\n } else if (isArray(obj) && obj.length === 0) {\n // Check for an empty array.\n return true;\n } else if (isObject(obj)) {\n // Check for an empty object.\n for (var key in obj) {\n // If there are any keys, then\n // the object is not empty so the object\n // is not false.\n if (obj.hasOwnProperty(key)) {\n return false;\n }\n }\n\n return true;\n } else {\n return false;\n }\n }\n\n function objValues(obj) {\n var keys = Object.keys(obj);\n var values = [];\n\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n\n return values;\n }\n\n function merge(a, b) {\n var merged = {};\n\n for (var key in a) {\n merged[key] = a[key];\n }\n\n for (var key2 in b) {\n merged[key2] = b[key2];\n }\n\n return merged;\n }\n\n var trimLeft;\n\n if (typeof String.prototype.trimLeft === \"function\") {\n trimLeft = function trimLeft(str) {\n return str.trimLeft();\n };\n } else {\n trimLeft = function trimLeft(str) {\n return str.match(/^\\s*(.*)/)[1];\n };\n } // Type constants used to define functions.\n\n\n var TYPE_NUMBER = 0;\n var TYPE_ANY = 1;\n var TYPE_STRING = 2;\n var TYPE_ARRAY = 3;\n var TYPE_OBJECT = 4;\n var TYPE_BOOLEAN = 5;\n var TYPE_EXPREF = 6;\n var TYPE_NULL = 7;\n var TYPE_ARRAY_NUMBER = 8;\n var TYPE_ARRAY_STRING = 9;\n var TOK_EOF = \"EOF\";\n var TOK_UNQUOTEDIDENTIFIER = \"UnquotedIdentifier\";\n var TOK_QUOTEDIDENTIFIER = \"QuotedIdentifier\";\n var TOK_RBRACKET = \"Rbracket\";\n var TOK_RPAREN = \"Rparen\";\n var TOK_COMMA = \"Comma\";\n var TOK_COLON = \"Colon\";\n var TOK_RBRACE = \"Rbrace\";\n var TOK_NUMBER = \"Number\";\n var TOK_CURRENT = \"Current\";\n var TOK_EXPREF = \"Expref\";\n var TOK_PIPE = \"Pipe\";\n var TOK_OR = \"Or\";\n var TOK_AND = \"And\";\n var TOK_EQ = \"EQ\";\n var TOK_GT = \"GT\";\n var TOK_LT = \"LT\";\n var TOK_GTE = \"GTE\";\n var TOK_LTE = \"LTE\";\n var TOK_NE = \"NE\";\n var TOK_FLATTEN = \"Flatten\";\n var TOK_STAR = \"Star\";\n var TOK_FILTER = \"Filter\";\n var TOK_DOT = \"Dot\";\n var TOK_NOT = \"Not\";\n var TOK_LBRACE = \"Lbrace\";\n var TOK_LBRACKET = \"Lbracket\";\n var TOK_LPAREN = \"Lparen\";\n var TOK_LITERAL = \"Literal\"; // The \"&\", \"[\", \"<\", \">\" tokens\n // are not in basicToken because\n // there are two token variants\n // (\"&&\", \"[?\", \"<=\", \">=\"). This is specially handled\n // below.\n\n var basicTokens = {\n \".\": TOK_DOT,\n \"*\": TOK_STAR,\n \",\": TOK_COMMA,\n \":\": TOK_COLON,\n \"{\": TOK_LBRACE,\n \"}\": TOK_RBRACE,\n \"]\": TOK_RBRACKET,\n \"(\": TOK_LPAREN,\n \")\": TOK_RPAREN,\n \"@\": TOK_CURRENT\n };\n var operatorStartToken = {\n \"<\": true,\n \">\": true,\n \"=\": true,\n \"!\": true\n };\n var skipChars = {\n \" \": true,\n \"\\t\": true,\n \"\\n\": true\n };\n\n function isAlpha(ch) {\n return ch >= \"a\" && ch <= \"z\" || ch >= \"A\" && ch <= \"Z\" || ch === \"_\";\n }\n\n function isNum(ch) {\n return ch >= \"0\" && ch <= \"9\" || ch === \"-\";\n }\n\n function isAlphaNum(ch) {\n return ch >= \"a\" && ch <= \"z\" || ch >= \"A\" && ch <= \"Z\" || ch >= \"0\" && ch <= \"9\" || ch === \"_\";\n }\n\n function Lexer() {}\n\n Lexer.prototype = {\n tokenize: function tokenize(stream) {\n var tokens = [];\n this._current = 0;\n var start;\n var identifier;\n var token;\n\n while (this._current < stream.length) {\n if (isAlpha(stream[this._current])) {\n start = this._current;\n identifier = this._consumeUnquotedIdentifier(stream);\n tokens.push({\n type: TOK_UNQUOTEDIDENTIFIER,\n value: identifier,\n start: start\n });\n } else if (basicTokens[stream[this._current]] !== undefined) {\n tokens.push({\n type: basicTokens[stream[this._current]],\n value: stream[this._current],\n start: this._current\n });\n this._current++;\n } else if (isNum(stream[this._current])) {\n token = this._consumeNumber(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"[\") {\n // No need to increment this._current. This happens\n // in _consumeLBracket\n token = this._consumeLBracket(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"\\\"\") {\n start = this._current;\n identifier = this._consumeQuotedIdentifier(stream);\n tokens.push({\n type: TOK_QUOTEDIDENTIFIER,\n value: identifier,\n start: start\n });\n } else if (stream[this._current] === \"'\") {\n start = this._current;\n identifier = this._consumeRawStringLiteral(stream);\n tokens.push({\n type: TOK_LITERAL,\n value: identifier,\n start: start\n });\n } else if (stream[this._current] === \"`\") {\n start = this._current;\n\n var literal = this._consumeLiteral(stream);\n\n tokens.push({\n type: TOK_LITERAL,\n value: literal,\n start: start\n });\n } else if (operatorStartToken[stream[this._current]] !== undefined) {\n tokens.push(this._consumeOperator(stream));\n } else if (skipChars[stream[this._current]] !== undefined) {\n // Ignore whitespace.\n this._current++;\n } else if (stream[this._current] === \"&\") {\n start = this._current;\n this._current++;\n\n if (stream[this._current] === \"&\") {\n this._current++;\n tokens.push({\n type: TOK_AND,\n value: \"&&\",\n start: start\n });\n } else {\n tokens.push({\n type: TOK_EXPREF,\n value: \"&\",\n start: start\n });\n }\n } else if (stream[this._current] === \"|\") {\n start = this._current;\n this._current++;\n\n if (stream[this._current] === \"|\") {\n this._current++;\n tokens.push({\n type: TOK_OR,\n value: \"||\",\n start: start\n });\n } else {\n tokens.push({\n type: TOK_PIPE,\n value: \"|\",\n start: start\n });\n }\n } else {\n var error = new Error(\"Unknown character:\" + stream[this._current]);\n error.name = \"LexerError\";\n throw error;\n }\n }\n\n return tokens;\n },\n _consumeUnquotedIdentifier: function _consumeUnquotedIdentifier(stream) {\n var start = this._current;\n this._current++;\n\n while (this._current < stream.length && isAlphaNum(stream[this._current])) {\n this._current++;\n }\n\n return stream.slice(start, this._current);\n },\n _consumeQuotedIdentifier: function _consumeQuotedIdentifier(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n\n while (stream[this._current] !== \"\\\"\" && this._current < maxLength) {\n // You can escape a double quote and you can escape an escape.\n var current = this._current;\n\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" || stream[current + 1] === \"\\\"\")) {\n current += 2;\n } else {\n current++;\n }\n\n this._current = current;\n }\n\n this._current++;\n return JSON.parse(stream.slice(start, this._current));\n },\n _consumeRawStringLiteral: function _consumeRawStringLiteral(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n\n while (stream[this._current] !== \"'\" && this._current < maxLength) {\n // You can escape a single quote and you can escape an escape.\n var current = this._current;\n\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" || stream[current + 1] === \"'\")) {\n current += 2;\n } else {\n current++;\n }\n\n this._current = current;\n }\n\n this._current++;\n var literal = stream.slice(start + 1, this._current - 1);\n return literal.replace(\"\\\\'\", \"'\");\n },\n _consumeNumber: function _consumeNumber(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n\n while (isNum(stream[this._current]) && this._current < maxLength) {\n this._current++;\n }\n\n var value = parseInt(stream.slice(start, this._current));\n return {\n type: TOK_NUMBER,\n value: value,\n start: start\n };\n },\n _consumeLBracket: function _consumeLBracket(stream) {\n var start = this._current;\n this._current++;\n\n if (stream[this._current] === \"?\") {\n this._current++;\n return {\n type: TOK_FILTER,\n value: \"[?\",\n start: start\n };\n } else if (stream[this._current] === \"]\") {\n this._current++;\n return {\n type: TOK_FLATTEN,\n value: \"[]\",\n start: start\n };\n } else {\n return {\n type: TOK_LBRACKET,\n value: \"[\",\n start: start\n };\n }\n },\n _consumeOperator: function _consumeOperator(stream) {\n var start = this._current;\n var startingChar = stream[start];\n this._current++;\n\n if (startingChar === \"!\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {\n type: TOK_NE,\n value: \"!=\",\n start: start\n };\n } else {\n return {\n type: TOK_NOT,\n value: \"!\",\n start: start\n };\n }\n } else if (startingChar === \"<\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {\n type: TOK_LTE,\n value: \"<=\",\n start: start\n };\n } else {\n return {\n type: TOK_LT,\n value: \"<\",\n start: start\n };\n }\n } else if (startingChar === \">\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {\n type: TOK_GTE,\n value: \">=\",\n start: start\n };\n } else {\n return {\n type: TOK_GT,\n value: \">\",\n start: start\n };\n }\n } else if (startingChar === \"=\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {\n type: TOK_EQ,\n value: \"==\",\n start: start\n };\n }\n }\n },\n _consumeLiteral: function _consumeLiteral(stream) {\n this._current++;\n var start = this._current;\n var maxLength = stream.length;\n var literal;\n\n while (stream[this._current] !== \"`\" && this._current < maxLength) {\n // You can escape a literal char or you can escape the escape.\n var current = this._current;\n\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" || stream[current + 1] === \"`\")) {\n current += 2;\n } else {\n current++;\n }\n\n this._current = current;\n }\n\n var literalString = trimLeft(stream.slice(start, this._current));\n literalString = literalString.replace(\"\\\\`\", \"`\");\n\n if (this._looksLikeJSON(literalString)) {\n literal = JSON.parse(literalString);\n } else {\n // Try to JSON parse it as \"\"\n literal = JSON.parse(\"\\\"\" + literalString + \"\\\"\");\n } // +1 gets us to the ending \"`\", +1 to move on to the next char.\n\n\n this._current++;\n return literal;\n },\n _looksLikeJSON: function _looksLikeJSON(literalString) {\n var startingChars = \"[{\\\"\";\n var jsonLiterals = [\"true\", \"false\", \"null\"];\n var numberLooking = \"-0123456789\";\n\n if (literalString === \"\") {\n return false;\n } else if (startingChars.indexOf(literalString[0]) >= 0) {\n return true;\n } else if (jsonLiterals.indexOf(literalString) >= 0) {\n return true;\n } else if (numberLooking.indexOf(literalString[0]) >= 0) {\n try {\n JSON.parse(literalString);\n return true;\n } catch (ex) {\n return false;\n }\n } else {\n return false;\n }\n }\n };\n var bindingPower = {};\n bindingPower[TOK_EOF] = 0;\n bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_QUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_RBRACKET] = 0;\n bindingPower[TOK_RPAREN] = 0;\n bindingPower[TOK_COMMA] = 0;\n bindingPower[TOK_RBRACE] = 0;\n bindingPower[TOK_NUMBER] = 0;\n bindingPower[TOK_CURRENT] = 0;\n bindingPower[TOK_EXPREF] = 0;\n bindingPower[TOK_PIPE] = 1;\n bindingPower[TOK_OR] = 2;\n bindingPower[TOK_AND] = 3;\n bindingPower[TOK_EQ] = 5;\n bindingPower[TOK_GT] = 5;\n bindingPower[TOK_LT] = 5;\n bindingPower[TOK_GTE] = 5;\n bindingPower[TOK_LTE] = 5;\n bindingPower[TOK_NE] = 5;\n bindingPower[TOK_FLATTEN] = 9;\n bindingPower[TOK_STAR] = 20;\n bindingPower[TOK_FILTER] = 21;\n bindingPower[TOK_DOT] = 40;\n bindingPower[TOK_NOT] = 45;\n bindingPower[TOK_LBRACE] = 50;\n bindingPower[TOK_LBRACKET] = 55;\n bindingPower[TOK_LPAREN] = 60;\n\n function Parser() {}\n\n Parser.prototype = {\n parse: function parse(expression) {\n this._loadTokens(expression);\n\n this.index = 0;\n var ast = this.expression(0);\n\n if (this._lookahead(0) !== TOK_EOF) {\n var t = this._lookaheadToken(0);\n\n var error = new Error(\"Unexpected token type: \" + t.type + \", value: \" + t.value);\n error.name = \"ParserError\";\n throw error;\n }\n\n return ast;\n },\n _loadTokens: function _loadTokens(expression) {\n var lexer = new Lexer();\n var tokens = lexer.tokenize(expression);\n tokens.push({\n type: TOK_EOF,\n value: \"\",\n start: expression.length\n });\n this.tokens = tokens;\n },\n expression: function expression(rbp) {\n var leftToken = this._lookaheadToken(0);\n\n this._advance();\n\n var left = this.nud(leftToken);\n\n var currentToken = this._lookahead(0);\n\n while (rbp < bindingPower[currentToken]) {\n this._advance();\n\n left = this.led(currentToken, left);\n currentToken = this._lookahead(0);\n }\n\n return left;\n },\n _lookahead: function _lookahead(number) {\n return this.tokens[this.index + number].type;\n },\n _lookaheadToken: function _lookaheadToken(number) {\n return this.tokens[this.index + number];\n },\n _advance: function _advance() {\n this.index++;\n },\n nud: function nud(token) {\n var left;\n var right;\n var expression;\n\n switch (token.type) {\n case TOK_LITERAL:\n return {\n type: \"Literal\",\n value: token.value\n };\n\n case TOK_UNQUOTEDIDENTIFIER:\n return {\n type: \"Field\",\n name: token.value\n };\n\n case TOK_QUOTEDIDENTIFIER:\n var node = {\n type: \"Field\",\n name: token.value\n };\n\n if (this._lookahead(0) === TOK_LPAREN) {\n throw new Error(\"Quoted identifier not allowed for function names.\");\n } else {\n return node;\n }\n\n break;\n\n case TOK_NOT:\n right = this.expression(bindingPower.Not);\n return {\n type: \"NotExpression\",\n children: [right]\n };\n\n case TOK_STAR:\n left = {\n type: \"Identity\"\n };\n right = null;\n\n if (this._lookahead(0) === TOK_RBRACKET) {\n // This can happen in a multiselect,\n // [a, b, *]\n right = {\n type: \"Identity\"\n };\n } else {\n right = this._parseProjectionRHS(bindingPower.Star);\n }\n\n return {\n type: \"ValueProjection\",\n children: [left, right]\n };\n\n case TOK_FILTER:\n return this.led(token.type, {\n type: \"Identity\"\n });\n\n case TOK_LBRACE:\n return this._parseMultiselectHash();\n\n case TOK_FLATTEN:\n left = {\n type: TOK_FLATTEN,\n children: [{\n type: \"Identity\"\n }]\n };\n right = this._parseProjectionRHS(bindingPower.Flatten);\n return {\n type: \"Projection\",\n children: [left, right]\n };\n\n case TOK_LBRACKET:\n if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice({\n type: \"Identity\"\n }, right);\n } else if (this._lookahead(0) === TOK_STAR && this._lookahead(1) === TOK_RBRACKET) {\n this._advance();\n\n this._advance();\n\n right = this._parseProjectionRHS(bindingPower.Star);\n return {\n type: \"Projection\",\n children: [{\n type: \"Identity\"\n }, right]\n };\n } else {\n return this._parseMultiselectList();\n }\n\n break;\n\n case TOK_CURRENT:\n return {\n type: TOK_CURRENT\n };\n\n case TOK_EXPREF:\n expression = this.expression(bindingPower.Expref);\n return {\n type: \"ExpressionReference\",\n children: [expression]\n };\n\n case TOK_LPAREN:\n var args = [];\n\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {\n type: TOK_CURRENT\n };\n\n this._advance();\n } else {\n expression = this.expression(0);\n }\n\n args.push(expression);\n }\n\n this._match(TOK_RPAREN);\n\n return args[0];\n\n default:\n this._errorToken(token);\n\n }\n },\n led: function led(tokenName, left) {\n var right;\n\n switch (tokenName) {\n case TOK_DOT:\n var rbp = bindingPower.Dot;\n\n if (this._lookahead(0) !== TOK_STAR) {\n right = this._parseDotRHS(rbp);\n return {\n type: \"Subexpression\",\n children: [left, right]\n };\n } else {\n // Creating a projection.\n this._advance();\n\n right = this._parseProjectionRHS(rbp);\n return {\n type: \"ValueProjection\",\n children: [left, right]\n };\n }\n\n break;\n\n case TOK_PIPE:\n right = this.expression(bindingPower.Pipe);\n return {\n type: TOK_PIPE,\n children: [left, right]\n };\n\n case TOK_OR:\n right = this.expression(bindingPower.Or);\n return {\n type: \"OrExpression\",\n children: [left, right]\n };\n\n case TOK_AND:\n right = this.expression(bindingPower.And);\n return {\n type: \"AndExpression\",\n children: [left, right]\n };\n\n case TOK_LPAREN:\n var name = left.name;\n var args = [];\n var expression, node;\n\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {\n type: TOK_CURRENT\n };\n\n this._advance();\n } else {\n expression = this.expression(0);\n }\n\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n }\n\n args.push(expression);\n }\n\n this._match(TOK_RPAREN);\n\n node = {\n type: \"Function\",\n name: name,\n children: args\n };\n return node;\n\n case TOK_FILTER:\n var condition = this.expression(0);\n\n this._match(TOK_RBRACKET);\n\n if (this._lookahead(0) === TOK_FLATTEN) {\n right = {\n type: \"Identity\"\n };\n } else {\n right = this._parseProjectionRHS(bindingPower.Filter);\n }\n\n return {\n type: \"FilterProjection\",\n children: [left, right, condition]\n };\n\n case TOK_FLATTEN:\n var leftNode = {\n type: TOK_FLATTEN,\n children: [left]\n };\n\n var rightNode = this._parseProjectionRHS(bindingPower.Flatten);\n\n return {\n type: \"Projection\",\n children: [leftNode, rightNode]\n };\n\n case TOK_EQ:\n case TOK_NE:\n case TOK_GT:\n case TOK_GTE:\n case TOK_LT:\n case TOK_LTE:\n return this._parseComparator(left, tokenName);\n\n case TOK_LBRACKET:\n var token = this._lookaheadToken(0);\n\n if (token.type === TOK_NUMBER || token.type === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice(left, right);\n } else {\n this._match(TOK_STAR);\n\n this._match(TOK_RBRACKET);\n\n right = this._parseProjectionRHS(bindingPower.Star);\n return {\n type: \"Projection\",\n children: [left, right]\n };\n }\n\n break;\n\n default:\n this._errorToken(this._lookaheadToken(0));\n\n }\n },\n _match: function _match(tokenType) {\n if (this._lookahead(0) === tokenType) {\n this._advance();\n } else {\n var t = this._lookaheadToken(0);\n\n var error = new Error(\"Expected \" + tokenType + \", got: \" + t.type);\n error.name = \"ParserError\";\n throw error;\n }\n },\n _errorToken: function _errorToken(token) {\n var error = new Error(\"Invalid token (\" + token.type + \"): \\\"\" + token.value + \"\\\"\");\n error.name = \"ParserError\";\n throw error;\n },\n _parseIndexExpression: function _parseIndexExpression() {\n if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) {\n return this._parseSliceExpression();\n } else {\n var node = {\n type: \"Index\",\n value: this._lookaheadToken(0).value\n };\n\n this._advance();\n\n this._match(TOK_RBRACKET);\n\n return node;\n }\n },\n _projectIfSlice: function _projectIfSlice(left, right) {\n var indexExpr = {\n type: \"IndexExpression\",\n children: [left, right]\n };\n\n if (right.type === \"Slice\") {\n return {\n type: \"Projection\",\n children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)]\n };\n } else {\n return indexExpr;\n }\n },\n _parseSliceExpression: function _parseSliceExpression() {\n // [start:end:step] where each part is optional, as well as the last\n // colon.\n var parts = [null, null, null];\n var index = 0;\n\n var currentToken = this._lookahead(0);\n\n while (currentToken !== TOK_RBRACKET && index < 3) {\n if (currentToken === TOK_COLON) {\n index++;\n\n this._advance();\n } else if (currentToken === TOK_NUMBER) {\n parts[index] = this._lookaheadToken(0).value;\n\n this._advance();\n } else {\n var t = this._lookahead(0);\n\n var error = new Error(\"Syntax error, unexpected token: \" + t.value + \"(\" + t.type + \")\");\n error.name = \"Parsererror\";\n throw error;\n }\n\n currentToken = this._lookahead(0);\n }\n\n this._match(TOK_RBRACKET);\n\n return {\n type: \"Slice\",\n children: parts\n };\n },\n _parseComparator: function _parseComparator(left, comparator) {\n var right = this.expression(bindingPower[comparator]);\n return {\n type: \"Comparator\",\n name: comparator,\n children: [left, right]\n };\n },\n _parseDotRHS: function _parseDotRHS(rbp) {\n var lookahead = this._lookahead(0);\n\n var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR];\n\n if (exprTokens.indexOf(lookahead) >= 0) {\n return this.expression(rbp);\n } else if (lookahead === TOK_LBRACKET) {\n this._match(TOK_LBRACKET);\n\n return this._parseMultiselectList();\n } else if (lookahead === TOK_LBRACE) {\n this._match(TOK_LBRACE);\n\n return this._parseMultiselectHash();\n }\n },\n _parseProjectionRHS: function _parseProjectionRHS(rbp) {\n var right;\n\n if (bindingPower[this._lookahead(0)] < 10) {\n right = {\n type: \"Identity\"\n };\n } else if (this._lookahead(0) === TOK_LBRACKET) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_FILTER) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_DOT) {\n this._match(TOK_DOT);\n\n right = this._parseDotRHS(rbp);\n } else {\n var t = this._lookaheadToken(0);\n\n var error = new Error(\"Sytanx error, unexpected token: \" + t.value + \"(\" + t.type + \")\");\n error.name = \"ParserError\";\n throw error;\n }\n\n return right;\n },\n _parseMultiselectList: function _parseMultiselectList() {\n var expressions = [];\n\n while (this._lookahead(0) !== TOK_RBRACKET) {\n var expression = this.expression(0);\n expressions.push(expression);\n\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n\n if (this._lookahead(0) === TOK_RBRACKET) {\n throw new Error(\"Unexpected token Rbracket\");\n }\n }\n }\n\n this._match(TOK_RBRACKET);\n\n return {\n type: \"MultiSelectList\",\n children: expressions\n };\n },\n _parseMultiselectHash: function _parseMultiselectHash() {\n var pairs = [];\n var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER];\n var keyToken, keyName, value, node;\n\n for (;;) {\n keyToken = this._lookaheadToken(0);\n\n if (identifierTypes.indexOf(keyToken.type) < 0) {\n throw new Error(\"Expecting an identifier token, got: \" + keyToken.type);\n }\n\n keyName = keyToken.value;\n\n this._advance();\n\n this._match(TOK_COLON);\n\n value = this.expression(0);\n node = {\n type: \"KeyValuePair\",\n name: keyName,\n value: value\n };\n pairs.push(node);\n\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n } else if (this._lookahead(0) === TOK_RBRACE) {\n this._match(TOK_RBRACE);\n\n break;\n }\n }\n\n return {\n type: \"MultiSelectHash\",\n children: pairs\n };\n }\n };\n\n function TreeInterpreter(runtime) {\n this.runtime = runtime;\n }\n\n TreeInterpreter.prototype = {\n search: function search(node, value) {\n return this.visit(node, value);\n },\n visit: function visit(node, value) {\n var matched, current, result, first, second, field, left, right, collected, i;\n\n switch (node.type) {\n case \"Field\":\n if (value === null) {\n return null;\n } else if (isObject(value)) {\n field = value[node.name];\n\n if (field === undefined) {\n return null;\n } else {\n return field;\n }\n } else {\n return null;\n }\n\n break;\n\n case \"Subexpression\":\n result = this.visit(node.children[0], value);\n\n for (i = 1; i < node.children.length; i++) {\n result = this.visit(node.children[1], result);\n\n if (result === null) {\n return null;\n }\n }\n\n return result;\n\n case \"IndexExpression\":\n left = this.visit(node.children[0], value);\n right = this.visit(node.children[1], left);\n return right;\n\n case \"Index\":\n if (!isArray(value)) {\n return null;\n }\n\n var index = node.value;\n\n if (index < 0) {\n index = value.length + index;\n }\n\n result = value[index];\n\n if (result === undefined) {\n result = null;\n }\n\n return result;\n\n case \"Slice\":\n if (!isArray(value)) {\n return null;\n }\n\n var sliceParams = node.children.slice(0);\n var computed = this.computeSliceParams(value.length, sliceParams);\n var start = computed[0];\n var stop = computed[1];\n var step = computed[2];\n result = [];\n\n if (step > 0) {\n for (i = start; i < stop; i += step) {\n result.push(value[i]);\n }\n } else {\n for (i = start; i > stop; i += step) {\n result.push(value[i]);\n }\n }\n\n return result;\n\n case \"Projection\":\n // Evaluate left child.\n var base = this.visit(node.children[0], value);\n\n if (!isArray(base)) {\n return null;\n }\n\n collected = [];\n\n for (i = 0; i < base.length; i++) {\n current = this.visit(node.children[1], base[i]);\n\n if (current !== null) {\n collected.push(current);\n }\n }\n\n return collected;\n\n case \"ValueProjection\":\n // Evaluate left child.\n base = this.visit(node.children[0], value);\n\n if (!isObject(base)) {\n return null;\n }\n\n collected = [];\n var values = objValues(base);\n\n for (i = 0; i < values.length; i++) {\n current = this.visit(node.children[1], values[i]);\n\n if (current !== null) {\n collected.push(current);\n }\n }\n\n return collected;\n\n case \"FilterProjection\":\n base = this.visit(node.children[0], value);\n\n if (!isArray(base)) {\n return null;\n }\n\n var filtered = [];\n var finalResults = [];\n\n for (i = 0; i < base.length; i++) {\n matched = this.visit(node.children[2], base[i]);\n\n if (!isFalse(matched)) {\n filtered.push(base[i]);\n }\n }\n\n for (var j = 0; j < filtered.length; j++) {\n current = this.visit(node.children[1], filtered[j]);\n\n if (current !== null) {\n finalResults.push(current);\n }\n }\n\n return finalResults;\n\n case \"Comparator\":\n first = this.visit(node.children[0], value);\n second = this.visit(node.children[1], value);\n\n switch (node.name) {\n case TOK_EQ:\n result = strictDeepEqual(first, second);\n break;\n\n case TOK_NE:\n result = !strictDeepEqual(first, second);\n break;\n\n case TOK_GT:\n result = first > second;\n break;\n\n case TOK_GTE:\n result = first >= second;\n break;\n\n case TOK_LT:\n result = first < second;\n break;\n\n case TOK_LTE:\n result = first <= second;\n break;\n\n default:\n throw new Error(\"Unknown comparator: \" + node.name);\n }\n\n return result;\n\n case TOK_FLATTEN:\n var original = this.visit(node.children[0], value);\n\n if (!isArray(original)) {\n return null;\n }\n\n var merged = [];\n\n for (i = 0; i < original.length; i++) {\n current = original[i];\n\n if (isArray(current)) {\n merged.push.apply(merged, current);\n } else {\n merged.push(current);\n }\n }\n\n return merged;\n\n case \"Identity\":\n return value;\n\n case \"MultiSelectList\":\n if (value === null) {\n return null;\n }\n\n collected = [];\n\n for (i = 0; i < node.children.length; i++) {\n collected.push(this.visit(node.children[i], value));\n }\n\n return collected;\n\n case \"MultiSelectHash\":\n if (value === null) {\n return null;\n }\n\n collected = {};\n var child;\n\n for (i = 0; i < node.children.length; i++) {\n child = node.children[i];\n collected[child.name] = this.visit(child.value, value);\n }\n\n return collected;\n\n case \"OrExpression\":\n matched = this.visit(node.children[0], value);\n\n if (isFalse(matched)) {\n matched = this.visit(node.children[1], value);\n }\n\n return matched;\n\n case \"AndExpression\":\n first = this.visit(node.children[0], value);\n\n if (isFalse(first) === true) {\n return first;\n }\n\n return this.visit(node.children[1], value);\n\n case \"NotExpression\":\n first = this.visit(node.children[0], value);\n return isFalse(first);\n\n case \"Literal\":\n return node.value;\n\n case TOK_PIPE:\n left = this.visit(node.children[0], value);\n return this.visit(node.children[1], left);\n\n case TOK_CURRENT:\n return value;\n\n case \"Function\":\n var resolvedArgs = [];\n\n for (i = 0; i < node.children.length; i++) {\n resolvedArgs.push(this.visit(node.children[i], value));\n }\n\n return this.runtime.callFunction(node.name, resolvedArgs);\n\n case \"ExpressionReference\":\n var refNode = node.children[0]; // Tag the node with a specific attribute so the type\n // checker verify the type.\n\n refNode.jmespathType = TOK_EXPREF;\n return refNode;\n\n default:\n throw new Error(\"Unknown node type: \" + node.type);\n }\n },\n computeSliceParams: function computeSliceParams(arrayLength, sliceParams) {\n var start = sliceParams[0];\n var stop = sliceParams[1];\n var step = sliceParams[2];\n var computed = [null, null, null];\n\n if (step === null) {\n step = 1;\n } else if (step === 0) {\n var error = new Error(\"Invalid slice, step cannot be 0\");\n error.name = \"RuntimeError\";\n throw error;\n }\n\n var stepValueNegative = step < 0 ? true : false;\n\n if (start === null) {\n start = stepValueNegative ? arrayLength - 1 : 0;\n } else {\n start = this.capSliceRange(arrayLength, start, step);\n }\n\n if (stop === null) {\n stop = stepValueNegative ? -1 : arrayLength;\n } else {\n stop = this.capSliceRange(arrayLength, stop, step);\n }\n\n computed[0] = start;\n computed[1] = stop;\n computed[2] = step;\n return computed;\n },\n capSliceRange: function capSliceRange(arrayLength, actualValue, step) {\n if (actualValue < 0) {\n actualValue += arrayLength;\n\n if (actualValue < 0) {\n actualValue = step < 0 ? -1 : 0;\n }\n } else if (actualValue >= arrayLength) {\n actualValue = step < 0 ? arrayLength - 1 : arrayLength;\n }\n\n return actualValue;\n }\n };\n\n function Runtime(interpreter) {\n this._interpreter = interpreter;\n this.functionTable = {\n // name: [function, ]\n // The can be:\n //\n // {\n // args: [[type1, type2], [type1, type2]],\n // variadic: true|false\n // }\n //\n // Each arg in the arg list is a list of valid types\n // (if the function is overloaded and supports multiple\n // types. If the type is \"any\" then no type checking\n // occurs on the argument. Variadic is optional\n // and if not provided is assumed to be false.\n abs: {\n _func: this._functionAbs,\n _signature: [{\n types: [TYPE_NUMBER]\n }]\n },\n avg: {\n _func: this._functionAvg,\n _signature: [{\n types: [TYPE_ARRAY_NUMBER]\n }]\n },\n ceil: {\n _func: this._functionCeil,\n _signature: [{\n types: [TYPE_NUMBER]\n }]\n },\n contains: {\n _func: this._functionContains,\n _signature: [{\n types: [TYPE_STRING, TYPE_ARRAY]\n }, {\n types: [TYPE_ANY]\n }]\n },\n \"ends_with\": {\n _func: this._functionEndsWith,\n _signature: [{\n types: [TYPE_STRING]\n }, {\n types: [TYPE_STRING]\n }]\n },\n floor: {\n _func: this._functionFloor,\n _signature: [{\n types: [TYPE_NUMBER]\n }]\n },\n length: {\n _func: this._functionLength,\n _signature: [{\n types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]\n }]\n },\n map: {\n _func: this._functionMap,\n _signature: [{\n types: [TYPE_EXPREF]\n }, {\n types: [TYPE_ARRAY]\n }]\n },\n max: {\n _func: this._functionMax,\n _signature: [{\n types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]\n }]\n },\n \"merge\": {\n _func: this._functionMerge,\n _signature: [{\n types: [TYPE_OBJECT],\n variadic: true\n }]\n },\n \"max_by\": {\n _func: this._functionMaxBy,\n _signature: [{\n types: [TYPE_ARRAY]\n }, {\n types: [TYPE_EXPREF]\n }]\n },\n sum: {\n _func: this._functionSum,\n _signature: [{\n types: [TYPE_ARRAY_NUMBER]\n }]\n },\n \"starts_with\": {\n _func: this._functionStartsWith,\n _signature: [{\n types: [TYPE_STRING]\n }, {\n types: [TYPE_STRING]\n }]\n },\n min: {\n _func: this._functionMin,\n _signature: [{\n types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]\n }]\n },\n \"min_by\": {\n _func: this._functionMinBy,\n _signature: [{\n types: [TYPE_ARRAY]\n }, {\n types: [TYPE_EXPREF]\n }]\n },\n type: {\n _func: this._functionType,\n _signature: [{\n types: [TYPE_ANY]\n }]\n },\n keys: {\n _func: this._functionKeys,\n _signature: [{\n types: [TYPE_OBJECT]\n }]\n },\n values: {\n _func: this._functionValues,\n _signature: [{\n types: [TYPE_OBJECT]\n }]\n },\n sort: {\n _func: this._functionSort,\n _signature: [{\n types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]\n }]\n },\n \"sort_by\": {\n _func: this._functionSortBy,\n _signature: [{\n types: [TYPE_ARRAY]\n }, {\n types: [TYPE_EXPREF]\n }]\n },\n join: {\n _func: this._functionJoin,\n _signature: [{\n types: [TYPE_STRING]\n }, {\n types: [TYPE_ARRAY_STRING]\n }]\n },\n reverse: {\n _func: this._functionReverse,\n _signature: [{\n types: [TYPE_STRING, TYPE_ARRAY]\n }]\n },\n \"to_array\": {\n _func: this._functionToArray,\n _signature: [{\n types: [TYPE_ANY]\n }]\n },\n \"to_string\": {\n _func: this._functionToString,\n _signature: [{\n types: [TYPE_ANY]\n }]\n },\n \"to_number\": {\n _func: this._functionToNumber,\n _signature: [{\n types: [TYPE_ANY]\n }]\n },\n \"not_null\": {\n _func: this._functionNotNull,\n _signature: [{\n types: [TYPE_ANY],\n variadic: true\n }]\n }\n };\n }\n\n Runtime.prototype = {\n callFunction: function callFunction(name, resolvedArgs) {\n var functionEntry = this.functionTable[name];\n\n if (functionEntry === undefined) {\n throw new Error(\"Unknown function: \" + name + \"()\");\n }\n\n this._validateArgs(name, resolvedArgs, functionEntry._signature);\n\n return functionEntry._func.call(this, resolvedArgs);\n },\n _validateArgs: function _validateArgs(name, args, signature) {\n // Validating the args requires validating\n // the correct arity and the correct type of each arg.\n // If the last argument is declared as variadic, then we need\n // a minimum number of args to be required. Otherwise it has to\n // be an exact amount.\n var pluralized;\n\n if (signature[signature.length - 1].variadic) {\n if (args.length < signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" + \"takes at least\" + signature.length + pluralized + \" but received \" + args.length);\n }\n } else if (args.length !== signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" + \"takes \" + signature.length + pluralized + \" but received \" + args.length);\n }\n\n var currentSpec;\n var actualType;\n var typeMatched;\n\n for (var i = 0; i < signature.length; i++) {\n typeMatched = false;\n currentSpec = signature[i].types;\n actualType = this._getTypeName(args[i]);\n\n for (var j = 0; j < currentSpec.length; j++) {\n if (this._typeMatches(actualType, currentSpec[j], args[i])) {\n typeMatched = true;\n break;\n }\n }\n\n if (!typeMatched) {\n throw new Error(\"TypeError: \" + name + \"() \" + \"expected argument \" + (i + 1) + \" to be type \" + currentSpec + \" but received type \" + actualType + \" instead.\");\n }\n }\n },\n _typeMatches: function _typeMatches(actual, expected, argValue) {\n if (expected === TYPE_ANY) {\n return true;\n }\n\n if (expected === TYPE_ARRAY_STRING || expected === TYPE_ARRAY_NUMBER || expected === TYPE_ARRAY) {\n // The expected type can either just be array,\n // or it can require a specific subtype (array of numbers).\n //\n // The simplest case is if \"array\" with no subtype is specified.\n if (expected === TYPE_ARRAY) {\n return actual === TYPE_ARRAY;\n } else if (actual === TYPE_ARRAY) {\n // Otherwise we need to check subtypes.\n // I think this has potential to be improved.\n var subtype;\n\n if (expected === TYPE_ARRAY_NUMBER) {\n subtype = TYPE_NUMBER;\n } else if (expected === TYPE_ARRAY_STRING) {\n subtype = TYPE_STRING;\n }\n\n for (var i = 0; i < argValue.length; i++) {\n if (!this._typeMatches(this._getTypeName(argValue[i]), subtype, argValue[i])) {\n return false;\n }\n }\n\n return true;\n }\n } else {\n return actual === expected;\n }\n },\n _getTypeName: function _getTypeName(obj) {\n switch (Object.prototype.toString.call(obj)) {\n case \"[object String]\":\n return TYPE_STRING;\n\n case \"[object Number]\":\n return TYPE_NUMBER;\n\n case \"[object Array]\":\n return TYPE_ARRAY;\n\n case \"[object Boolean]\":\n return TYPE_BOOLEAN;\n\n case \"[object Null]\":\n return TYPE_NULL;\n\n case \"[object Object]\":\n // Check if it's an expref. If it has, it's been\n // tagged with a jmespathType attr of 'Expref';\n if (obj.jmespathType === TOK_EXPREF) {\n return TYPE_EXPREF;\n } else {\n return TYPE_OBJECT;\n }\n\n }\n },\n _functionStartsWith: function _functionStartsWith(resolvedArgs) {\n return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0;\n },\n _functionEndsWith: function _functionEndsWith(resolvedArgs) {\n var searchStr = resolvedArgs[0];\n var suffix = resolvedArgs[1];\n return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1;\n },\n _functionReverse: function _functionReverse(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n\n if (typeName === TYPE_STRING) {\n var originalStr = resolvedArgs[0];\n var reversedStr = \"\";\n\n for (var i = originalStr.length - 1; i >= 0; i--) {\n reversedStr += originalStr[i];\n }\n\n return reversedStr;\n } else {\n var reversedArray = resolvedArgs[0].slice(0);\n reversedArray.reverse();\n return reversedArray;\n }\n },\n _functionAbs: function _functionAbs(resolvedArgs) {\n return Math.abs(resolvedArgs[0]);\n },\n _functionCeil: function _functionCeil(resolvedArgs) {\n return Math.ceil(resolvedArgs[0]);\n },\n _functionAvg: function _functionAvg(resolvedArgs) {\n var sum = 0;\n var inputArray = resolvedArgs[0];\n\n for (var i = 0; i < inputArray.length; i++) {\n sum += inputArray[i];\n }\n\n return sum / inputArray.length;\n },\n _functionContains: function _functionContains(resolvedArgs) {\n return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0;\n },\n _functionFloor: function _functionFloor(resolvedArgs) {\n return Math.floor(resolvedArgs[0]);\n },\n _functionLength: function _functionLength(resolvedArgs) {\n if (!isObject(resolvedArgs[0])) {\n return resolvedArgs[0].length;\n } else {\n // As far as I can tell, there's no way to get the length\n // of an object without O(n) iteration through the object.\n return Object.keys(resolvedArgs[0]).length;\n }\n },\n _functionMap: function _functionMap(resolvedArgs) {\n var mapped = [];\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[0];\n var elements = resolvedArgs[1];\n\n for (var i = 0; i < elements.length; i++) {\n mapped.push(interpreter.visit(exprefNode, elements[i]));\n }\n\n return mapped;\n },\n _functionMerge: function _functionMerge(resolvedArgs) {\n var merged = {};\n\n for (var i = 0; i < resolvedArgs.length; i++) {\n var current = resolvedArgs[i];\n\n for (var key in current) {\n merged[key] = current[key];\n }\n }\n\n return merged;\n },\n _functionMax: function _functionMax(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n\n if (typeName === TYPE_NUMBER) {\n return Math.max.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var maxElement = elements[0];\n\n for (var i = 1; i < elements.length; i++) {\n if (maxElement.localeCompare(elements[i]) < 0) {\n maxElement = elements[i];\n }\n }\n\n return maxElement;\n }\n } else {\n return null;\n }\n },\n _functionMin: function _functionMin(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n\n if (typeName === TYPE_NUMBER) {\n return Math.min.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var minElement = elements[0];\n\n for (var i = 1; i < elements.length; i++) {\n if (elements[i].localeCompare(minElement) < 0) {\n minElement = elements[i];\n }\n }\n\n return minElement;\n }\n } else {\n return null;\n }\n },\n _functionSum: function _functionSum(resolvedArgs) {\n var sum = 0;\n var listToSum = resolvedArgs[0];\n\n for (var i = 0; i < listToSum.length; i++) {\n sum += listToSum[i];\n }\n\n return sum;\n },\n _functionType: function _functionType(resolvedArgs) {\n switch (this._getTypeName(resolvedArgs[0])) {\n case TYPE_NUMBER:\n return \"number\";\n\n case TYPE_STRING:\n return \"string\";\n\n case TYPE_ARRAY:\n return \"array\";\n\n case TYPE_OBJECT:\n return \"object\";\n\n case TYPE_BOOLEAN:\n return \"boolean\";\n\n case TYPE_EXPREF:\n return \"expref\";\n\n case TYPE_NULL:\n return \"null\";\n }\n },\n _functionKeys: function _functionKeys(resolvedArgs) {\n return Object.keys(resolvedArgs[0]);\n },\n _functionValues: function _functionValues(resolvedArgs) {\n var obj = resolvedArgs[0];\n var keys = Object.keys(obj);\n var values = [];\n\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n\n return values;\n },\n _functionJoin: function _functionJoin(resolvedArgs) {\n var joinChar = resolvedArgs[0];\n var listJoin = resolvedArgs[1];\n return listJoin.join(joinChar);\n },\n _functionToArray: function _functionToArray(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) {\n return resolvedArgs[0];\n } else {\n return [resolvedArgs[0]];\n }\n },\n _functionToString: function _functionToString(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) {\n return resolvedArgs[0];\n } else {\n return JSON.stringify(resolvedArgs[0]);\n }\n },\n _functionToNumber: function _functionToNumber(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n\n var convertedValue;\n\n if (typeName === TYPE_NUMBER) {\n return resolvedArgs[0];\n } else if (typeName === TYPE_STRING) {\n convertedValue = +resolvedArgs[0];\n\n if (!isNaN(convertedValue)) {\n return convertedValue;\n }\n }\n\n return null;\n },\n _functionNotNull: function _functionNotNull(resolvedArgs) {\n for (var i = 0; i < resolvedArgs.length; i++) {\n if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) {\n return resolvedArgs[i];\n }\n }\n\n return null;\n },\n _functionSort: function _functionSort(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n sortedArray.sort();\n return sortedArray;\n },\n _functionSortBy: function _functionSortBy(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n\n if (sortedArray.length === 0) {\n return sortedArray;\n }\n\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[1];\n\n var requiredType = this._getTypeName(interpreter.visit(exprefNode, sortedArray[0]));\n\n if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) {\n throw new Error(\"TypeError\");\n }\n\n var that = this; // In order to get a stable sort out of an unstable\n // sort algorithm, we decorate/sort/undecorate (DSU)\n // by creating a new list of [index, element] pairs.\n // In the cmp function, if the evaluated elements are\n // equal, then the index will be used as the tiebreaker.\n // After the decorated list has been sorted, it will be\n // undecorated to extract the original elements.\n\n var decorated = [];\n\n for (var i = 0; i < sortedArray.length; i++) {\n decorated.push([i, sortedArray[i]]);\n }\n\n decorated.sort(function (a, b) {\n var exprA = interpreter.visit(exprefNode, a[1]);\n var exprB = interpreter.visit(exprefNode, b[1]);\n\n if (that._getTypeName(exprA) !== requiredType) {\n throw new Error(\"TypeError: expected \" + requiredType + \", received \" + that._getTypeName(exprA));\n } else if (that._getTypeName(exprB) !== requiredType) {\n throw new Error(\"TypeError: expected \" + requiredType + \", received \" + that._getTypeName(exprB));\n }\n\n if (exprA > exprB) {\n return 1;\n } else if (exprA < exprB) {\n return -1;\n } else {\n // If they're equal compare the items by their\n // order to maintain relative order of equal keys\n // (i.e. to get a stable sort).\n return a[0] - b[0];\n }\n }); // Undecorate: extract out the original list elements.\n\n for (var j = 0; j < decorated.length; j++) {\n sortedArray[j] = decorated[j][1];\n }\n\n return sortedArray;\n },\n _functionMaxBy: function _functionMaxBy(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var maxNumber = -Infinity;\n var maxRecord;\n var current;\n\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n\n if (current > maxNumber) {\n maxNumber = current;\n maxRecord = resolvedArray[i];\n }\n }\n\n return maxRecord;\n },\n _functionMinBy: function _functionMinBy(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var minNumber = Infinity;\n var minRecord;\n var current;\n\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n\n if (current < minNumber) {\n minNumber = current;\n minRecord = resolvedArray[i];\n }\n }\n\n return minRecord;\n },\n createKeyFunction: function createKeyFunction(exprefNode, allowedTypes) {\n var that = this;\n var interpreter = this._interpreter;\n\n var keyFunc = function keyFunc(x) {\n var current = interpreter.visit(exprefNode, x);\n\n if (allowedTypes.indexOf(that._getTypeName(current)) < 0) {\n var msg = \"TypeError: expected one of \" + allowedTypes + \", received \" + that._getTypeName(current);\n\n throw new Error(msg);\n }\n\n return current;\n };\n\n return keyFunc;\n }\n };\n\n function compile(stream) {\n var parser = new Parser();\n var ast = parser.parse(stream);\n return ast;\n }\n\n function tokenize(stream) {\n var lexer = new Lexer();\n return lexer.tokenize(stream);\n }\n\n function search(data, expression) {\n var parser = new Parser(); // This needs to be improved. Both the interpreter and runtime depend on\n // each other. The runtime needs the interpreter to support exprefs.\n // There's likely a clean way to avoid the cyclic dependency.\n\n var runtime = new Runtime();\n var interpreter = new TreeInterpreter(runtime);\n runtime._interpreter = interpreter;\n var node = parser.parse(expression);\n return interpreter.search(node, data);\n }\n\n exports.tokenize = tokenize;\n exports.compile = compile;\n exports.search = search;\n exports.strictDeepEqual = strictDeepEqual;\n})(typeof exports === \"undefined\" ? this.jmespath = {} : exports);","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;\n\n(function (factory) {\n var registeredInModuleLoader;\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n registeredInModuleLoader = true;\n }\n\n if (typeof exports === 'object') {\n module.exports = factory();\n registeredInModuleLoader = true;\n }\n\n if (!registeredInModuleLoader) {\n var OldCookies = window.Cookies;\n var api = window.Cookies = factory();\n\n api.noConflict = function () {\n window.Cookies = OldCookies;\n return api;\n };\n }\n})(function () {\n function extend() {\n var i = 0;\n var result = {};\n\n for (; i < arguments.length; i++) {\n var attributes = arguments[i];\n\n for (var key in attributes) {\n result[key] = attributes[key];\n }\n }\n\n return result;\n }\n\n function decode(s) {\n return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n\n function init(converter) {\n function api() {}\n\n function set(key, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n\n attributes = extend({\n path: '/'\n }, api.defaults, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n } // We're using \"expires\" because \"max-age\" is not supported by IE\n\n\n attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n try {\n var result = JSON.stringify(value);\n\n if (/^[\\{\\[]/.test(result)) {\n value = result;\n }\n } catch (e) {}\n\n value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n key = encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var stringifiedAttributes = '';\n\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue;\n } // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n\n\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return document.cookie = key + '=' + value + stringifiedAttributes;\n }\n\n function get(key, json) {\n if (typeof document === 'undefined') {\n return;\n }\n\n var jar = {}; // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var i = 0;\n\n for (; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var cookie = parts.slice(1).join('=');\n\n if (!json && cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n\n try {\n var name = decode(parts[0]);\n cookie = (converter.read || converter)(cookie, name) || decode(cookie);\n\n if (json) {\n try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n }\n\n jar[name] = cookie;\n\n if (key === name) {\n break;\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar;\n }\n\n api.set = set;\n\n api.get = function (key) {\n return get(key, false\n /* read as raw */\n );\n };\n\n api.getJSON = function (key) {\n return get(key, true\n /* read as json */\n );\n };\n\n api.remove = function (key, attributes) {\n set(key, '', extend(attributes, {\n expires: -1\n }));\n };\n\n api.defaults = {};\n api.withConverter = init;\n return api;\n }\n\n return init(function () {});\n});","import root from './_root.js';\n/** Detect free variable `exports`. */\n\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\nexport default freeGlobal;","import freeGlobal from './_freeGlobal.js';\n/** Detect free variable `exports`. */\n\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Detect free variable `process` from Node.js. */\n\nvar freeProcess = moduleExports && freeGlobal.process;\n/** Used to access faster Node.js helpers. */\n\nvar nodeUtil = function () {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n } // Legacy `process.binding('util')` for Node.js < 10.\n\n\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}();\n\nexport default nodeUtil;","import freeGlobal from './_freeGlobal.js';\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nexport default root;","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n/** Detect free variable `exports`. */\n\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n\nvar isBuffer = nativeIsBuffer || stubFalse;\nexport default isBuffer;","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {\n style: {\n 'object-position': 1\n }\n} : new Image();\nvar supportsObjectFit = ('object-fit' in testImg.style);\nvar supportsObjectPosition = ('object-position' in testImg.style);\nvar supportsOFI = ('background-size' in testImg.style);\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\";\n}\n\nfunction polyfillCurrentSrc(el) {\n if (el.srcset && !supportsCurrentSrc && window.picturefill) {\n var pf = window.picturefill._; // parse srcset with picturefill where currentSrc isn't available\n\n if (!el[pf.ns] || !el[pf.ns].evaled) {\n // force synchronous srcset parsing\n pf.fillImg(el, {\n reselect: true\n });\n }\n\n if (!el[pf.ns].curSrc) {\n // force picturefill to parse srcset\n el[pf.ns].supported = false;\n pf.fillImg(el, {\n reselect: true\n });\n } // retrieve parsed currentSrc, if any\n\n\n el.currentSrc = el[pf.ns].curSrc || el.src;\n }\n}\n\nfunction getStyle(el) {\n var style = getComputedStyle(el).fontFamily;\n var parsed;\n var props = {};\n\n while ((parsed = propRegex.exec(style)) !== null) {\n props[parsed[1]] = parsed[2];\n }\n\n return props;\n}\n\nfunction setPlaceholder(img, width, height) {\n // Default: fill width, no height\n var placeholder = createPlaceholder(width || 1, height || 0); // Only set placeholder if it's different\n\n if (nativeGetAttribute.call(img, 'src') !== placeholder) {\n nativeSetAttribute.call(img, 'src', placeholder);\n }\n}\n\nfunction onImageReady(img, callback) {\n // naturalWidth is only available when the image headers are loaded,\n // this loop will poll it every 100ms.\n if (img.naturalWidth) {\n callback(img);\n } else {\n setTimeout(onImageReady, 100, img, callback);\n }\n}\n\nfunction fixOne(el) {\n var style = getStyle(el);\n var ofi = el[OFI];\n style['object-fit'] = style['object-fit'] || 'fill'; // default value\n // Avoid running where unnecessary, unless OFI had already done its deed\n\n if (!ofi.img) {\n // fill is the default behavior so no action is necessary\n if (style['object-fit'] === 'fill') {\n return;\n } // Where object-fit is supported and object-position isn't (Safari < 10)\n\n\n if (!ofi.skipTest && // unless user wants to apply regardless of browser support\n supportsObjectFit && // if browser already supports object-fit\n !style['object-position'] // unless object-position is used\n ) {\n return;\n }\n } // keep a clone in memory while resetting the original to a blank\n\n\n if (!ofi.img) {\n ofi.img = new Image(el.width, el.height);\n ofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n ofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src; // preserve for any future cloneNode calls\n // https://github.com/bfred-it/object-fit-images/issues/53\n\n nativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\n if (el.srcset) {\n nativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n }\n\n setPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height); // remove srcset because it overrides src\n\n if (el.srcset) {\n el.srcset = '';\n }\n\n try {\n keepSrcUsable(el);\n } catch (err) {\n if (window.console) {\n console.warn('https://bit.ly/ofi-old-browser');\n }\n }\n }\n\n polyfillCurrentSrc(ofi.img);\n el.style.backgroundImage = \"url(\\\"\" + (ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"') + \"\\\")\";\n el.style.backgroundPosition = style['object-position'] || 'center';\n el.style.backgroundRepeat = 'no-repeat';\n el.style.backgroundOrigin = 'content-box';\n\n if (/scale-down/.test(style['object-fit'])) {\n onImageReady(ofi.img, function () {\n if (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n el.style.backgroundSize = 'contain';\n } else {\n el.style.backgroundSize = 'auto';\n }\n });\n } else {\n el.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n }\n\n onImageReady(ofi.img, function (img) {\n setPlaceholder(el, img.naturalWidth, img.naturalHeight);\n });\n}\n\nfunction keepSrcUsable(el) {\n var descriptors = {\n get: function get(prop) {\n return el[OFI].img[prop ? prop : 'src'];\n },\n set: function set(value, prop) {\n el[OFI].img[prop ? prop : 'src'] = value;\n nativeSetAttribute.call(el, \"data-ofi-\" + prop, value); // preserve for any future cloneNode\n\n fixOne(el);\n return value;\n }\n };\n Object.defineProperty(el, 'src', descriptors);\n Object.defineProperty(el, 'currentSrc', {\n get: function get() {\n return descriptors.get('currentSrc');\n }\n });\n Object.defineProperty(el, 'srcset', {\n get: function get() {\n return descriptors.get('srcset');\n },\n set: function set(ss) {\n return descriptors.set(ss, 'srcset');\n }\n });\n}\n\nfunction hijackAttributes() {\n function getOfiImageMaybe(el, name) {\n return el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n }\n\n if (!supportsObjectPosition) {\n HTMLImageElement.prototype.getAttribute = function (name) {\n return nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n };\n\n HTMLImageElement.prototype.setAttribute = function (name, value) {\n return nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n };\n }\n}\n\nfunction fix(imgs, opts) {\n var startAutoMode = !autoModeEnabled && !imgs;\n opts = opts || {};\n imgs = imgs || 'img';\n\n if (supportsObjectPosition && !opts.skipTest || !supportsOFI) {\n return false;\n } // use imgs as a selector or just select all images\n\n\n if (imgs === 'img') {\n imgs = document.getElementsByTagName('img');\n } else if (typeof imgs === 'string') {\n imgs = document.querySelectorAll(imgs);\n } else if (!('length' in imgs)) {\n imgs = [imgs];\n } // apply fix to all\n\n\n for (var i = 0; i < imgs.length; i++) {\n imgs[i][OFI] = imgs[i][OFI] || {\n skipTest: opts.skipTest\n };\n fixOne(imgs[i]);\n }\n\n if (startAutoMode) {\n document.body.addEventListener('load', function (e) {\n if (e.target.tagName === 'IMG') {\n fix(e.target, {\n skipTest: opts.skipTest\n });\n }\n }, true);\n autoModeEnabled = true;\n imgs = 'img'; // reset to a generic selector for watchMQ\n } // if requested, watch media queries for object-fit change\n\n\n if (opts.watchMQ) {\n window.addEventListener('resize', fix.bind(null, imgs, {\n skipTest: opts.skipTest\n }));\n }\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\nhijackAttributes();\nmodule.exports = fix;","'use strict';\n\nvar numberIsNaN = function numberIsNaN(value) {\n return value !== value;\n};\n\nmodule.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n\n if (a === b) {\n return true;\n }\n\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n\n return false;\n};","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\ndefine(polyfill, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = polyfill;","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n return typeof Object.is === 'function' ? Object.is : implementation;\n};","'use strict';\n\nvar getPolyfill = require('./polyfill');\n\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n var polyfill = getPolyfill();\n define(Object, {\n is: polyfill\n }, {\n is: function testObjectIs() {\n return Object.is !== polyfill;\n }\n });\n return polyfill;\n};","'use strict';\n\nvar keysShim;\n\nif (!Object.keys) {\n // modified from https://github.com/es-shims/es5-shim\n var has = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n\n var isArgs = require('./isArguments'); // eslint-disable-line global-require\n\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var hasDontEnumBug = !isEnumerable.call({\n toString: null\n }, 'toString');\n var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n\n var equalsConstructorPrototype = function equalsConstructorPrototype(o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n\n var excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $onmozfullscreenchange: true,\n $onmozfullscreenerror: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true\n };\n\n var hasAutomationEqualityBug = function () {\n /* global window */\n if (typeof window === 'undefined') {\n return false;\n }\n\n for (var k in window) {\n try {\n if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n try {\n equalsConstructorPrototype(window[k]);\n } catch (e) {\n return true;\n }\n }\n } catch (e) {\n return true;\n }\n }\n\n return false;\n }();\n\n var equalsConstructorPrototypeIfNotBuggy = function equalsConstructorPrototypeIfNotBuggy(o) {\n /* global window */\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(o);\n }\n\n try {\n return equalsConstructorPrototype(o);\n } catch (e) {\n return false;\n }\n };\n\n keysShim = function keys(object) {\n var isObject = object !== null && typeof object === 'object';\n var isFunction = toStr.call(object) === '[object Function]';\n var isArguments = isArgs(object);\n var isString = isObject && toStr.call(object) === '[object String]';\n var theKeys = [];\n\n if (!isObject && !isFunction && !isArguments) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var skipProto = hasProtoEnumBug && isFunction;\n\n if (isString && object.length > 0 && !has.call(object, 0)) {\n for (var i = 0; i < object.length; ++i) {\n theKeys.push(String(i));\n }\n }\n\n if (isArguments && object.length > 0) {\n for (var j = 0; j < object.length; ++j) {\n theKeys.push(String(j));\n }\n } else {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && has.call(object, name)) {\n theKeys.push(String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n for (var k = 0; k < dontEnums.length; ++k) {\n if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n theKeys.push(dontEnums[k]);\n }\n }\n }\n\n return theKeys;\n };\n}\n\nmodule.exports = keysShim;","'use strict';\n\nvar slice = Array.prototype.slice;\n\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n} : require('./implementation');\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function () {\n // Safari 5.0 bug\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n // eslint-disable-line func-name-matching\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n\n return Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === '[object Arguments]';\n\n if (!isArgs) {\n isArgs = str !== '[object Array]' && value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value.callee) === '[object Function]';\n }\n\n return isArgs;\n};","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nvar defaultMakeData = function defaultMakeData() {\n return Object.create(null);\n}; // Useful for processing arguments objects as well as arrays.\n\n\nvar _a = Array.prototype,\n forEach = _a.forEach,\n slice = _a.slice;\n\nvar Trie =\n/** @class */\nfunction () {\n function Trie(weakness, makeData) {\n if (weakness === void 0) {\n weakness = true;\n }\n\n if (makeData === void 0) {\n makeData = defaultMakeData;\n }\n\n this.weakness = weakness;\n this.makeData = makeData;\n }\n\n Trie.prototype.lookup = function () {\n var array = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n\n return this.lookupArray(array);\n };\n\n Trie.prototype.lookupArray = function (array) {\n var node = this;\n forEach.call(array, function (key) {\n return node = node.getChildTrie(key);\n });\n return node.data || (node.data = this.makeData(slice.call(array)));\n };\n\n Trie.prototype.getChildTrie = function (key) {\n var map = this.weakness && isObjRef(key) ? this.weak || (this.weak = new WeakMap()) : this.strong || (this.strong = new Map());\n var child = map.get(key);\n if (!child) map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n };\n\n return Trie;\n}();\n\nfunction isObjRef(value) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n\n case \"function\":\n return true;\n }\n\n return false;\n}\n\nexport { Trie };","import { Trie } from '@wry/trie';\nexport { Trie as KeyTrie } from '@wry/trie';\nimport { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() {}\n\nvar Cache =\n/** @class */\nfunction () {\n function Cache(max, dispose) {\n if (max === void 0) {\n max = Infinity;\n }\n\n if (dispose === void 0) {\n dispose = defaultDispose;\n }\n\n this.max = max;\n this.dispose = dispose;\n this.map = new Map();\n this.newest = null;\n this.oldest = null;\n }\n\n Cache.prototype.has = function (key) {\n return this.map.has(key);\n };\n\n Cache.prototype.get = function (key) {\n var node = this.getNode(key);\n return node && node.value;\n };\n\n Cache.prototype.getNode = function (key) {\n var node = this.map.get(key);\n\n if (node && node !== this.newest) {\n var older = node.older,\n newer = node.newer;\n\n if (newer) {\n newer.older = older;\n }\n\n if (older) {\n older.newer = newer;\n }\n\n node.older = this.newest;\n node.older.newer = node;\n node.newer = null;\n this.newest = node;\n\n if (node === this.oldest) {\n this.oldest = newer;\n }\n }\n\n return node;\n };\n\n Cache.prototype.set = function (key, value) {\n var node = this.getNode(key);\n\n if (node) {\n return node.value = value;\n }\n\n node = {\n key: key,\n value: value,\n newer: null,\n older: this.newest\n };\n\n if (this.newest) {\n this.newest.newer = node;\n }\n\n this.newest = node;\n this.oldest = this.oldest || node;\n this.map.set(key, node);\n return node.value;\n };\n\n Cache.prototype.clean = function () {\n while (this.oldest && this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n };\n\n Cache.prototype.delete = function (key) {\n var node = this.map.get(key);\n\n if (node) {\n if (node === this.newest) {\n this.newest = node.older;\n }\n\n if (node === this.oldest) {\n this.oldest = node.newer;\n }\n\n if (node.newer) {\n node.newer.older = node.older;\n }\n\n if (node.older) {\n node.older.newer = node.newer;\n }\n\n this.map.delete(key);\n this.dispose(node.value, key);\n return true;\n }\n\n return false;\n };\n\n return Cache;\n}();\n\nvar parentEntrySlot = new Slot();\n\nvar _a;\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar // This Array.from polyfill is restricted to working with Set for now,\n// but we can improve the polyfill and add other input types, as needed. Note\n// that this fallback implementation will only be used if the host environment\n// does not support a native Array.from function. In most modern JS runtimes,\n// the toArray function exported here will be === Array.from.\ntoArray = (_a = Array.from, _a === void 0 ? function (collection) {\n var array = [];\n collection.forEach(function (item) {\n return array.push(item);\n });\n return array;\n} : _a);\n\nfunction maybeUnsubscribe(entryOrDep) {\n var unsubscribe = entryOrDep.unsubscribe;\n\n if (typeof unsubscribe === \"function\") {\n entryOrDep.unsubscribe = void 0;\n unsubscribe();\n }\n}\n\nvar emptySetPool = [];\nvar POOL_TARGET_SIZE = 100; // Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\n\nfunction assert(condition, optionalMessage) {\n if (!condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\nfunction valueIs(a, b) {\n var len = a.length;\n return (// Unknown values are not equal to each other.\n len > 0 && // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length && // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet(value) {\n switch (value.length) {\n case 0:\n throw new Error(\"unknown value\");\n\n case 1:\n return value[0];\n\n case 2:\n throw value[1];\n }\n}\n\nfunction valueCopy(value) {\n return value.slice(0);\n}\n\nvar Entry =\n/** @class */\nfunction () {\n function Entry(fn) {\n this.fn = fn;\n this.parents = new Set();\n this.childValues = new Map(); // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n\n this.dirtyChildren = null;\n this.dirty = true;\n this.recomputing = false;\n this.value = [];\n this.deps = null;\n ++Entry.count;\n }\n\n Entry.prototype.peek = function () {\n if (this.value.length === 1 && !mightBeDirty(this)) {\n rememberParent(this);\n return this.value[0];\n }\n }; // This is the most important method of the Entry API, because it\n // determines whether the cached this.value can be returned immediately,\n // or must be recomputed. The overall performance of the caching system\n // depends on the truth of the following observations: (1) this.dirty is\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n // (3) valueGet(this.value) is usually returned without recomputation.\n\n\n Entry.prototype.recompute = function (args) {\n assert(!this.recomputing, \"already recomputing\");\n rememberParent(this);\n return mightBeDirty(this) ? reallyRecompute(this, args) : valueGet(this.value);\n };\n\n Entry.prototype.setDirty = function () {\n if (this.dirty) return;\n this.dirty = true;\n this.value.length = 0;\n reportDirty(this); // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n\n maybeUnsubscribe(this);\n };\n\n Entry.prototype.dispose = function () {\n var _this = this;\n\n this.setDirty(); // Sever any dependency relationships with our own children, so those\n // children don't retain this parent Entry in their child.parents sets,\n // thereby preventing it from being fully garbage collected.\n\n forgetChildren(this); // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n\n eachParent(this, function (parent, child) {\n parent.setDirty();\n forgetChild(parent, _this);\n });\n };\n\n Entry.prototype.forget = function () {\n // The code that creates Entry objects in index.ts will replace this method\n // with one that actually removes the Entry from the cache, which will also\n // trigger the entry.dispose method.\n this.dispose();\n };\n\n Entry.prototype.dependOn = function (dep) {\n dep.add(this);\n\n if (!this.deps) {\n this.deps = emptySetPool.pop() || new Set();\n }\n\n this.deps.add(dep);\n };\n\n Entry.prototype.forgetDeps = function () {\n var _this = this;\n\n if (this.deps) {\n toArray(this.deps).forEach(function (dep) {\n return dep.delete(_this);\n });\n this.deps.clear();\n emptySetPool.push(this.deps);\n this.deps = null;\n }\n };\n\n Entry.count = 0;\n return Entry;\n}();\n\nfunction rememberParent(child) {\n var parent = parentEntrySlot.getValue();\n\n if (parent) {\n child.parents.add(parent);\n\n if (!parent.childValues.has(child)) {\n parent.childValues.set(child, []);\n }\n\n if (mightBeDirty(child)) {\n reportDirtyChild(parent, child);\n } else {\n reportCleanChild(parent, child);\n }\n\n return parent;\n }\n}\n\nfunction reallyRecompute(entry, args) {\n forgetChildren(entry); // Set entry as the parent entry while calling recomputeNewValue(entry).\n\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\n\n if (maybeSubscribe(entry, args)) {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n }\n\n return valueGet(entry.value);\n}\n\nfunction recomputeNewValue(entry, args) {\n entry.recomputing = true; // Set entry.value as unknown.\n\n entry.value.length = 0;\n\n try {\n // If entry.fn succeeds, entry.value will become a normal Value.\n entry.value[0] = entry.fn.apply(null, args);\n } catch (e) {\n // If entry.fn throws, entry.value will become exceptional.\n entry.value[1] = e;\n } // Either way, this line is always reached.\n\n\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry) {\n entry.dirty = false;\n\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n\n reportClean(entry);\n}\n\nfunction reportDirty(child) {\n eachParent(child, reportDirtyChild);\n}\n\nfunction reportClean(child) {\n eachParent(child, reportCleanChild);\n}\n\nfunction eachParent(child, callback) {\n var parentCount = child.parents.size;\n\n if (parentCount) {\n var parents = toArray(child.parents);\n\n for (var i = 0; i < parentCount; ++i) {\n callback(parents[i], child);\n }\n }\n} // Let a parent Entry know that one of its children may be dirty.\n\n\nfunction reportDirtyChild(parent, child) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n var parentWasClean = !mightBeDirty(parent);\n\n if (!parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set();\n } else if (parent.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n\n parent.dirtyChildren.add(child); // If parent was clean before, it just became (possibly) dirty (according to\n // mightBeDirty), since we just added child to parent.dirtyChildren.\n\n if (parentWasClean) {\n reportDirty(parent);\n }\n} // Let a parent Entry know that one of its children is no longer dirty.\n\n\nfunction reportCleanChild(parent, child) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(!mightBeDirty(child));\n var childValue = parent.childValues.get(child);\n\n if (childValue.length === 0) {\n parent.childValues.set(child, valueCopy(child.value));\n } else if (!valueIs(childValue, child.value)) {\n parent.setDirty();\n }\n\n removeDirtyChild(parent, child);\n\n if (mightBeDirty(parent)) {\n return;\n }\n\n reportClean(parent);\n}\n\nfunction removeDirtyChild(parent, child) {\n var dc = parent.dirtyChildren;\n\n if (dc) {\n dc.delete(child);\n\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n\n parent.dirtyChildren = null;\n }\n }\n} // Removes all children from this entry and returns an array of the\n// removed children.\n\n\nfunction forgetChildren(parent) {\n if (parent.childValues.size > 0) {\n parent.childValues.forEach(function (_value, child) {\n forgetChild(parent, child);\n });\n } // Remove this parent Entry from any sets to which it was added by the\n // addToSet method.\n\n\n parent.forgetDeps(); // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n\n assert(parent.dirtyChildren === null);\n}\n\nfunction forgetChild(parent, child) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry, args) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\n\n entry.unsubscribe = entry.subscribe.apply(null, args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n } // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n\n\n return true;\n}\n\nvar EntryMethods = {\n setDirty: true,\n dispose: true,\n forget: true\n};\n\nfunction dep(options) {\n var depsByKey = new Map();\n var subscribe = options && options.subscribe;\n\n function depend(key) {\n var parent = parentEntrySlot.getValue();\n\n if (parent) {\n var dep_1 = depsByKey.get(key);\n\n if (!dep_1) {\n depsByKey.set(key, dep_1 = new Set());\n }\n\n parent.dependOn(dep_1);\n\n if (typeof subscribe === \"function\") {\n maybeUnsubscribe(dep_1);\n dep_1.unsubscribe = subscribe(key);\n }\n }\n }\n\n depend.dirty = function dirty(key, entryMethodName) {\n var dep = depsByKey.get(key);\n\n if (dep) {\n var m_1 = entryMethodName && hasOwnProperty.call(EntryMethods, entryMethodName) ? entryMethodName : \"setDirty\"; // We have to use toArray(dep).forEach instead of dep.forEach, because\n // modifying a Set while iterating over it can cause elements in the Set\n // to be removed from the Set before they've been iterated over.\n\n toArray(dep).forEach(function (entry) {\n return entry[m_1]();\n });\n depsByKey.delete(key);\n maybeUnsubscribe(dep);\n }\n };\n\n return depend;\n}\n\nfunction makeDefaultMakeCacheKeyFunction() {\n var keyTrie = new Trie(typeof WeakMap === \"function\");\n return function () {\n return keyTrie.lookupArray(arguments);\n };\n} // The defaultMakeCacheKey function is remarkably powerful, because it gives\n// a unique object for any shallow-identical list of arguments. If you need\n// to implement a custom makeCacheKey function, you may find it helpful to\n// delegate the final work to defaultMakeCacheKey, which is why we export it\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\n// does not support WeakMap, or you have the ability to return a string key.\n// In those cases, just write your own custom makeCacheKey functions.\n\n\nvar defaultMakeCacheKey = makeDefaultMakeCacheKeyFunction();\nvar caches = new Set();\n\nfunction wrap(originalFunction, options) {\n if (options === void 0) {\n options = Object.create(null);\n }\n\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) {\n return entry.dispose();\n });\n var keyArgs = options.keyArgs;\n var makeCacheKey = options.makeCacheKey || makeDefaultMakeCacheKeyFunction();\n\n var optimistic = function optimistic() {\n var key = makeCacheKey.apply(null, keyArgs ? keyArgs.apply(null, arguments) : arguments);\n\n if (key === void 0) {\n return originalFunction.apply(null, arguments);\n }\n\n var entry = cache.get(key);\n\n if (!entry) {\n cache.set(key, entry = new Entry(originalFunction));\n entry.subscribe = options.subscribe; // Give the Entry the ability to trigger cache.delete(key), even though\n // the Entry itself does not know about key or cache.\n\n entry.forget = function () {\n return cache.delete(key);\n };\n }\n\n var value = entry.recompute(Array.prototype.slice.call(arguments)); // Move this entry to the front of the least-recently used queue,\n // since we just finished computing its value.\n\n cache.set(key, entry);\n caches.add(cache); // Clean up any excess entries in the cache, but only if there is no\n // active parent entry, meaning we're not in the middle of a larger\n // computation that might be flummoxed by the cleaning.\n\n if (!parentEntrySlot.hasValue()) {\n caches.forEach(function (cache) {\n return cache.clean();\n });\n caches.clear();\n }\n\n return value;\n };\n\n Object.defineProperty(optimistic, \"size\", {\n get: function get() {\n return cache[\"map\"].size;\n },\n configurable: false,\n enumerable: false\n });\n\n function dirtyKey(key) {\n var entry = cache.get(key);\n\n if (entry) {\n entry.setDirty();\n }\n }\n\n optimistic.dirtyKey = dirtyKey;\n\n optimistic.dirty = function dirty() {\n dirtyKey(makeCacheKey.apply(null, arguments));\n };\n\n function peekKey(key) {\n var entry = cache.get(key);\n\n if (entry) {\n return entry.peek();\n }\n }\n\n optimistic.peekKey = peekKey;\n\n optimistic.peek = function peek() {\n return peekKey(makeCacheKey.apply(null, arguments));\n };\n\n function forgetKey(key) {\n return cache.delete(key);\n }\n\n optimistic.forgetKey = forgetKey;\n\n optimistic.forget = function forget() {\n return forgetKey(makeCacheKey.apply(null, arguments));\n };\n\n optimistic.makeCacheKey = makeCacheKey;\n optimistic.getKey = keyArgs ? function getKey() {\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments));\n } : makeCacheKey;\n return Object.freeze(optimistic);\n}\n\nexport { defaultMakeCacheKey, dep, wrap };","// Generated by CoffeeScript 1.12.2\n(function () {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","/**\n * Based on Kendo UI Core expression code \n */\n'use strict';\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize;\n this.clear();\n}\n\nCache.prototype.clear = function () {\n this._size = 0;\n this._values = {};\n};\n\nCache.prototype.get = function (key) {\n return this._values[key];\n};\n\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear();\n\n if (!this._values.hasOwnProperty(key)) {\n this._size++;\n }\n\n return this._values[key] = value;\n};\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512;\nvar contentSecurityPolicy = false,\n pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE);\n\ntry {\n new Function('');\n} catch (error) {\n contentSecurityPolicy = true;\n}\n\nmodule.exports = {\n Cache: Cache,\n expr: expr,\n split: split,\n normalizePath: normalizePath,\n setter: contentSecurityPolicy ? function (path) {\n var parts = normalizePath(path);\n return function (data, value) {\n return setterFallback(parts, data, value);\n };\n } : function (path) {\n return setCache.get(path) || setCache.set(path, new Function('data, value', expr(path, 'data') + ' = value'));\n },\n getter: contentSecurityPolicy ? function (path, safe) {\n var parts = normalizePath(path);\n return function (data) {\n return getterFallback(parts, safe, data);\n };\n } : function (path, safe) {\n var key = path + '_' + safe;\n return getCache.get(key) || getCache.set(key, new Function('data', 'return ' + expr(path, safe, 'data')));\n },\n join: function join(segments) {\n return segments.reduce(function (path, part) {\n return path + (isQuoted(part) || DIGIT_REGEX.test(part) ? '[' + part + ']' : (path ? '.' : '') + part);\n }, '');\n },\n forEach: function forEach(path, cb, thisArg) {\n _forEach(split(path), cb, thisArg);\n }\n};\n\nfunction setterFallback(parts, data, value) {\n var index = 0,\n len = parts.length;\n\n while (index < len - 1) {\n data = data[parts[index++]];\n }\n\n data[parts[index]] = value;\n}\n\nfunction getterFallback(parts, safe, data) {\n var index = 0,\n len = parts.length;\n\n while (index < len) {\n if (data != null || !safe) {\n data = data[parts[index++]];\n } else {\n return;\n }\n }\n\n return data;\n}\n\nfunction normalizePath(path) {\n return pathCache.get(path) || pathCache.set(path, split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2');\n }));\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX);\n}\n\nfunction expr(expression, safe, param) {\n expression = expression || '';\n\n if (typeof safe === 'string') {\n param = safe;\n safe = false;\n }\n\n param = param || 'data';\n if (expression && expression.charAt(0) !== '[') expression = '.' + expression;\n return safe ? makeSafe(expression, param) : param + expression;\n}\n\nfunction _forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket;\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx];\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"';\n }\n\n isBracket = isQuoted(part);\n isArray = !isBracket && /^\\d+$/.test(part);\n iter.call(thisArg, part, isBracket, isArray, idx, parts);\n }\n }\n}\n\nfunction isQuoted(str) {\n return typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1;\n}\n\nfunction makeSafe(path, param) {\n var result = param,\n parts = split(path),\n isLast;\n\n _forEach(parts, function (part, isBracket, isArray, idx, parts) {\n isLast = idx === parts.length - 1;\n part = isBracket || isArray ? '[' + part + ']' : '.' + part;\n result += part + (!isLast ? ' || {})' : ')');\n });\n\n return new Array(parts.length + 1).join('(') + result;\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX);\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part);\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part));\n}","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;\n\n(function (root) {\n /** Detect free variables */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n var freeModule = typeof module == 'object' && module && !module.nodeType && module;\n var freeGlobal = typeof global == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n root = freeGlobal;\n }\n /**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\n\n var punycode,\n\n /** Highest positive signed 32-bit float value */\n maxInt = 2147483647,\n // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n base = 36,\n tMin = 1,\n tMax = 26,\n skew = 38,\n damp = 700,\n initialBias = 72,\n initialN = 128,\n // 0x80\n delimiter = '-',\n // '\\x2D'\n\n /** Regular expressions */\n regexPunycode = /^xn--/,\n regexNonASCII = /[^\\x20-\\x7E]/,\n // unprintable ASCII chars + non-ASCII chars\n regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n // RFC 3490 separators\n\n /** Error messages */\n errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n },\n\n /** Convenience shortcuts */\n baseMinusTMin = base - tMin,\n floor = Math.floor,\n stringFromCharCode = String.fromCharCode,\n\n /** Temporary variable */\n key;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\n function error(type) {\n throw RangeError(errors[type]);\n }\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\n\n function map(array, fn) {\n var length = array.length;\n var result = [];\n\n while (length--) {\n result[length] = fn(array[length]);\n }\n\n return result;\n }\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\n\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\n\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n\n while (counter < length) {\n value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\n\n function ucs2encode(array) {\n return map(array, function (value) {\n var output = '';\n\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\n\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n\n return base;\n }\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\n\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * http://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\n\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n\n for (;\n /* no initialization */\n delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\n\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n\n /** Cached calculation results */\n baseMinusT; // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter);\n\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n\n output.push(input.charCodeAt(j));\n } // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength;)\n /* no final expression */\n {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base;;\n /* no condition */\n k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base - t;\n\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out; // Insert `n` at position `i` of the output\n\n output.splice(i++, 0, n);\n }\n\n return ucs2encode(output);\n }\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\n\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT; // Convert the input in UCS-2 to Unicode\n\n input = ucs2decode(input); // Cache the length\n\n inputLength = input.length; // Initialize the state\n\n n = initialN;\n delta = 0;\n bias = initialBias; // Handle the basic code points\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n // Finish the basic string - if it is not empty - with a delimiter\n\n if (basicLength) {\n output.push(delimiter);\n } // Main encoding loop:\n\n\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n } // Increase `delta` enough to advance the decoder's state to ,\n // but guard against overflow\n\n\n handledCPCountPlusOne = handledCPCount + 1;\n\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base;;\n /* no condition */\n k += base) {\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (q < t) {\n break;\n }\n\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n\n return output.join('');\n }\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\n\n function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n }\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\n\n function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n }\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n\n\n punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '1.3.2',\n\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n /** Expose `punycode` */\n // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n define('punycode', function () {\n return punycode;\n });\n } else if (freeExports && freeModule) {\n if (module.exports == freeExports) {\n // in Node.js or RingoJS v0.8.0+\n freeModule.exports = punycode;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n for (key in punycode) {\n punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n }\n }\n } else {\n // in Rhino or a web browser\n root.punycode = punycode;\n }\n})(this);","// 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'use strict'; // If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function (qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n var maxKeys = 1000;\n\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length; // maxKeys <= 0 means that we should not limit keys count\n\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr,\n vstr,\n k,\n v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};","// 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'use strict';\n\nvar stringifyPrimitive = function stringifyPrimitive(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function (obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function (k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n\n if (Array.isArray(obj[k])) {\n return obj[k].map(function (v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq + encodeURIComponent(stringifyPrimitive(obj));\n};","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');","var now = require('performance-now'),\n root = typeof window === 'undefined' ? global : window,\n vendors = ['moz', 'webkit'],\n suffix = 'AnimationFrame',\n raf = root['request' + suffix],\n caf = root['cancel' + suffix] || root['cancelRequest' + suffix];\n\nfor (var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix];\n caf = root[vendors[i] + 'Cancel' + suffix] || root[vendors[i] + 'CancelRequest' + suffix];\n} // Some versions of FF have rAF but not cAF\n\n\nif (!raf || !caf) {\n var last = 0,\n id = 0,\n queue = [],\n frameDuration = 1000 / 60;\n\n raf = function raf(callback) {\n if (queue.length === 0) {\n var _now = now(),\n next = Math.max(0, frameDuration - (_now - last));\n\n last = next + _now;\n setTimeout(function () {\n var cp = queue.slice(0); // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n\n queue.length = 0;\n\n for (var i = 0; i < cp.length; i++) {\n if (!cp[i].cancelled) {\n try {\n cp[i].callback(last);\n } catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n }\n }, Math.round(next));\n }\n\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n });\n return id;\n };\n\n caf = function caf(handle) {\n for (var i = 0; i < queue.length; i++) {\n if (queue[i].handle === handle) {\n queue[i].cancelled = true;\n }\n }\n };\n}\n\nmodule.exports = function (fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn);\n};\n\nmodule.exports.cancel = function () {\n caf.apply(root, arguments);\n};\n\nmodule.exports.polyfill = function (object) {\n if (!object) {\n object = root;\n }\n\n object.requestAnimationFrame = raf;\n object.cancelAnimationFrame = caf;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\"; // eslint-disable-next-line import/no-extraneous-dependencies\n\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nvar Checkbox = /*#__PURE__*/function (_Component) {\n _inherits(Checkbox, _Component);\n\n var _super = _createSuper(Checkbox);\n\n function Checkbox(props) {\n var _this;\n\n _classCallCheck(this, Checkbox);\n\n _this = _super.call(this, props);\n\n _this.handleChange = function (e) {\n var _this$props = _this.props,\n disabled = _this$props.disabled,\n onChange = _this$props.onChange;\n\n if (disabled) {\n return;\n }\n\n if (!('checked' in _this.props)) {\n _this.setState({\n checked: e.target.checked\n });\n }\n\n if (onChange) {\n onChange({\n target: _objectSpread(_objectSpread({}, _this.props), {}, {\n checked: e.target.checked\n }),\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n preventDefault: function preventDefault() {\n e.preventDefault();\n },\n nativeEvent: e.nativeEvent\n });\n }\n };\n\n _this.saveInput = function (node) {\n _this.input = node;\n };\n\n var checked = 'checked' in props ? props.checked : props.defaultChecked;\n _this.state = {\n checked: checked\n };\n return _this;\n }\n\n _createClass(Checkbox, [{\n key: \"focus\",\n value: function focus() {\n this.input.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.input.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n style = _this$props2.style,\n name = _this$props2.name,\n id = _this$props2.id,\n type = _this$props2.type,\n disabled = _this$props2.disabled,\n readOnly = _this$props2.readOnly,\n tabIndex = _this$props2.tabIndex,\n onClick = _this$props2.onClick,\n onFocus = _this$props2.onFocus,\n onBlur = _this$props2.onBlur,\n onKeyDown = _this$props2.onKeyDown,\n onKeyPress = _this$props2.onKeyPress,\n onKeyUp = _this$props2.onKeyUp,\n autoFocus = _this$props2.autoFocus,\n value = _this$props2.value,\n required = _this$props2.required,\n others = _objectWithoutProperties(_this$props2, [\"prefixCls\", \"className\", \"style\", \"name\", \"id\", \"type\", \"disabled\", \"readOnly\", \"tabIndex\", \"onClick\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onKeyPress\", \"onKeyUp\", \"autoFocus\", \"value\", \"required\"]);\n\n var globalProps = Object.keys(others).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'aria-' || key.substr(0, 5) === 'data-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = others[key];\n }\n\n return prev;\n }, {});\n var checked = this.state.checked;\n var classString = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classString,\n style: style\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n name: name,\n id: id,\n type: type,\n required: required,\n readOnly: readOnly,\n disabled: disabled,\n tabIndex: tabIndex,\n className: \"\".concat(prefixCls, \"-input\"),\n checked: !!checked,\n onClick: onClick,\n onFocus: onFocus,\n onBlur: onBlur,\n onKeyUp: onKeyUp,\n onKeyDown: onKeyDown,\n onKeyPress: onKeyPress,\n onChange: this.handleChange,\n autoFocus: autoFocus,\n ref: this.saveInput,\n value: value\n }, globalProps)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if ('checked' in props) {\n return _objectSpread(_objectSpread({}, state), {}, {\n checked: props.checked\n });\n }\n\n return null;\n }\n }]);\n\n return Checkbox;\n}(Component);\n\nCheckbox.defaultProps = {\n prefixCls: 'rc-checkbox',\n className: '',\n style: {},\n type: 'checkbox',\n defaultChecked: false,\n onFocus: function onFocus() {},\n onBlur: function onBlur() {},\n onChange: function onChange() {},\n onKeyDown: function onKeyDown() {},\n onKeyPress: function onKeyPress() {},\n onKeyUp: function onKeyUp() {}\n};\nexport default Checkbox;","import * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS'; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\n\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n setCallbacks: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc\n };\n }\n});\nexport default Context;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n}","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n/* eslint no-console:0 */\n\n\nvar formatRegExp = /%[sdj%]/g;\n\nvar warning = function warning() {}; // don't print warning message when in production env or node runtime\n\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn) {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nfunction convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var i = 1;\n var f = args[0];\n var len = args.length;\n\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n\n if (typeof f === 'string') {\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n\n if (i >= len) {\n return x;\n }\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n break;\n\n default:\n return x;\n }\n });\n return str;\n }\n\n return f;\n}\n\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\n\nfunction isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n\n return false;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n\n function count(errors) {\n results.push.apply(results, errors);\n total++;\n\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(function (a) {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n\n var original = index;\n index = index + 1;\n\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, objArr[k]);\n });\n return ret;\n}\n\nvar AsyncValidationError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(AsyncValidationError, _Error);\n\n function AsyncValidationError(errors, fields) {\n var _this;\n\n _this = _Error.call(this, 'Async Validation Error') || this;\n _this.errors = errors;\n _this.fields = fields;\n return _this;\n }\n\n return AsyncValidationError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction asyncMap(objArr, option, func, callback) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve();\n };\n\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n\n _pending[\"catch\"](function (e) {\n return e;\n });\n\n return _pending;\n }\n\n var firstFields = option.firstFields || [];\n\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n results.push.apply(results, errors);\n total++;\n\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve();\n }\n };\n\n if (!objArrKeys.length) {\n callback(results);\n resolve();\n }\n\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending[\"catch\"](function (e) {\n return e;\n });\n return pending;\n}\n\nfunction complementError(rule) {\n return function (oe) {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n\n return {\n message: typeof oe === 'function' ? oe() : oe,\n field: oe.field || rule.fullField\n };\n };\n}\n\nfunction deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = _extends({}, target[s], value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n\n return target;\n}\n/**\n * Rule for validating required fields.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n}\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n}\n/* eslint max-len:0 */\n\n\nvar pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n url: new RegExp(\"^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$\", 'i'),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n \"float\": function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n\n return typeof value === 'number';\n },\n object: function object(value) {\n return typeof value === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\n/**\n * Rule for validating the type of a value.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n } // straight typeof check\n\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n}\n/**\n * Rule for validating minimum and maximum allowed values.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n } // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n\n\n if (!key) {\n return false;\n }\n\n if (arr) {\n val = value.length;\n }\n\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n}\n\nvar ENUM = 'enum';\n/**\n * Rule for validating a value exists in an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n}\n/**\n * Rule for validating a regular expression pattern.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction pattern$1(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n\n if (!rule.pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n\n if (!_pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n}\n\nvar rules = {\n required: required,\n whitespace: whitespace,\n type: type,\n range: range,\n \"enum\": enumerable,\n pattern: pattern$1\n};\n/**\n * Performs validation for string types.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'string');\n\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n\n callback(errors);\n}\n/**\n * Validates a function.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n/**\n * Validates a number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n/**\n * Validates a boolean.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction _boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n/**\n * Validates the regular expression type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n/**\n * Validates a number is an integer.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n/**\n * Validates a number is a floating point number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n/**\n * Validates an array.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'array');\n\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n/**\n * Validates an object.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\nvar ENUM$1 = 'enum';\n/**\n * Validates an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction enumerable$1(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules[ENUM$1](rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n/**\n * Validates a regular expression pattern.\n *\n * Performs validation when a rule only contains\n * a pattern property but is not declared as a string type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction pattern$2(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\nfunction date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); // console.log('validate on %s value', value);\n\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'date')) {\n var dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n\n callback(errors);\n}\n\nfunction required$1(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n}\n\nfunction type$1(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, ruleType);\n\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n/**\n * Performs validation for any type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\n\nfunction any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n }\n\n callback(errors);\n}\n\nvar validators = {\n string: string,\n method: method,\n number: number,\n \"boolean\": _boolean,\n regexp: regexp,\n integer: integer,\n \"float\": floatFn,\n array: array,\n object: object,\n \"enum\": enumerable$1,\n pattern: pattern$2,\n date: date,\n url: type$1,\n hex: type$1,\n email: type$1,\n required: required$1,\n any: any\n};\n\nfunction newMessages() {\n return {\n \"default\": 'Validation error on field %s',\n required: '%s is required',\n \"enum\": '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n \"boolean\": '%s is not a %s',\n integer: '%s is not an %s',\n \"float\": '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\n\nvar messages = newMessages();\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\n\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = messages;\n this.define(descriptor);\n}\n\nSchema.prototype = {\n messages: function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n\n return this._messages;\n },\n define: function define(rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n\n this.rules = {};\n var z;\n var item;\n\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate: function validate(source_, o, oc) {\n var _this = this;\n\n if (o === void 0) {\n o = {};\n }\n\n if (oc === void 0) {\n oc = function oc() {};\n }\n\n var source = source_;\n var options = o;\n var callback = oc;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback();\n }\n\n return Promise.resolve();\n }\n\n function complete(results) {\n var i;\n var errors = [];\n var fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n\n errors = (_errors = errors).concat.apply(_errors, e);\n } else {\n errors.push(e);\n }\n }\n\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n fields = convertFieldsError(errors);\n }\n\n callback(errors, fields);\n }\n\n if (options.messages) {\n var messages$1 = this.messages();\n\n if (messages$1 === messages) {\n messages$1 = newMessages();\n }\n\n deepMerge(messages$1, options.messages);\n options.messages = messages$1;\n } else {\n options.messages = this.messages();\n }\n\n var arr;\n var value;\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n arr = _this.rules[z];\n value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _extends({}, source);\n }\n\n value = source[z] = rule.transform(value);\n }\n\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _extends({}, rule);\n }\n\n rule.validator = _this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this.getType(rule);\n\n if (!rule.validator) {\n return;\n }\n\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (typeof rule.fields === 'object' || typeof rule.defaultField === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n\n function addFullfield(key, schema) {\n return _extends({}, schema, {\n fullField: rule.fullField + \".\" + key\n });\n }\n\n function cb(e) {\n if (e === void 0) {\n e = [];\n }\n\n var errors = e;\n\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n\n if (!options.suppressWarning && errors.length) {\n Schema.warning('async-validator:', errors);\n }\n\n if (errors.length && rule.message !== undefined) {\n errors = [].concat(rule.message);\n }\n\n errors = errors.map(complementError(rule));\n\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n\n if (!deep) {\n doIt(errors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n errors = [].concat(rule.message).map(complementError(rule));\n } else if (options.error) {\n errors = [options.error(rule, format(options.messages.required, rule.field))];\n }\n\n return doIt(errors);\n }\n\n var fieldsSchema = {};\n\n if (rule.defaultField) {\n for (var k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n\n fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);\n\n for (var f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n\n var schema = new Schema(fieldsSchema);\n schema.messages(options.messages);\n\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n\n if (errors && errors.length) {\n finalErrors.push.apply(finalErrors, errors);\n }\n\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, errs);\n }\n\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n var res;\n\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n res = rule.validator(rule, data.value, cb, data.source, options);\n\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(rule.message || rule.field + \" fails\");\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n });\n },\n getType: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n\n return rule.type || 'string';\n },\n getValidationMethod: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n\n return validators[this.getType(rule)] || false;\n }\n};\n\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n\n validators[type] = validator;\n};\n\nSchema.warning = warning;\nSchema.messages = messages;\nSchema.validators = validators;\nexport default Schema;","export default function get(entity, path) {\n var current = entity;\n\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n\n current = current[path[i]];\n }\n\n return current;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport get from './get';\n\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n\n var clone;\n\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n } // Delete prop if `removeIfUndefined` and value is undefined\n\n\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n\n return clone;\n}\n\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; // Do nothing if `removeIfUndefined` and parent object not exist\n\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n\n return internalSet(entity, paths, value, removeIfUndefined);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\n\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function getValue(store, namePath) {\n var value = get(store, namePath);\n return value;\n}\nexport function setValue(store, namePath, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var newStore = set(store, namePath, value, removeIfUndefined);\n return newStore;\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\n\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\n\n\nfunction internalSetValues(store, values) {\n var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n\n if (!values) {\n return newStore;\n }\n\n Object.keys(values).forEach(function (key) {\n var prevValue = newStore[key];\n var value = values[key]; // If both are object (but target is not array), we use recursion to set deep value\n\n var recursive = isObject(prevValue) && isObject(value);\n newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : value;\n });\n return newStore;\n}\n\nexport function setValues(store) {\n for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restValues[_key - 1] = arguments[_key];\n }\n\n return restValues.reduce(function (current, newStore) {\n return internalSetValues(current, newStore);\n }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n\n if (!source && target || source && !target) {\n return false;\n }\n\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(_toConsumableArray(sourceKeys), _toConsumableArray(targetKeys)));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n\n if (event && event.target && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\n\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n\n return array;\n}","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { setValues } from './valueUtil';\nimport { defaultValidateMessages } from './messages'; // Remove incorrect original ts define\n\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\n\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\n/**\n * We use `async-validator` to validate rules. So have to hot replace the message with validator.\n * { required: '${name} is required' } => { required: () => 'field is required' }\n */\n\n\nfunction convertMessages(messages, name, rule, messageVariables) {\n var kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n });\n\n var replaceFunc = function replaceFunc(template, additionalKV) {\n return function () {\n return replaceMessage(template, _objectSpread(_objectSpread({}, kv), additionalKV));\n };\n };\n /* eslint-disable no-param-reassign */\n\n\n function fillTemplate(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Object.keys(source).forEach(function (ruleName) {\n var value = source[ruleName];\n\n if (typeof value === 'string') {\n target[ruleName] = replaceFunc(value, messageVariables);\n } else if (value && _typeof(value) === 'object') {\n target[ruleName] = {};\n fillTemplate(value, target[ruleName]);\n } else {\n target[ruleName] = value;\n }\n });\n return target;\n }\n /* eslint-enable */\n\n\n return fillTemplate(setValues({}, defaultValidateMessages, messages));\n}\n\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\n\n\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, subRuleField, validator, messages, result, subResults;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // We should special handle array validate\n\n subRuleField = null;\n\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = convertMessages(options.validateMessages, name, cloneRule, messageVariables);\n validator.messages(messages);\n result = [];\n _context2.prev = 7;\n _context2.next = 10;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n\n case 10:\n _context2.next = 15;\n break;\n\n case 12:\n _context2.prev = 12;\n _context2.t0 = _context2[\"catch\"](7);\n\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref2, index) {\n var message = _ref2.message;\n return (// Wrap ReactNode with `key`\n\n /*#__PURE__*/\n React.isValidElement(message) ? /*#__PURE__*/React.cloneElement(message, {\n key: \"error_\".concat(index)\n }) : message\n );\n });\n } else {\n console.error(_context2.t0);\n result = [messages.default()];\n }\n\n case 15:\n if (!(!result.length && subRuleField)) {\n _context2.next = 20;\n break;\n }\n\n _context2.next = 18;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n\n case 18:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n\n case 20:\n return _context2.abrupt(\"return\", result);\n\n case 21:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[7, 12]]);\n }));\n return _validateRule.apply(this, arguments);\n}\n\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.'); // Fill rule with context\n\n var filledRules = rules.map(function (currentRule) {\n var originValidatorFunc = currentRule.validator;\n\n if (!originValidatorFunc) {\n return currentRule;\n }\n\n return _objectSpread(_objectSpread({}, currentRule), {}, {\n validator: function validator(rule, val, callback) {\n var hasPromise = false; // Wrap callback only accept when promise not provided\n\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // Wait a tick to make sure return type is a promise\n\n\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n }; // Get promise\n\n\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n }\n });\n });\n var summaryPromise;\n\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {\n var i, errors;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 11;\n break;\n }\n\n _context.next = 4;\n return validateRule(name, value, filledRules[i], options, messageVariables);\n\n case 4:\n errors = _context.sent;\n\n if (!errors.length) {\n _context.next = 8;\n break;\n }\n\n reject(errors);\n return _context.abrupt(\"return\");\n\n case 8:\n i += 1;\n _context.next = 1;\n break;\n\n case 11:\n /* eslint-enable */\n resolve([]);\n\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x6, _x7) {\n return _ref.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables);\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n if (!errors.length) {\n return [];\n }\n\n return Promise.reject(errors);\n });\n } // Internal catch error to avoid console error log.\n\n\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\n\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rulePromises) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref3;\n\n var errors = (_ref3 = []).concat.apply(_ref3, _toConsumableArray(errorsList));\n\n return errors;\n }));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\n\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (errors) {\n if (errors.length) {\n resolve(errors);\n }\n\n count += 1;\n\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\n\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n\n return prevValue !== nextValue;\n} // We use Class instead of Hooks here since it will cost much code by using Hooks.\n\n\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n\n var _super = _createSuper(Field); // ============================== Subscriptions ==============================\n\n\n function Field(props) {\n var _this;\n\n _classCallCheck(this, Field);\n\n _this = _super.call(this, props);\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n\n _this.touched = false;\n /** Mark when touched & validated. Currently only used for `dependencies` */\n\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = [];\n\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n\n _this.cancelRegisterFunc = null;\n }; // ================================== Utils ==================================\n\n\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n\n return rule;\n });\n };\n\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n }; // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n\n\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n\n var namePath = _this.getNamePath();\n\n var prevValue = _this.getValue(prevStore);\n\n var curValue = _this.getValue(store);\n\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath); // `setFieldsValue` is a quick access to update related status\n\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = [];\n }\n\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = [];\n\n if (onReset) {\n onReset();\n }\n\n _this.refresh();\n\n return;\n }\n\n break;\n\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n\n if ('errors' in data) {\n _this.errors = data.errors || [];\n }\n\n _this.dirty = true;\n\n _this.reRender();\n\n return;\n } // Handle update by `setField` with `shouldUpdate`\n\n\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath); // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example \n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n\n var currentValue = _this.getValue(); // Force change to async to avoid rule OOD under renderProps field\n\n\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n\n var _ref2 = options || {},\n triggerName = _ref2.triggerName;\n\n var filteredRules = _this.getRules();\n\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n\n if (!validateTrigger) {\n return true;\n }\n\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var errors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (_this.validatePromise === rootPromise) {\n _this.validatePromise = null;\n _this.errors = errors;\n\n _this.reRender();\n }\n });\n return promise;\n });\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = []; // Force trigger re-render since we need sync renderProps with new meta\n\n _this.reRender();\n\n return rootPromise;\n };\n\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n\n _this.isFieldDirty = function () {\n return _this.dirty;\n };\n\n _this.getErrors = function () {\n return _this.errors;\n };\n\n _this.isListField = function () {\n return _this.props.isListField;\n };\n\n _this.isList = function () {\n return _this.props.isList;\n };\n\n _this.isPreserve = function () {\n return _this.props.preserve;\n }; // ============================= Child Component =============================\n\n\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n name: _this.getNamePath()\n };\n return meta;\n }; // Only return validate child node. If invalidate, will do nothing about field.\n\n\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n } // Filed element only\n\n\n var childList = toChildrenArray(children);\n\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n\n return {\n child: childList[0],\n isFunction: false\n };\n }; // ============================== Field Control ==============================\n\n\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n\n var namePath = _this.getNamePath();\n\n return getValue(store || getFieldsValue(true), namePath);\n };\n\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n\n var namePath = _this.getNamePath();\n\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n\n var value = _this.getValue();\n\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n }; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n var originTriggerFunc = childProps[trigger];\n\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value)); // Add trigger\n\n\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n var newValue;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n }; // Add validateTrigger\n\n\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n } // Always use latest rules\n\n\n var rules = _this.props.rules;\n\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n }; // Register on init\n\n\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n\n initEntityValue(_assertThisInitialized(_this));\n }\n\n return _this;\n }\n\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true; // Register on init\n\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n\n this.cancelRegisterFunc = registerField(this);\n } // One more render for component in case fields not ready\n\n\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction; // Not need to `cloneElement` since user can handle this in render function self\n\n\n var returnChildNode;\n\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n\n return Field;\n}(React.Component);\n\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\n\nfunction WrapperField(_ref4) {\n var name = _ref4.name,\n restProps = _objectWithoutProperties(_ref4, [\"name\"]);\n\n var fieldContext = React.useContext(FieldContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n } // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n\n\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\n\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\n\nvar List = function List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger;\n var context = React.useContext(FieldContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current; // User should not pass `children` as other type.\n\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n\n var parentPrefixName = getNamePath(context.prefixName) || [];\n var prefixName = [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n\n if (source === 'internal') {\n return false;\n }\n\n return prevValue !== nextValue;\n };\n\n return /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n })\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n\n\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n\n if (indexSet.size <= 0) {\n return;\n }\n\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n }); // Trigger store change\n\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n\n var newValue = getNewValue(); // Do not handle out of range\n\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n\n keyManager.keys = _move(keyManager.keys, from, to); // Trigger store change\n\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n\n if (!Array.isArray(listValue)) {\n listValue = [];\n\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n }));\n};\n\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\n\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n }) // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\n\n\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n\n this.kvs = new Map();\n }\n\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n } // Since we only use this in test, let simply realize this\n\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n\n return NameMap;\n}();\n\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport NameMap from './utils/NameMap';\nimport { defaultValidateMessages } from './utils/messages';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = function FormStore(forceRootUpdate) {\n var _this = this;\n\n _classCallCheck(this, FormStore);\n\n this.formHooked = false;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n getInternalHooks: _this.getInternalHooks\n };\n }; // ======================== Internal Hooks ========================\n\n\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve\n };\n }\n\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n /**\n * First time `setInitialValues` should update store with initial value\n */\n\n\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n\n if (init) {\n _this.store = setValues({}, initialValues, _this.store);\n }\n };\n\n this.getInitialValue = function (namePath) {\n return getValue(_this.initialValues, namePath);\n };\n\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n }; // ========================== Dev Warning =========================\n\n\n this.timeoutId = null;\n\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n }; // ============================ Fields ============================\n\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n\n\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!pure) {\n return _this.fieldEntities;\n }\n\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n\n return cache;\n };\n\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n\n var cache = _this.getFieldsMap(true);\n\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n\n if (nameList === true && !filterFunc) {\n return _this.store;\n }\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath(); // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n\n if (!nameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n\n if (!filterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n\n if (filterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors()\n };\n }\n\n return {\n name: getNamePath(nameList[index]),\n errors: []\n };\n });\n };\n\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n\n var fieldError = _this.getFieldsError([namePath])[0];\n\n return fieldError.errors;\n };\n\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n\n var fieldEntities = _this.getFieldEntities(true);\n\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n }; // ===== Will get fully compare when not config namePathList =====\n\n\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n } // Generate a nest tree for validate\n\n\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath(); // Find matched entity and put into list\n\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n }); // Check if NameMap value is touched\n\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n\n var namePathListEntities = map.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n\n return _this.isFieldsTouched([name]);\n };\n\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntities();\n\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n\n return _this.isFieldsValidating([name]);\n };\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n\n\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // Create cache\n\n var cache = new NameMap();\n\n var fieldEntities = _this.getFieldEntities(true);\n\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath(); // Record only if has `initialValue`\n\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n }); // Reset\n\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n\n var formInitialValue = _this.getInitialValue(namePath);\n\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath); // Set `initialValue`\n\n\n if (!info.skipExist || originValue === undefined) {\n _this.store = setValue(_this.store, namePath, _toConsumableArray(records)[0].value);\n }\n }\n }\n }\n });\n };\n\n var requiredFieldEntities;\n\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n\n if (records) {\n var _requiredFieldEntitie;\n\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n\n resetWithFields(requiredFieldEntities);\n };\n\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (!nameList) {\n _this.store = setValues({}, _this.initialValues);\n\n _this.resetWithFieldInitialValue();\n\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n\n return;\n } // Reset by `nameList`\n\n\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n\n _this.store = setValue(_this.store, namePath, initialValue);\n });\n\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n };\n\n this.setFields = function (fields) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n errors = fieldData.errors,\n data = _objectWithoutProperties(fieldData, [\"name\", \"errors\"]);\n\n var namePath = getNamePath(name); // Value\n\n if ('value' in data) {\n _this.store = setValue(_this.store, namePath, data.value);\n }\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n };\n\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n }; // =========================== Observer ===========================\n\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n\n\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n\n if (prevValue === undefined) {\n _this.store = setValue(_this.store, namePath, initialValue);\n }\n }\n };\n\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity); // Set initial values\n\n\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n } // un-register field callback\n\n\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n }); // Clean up store value if not preserve\n\n var mergedPreserve = preserve !== undefined ? preserve : _this.preserve;\n\n if (mergedPreserve === false && (!isListField || subNamePath.length > 1)) {\n var namePath = entity.getNamePath();\n var defaultValue = isListField ? undefined : getValue(_this.initialValues, namePath);\n\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (// Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n _this.store = setValue(_this.store, namePath, defaultValue, true);\n }\n }\n };\n };\n\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n\n _this.updateValue(namePath, value);\n\n break;\n }\n\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n\n break;\n }\n\n default: // Currently we don't have other action. Do nothing.\n\n }\n };\n\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n\n _this.getFieldEntities().forEach(function (_ref2) {\n var onStoreChange = _ref2.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.store = setValue(_this.store, namePath, value);\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n }); // Notify dependencies children with parent update\n // We need delay to trigger validate in case Field is under render props\n\n\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n }); // trigger callback function\n\n\n var onValuesChange = _this.callbacks.onValuesChange;\n\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n }; // Let all child Field get update.\n\n\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (store) {\n _this.store = setValues(_this.store, store);\n }\n\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n };\n\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n\n fillChildren(rootNamePath);\n return childrenFields;\n };\n\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n\n\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref3) {\n var name = _ref3.name,\n errors = _ref3.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n\n var changedFields = fields.filter(function (_ref4) {\n var fieldName = _ref4.name;\n return containsNamePath(namePathList, fieldName);\n });\n onFieldsChange(changedFields, fields);\n }\n }; // =========================== Validate ===========================\n\n\n this.validateFields = function (nameList, options) {\n _this.warningUnhooked();\n\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : []; // Collect result in promise list\n\n var promiseList = [];\n\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n /**\n * Recursive validate if configured.\n * TODO: perf improvement @zombieJ\n */\n\n\n if ((options === null || options === void 0 ? void 0 : options.recursive) && provideNameList) {\n var namePath = field.getNamePath();\n\n if ( // nameList[i] === undefined 说明是以 nameList 开头的\n // ['name'] -> ['name','list']\n namePath.every(function (nameUnit, i) {\n return nameList[i] === nameUnit || nameList[i] === undefined;\n })) {\n namePathList.push(namePath);\n }\n } // Skip if without rule\n\n\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n\n var fieldNamePath = field.getNamePath(); // Add field validate rule in to promise list\n\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options)); // Wrap promise with field\n\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: []\n };\n }).catch(function (errors) {\n return Promise.reject({\n name: fieldNamePath,\n errors: errors\n });\n }));\n }\n });\n\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise; // Notify fields with rule that validate has finished and need update\n\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref5) {\n var name = _ref5.name;\n return name;\n });\n\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n }); // Do not throw in console\n\n returnPromise.catch(function (e) {\n return e;\n });\n return returnPromise;\n }; // ============================ Submit ============================\n\n\n this.submit = function () {\n _this.warningUnhooked();\n\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n\n this.forceRootUpdate = forceRootUpdate;\n};\n\nfunction useForm(form) {\n var formRef = React.useRef();\n\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n\n return [formRef.current];\n}\n\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n\n if (count > 0) {\n return;\n }\n\n if (hasError) {\n reject(results);\n }\n\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\n\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\n\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\n\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"]);\n\n var formContext = React.useContext(FormContext); // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve; // Pass ref with form instance\n\n\n React.useImperativeHandle(ref, function () {\n return formInstance;\n }); // Register form into Context\n\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]); // Pass props to store\n\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve); // Set initial value, init store value when first mount\n\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n\n if (!mountRef.current) {\n mountRef.current = true;\n } // Prepare children by `children` type\n\n\n var childrenNode = children;\n var childrenRenderProps = typeof children === 'function';\n\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } // Not use subscribe when using render props\n\n\n useSubscribe(!childrenRenderProps); // Listen if fields provided. We use ref to save prev data here to avoid additional render\n\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n\n if (Component === false) {\n return wrapperNode;\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\n\nexport default Form;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nexport { Field, List, useForm, FormProvider };\nexport default RefForm;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState, useRef } from 'react';\nexport default function useMountStatus(defaultValue) {\n var destroyRef = useRef(false);\n\n var _useState = useState(defaultValue),\n _useState2 = _slicedToArray(_useState, 2),\n val = _useState2[0],\n setVal = _useState2[1];\n\n function setValue(next) {\n if (!destroyRef.current) {\n setVal(next);\n }\n }\n\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return [val, setValue];\n}","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useNextFrame from './useNextFrame';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _React$useState = React.useState(STEP_NONE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n step = _React$useState2[0],\n setStep = _React$useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useState from './useState';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged; // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n var destroyedRef = useRef(false); // =========================== Dom Node ===========================\n\n var cacheElementRef = useRef(null);\n\n function getDomElement() {\n var element = getElement();\n return element || cacheElementRef.current;\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var canEnd;\n\n if (status === STATUS_APPEAR && activeRef.current) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && activeRef.current) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && activeRef.current) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (canEnd !== false && !destroyedRef.current) {\n setStatus(STATUS_NONE);\n setStyle(null);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case 'appear':\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case 'enter':\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case 'leave':\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n // Rest step is sync update\n\n\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n if (!supportMotion) {\n return;\n }\n\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n clearTimeout(deadlineRef.current);\n destroyedRef.current = true;\n };\n }, []); // Trigger `onVisibleChanged`\n\n useEffect(function () {\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n return findDOMNode(nodeRef.current || wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // Record whether content has rended\n // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n var renderedRef = React.useRef(mergedVisible);\n\n if (mergedVisible) {\n renderedRef.current = true;\n } // ====================== Refs ======================\n\n\n var originRef = useRef(ref);\n originRef.current = ref;\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(originRef.current, node);\n }, []); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames; // In motion\n\n\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\n\nimport * as React from 'react';\nimport OriginCSSMotion from './CSSMotion';\nimport { supportTransition } from './util/motion';\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff';\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\n\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n\n var _super = _createSuper(CSSMotionList);\n\n function CSSMotionList() {\n var _this;\n\n _classCallCheck(this, CSSMotionList);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n keyEntities: []\n };\n\n _this.removeKey = function (removeKey) {\n _this.setState(function (_ref) {\n var keyEntities = _ref.keyEntities;\n return {\n keyEntities: keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n })\n };\n });\n };\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n restProps = _objectWithoutProperties(_this$props, [\"component\", \"children\", \"onVisibleChanged\"]);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, [\"status\"]);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n _this2.removeKey(eventProps.key);\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n }\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n CSSMotionList.defaultProps = {\n component: 'div'\n };\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from './CSSMotion';\nimport CSSMotionList from './CSSMotionList';\nexport { CSSMotionList };\nexport default CSSMotion;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\n\nvar Notice = /*#__PURE__*/function (_Component) {\n _inherits(Notice, _Component);\n\n var _super = _createSuper(Notice);\n\n function Notice() {\n var _this;\n\n _classCallCheck(this, Notice);\n\n _this = _super.apply(this, arguments);\n _this.closeTimer = null;\n\n _this.close = function (e) {\n if (e) {\n e.stopPropagation();\n }\n\n _this.clearCloseTimer();\n\n var _this$props = _this.props,\n onClose = _this$props.onClose,\n noticeKey = _this$props.noticeKey;\n\n if (onClose) {\n onClose(noticeKey);\n }\n };\n\n _this.startCloseTimer = function () {\n if (_this.props.duration) {\n _this.closeTimer = window.setTimeout(function () {\n _this.close();\n }, _this.props.duration * 1000);\n }\n };\n\n _this.clearCloseTimer = function () {\n if (_this.closeTimer) {\n clearTimeout(_this.closeTimer);\n _this.closeTimer = null;\n }\n };\n\n return _this;\n }\n\n _createClass(Notice, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCloseTimer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.duration !== prevProps.duration || this.props.updateMark !== prevProps.updateMark) {\n this.restartCloseTimer();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearCloseTimer();\n }\n }, {\n key: \"restartCloseTimer\",\n value: function restartCloseTimer() {\n this.clearCloseTimer();\n this.startCloseTimer();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closable = _this$props2.closable,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style,\n onClick = _this$props2.onClick,\n children = _this$props2.children,\n holder = _this$props2.holder;\n var componentClass = \"\".concat(prefixCls, \"-notice\");\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (acc, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n acc[key] = _this2.props[key];\n }\n\n return acc;\n }, {});\n var node = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(componentClass, className, _defineProperty({}, \"\".concat(componentClass, \"-closable\"), closable)),\n style: style,\n onMouseEnter: this.clearCloseTimer,\n onMouseLeave: this.startCloseTimer,\n onClick: onClick\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(componentClass, \"-content\")\n }, children), closable ? /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n onClick: this.close,\n className: \"\".concat(componentClass, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(componentClass, \"-close-x\")\n })) : null);\n\n if (holder) {\n return /*#__PURE__*/ReactDOM.createPortal(node, holder);\n }\n\n return node;\n }\n }]);\n\n return Notice;\n}(Component);\n\nexport { Notice as default };\nNotice.defaultProps = {\n onClose: function onClose() {},\n duration: 1.5\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from './Notice';\nimport _useNotification from './useNotification';\nvar seed = 0;\nvar now = Date.now();\n\nfunction getUuid() {\n var id = seed;\n seed += 1;\n return \"rcNotification_\".concat(now, \"_\").concat(id);\n}\n\nvar Notification = /*#__PURE__*/function (_Component) {\n _inherits(Notification, _Component);\n\n var _super = _createSuper(Notification);\n\n function Notification() {\n var _this;\n\n _classCallCheck(this, Notification);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n notices: []\n };\n _this.hookRefs = new Map();\n\n _this.add = function (originNotice, holderCallback) {\n var key = originNotice.key || getUuid();\n\n var notice = _objectSpread(_objectSpread({}, originNotice), {}, {\n key: key\n });\n\n var maxCount = _this.props.maxCount;\n\n _this.setState(function (previousState) {\n var notices = previousState.notices;\n var noticeIndex = notices.map(function (v) {\n return v.notice.key;\n }).indexOf(key);\n var updatedNotices = notices.concat();\n\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice: notice,\n holderCallback: holderCallback\n });\n } else {\n if (maxCount && notices.length >= maxCount) {\n // XXX, use key of first item to update new added (let React to move exsiting\n // instead of remove and mount). Same key was used before for both a) external\n // manual control and b) internal react 'key' prop , which is not that good.\n // eslint-disable-next-line no-param-reassign\n // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n // Change to `updateMark` for compare instead.\n // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid(); // zombieJ: That's why. User may close by key directly.\n // We need record this but not re-render to avoid upper issue\n // https://github.com/react-component/notification/issues/129\n\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n\n updatedNotices.push({\n notice: notice,\n holderCallback: holderCallback\n });\n }\n\n return {\n notices: updatedNotices\n };\n });\n };\n\n _this.remove = function (removeKey) {\n _this.setState(function (_ref) {\n var notices = _ref.notices;\n return {\n notices: notices.filter(function (_ref2) {\n var _ref2$notice = _ref2.notice,\n key = _ref2$notice.key,\n userPassKey = _ref2$notice.userPassKey;\n var mergedKey = userPassKey || key;\n return mergedKey !== removeKey;\n })\n };\n });\n };\n\n _this.noticePropsMap = {};\n return _this;\n }\n\n _createClass(Notification, [{\n key: \"getTransitionName\",\n value: function getTransitionName() {\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n animation = _this$props.animation;\n var transitionName = this.props.transitionName;\n\n if (!transitionName && animation) {\n transitionName = \"\".concat(prefixCls, \"-\").concat(animation);\n }\n\n return transitionName;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var notices = this.state.notices;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style;\n var noticeKeys = [];\n notices.forEach(function (_ref3, index) {\n var notice = _ref3.notice,\n holderCallback = _ref3.holderCallback;\n var updateMark = index === notices.length - 1 ? notice.updateMark : undefined;\n var key = notice.key,\n userPassKey = notice.userPassKey;\n\n var noticeProps = _objectSpread(_objectSpread(_objectSpread({\n prefixCls: prefixCls,\n closeIcon: closeIcon\n }, notice), notice.props), {}, {\n key: key,\n noticeKey: userPassKey || key,\n updateMark: updateMark,\n onClose: function onClose(noticeKey) {\n var _notice$onClose;\n\n _this2.remove(noticeKey);\n\n (_notice$onClose = notice.onClose) === null || _notice$onClose === void 0 ? void 0 : _notice$onClose.call(notice);\n },\n onClick: notice.onClick,\n children: notice.content\n }); // Give to motion\n\n\n noticeKeys.push(key);\n _this2.noticePropsMap[key] = {\n props: noticeProps,\n holderCallback: holderCallback\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style\n }, /*#__PURE__*/React.createElement(CSSMotionList, {\n keys: noticeKeys,\n motionName: this.getTransitionName(),\n onVisibleChanged: function onVisibleChanged(changedVisible, _ref4) {\n var key = _ref4.key;\n\n if (!changedVisible) {\n delete _this2.noticePropsMap[key];\n }\n }\n }, function (_ref5) {\n var key = _ref5.key,\n motionClassName = _ref5.className,\n motionStyle = _ref5.style;\n var _this2$noticePropsMap = _this2.noticePropsMap[key],\n noticeProps = _this2$noticePropsMap.props,\n holderCallback = _this2$noticePropsMap.holderCallback;\n\n if (holderCallback) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(motionClassName, \"\".concat(prefixCls, \"-hook-holder\")),\n style: _objectSpread({}, motionStyle),\n ref: function ref(div) {\n if (typeof key === 'undefined') {\n return;\n }\n\n if (div) {\n _this2.hookRefs.set(key, div);\n\n holderCallback(div, noticeProps);\n } else {\n _this2.hookRefs.delete(key);\n }\n }\n });\n }\n\n return /*#__PURE__*/React.createElement(Notice, _extends({}, noticeProps, {\n className: classNames(motionClassName, noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.className),\n style: _objectSpread(_objectSpread({}, motionStyle), noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.style)\n }));\n }));\n }\n }]);\n\n return Notification;\n}(Component);\n\nNotification.defaultProps = {\n prefixCls: 'rc-notification',\n animation: 'fade',\n style: {\n top: 65,\n left: '50%'\n }\n};\n\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n var _ref6 = properties || {},\n getContainer = _ref6.getContainer,\n props = _objectWithoutProperties(_ref6, [\"getContainer\"]);\n\n var div = document.createElement('div');\n\n if (getContainer) {\n var root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n\n var called = false;\n\n function ref(notification) {\n if (called) {\n return;\n }\n\n called = true;\n callback({\n notice: function notice(noticeProps) {\n notification.add(noticeProps);\n },\n removeNotice: function removeNotice(key) {\n notification.remove(key);\n },\n component: notification,\n destroy: function destroy() {\n ReactDOM.unmountComponentAtNode(div);\n\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n },\n // Hooks\n useNotification: function useNotification() {\n return _useNotification(notification);\n }\n });\n } // Only used for test case usage\n\n\n if (process.env.NODE_ENV === 'test' && properties.TEST_RENDER) {\n properties.TEST_RENDER( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })));\n return;\n }\n\n ReactDOM.render( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })), div);\n};\n\nexport default Notification;","import Notification from './Notification';\nexport default Notification;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Notice from './Notice';\nexport default function useNotification(notificationInstance) {\n var createdRef = React.useRef({});\n\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n\n function notify(noticeProps) {\n var firstMount = true;\n notificationInstance.add(noticeProps, function (div, props) {\n var key = props.key;\n\n if (div && (!createdRef.current[key] || firstMount)) {\n var noticeEle = /*#__PURE__*/React.createElement(Notice, _extends({}, props, {\n holder: div\n }));\n createdRef.current[key] = noticeEle;\n setElements(function (originElements) {\n var index = originElements.findIndex(function (ele) {\n return ele.key === props.key;\n });\n\n if (index === -1) {\n return [].concat(_toConsumableArray(originElements), [noticeEle]);\n }\n\n var cloneList = _toConsumableArray(originElements);\n\n cloneList[index] = noticeEle;\n return cloneList;\n });\n }\n\n firstMount = false;\n });\n }\n\n return [notify, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];\n}","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: '',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages'\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport ResizeObserver from 'resize-observer-polyfill';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key'; // Still need to be compatible with React 15, we use class component here\n\nvar ReactResizeObserver = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactResizeObserver, _React$Component);\n\n var _super = _createSuper(ReactResizeObserver);\n\n function ReactResizeObserver() {\n var _this;\n\n _classCallCheck(this, ReactResizeObserver);\n\n _this = _super.apply(this, arguments);\n _this.resizeObserver = null;\n _this.childNode = null;\n _this.currentElement = null;\n _this.state = {\n width: 0,\n height: 0,\n offsetHeight: 0,\n offsetWidth: 0\n };\n\n _this.onResize = function (entries) {\n var onResize = _this.props.onResize;\n var target = entries[0].target;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (_this.state.width !== fixedWidth || _this.state.height !== fixedHeight || _this.state.offsetWidth !== offsetWidth || _this.state.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n\n _this.setState(size);\n\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(_objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n }), target);\n });\n }\n }\n };\n\n _this.setChildNode = function (node) {\n _this.childNode = node;\n };\n\n return _this;\n }\n\n _createClass(ReactResizeObserver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyObserver();\n }\n }, {\n key: \"onComponentUpdated\",\n value: function onComponentUpdated() {\n var disabled = this.props.disabled; // Unregister if disabled\n\n if (disabled) {\n this.destroyObserver();\n return;\n } // Unregister if element changed\n\n\n var element = findDOMNode(this.childNode || this);\n var elementChanged = element !== this.currentElement;\n\n if (elementChanged) {\n this.destroyObserver();\n this.currentElement = element;\n }\n\n if (!this.resizeObserver && element) {\n this.resizeObserver = new ResizeObserver(this.onResize);\n this.resizeObserver.observe(element);\n }\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var childNodes = toArray(children);\n\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Will only observe first one.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n return null;\n }\n\n var childNode = childNodes[0];\n\n if ( /*#__PURE__*/React.isValidElement(childNode) && supportRef(childNode)) {\n var ref = childNode.ref;\n childNodes[0] = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(ref, this.setChildNode)\n });\n }\n\n return childNodes.length === 1 ? childNodes[0] : childNodes.map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || 'key' in node && node.key !== null) {\n return node;\n }\n\n return /*#__PURE__*/React.cloneElement(node, {\n key: \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index)\n });\n });\n }\n }]);\n\n return ReactResizeObserver;\n}(React.Component);\n\nReactResizeObserver.displayName = 'ResizeObserver';\nexport default ReactResizeObserver;","import * as React from 'react';\n\nvar Content = function Content(props) {\n var overlay = props.overlay,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof overlay === 'function' ? overlay() : overlay);\n};\n\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n var _props$arrowContent = props.arrowContent,\n arrowContent = _props$arrowContent === void 0 ? null : _props$arrowContent,\n overlay = props.overlay,\n id = props.id;\n return [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(Content, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlay: overlay,\n overlayInnerStyle: overlayInnerStyle\n })];\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nexport default Tooltip;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n return root.contains(n);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/legacyUtil';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\n\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\n\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\n\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\n /*\n

\n
\n 元素 6 高 100px 宽 50px
\n
\n
\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\n\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); parent && parent !== body; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n/**\n * 获得元素的显示部分的区域\n */\n\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\n\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // 偏移量也反下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points; // 重置对应部分的翻转逻辑\n\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2(_objectSpread2({}, align), {}, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/**\n * Removed props:\n * - childrenProps\n */\n\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (element && isVisible(element)) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && result) {\n latestOnAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if (React.isValidElement(childNode)) {\n childNode = React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","// export this package's api\nimport Align from './Align';\nexport default Align;","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nvar StatusQueue = ['measure', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n var destroyRef = useRef(false);\n\n function setStatus(nextStatus) {\n if (!destroyRef.current) {\n setInternalStatus(nextStatus);\n }\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from './useVisibleStatus';\nimport { getMotion } from '../utils/legacyUtil';\nimport useStretchStyle from './useStretchStyle';\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n\n var prepareResolveRef = useRef(); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n if (status === 'align') {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n setAlignedClassName(nextAlignedClassName); // Repeat until not more align needed\n\n if (alignedClassName !== nextAlignedClassName) {\n Promise.resolve().then(function () {\n forceAlign();\n });\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // ======================== Motion ========================\n\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex\n }, style), {}, {\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n pointerEvents: status === 'stable' ? undefined : 'none'\n }); // Align status\n\n\n var alignDisabled = true;\n\n if ((align === null || align === void 0 ? void 0 : align.points) && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n setTargetSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from './Mask';\nimport PopupInner from './PopupInner';\nimport MobilePopupInner from './MobilePopupInner';\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, [\"visible\", \"mobile\"]);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = /*#__PURE__*/React.createRef();\n _this.triggerRef = /*#__PURE__*/React.createRef();\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n var _this$popupRef$curren; // https://github.com/react-component/trigger/pull/13\n // react bug?\n\n\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.attachParent = function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n };\n\n _this.getContainer = function () {\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n\n _this.attachParent(popupContainer);\n\n return popupContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n var popupVisible;\n\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2; // for test\n\n\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n\n }, {\n key: \"setPopupVisible\",\n value: function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: {\n onPopupMouseDown: this.onPopupMouseDown\n }\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback);\n }\n }\n };\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import canUseDom from './canUseDom';\nvar MARK_KEY = \"rc-util-key\";\n\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n\n var head = document.querySelector('head');\n return head || document.body;\n}\n\nexport function injectCSS(css) {\n var _option$csp;\n\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!canUseDom()) {\n return null;\n }\n\n var styleNode = document.createElement('style');\n\n if ((_option$csp = option.csp) === null || _option$csp === void 0 ? void 0 : _option$csp.nonce) {\n var _option$csp2;\n\n styleNode.nonce = (_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce;\n }\n\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n\n if (option.prepend && container.prepend) {\n // Use `prepend` first\n container.prepend(styleNode);\n } else if (option.prepend && firstChild) {\n // Fallback to `insertBefore` like IE not support `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n\n return styleNode;\n}\nvar containerCache = new Map();\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option); // Get real parent\n\n if (!containerCache.has(container)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n parentNode.removeChild(placeholderStyle);\n }\n\n var existNode = Array.from(containerCache.get(container).children).find(function (node) {\n return node.tagName === 'STYLE' && node[MARK_KEY] === key;\n });\n\n if (existNode) {\n var _option$csp3, _option$csp4;\n\n if (((_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce) && existNode.nonce !== ((_option$csp4 = option.csp) === null || _option$csp4 === void 0 ? void 0 : _option$csp4.nonce)) {\n var _option$csp5;\n\n existNode.nonce = (_option$csp5 = option.csp) === null || _option$csp5 === void 0 ? void 0 : _option$csp5.nonce;\n }\n\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n\n return existNode;\n }\n\n var newNode = injectCSS(css, option);\n newNode[MARK_KEY] = key;\n return newNode;\n}","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n\n if (element.offsetParent) {\n return true;\n }\n\n if (element.getBBox) {\n var box = element.getBBox();\n\n if (box.width || box.height) {\n return true;\n }\n }\n\n if (element.getBoundingClientRect) {\n var _box = element.getBoundingClientRect();\n\n if (_box.width || _box.height) {\n return true;\n }\n }\n\n return false;\n});","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from './Dom/canUseDom';\nvar Portal = forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var containerRef = useRef(); // Ref return nothing, only for wrapper check exist\n\n useImperativeHandle(ref, function () {\n return {};\n }); // Create container in client side with sync to avoid useEffect not get ref\n\n var initRef = useRef(false);\n\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n initRef.current = true;\n } // [Legacy] Used by `rc-trigger`\n\n\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 ? void 0 : didUpdate(props);\n });\n useEffect(function () {\n return function () {\n var _containerRef$current, _containerRef$current2; // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n\n\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.parentNode) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n\n return cacheRef.current.value;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useControlledState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n var _React$useState = React.useState(function () {\n if (value !== undefined) {\n return value;\n }\n\n if (defaultValue !== undefined) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerValue = _React$useState2[0],\n setInnerValue = _React$useState2[1];\n\n var mergedValue = value !== undefined ? value : innerValue;\n\n if (postState) {\n mergedValue = postState(mergedValue);\n }\n\n function triggerChange(newValue) {\n setInnerValue(newValue);\n\n if (mergedValue !== newValue && onChange) {\n onChange(newValue, mergedValue);\n }\n } // Effect of reset value to `undefined`\n\n\n var firstRenderRef = React.useRef(true);\n React.useEffect(function () {\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n return;\n }\n\n if (value === undefined) {\n setInnerValue(value);\n }\n }, [value]);\n return [mergedValue, triggerChange];\n}","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4))) {\n return true;\n }\n\n return false;\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nexport default function omit(obj, fields) {\n var clone = _objectSpread({}, obj);\n\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n\n return clone;\n}","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nvar rafUUID = 0;\nvar rafIds = new Map();\n\nfunction cleanup(id) {\n rafIds.delete(id);\n}\n\nexport default function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id); // Trigger\n\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n }); // Bind real raf id\n\n rafIds.set(id, realId);\n }\n }\n\n callRef(times);\n return id;\n}\n\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","var _slicedToArray = require(\"/codebuild/output/src3432053421/src/ecoverso/node_modules/@babel/runtime/helpers/slicedToArray\");\n\nvar _defineProperty = require(\"/codebuild/output/src3432053421/src/ecoverso/node_modules/@babel/runtime/helpers/defineProperty\");\n\nvar _toConsumableArray = require(\"/codebuild/output/src3432053421/src/ecoverso/node_modules/@babel/runtime/helpers/toConsumableArray\");\n\nvar _assertThisInitialized = require(\"/codebuild/output/src3432053421/src/ecoverso/node_modules/@babel/runtime/helpers/assertThisInitialized\");\n\nvar _inherits = require(\"/codebuild/output/src3432053421/src/ecoverso/node_modules/@babel/runtime/helpers/inherits\");\n\nvar _possibleConstructorReturn = require(\"/codebuild/output/src3432053421/src/ecoverso/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/codebuild/output/src3432053421/src/ecoverso/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _classCallCheck = require(\"/codebuild/output/src3432053421/src/ecoverso/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/codebuild/output/src3432053421/src/ecoverso/node_modules/@babel/runtime/helpers/createClass\");\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 _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e12) { throw _e12; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e13) { didErr = true; err = _e13; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nmodule.exports = function (t) {\n var e = {};\n\n function i(n) {\n if (e[n]) return e[n].exports;\n var r = e[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return t[n].call(r.exports, r, r.exports, i), r.l = !0, r.exports;\n }\n\n return i.m = t, i.c = e, i.d = function (t, e, n) {\n i.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: n\n });\n }, i.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, i.t = function (t, e) {\n if (1 & e && (t = i(t)), 8 & e) return t;\n if (4 & e && \"object\" == typeof t && t && t.__esModule) return t;\n var n = Object.create(null);\n if (i.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var r in t) {\n i.d(n, r, function (e) {\n return t[e];\n }.bind(null, r));\n }\n return n;\n }, i.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n return i.d(e, \"a\", e), e;\n }, i.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, i.p = \"\", i(i.s = 2);\n}([function (t, e) {\n t.exports = require(\"react\");\n}, function (t, e, i) {\n \"use strict\";\n\n function n(t) {\n return t && \"object\" == typeof t && \"default\" in t ? t.default : t;\n }\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n var r = n(i(3)),\n o = n(i(4)),\n s = n(i(0)),\n a = n(i(5));\n\n var l = void 0,\n d = void 0,\n c = [],\n u = function u(t) {\n return \"undefined\" != typeof window && window.requestAnimationFrame(t);\n },\n h = function h(t) {\n return \"undefined\" != typeof window && window.cancelAnimationFrame(t);\n },\n p = void 0,\n f = function f() {\n return Date.now();\n },\n m = void 0,\n g = void 0;\n\n var y = function y(t, e) {\n return d = {\n fn: t,\n transform: e\n };\n },\n v = function v(t) {\n return c = t;\n },\n b = function b(t) {\n return l = t;\n },\n w = function w(t) {\n return p = t;\n },\n x = function x(t) {\n return m = t;\n },\n k = function k(t) {\n return g = t;\n };\n\n var A = Object.freeze({\n get bugfixes() {\n return l;\n },\n\n get applyAnimatedValues() {\n return d;\n },\n\n get colorNames() {\n return c;\n },\n\n get requestFrame() {\n return u;\n },\n\n get cancelFrame() {\n return h;\n },\n\n get interpolation() {\n return p;\n },\n\n get now() {\n return f;\n },\n\n get defaultElement() {\n return m;\n },\n\n get createAnimatedStyle() {\n return g;\n },\n\n injectApplyAnimatedValues: y,\n injectColorNames: v,\n injectBugfixes: b,\n injectInterpolation: w,\n injectFrame: function injectFrame(t, e) {\n var i = [t, e];\n return u = i[0], h = i[1], i;\n },\n injectNow: function injectNow(t) {\n return f = t;\n },\n injectDefaultElement: x,\n injectCreateAnimatedStyle: k\n });\n\n var S = /*#__PURE__*/function () {\n function S() {\n _classCallCheck(this, S);\n }\n\n _createClass(S, [{\n key: \"attach\",\n value: function attach() {}\n }, {\n key: \"detach\",\n value: function detach() {}\n }, {\n key: \"getValue\",\n value: function getValue() {}\n }, {\n key: \"getAnimatedValue\",\n value: function getAnimatedValue() {\n return this.getValue();\n }\n }, {\n key: \"addChild\",\n value: function addChild(t) {}\n }, {\n key: \"removeChild\",\n value: function removeChild(t) {}\n }, {\n key: \"getChildren\",\n value: function getChildren() {\n return [];\n }\n }]);\n\n return S;\n }();\n\n var j = function j(t) {\n return Object.keys(t).map(function (e) {\n return t[e];\n });\n };\n\n var P = /*#__PURE__*/function (_S) {\n _inherits(P, _S);\n\n var _super = _createSuper(P);\n\n function P() {\n var _this;\n\n _classCallCheck(this, P);\n\n var t;\n _this = _super.apply(this, arguments), t = _assertThisInitialized(_this), _this.children = [], _this.getChildren = function () {\n return _this.children;\n }, _this.getPayload = function (e) {\n return void 0 === e && (e = void 0), void 0 !== e && t.payload ? t.payload[e] : t.payload || t;\n };\n return _this;\n }\n\n _createClass(P, [{\n key: \"addChild\",\n value: function addChild(t) {\n 0 === this.children.length && this.attach(), this.children.push(t);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(t) {\n var e = this.children.indexOf(t);\n this.children.splice(e, 1), 0 === this.children.length && this.detach();\n }\n }]);\n\n return P;\n }(S);\n\n var E = /*#__PURE__*/function (_P) {\n _inherits(E, _P);\n\n var _super2 = _createSuper(E);\n\n function E() {\n var _this2;\n\n _classCallCheck(this, E);\n\n _this2 = _super2.apply(this, arguments), _this2.payload = [], _this2.getAnimatedValue = function () {\n return _this2.getValue();\n }, _this2.attach = function () {\n return _this2.payload.forEach(function (t) {\n return t instanceof S && t.addChild(_assertThisInitialized(_this2));\n });\n }, _this2.detach = function () {\n return _this2.payload.forEach(function (t) {\n return t instanceof S && t.removeChild(_assertThisInitialized(_this2));\n });\n };\n return _this2;\n }\n\n return E;\n }(P);\n\n var V = /*#__PURE__*/function (_P2) {\n _inherits(V, _P2);\n\n var _super3 = _createSuper(V);\n\n function V() {\n var _this3;\n\n _classCallCheck(this, V);\n\n _this3 = _super3.apply(this, arguments), _this3.payload = {}, _this3.getAnimatedValue = function () {\n return _this3.getValue(!0);\n }, _this3.attach = function () {\n return j(_this3.payload).forEach(function (t) {\n return t instanceof S && t.addChild(_assertThisInitialized(_this3));\n });\n }, _this3.detach = function () {\n return j(_this3.payload).forEach(function (t) {\n return t instanceof S && t.removeChild(_assertThisInitialized(_this3));\n });\n };\n return _this3;\n }\n\n _createClass(V, [{\n key: \"getValue\",\n value: function getValue(t) {\n void 0 === t && (t = !1);\n var e = {};\n\n for (var _i in this.payload) {\n var _n = this.payload[_i];\n (!t || _n instanceof S) && (e[_i] = _n instanceof S ? _n[t ? \"getAnimatedValue\" : \"getValue\"]() : _n);\n }\n\n return e;\n }\n }]);\n\n return V;\n }(P);\n\n var O = /*#__PURE__*/function (_V) {\n _inherits(O, _V);\n\n var _super4 = _createSuper(O);\n\n function O(t) {\n var _this4;\n\n _classCallCheck(this, O);\n\n _this4 = _super4.call(this), !(t = t || {}).transform || t.transform instanceof S || (t = d.transform(t)), _this4.payload = t;\n return _this4;\n }\n\n return O;\n }(V);\n\n var C = {\n transparent: 0,\n aliceblue: 4042850303,\n antiquewhite: 4209760255,\n aqua: 16777215,\n aquamarine: 2147472639,\n azure: 4043309055,\n beige: 4126530815,\n bisque: 4293182719,\n black: 255,\n blanchedalmond: 4293643775,\n blue: 65535,\n blueviolet: 2318131967,\n brown: 2771004159,\n burlywood: 3736635391,\n burntsienna: 3934150143,\n cadetblue: 1604231423,\n chartreuse: 2147418367,\n chocolate: 3530104575,\n coral: 4286533887,\n cornflowerblue: 1687547391,\n cornsilk: 4294499583,\n crimson: 3692313855,\n cyan: 16777215,\n darkblue: 35839,\n darkcyan: 9145343,\n darkgoldenrod: 3095792639,\n darkgray: 2846468607,\n darkgreen: 6553855,\n darkgrey: 2846468607,\n darkkhaki: 3182914559,\n darkmagenta: 2332068863,\n darkolivegreen: 1433087999,\n darkorange: 4287365375,\n darkorchid: 2570243327,\n darkred: 2332033279,\n darksalmon: 3918953215,\n darkseagreen: 2411499519,\n darkslateblue: 1211993087,\n darkslategray: 793726975,\n darkslategrey: 793726975,\n darkturquoise: 13554175,\n darkviolet: 2483082239,\n deeppink: 4279538687,\n deepskyblue: 12582911,\n dimgray: 1768516095,\n dimgrey: 1768516095,\n dodgerblue: 512819199,\n firebrick: 2988581631,\n floralwhite: 4294635775,\n forestgreen: 579543807,\n fuchsia: 4278255615,\n gainsboro: 3705462015,\n ghostwhite: 4177068031,\n gold: 4292280575,\n goldenrod: 3668254975,\n gray: 2155905279,\n green: 8388863,\n greenyellow: 2919182335,\n grey: 2155905279,\n honeydew: 4043305215,\n hotpink: 4285117695,\n indianred: 3445382399,\n indigo: 1258324735,\n ivory: 4294963455,\n khaki: 4041641215,\n lavender: 3873897215,\n lavenderblush: 4293981695,\n lawngreen: 2096890111,\n lemonchiffon: 4294626815,\n lightblue: 2916673279,\n lightcoral: 4034953471,\n lightcyan: 3774873599,\n lightgoldenrodyellow: 4210742015,\n lightgray: 3553874943,\n lightgreen: 2431553791,\n lightgrey: 3553874943,\n lightpink: 4290167295,\n lightsalmon: 4288707327,\n lightseagreen: 548580095,\n lightskyblue: 2278488831,\n lightslategray: 2005441023,\n lightslategrey: 2005441023,\n lightsteelblue: 2965692159,\n lightyellow: 4294959359,\n lime: 16711935,\n limegreen: 852308735,\n linen: 4210091775,\n magenta: 4278255615,\n maroon: 2147483903,\n mediumaquamarine: 1724754687,\n mediumblue: 52735,\n mediumorchid: 3126187007,\n mediumpurple: 2473647103,\n mediumseagreen: 1018393087,\n mediumslateblue: 2070474495,\n mediumspringgreen: 16423679,\n mediumturquoise: 1221709055,\n mediumvioletred: 3340076543,\n midnightblue: 421097727,\n mintcream: 4127193855,\n mistyrose: 4293190143,\n moccasin: 4293178879,\n navajowhite: 4292783615,\n navy: 33023,\n oldlace: 4260751103,\n olive: 2155872511,\n olivedrab: 1804477439,\n orange: 4289003775,\n orangered: 4282712319,\n orchid: 3664828159,\n palegoldenrod: 4008225535,\n palegreen: 2566625535,\n paleturquoise: 2951671551,\n palevioletred: 3681588223,\n papayawhip: 4293907967,\n peachpuff: 4292524543,\n peru: 3448061951,\n pink: 4290825215,\n plum: 3718307327,\n powderblue: 2967529215,\n purple: 2147516671,\n rebeccapurple: 1714657791,\n red: 4278190335,\n rosybrown: 3163525119,\n royalblue: 1097458175,\n saddlebrown: 2336560127,\n salmon: 4202722047,\n sandybrown: 4104413439,\n seagreen: 780883967,\n seashell: 4294307583,\n sienna: 2689740287,\n silver: 3233857791,\n skyblue: 2278484991,\n slateblue: 1784335871,\n slategray: 1887473919,\n slategrey: 1887473919,\n snow: 4294638335,\n springgreen: 16744447,\n steelblue: 1182971135,\n tan: 3535047935,\n teal: 8421631,\n thistle: 3636451583,\n tomato: 4284696575,\n turquoise: 1088475391,\n violet: 4001558271,\n wheat: 4125012991,\n white: 4294967295,\n whitesmoke: 4126537215,\n yellow: 4294902015,\n yellowgreen: 2597139199\n };\n\n var F = /*#__PURE__*/function () {\n function F() {\n _classCallCheck(this, F);\n }\n\n _createClass(F, null, [{\n key: \"create\",\n value: function create(t, e, i) {\n if (\"function\" == typeof t) return t;\n if (p && t.output && \"string\" == typeof t.output[0]) return p(t);\n if (Array.isArray(t)) return F.create({\n range: t,\n output: e,\n extrapolate: i || \"extend\"\n });\n\n var n = t.output,\n r = t.range || [0, 1],\n o = t.easing || function (t) {\n return t;\n },\n s = \"extend\",\n a = t.map;\n\n void 0 !== t.extrapolateLeft ? s = t.extrapolateLeft : void 0 !== t.extrapolate && (s = t.extrapolate);\n var l = \"extend\";\n return void 0 !== t.extrapolateRight ? l = t.extrapolateRight : void 0 !== t.extrapolate && (l = t.extrapolate), function (t) {\n var e = function (t, e) {\n for (var i = 1; i < e.length - 1 && !(e[i] >= t); ++i) {\n ;\n }\n\n return i - 1;\n }(t, r);\n\n return function (t, e, i, n, r, o, s, a, l) {\n var d = l ? l(t) : t;\n\n if (d < e) {\n if (\"identity\" === s) return d;\n \"clamp\" === s && (d = e);\n }\n\n if (d > i) {\n if (\"identity\" === a) return d;\n \"clamp\" === a && (d = i);\n }\n\n if (n === r) return n;\n if (e === i) return t <= e ? n : r;\n e === -1 / 0 ? d = -d : i === 1 / 0 ? d -= e : d = (d - e) / (i - e);\n d = o(d), n === -1 / 0 ? d = -d : r === 1 / 0 ? d += n : d = d * (r - n) + n;\n return d;\n }(t, r[e], r[e + 1], n[e], n[e + 1], o, s, l, a);\n };\n }\n }]);\n\n return F;\n }();\n\n var R = \"[-+]?\\\\d*\\\\.?\\\\d+\";\n\n function T() {\n return \"\\\\(\\\\s*(\" + Array.prototype.slice.call(arguments).join(\")\\\\s*,\\\\s*(\") + \")\\\\s*\\\\)\";\n }\n\n var M = new RegExp(\"rgb\" + T(R, R, R)),\n I = new RegExp(\"rgba\" + T(R, R, R, R)),\n U = new RegExp(\"hsl\" + T(R, \"[-+]?\\\\d*\\\\.?\\\\d+%\", \"[-+]?\\\\d*\\\\.?\\\\d+%\")),\n q = new RegExp(\"hsla\" + T(R, \"[-+]?\\\\d*\\\\.?\\\\d+%\", \"[-+]?\\\\d*\\\\.?\\\\d+%\", R)),\n D = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n W = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n $ = /^#([0-9a-fA-F]{6})$/,\n _ = /^#([0-9a-fA-F]{8})$/;\n\n function K(t, e, i) {\n return i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + 6 * (e - t) * i : i < .5 ? e : i < 2 / 3 ? t + (e - t) * (2 / 3 - i) * 6 : t;\n }\n\n function L(t, e, i) {\n var n = i < .5 ? i * (1 + e) : i + e - i * e,\n r = 2 * i - n,\n o = K(r, n, t + 1 / 3),\n s = K(r, n, t),\n a = K(r, n, t - 1 / 3);\n return Math.round(255 * o) << 24 | Math.round(255 * s) << 16 | Math.round(255 * a) << 8;\n }\n\n function z(t) {\n var e = parseInt(t, 10);\n return e < 0 ? 0 : e > 255 ? 255 : e;\n }\n\n function N(t) {\n return (parseFloat(t) % 360 + 360) % 360 / 360;\n }\n\n function G(t) {\n var e = parseFloat(t);\n return e < 0 ? 0 : e > 1 ? 255 : Math.round(255 * e);\n }\n\n function H(t) {\n var e = parseFloat(t);\n return e < 0 ? 0 : e > 100 ? 1 : e / 100;\n }\n\n function B(t) {\n var e = function (t) {\n var e;\n return \"number\" == typeof t ? t >>> 0 === t && t >= 0 && t <= 4294967295 ? t : null : (e = $.exec(t)) ? parseInt(e[1] + \"ff\", 16) >>> 0 : C.hasOwnProperty(t) ? C[t] : (e = M.exec(t)) ? (z(e[1]) << 24 | z(e[2]) << 16 | z(e[3]) << 8 | 255) >>> 0 : (e = I.exec(t)) ? (z(e[1]) << 24 | z(e[2]) << 16 | z(e[3]) << 8 | G(e[4])) >>> 0 : (e = D.exec(t)) ? parseInt(e[1] + e[1] + e[2] + e[2] + e[3] + e[3] + \"ff\", 16) >>> 0 : (e = _.exec(t)) ? parseInt(e[1], 16) >>> 0 : (e = W.exec(t)) ? parseInt(e[1] + e[1] + e[2] + e[2] + e[3] + e[3] + e[4] + e[4], 16) >>> 0 : (e = U.exec(t)) ? (255 | L(N(e[1]), H(e[2]), H(e[3]))) >>> 0 : (e = q.exec(t)) ? (L(N(e[1]), H(e[2]), H(e[3])) | G(e[4])) >>> 0 : null;\n }(t);\n\n return null === e ? t : (e = e || 0, \"rgba(\".concat((4278190080 & e) >>> 24, \", \").concat((16711680 & e) >>> 16, \", \").concat((65280 & e) >>> 8, \", \").concat((255 & e) / 255, \")\"));\n }\n\n var Y = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,\n Z = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi,\n J = new RegExp(\"(\".concat(Object.keys(C).join(\"|\"), \")\"), \"g\");\n\n var Q = /*#__PURE__*/function (_E) {\n _inherits(Q, _E);\n\n var _super5 = _createSuper(Q);\n\n function Q(t, e, i) {\n var _this5;\n\n _classCallCheck(this, Q);\n\n _this5 = _super5.call(this), _this5.getValue = function () {\n var _this6;\n\n return (_this6 = _this5).calc.apply(_this6, _toConsumableArray(_this5.payload.map(function (t) {\n return t.getValue();\n })));\n }, _this5.updateConfig = function (t, e) {\n return _this5.calc = F.create(t, e);\n }, _this5.interpolate = function (t, e) {\n return new Q(_assertThisInitialized(_this5), t, e);\n }, _this5.payload = t instanceof E && !t.updateConfig ? t.payload : Array.isArray(t) ? t : [t], _this5.calc = F.create(e, i);\n return _this5;\n }\n\n return Q;\n }(E);\n\n var X = /*#__PURE__*/function (_P3) {\n _inherits(X, _P3);\n\n var _super6 = _createSuper(X);\n\n function X(t) {\n var _this7;\n\n _classCallCheck(this, X);\n\n var e;\n _this7 = _super6.call(this), e = _assertThisInitialized(_this7), _this7.setValue = function (t, i) {\n void 0 === i && (i = !0), e.value = t, i && e.flush();\n }, _this7.getValue = function () {\n return _this7.value;\n }, _this7.updateStyles = function () {\n return function t(e, i) {\n \"function\" == typeof e.update ? i.add(e) : e.getChildren().forEach(function (e) {\n return t(e, i);\n });\n }(_assertThisInitialized(_this7), _this7.animatedStyles);\n }, _this7.updateValue = function (t) {\n return _this7.flush(_this7.value = t);\n }, _this7.interpolate = function (t, e) {\n return new Q(_assertThisInitialized(_this7), t, e);\n }, _this7.value = t, _this7.animatedStyles = new Set(), _this7.done = !1, _this7.startPosition = t, _this7.lastPosition = t, _this7.lastVelocity = void 0, _this7.lastTime = void 0, _this7.controller = void 0;\n return _this7;\n }\n\n _createClass(X, [{\n key: \"flush\",\n value: function flush() {\n 0 === this.animatedStyles.size && this.updateStyles(), this.animatedStyles.forEach(function (t) {\n return t.update();\n });\n }\n }, {\n key: \"prepare\",\n value: function prepare(t) {\n void 0 === this.controller && (this.controller = t), this.controller === t && (this.startPosition = this.value, this.lastPosition = this.value, this.lastVelocity = t.isActive ? this.lastVelocity : void 0, this.lastTime = t.isActive ? this.lastTime : void 0, this.done = !1, this.animatedStyles.clear());\n }\n }]);\n\n return X;\n }(P);\n\n var tt = /*#__PURE__*/function (_E2) {\n _inherits(tt, _E2);\n\n var _super7 = _createSuper(tt);\n\n function tt(t) {\n var _this8;\n\n _classCallCheck(this, tt);\n\n var e;\n _this8 = _super7.call(this), e = _assertThisInitialized(_this8), _this8.setValue = function (t, i) {\n void 0 === i && (i = !0), Array.isArray(t) ? t.length === e.payload.length && t.forEach(function (t, n) {\n return e.payload[n].setValue(t, i);\n }) : e.payload.forEach(function (n, r) {\n return e.payload[r].setValue(t, i);\n });\n }, _this8.getValue = function () {\n return _this8.payload.map(function (t) {\n return t.getValue();\n });\n }, _this8.interpolate = function (t, e) {\n return new Q(_assertThisInitialized(_this8), t, e);\n }, _this8.payload = t.map(function (t) {\n return new X(t);\n });\n return _this8;\n }\n\n return tt;\n }(E);\n\n function et(t, e) {\n return null == t ? e : t;\n }\n\n function it(t) {\n return void 0 !== t ? Array.isArray(t) ? t : [t] : [];\n }\n\n function nt(t, e) {\n if (typeof t != typeof e) return !1;\n if (\"string\" == typeof t || \"number\" == typeof t) return t === e;\n var i;\n\n for (i in t) {\n if (!(i in e)) return !1;\n }\n\n for (i in e) {\n if (t[i] !== e[i]) return !1;\n }\n\n return void 0 !== i || t === e;\n }\n\n function rt(t) {\n for (var e = arguments.length, i = new Array(e > 1 ? e - 1 : 0), n = 1; n < e; n++) {\n i[n - 1] = arguments[n];\n }\n\n return \"function\" == typeof t ? t.apply(void 0, i) : t;\n }\n\n function ot(t) {\n return Object.keys(t).map(function (e) {\n return t[e];\n });\n }\n\n function st(t) {\n var e = function (t) {\n return t.to, t.from, t.config, t.native, t.onStart, t.onRest, t.onFrame, t.children, t.reset, t.reverse, t.force, t.immediate, t.impl, t.inject, t.delay, t.attach, t.destroyed, t.interpolateTo, t.autoStart, t.ref, r(t, [\"to\", \"from\", \"config\", \"native\", \"onStart\", \"onRest\", \"onFrame\", \"children\", \"reset\", \"reverse\", \"force\", \"immediate\", \"impl\", \"inject\", \"delay\", \"attach\", \"destroyed\", \"interpolateTo\", \"autoStart\", \"ref\"]);\n }(t),\n i = Object.keys(t).reduce(function (i, n) {\n return void 0 !== e[n] ? i : o({}, i, _defineProperty({}, n, t[n]));\n }, {});\n\n return o({\n to: e\n }, i);\n }\n\n function at(t, e) {\n var i = e[0],\n n = e[1];\n return o({}, t, _defineProperty({}, i, new (Array.isArray(n) ? tt : X)(n)));\n }\n\n function lt(t) {\n var e = t.from,\n i = t.to,\n n = t.native,\n r = Object.entries(o({}, e, i));\n return n ? r.reduce(at, {}) : o({}, e, i);\n }\n\n function dt(t, e) {\n return e && (\"function\" == typeof e ? e(t) : \"object\" == typeof e && (e.current = t)), t;\n }\n\n var ct = function ct(t) {\n return \"auto\" === t;\n };\n\n var ut = {\n animationIterationCount: !0,\n borderImageOutset: !0,\n borderImageSlice: !0,\n borderImageWidth: !0,\n boxFlex: !0,\n boxFlexGroup: !0,\n boxOrdinalGroup: !0,\n columnCount: !0,\n columns: !0,\n flex: !0,\n flexGrow: !0,\n flexPositive: !0,\n flexShrink: !0,\n flexNegative: !0,\n flexOrder: !0,\n gridRow: !0,\n gridRowEnd: !0,\n gridRowSpan: !0,\n gridRowStart: !0,\n gridColumn: !0,\n gridColumnEnd: !0,\n gridColumnSpan: !0,\n gridColumnStart: !0,\n fontWeight: !0,\n lineClamp: !0,\n lineHeight: !0,\n opacity: !0,\n order: !0,\n orphans: !0,\n tabSize: !0,\n widows: !0,\n zIndex: !0,\n zoom: !0,\n fillOpacity: !0,\n floodOpacity: !0,\n stopOpacity: !0,\n strokeDasharray: !0,\n strokeDashoffset: !0,\n strokeMiterlimit: !0,\n strokeOpacity: !0,\n strokeWidth: !0\n };\n var ht = [\"Webkit\", \"Ms\", \"Moz\", \"O\"];\n\n function pt(t, e, i) {\n return null == e || \"boolean\" == typeof e || \"\" === e ? \"\" : i || \"number\" != typeof e || 0 === e || ut.hasOwnProperty(t) && ut[t] ? (\"\" + e).trim() : e + \"px\";\n }\n\n ut = Object.keys(ut).reduce(function (t, e) {\n return ht.forEach(function (i) {\n return t[function (t, e) {\n return t + e.charAt(0).toUpperCase() + e.substring(1);\n }(i, e)] = t[e];\n }), t;\n }, ut);\n var ft = {};\n k(function (t) {\n return new O(t);\n }), x(\"div\"), w(function (t) {\n var e = t.output.map(function (t) {\n return t.replace(Z, B);\n }).map(function (t) {\n return t.replace(J, B);\n }),\n i = e[0].match(Y).map(function () {\n return [];\n });\n e.forEach(function (t) {\n t.match(Y).forEach(function (t, e) {\n return i[e].push(+t);\n });\n });\n var n = e[0].match(Y).map(function (e, n) {\n return F.create(o({}, t, {\n output: i[n]\n }));\n });\n return function (t) {\n var i = 0;\n return e[0].replace(Y, function () {\n return n[i++](t);\n }).replace(/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi, function (t, e, i, n, r) {\n return \"rgba(\".concat(Math.round(e), \", \").concat(Math.round(i), \", \").concat(Math.round(n), \", \").concat(r, \")\");\n });\n };\n }), v(C), b(function (t, e) {\n var i = t.from,\n n = t.to,\n r = t.children;\n if (!ot(n).some(ct) && !ot(i).some(ct)) return;\n var l = r(lt(t));\n if (!l) return;\n Array.isArray(l) && (l = {\n type: \"div\",\n props: {\n children: l\n }\n });\n var d = l.props.style;\n return s.createElement(l.type, o({\n key: l.key ? l.key : void 0\n }, l.props, {\n style: o({}, d, {\n position: \"absolute\",\n visibility: \"hidden\"\n }),\n ref: function ref(r) {\n if (r) {\n var _s,\n _l,\n _d = a.findDOMNode(r),\n _c = getComputedStyle(_d);\n\n if (\"border-box\" === _c.boxSizing) _s = _d.offsetWidth, _l = _d.offsetHeight;else {\n var _t = parseFloat(_c.paddingLeft || 0) + parseFloat(_c.paddingRight || 0),\n _e = parseFloat(_c.paddingTop || 0) + parseFloat(_c.paddingBottom || 0),\n _i2 = parseFloat(_c.borderLeftWidth || 0) + parseFloat(_c.borderRightWidth || 0),\n _n2 = parseFloat(_c.borderTopWidth || 0) + parseFloat(_c.borderBottomWidth || 0);\n\n _s = _d.offsetWidth - _t - _i2, _l = _d.offsetHeight - _e - _n2;\n }\n\n var _u = function (t, e) {\n return function (i, n) {\n var r = n[0],\n s = n[1];\n return o({}, i, _defineProperty({}, r, \"auto\" === s ? ~r.indexOf(\"height\") ? e : t : s));\n };\n }(_s, _l);\n\n e(o({}, t, {\n from: Object.entries(i).reduce(_u, i),\n to: Object.entries(n).reduce(_u, n)\n }));\n }\n }\n }));\n }), y(function (t, e) {\n if (!t.nodeType || void 0 === t.setAttribute) return !1;\n {\n var _o4 = e.style,\n _s2 = e.children,\n _a = e.scrollTop,\n _l2 = e.scrollLeft,\n _d2 = r(e, [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"]);\n\n void 0 !== _a && (t.scrollTop = _a), void 0 !== _l2 && (t.scrollLeft = _l2), void 0 !== _s2 && (t.textContent = _s2);\n\n for (var _e2 in _o4) {\n if (_o4.hasOwnProperty(_e2)) {\n var i = 0 === _e2.indexOf(\"--\"),\n n = pt(_e2, _o4[_e2], i);\n\n \"float\" === _e2 && (_e2 = \"cssFloat\"), i ? t.style.setProperty(_e2, n) : t.style[_e2] = n;\n }\n }\n\n for (var _e3 in _d2) {\n var _i3 = ft[_e3] || (ft[_e3] = _e3.replace(/([A-Z])/g, function (t) {\n return \"-\" + t.toLowerCase();\n }));\n\n void 0 !== t.getAttribute(_i3) && t.setAttribute(_i3, _d2[_e3]);\n }\n }\n }, function (t) {\n return t;\n });\n var mt = !1;\n\n var gt = new Set(),\n yt = function yt() {\n var t = f();\n\n var _iterator = _createForOfIteratorHelper(gt),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _e4 = _step.value;\n\n var _i4 = !0,\n _n3 = !0;\n\n for (var _r = 0; _r < _e4.configs.length; _r++) {\n var _o5 = void 0,\n _s3 = void 0,\n _a2 = _e4.configs[_r];\n\n for (var _r2 = 0; _r2 < _a2.animatedValues.length; _r2++) {\n var _l3 = _a2.animatedValues[_r2];\n if (_l3.done) continue;\n\n var _d3 = _a2.fromValues[_r2],\n _c2 = _a2.toValues[_r2],\n _u2 = _l3.lastPosition,\n _h = _c2 instanceof S,\n _p = Array.isArray(_a2.initialVelocity) ? _a2.initialVelocity[_r2] : _a2.initialVelocity;\n\n if (_h && (_c2 = _c2.getValue()), _a2.immediate || !_h && !_a2.decay && _d3 === _c2) _l3.updateValue(_c2), _l3.done = !0;else if (_a2.delay && t - _e4.startTime < _a2.delay) _i4 = !1;else if (_n3 = !1, \"string\" != typeof _d3 && \"string\" != typeof _c2) {\n if (void 0 !== _a2.duration) _u2 = _d3 + _a2.easing((t - _e4.startTime - _a2.delay) / _a2.duration) * (_c2 - _d3), _o5 = t >= _e4.startTime + _a2.delay + _a2.duration;else if (_a2.decay) _u2 = _d3 + _p / (1 - .998) * (1 - Math.exp(-(1 - .998) * (t - _e4.startTime))), _o5 = Math.abs(_l3.lastPosition - _u2) < .1, _o5 && (_c2 = _u2);else {\n _s3 = void 0 !== _l3.lastTime ? _l3.lastTime : t, _p = void 0 !== _l3.lastVelocity ? _l3.lastVelocity : _a2.initialVelocity, t > _s3 + 64 && (_s3 = t);\n\n var _e5 = Math.floor(t - _s3);\n\n for (var _t2 = 0; _t2 < _e5; ++_t2) {\n _p += 1 * ((-_a2.tension * (_u2 - _c2) + -_a2.friction * _p) / _a2.mass) / 1e3, _u2 += 1 * _p / 1e3;\n }\n\n var _i5 = !(!_a2.clamp || 0 === _a2.tension) && (_d3 < _c2 ? _u2 > _c2 : _u2 < _c2),\n _n4 = Math.abs(_p) <= _a2.precision,\n _r3 = 0 === _a2.tension || Math.abs(_c2 - _u2) <= _a2.precision;\n\n _o5 = _i5 || _n4 && _r3, _l3.lastVelocity = _p, _l3.lastTime = t;\n }\n _h && !_a2.toValues[_r2].done && (_o5 = !1), _o5 ? (_l3.value !== _c2 && (_u2 = _c2), _l3.done = !0) : _i4 = !1, _l3.updateValue(_u2), _l3.lastPosition = _u2;\n } else _l3.updateValue(_c2), _l3.done = !0;\n }\n\n !_e4.props.onFrame && _e4.props.native || (_e4.animatedProps[_a2.name] = _a2.interpolation.getValue());\n }\n\n !_e4.props.onFrame && _e4.props.native || (!_e4.props.native && _e4.onUpdate && _e4.onUpdate(), _e4.props.onFrame && _e4.props.onFrame(_e4.animatedProps)), _i4 && (gt.delete(_e4), _e4.debouncedOnEnd({\n finished: !0,\n noChange: _n3\n }));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n gt.size ? u(yt) : mt = !1;\n },\n vt = function vt(t) {\n gt.has(t) && gt.delete(t);\n };\n\n var bt = /*#__PURE__*/function () {\n function bt(t, e) {\n var _this9 = this;\n\n _classCallCheck(this, bt);\n\n void 0 === e && (e = {\n native: !0,\n interpolateTo: !0,\n autoStart: !0\n }), this.getValues = function () {\n return _this9.props.native ? _this9.interpolations : _this9.animatedProps;\n }, this.dependents = new Set(), this.isActive = !1, this.hasChanged = !1, this.props = {}, this.merged = {}, this.animations = {}, this.interpolations = {}, this.animatedProps = {}, this.configs = [], this.frame = void 0, this.startTime = void 0, this.lastTime = void 0, this.update(o({}, t, e));\n }\n\n _createClass(bt, [{\n key: \"update\",\n value: function update(t) {\n var _this10 = this;\n\n this.props = o({}, this.props, t);\n var e = this.props.interpolateTo ? st(this.props) : this.props,\n i = e.from,\n n = void 0 === i ? {} : i,\n r = e.to,\n s = void 0 === r ? {} : r,\n a = e.config,\n l = void 0 === a ? {} : a,\n d = e.delay,\n u = void 0 === d ? 0 : d,\n h = e.reverse,\n p = e.attach,\n f = e.reset,\n m = e.immediate,\n g = e.autoStart,\n y = e.ref;\n\n if (h) {\n var v = [s, n];\n n = v[0], s = v[1];\n }\n\n this.hasChanged = !1;\n var b = p && p(this),\n w = f ? {} : this.merged;\n\n if (this.merged = o({}, n, w, s), this.animations = Object.entries(this.merged).reduce(function (t, e, i) {\n var r = e[0],\n s = e[1],\n a = !f && t[r] || {};\n var d = \"number\" == typeof s,\n h = \"string\" == typeof s && !s.startsWith(\"#\") && !/\\d/.test(s) && !c[s],\n p = !d && !h && Array.isArray(s);\n var g = void 0 !== n[r] ? n[r] : s,\n y = d || p || h ? s : 1,\n v = rt(l, r);\n if (b && (y = b.animations[r].parent), void 0 === v.decay && nt(a.changes, s)) return t;\n {\n var _e6, _i6;\n\n if (_this10.hasChanged = !0, d || h) _e6 = _i6 = a.parent || new X(g);else if (p) _e6 = _i6 = a.parent || new tt(g);else {\n var _t3 = a.interpolation && a.interpolation.calc(a.parent.value);\n\n a.parent ? (_e6 = a.parent, _e6.setValue(0, !1)) : _e6 = new X(0);\n var _n6 = {\n output: [void 0 !== _t3 ? _t3 : g, s]\n };\n a.interpolation ? (_i6 = a.interpolation, a.interpolation.updateConfig(_n6)) : _i6 = _e6.interpolate(_n6);\n }\n rt(m, r) && _e6.setValue(s, !1);\n\n var _n5 = it(_e6.getPayload());\n\n return _n5.forEach(function (t) {\n return t.prepare(_this10);\n }), o({}, t, _defineProperty({}, r, o({}, a, {\n name: r,\n parent: _e6,\n interpolation: _i6,\n animatedValues: _n5,\n changes: s,\n fromValues: it(_e6.getValue()),\n toValues: it(b ? y.getPayload() : y),\n immediate: rt(m, r),\n delay: et(v.delay, u || 0),\n initialVelocity: et(v.velocity, 0),\n clamp: et(v.clamp, !1),\n precision: et(v.precision, .01),\n tension: et(v.tension, 170),\n friction: et(v.friction, 26),\n mass: et(v.mass, 1),\n duration: v.duration,\n easing: et(v.easing, function (t) {\n return t;\n }),\n decay: v.decay\n })));\n }\n }, this.animations), this.hasChanged) {\n this.configs = ot(this.animations), this.animatedProps = {}, this.interpolations = {};\n\n for (var _t4 in this.animations) {\n this.interpolations[_t4] = this.animations[_t4].interpolation, this.animatedProps[_t4] = this.animations[_t4].interpolation.getValue();\n }\n }\n\n for (var x = arguments.length, k = new Array(x > 1 ? x - 1 : 0), A = 1; A < x; A++) {\n k[A - 1] = arguments[A];\n }\n\n y || !g && !k.length || this.start.apply(this, k);\n var S = k[0],\n j = k[1];\n return this.onEnd = \"function\" == typeof S && S, this.onUpdate = j, this.getValues();\n }\n }, {\n key: \"start\",\n value: function start(t, e) {\n var _this11 = this;\n\n var i;\n return this.startTime = f(), this.isActive && this.stop(), this.isActive = !0, this.onEnd = \"function\" == typeof t && t, this.onUpdate = e, this.props.onStart && this.props.onStart(), i = this, gt.has(i) || (gt.add(i), mt || u(yt), mt = !0), new Promise(function (t) {\n return _this11.resolve = t;\n });\n }\n }, {\n key: \"stop\",\n value: function stop(t) {\n void 0 === t && (t = !1), t && ot(this.animations).forEach(function (t) {\n return t.changes = void 0;\n }), this.debouncedOnEnd({\n finished: t\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n vt(this), this.props = {}, this.merged = {}, this.animations = {}, this.interpolations = {}, this.animatedProps = {}, this.configs = [];\n }\n }, {\n key: \"debouncedOnEnd\",\n value: function debouncedOnEnd(t) {\n vt(this), this.isActive = !1;\n var e = this.onEnd;\n this.onEnd = null, e && e(t), this.resolve && this.resolve(), this.resolve = null;\n }\n }]);\n\n return bt;\n }();\n\n var wt = /*#__PURE__*/function (_V2) {\n _inherits(wt, _V2);\n\n var _super8 = _createSuper(wt);\n\n function wt(t, e) {\n var _this12;\n\n _classCallCheck(this, wt);\n\n _this12 = _super8.call(this), t.style && (t = o({}, t, {\n style: g(t.style)\n })), _this12.payload = t, _this12.update = e, _this12.attach();\n return _this12;\n }\n\n return wt;\n }(V);\n\n function xt(t) {\n var e = /*#__PURE__*/function (_s$Component) {\n _inherits(e, _s$Component);\n\n var _super9 = _createSuper(e);\n\n function e(t) {\n var _this13;\n\n _classCallCheck(this, e);\n\n _this13 = _super9.call(this), _this13.callback = function () {\n if (_this13.node) {\n !1 === d.fn(_this13.node, _this13.propsAnimated.getAnimatedValue(), _assertThisInitialized(_this13)) && _this13.forceUpdate();\n }\n }, _this13.attachProps(t);\n return _this13;\n }\n\n _createClass(e, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.propsAnimated && this.propsAnimated.detach();\n }\n }, {\n key: \"setNativeProps\",\n value: function setNativeProps(t) {\n !1 === d.fn(this.node, t, this) && this.forceUpdate();\n }\n }, {\n key: \"attachProps\",\n value: function attachProps(t) {\n t.forwardRef;\n\n var _e7 = r(t, [\"forwardRef\"]);\n\n var i = this.propsAnimated;\n this.propsAnimated = new wt(_e7, this.callback), i && i.detach();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(t) {\n var _e8 = t.style,\n i = r(t, [\"style\"]),\n n = this.props,\n o = n.style;\n return (!nt(r(n, [\"style\"]), i) || !nt(o, _e8)) && (this.attachProps(t), !0);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this14 = this;\n\n var _e9 = this.propsAnimated.getValue(),\n i = (_e9.scrollTop, _e9.scrollLeft, r(_e9, [\"scrollTop\", \"scrollLeft\"]));\n\n return s.createElement(t, o({}, i, {\n ref: function ref(t) {\n return _this14.node = dt(t, _this14.props.forwardRef);\n }\n }));\n }\n }]);\n\n return e;\n }(s.Component);\n\n return s.forwardRef(function (t, i) {\n return s.createElement(e, o({}, t, {\n forwardRef: i\n }));\n });\n }\n\n var kt = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n };\n\n var At = /*#__PURE__*/function (_s$Component2) {\n _inherits(At, _s$Component2);\n\n var _super10 = _createSuper(At);\n\n function At() {\n var _this15;\n\n _classCallCheck(this, At);\n\n _this15 = _super10.apply(this, arguments), _this15.state = {\n lastProps: {\n from: {},\n to: {}\n },\n propsChanged: !1,\n internal: !1\n }, _this15.controller = new bt(null, null), _this15.didUpdate = !1, _this15.didInject = !1, _this15.finished = !0, _this15.start = function () {\n _this15.finished = !1;\n var t = _this15.mounted;\n\n _this15.controller.start(function (e) {\n return _this15.finish(o({}, e, {\n wasMounted: t\n }));\n }, _this15.update);\n }, _this15.stop = function () {\n return _this15.controller.stop(!0);\n }, _this15.update = function () {\n return _this15.mounted && _this15.setState({\n internal: !0\n });\n }, _this15.finish = function (t) {\n var e = t.finished,\n i = t.noChange,\n n = t.wasMounted;\n _this15.finished = !0, _this15.mounted && e && (!_this15.props.onRest || !n && i || _this15.props.onRest(_this15.controller.merged), _this15.mounted && _this15.didInject && (_this15.afterInject = lt(_this15.props), _this15.setState({\n internal: !0\n })), _this15.mounted && (_this15.didInject || _this15.props.after) && _this15.setState({\n internal: !0\n }), _this15.didInject = !1);\n };\n return _this15;\n }\n\n _createClass(At, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate(), this.mounted = !0;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = !1, this.stop();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this16 = this;\n\n var t = this.props.children,\n e = this.state.propsChanged;\n\n if (this.props.inject && e && !this.injectProps) {\n var _t5 = this.props.inject(this.props, function (t) {\n _this16.injectProps = t, _this16.setState({\n internal: !0\n });\n });\n\n if (_t5) return _t5;\n }\n\n (this.injectProps || e) && (this.didInject = !1, this.injectProps ? (this.controller.update(this.injectProps), this.didInject = !0) : e && this.controller.update(this.props), this.didUpdate = !0, this.afterInject = void 0, this.injectProps = void 0);\n var i = o({}, this.controller.getValues(), this.afterInject);\n return this.finished && (i = o({}, i, this.props.after)), Object.keys(i).length ? t(i) : null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.didUpdate && this.start(), this.didUpdate = !1;\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(t, e) {\n var i = e.internal,\n n = e.lastProps;\n var r = t.from,\n o = t.to,\n s = t.reset,\n a = t.force;\n return {\n propsChanged: !nt(o, n.to) || !nt(r, n.from) || s && !i || a && !i,\n lastProps: t,\n internal: !1\n };\n }\n }]);\n\n return At;\n }(s.Component);\n\n At.defaultProps = {\n from: {},\n to: {},\n config: kt.default,\n native: !1,\n immediate: !1,\n reset: !1,\n force: !1,\n inject: l\n };\n\n var St = /*#__PURE__*/function (_s$PureComponent) {\n _inherits(St, _s$PureComponent);\n\n var _super11 = _createSuper(St);\n\n function St() {\n var _this17;\n\n _classCallCheck(this, St);\n\n _this17 = _super11.apply(this, arguments), _this17.first = !0, _this17.instances = new Set(), _this17.hook = function (t, e, i, n) {\n return _this17.instances.add(t), (n ? e === i - 1 : 0 === e) ? void 0 : Array.from(_this17.instances)[n ? e + 1 : e - 1];\n };\n return _this17;\n }\n\n _createClass(St, [{\n key: \"render\",\n value: function render() {\n var _this18 = this;\n\n var t = this.props,\n e = t.items,\n i = t.children,\n n = t.from,\n a = void 0 === n ? {} : n,\n l = t.initial,\n d = t.reverse,\n c = t.keys,\n u = t.delay,\n h = t.onRest,\n p = r(t, [\"items\", \"children\", \"from\", \"initial\", \"reverse\", \"keys\", \"delay\", \"onRest\"]),\n f = it(e);\n return it(f).map(function (t, e) {\n return s.createElement(At, o({\n onRest: 0 === e ? h : null,\n key: \"function\" == typeof c ? c(t) : it(c)[e],\n from: _this18.first && void 0 !== l ? l || {} : a\n }, p, {\n delay: 0 === e && u || void 0,\n attach: function attach(t) {\n return _this18.hook(t, e, f.length, d);\n },\n children: function children(n) {\n var r = i(t, e);\n return r ? r(n) : null;\n }\n }));\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(t) {\n this.first = !1, t.items !== this.props.items && this.instances.clear();\n }\n }]);\n\n return St;\n }(s.PureComponent);\n\n St.defaultProps = {\n keys: function keys(t) {\n return t;\n }\n };\n\n var jt = /*#__PURE__*/function (_s$PureComponent2) {\n _inherits(jt, _s$PureComponent2);\n\n var _super12 = _createSuper(jt);\n\n function jt() {\n var _this19;\n\n _classCallCheck(this, jt);\n\n var t;\n _this19 = _super12.apply(this, arguments), t = _assertThisInitialized(_this19), _this19.guid = 0, _this19.state = {\n props: {},\n resolve: function resolve() {\n return null;\n },\n last: !0,\n index: 0\n }, _this19.next = function (e, i, n) {\n return void 0 === i && (i = !0), void 0 === n && (n = 0), t.running = !0, new Promise(function (r) {\n t.mounted && t.setState(function (t) {\n return {\n props: e,\n resolve: r,\n last: i,\n index: n\n };\n }, function () {\n return t.running = !1;\n });\n });\n };\n return _this19;\n }\n\n _createClass(jt, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = !0, this.componentDidUpdate({});\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = !1;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(t) {\n var _this20 = this;\n\n var e = this;\n var i = this.props,\n n = i.states,\n r = i.filter,\n o = i.state;\n\n if ((t.state !== this.props.state || this.props.reset && !this.running || !nt(n[o], t.states[t.state])) && n && o && n[o]) {\n (function () {\n var t = ++_this20.guid,\n i = n[o];\n if (i) if (Array.isArray(i)) {\n var _e10 = Promise.resolve();\n\n var _loop = function _loop(_n7) {\n var o = _n7,\n s = i[o],\n a = o === i.length - 1;\n _e10 = _e10.then(function () {\n return t === _this20.guid && _this20.next(r(s), a, o);\n });\n };\n\n for (var _n7 = 0; _n7 < i.length; _n7++) {\n _loop(_n7);\n }\n } else if (\"function\" == typeof i) {\n var _n8 = 0;\n i(function (i, o) {\n return void 0 === o && (o = !1), t === e.guid && e.next(r(i), o, _n8++);\n }, function () {\n return u(function () {\n return _this20.instance && _this20.instance.stop();\n });\n }, _this20.props);\n } else _this20.next(r(n[o]));\n })();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this21 = this;\n\n var t = this.state,\n e = t.props,\n i = t.resolve,\n n = t.last,\n a = t.index;\n if (!e || 0 === Object.keys(e).length) return null;\n var l = this.props,\n d = (l.state, l.filter, l.states, l.config),\n c = l.primitive,\n u = l.onRest,\n h = l.forwardRef,\n p = r(l, [\"state\", \"filter\", \"states\", \"config\", \"primitive\", \"onRest\", \"forwardRef\"]);\n return Array.isArray(d) && (d = d[a]), s.createElement(c, o({\n ref: function ref(t) {\n return _this21.instance = dt(t, h);\n },\n config: d\n }, p, e, {\n onRest: function onRest(t) {\n i(t), u && n && u(t);\n }\n }));\n }\n }]);\n\n return jt;\n }(s.PureComponent);\n\n jt.defaultProps = {\n state: \"__default\"\n };\n var Pt = s.forwardRef(function (t, e) {\n return s.createElement(jt, o({}, t, {\n forwardRef: e\n }));\n });\n Pt.create = function (t) {\n return function (e, i) {\n return void 0 === i && (i = function i(t) {\n return t;\n }), (\"function\" == typeof e || Array.isArray(e)) && (e = {\n __default: e\n }), function (n) {\n return s.createElement(jt, o({\n primitive: t,\n states: e,\n filter: i\n }, n));\n };\n };\n }, Pt.Spring = function (t) {\n return Pt.create(At)(t, st);\n }, Pt.Trail = function (t) {\n return Pt.create(St)(t, st);\n };\n\n var Et = 0,\n Vt = function Vt(t) {\n var e = t.items,\n i = t.keys,\n n = r(t, [\"items\", \"keys\"]);\n return e = it(void 0 !== e ? e : null), i = \"function\" == typeof i ? e.map(i) : it(i), o({\n items: e,\n keys: i.map(function (t) {\n return String(t);\n })\n }, n);\n };\n\n var Ot = /*#__PURE__*/function (_s$PureComponent3) {\n _inherits(Ot, _s$PureComponent3);\n\n var _super13 = _createSuper(Ot);\n\n function Ot(t) {\n var _this22;\n\n _classCallCheck(this, Ot);\n\n _this22 = _super13.call(this, t), _this22.destroyItem = function (t, e, i) {\n return function (n) {\n var r = _this22.props,\n o = r.onRest,\n s = r.onDestroyed;\n _this22.mounted && (s && s(t), _this22.setState(function (t) {\n return {\n deleted: t.deleted.filter(function (t) {\n return t.key !== e;\n })\n };\n }), o && o(t, i, n));\n };\n }, _this22.state = {\n first: !0,\n transitions: [],\n current: {},\n deleted: [],\n prevProps: t\n };\n return _this22;\n }\n\n _createClass(Ot, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = !0;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = !1;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this23 = this;\n\n var t = this.props,\n e = (t.initial, t.from, t.enter, t.leave, t.update, t.onDestroyed, t.keys, t.items, t.onFrame),\n i = t.onRest,\n n = t.onStart,\n a = (t.trail, t.config, t.children),\n l = (t.unique, t.reset),\n d = r(t, [\"initial\", \"from\", \"enter\", \"leave\", \"update\", \"onDestroyed\", \"keys\", \"items\", \"onFrame\", \"onRest\", \"onStart\", \"trail\", \"config\", \"children\", \"unique\", \"reset\"]);\n return this.state.transitions.map(function (t, r) {\n var c = t.state,\n u = t.key,\n h = t.item,\n p = t.from,\n f = t.to,\n m = t.trail,\n g = t.config,\n y = t.destroyed;\n return s.createElement(Pt, o({\n reset: l && \"enter\" === c,\n primitive: At,\n state: c,\n filter: st,\n states: _defineProperty({}, c, f),\n key: u,\n onRest: y ? _this23.destroyItem(h, u, c) : i && function (t) {\n return i(h, c, t);\n },\n onStart: n && function () {\n return n(h, c);\n },\n onFrame: e && function (t) {\n return e(h, c, t);\n },\n delay: m,\n config: g\n }, d, {\n from: p,\n children: function children(t) {\n var e = a(h, c, r);\n return e ? e(t) : null;\n }\n }));\n });\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(t, e) {\n var i = e.first,\n n = e.prevProps,\n s = r(e, [\"first\", \"prevProps\"]),\n a = Vt(t),\n l = a.items,\n d = a.keys,\n c = a.initial,\n u = a.from,\n h = a.enter,\n p = a.leave,\n f = a.update,\n m = a.trail,\n g = void 0 === m ? 0 : m,\n y = a.unique,\n v = a.config,\n b = Vt(n),\n w = b.keys,\n x = b.items,\n k = o({}, s.current),\n A = _toConsumableArray(s.deleted),\n S = Object.keys(k),\n j = new Set(S),\n P = new Set(d),\n E = d.filter(function (t) {\n return !j.has(t);\n }),\n V = s.transitions.filter(function (t) {\n return !t.destroyed && !P.has(t.originalKey);\n }).map(function (t) {\n return t.originalKey;\n }),\n O = d.filter(function (t) {\n return j.has(t);\n }),\n C = 0;\n\n E.forEach(function (t) {\n y && A.find(function (e) {\n return e.originalKey === t;\n }) && (A = A.filter(function (e) {\n return e.originalKey !== t;\n }));\n var e = d.indexOf(t),\n n = l[e];\n k[t] = {\n state: \"enter\",\n originalKey: t,\n key: y ? String(t) : Et++,\n item: n,\n trail: C += g,\n config: rt(v, n, \"enter\"),\n from: rt(i && void 0 !== c ? c || {} : u, n),\n to: rt(h, n)\n };\n }), V.forEach(function (t) {\n var e = w.indexOf(t),\n i = x[e];\n A.push(o({}, k[t], {\n state: \"leave\",\n destroyed: !0,\n left: w[Math.max(0, e - 1)],\n right: w[Math.min(w.length, e + 1)],\n trail: C += g,\n config: rt(v, i, \"leave\"),\n to: rt(p, i)\n })), delete k[t];\n }), O.forEach(function (t) {\n var e = d.indexOf(t),\n i = l[e];\n k[t] = o({}, k[t], {\n item: i,\n state: \"update\",\n trail: C += g,\n config: rt(v, i, \"update\"),\n to: rt(f, i)\n });\n });\n var F = d.map(function (t) {\n return k[t];\n });\n return A.forEach(function (t) {\n var e,\n i = t.left,\n n = t.right,\n o = r(t, [\"left\", \"right\"]);\n -1 !== (e = F.findIndex(function (t) {\n return t.originalKey === i;\n })) && (e += 1), -1 === e && (e = F.findIndex(function (t) {\n return t.originalKey === n;\n })), -1 === e && (e = A.findIndex(function (t) {\n return t.originalKey === i;\n })), -1 === e && (e = A.findIndex(function (t) {\n return t.originalKey === n;\n })), e = Math.max(0, e), F = [].concat(_toConsumableArray(F.slice(0, e)), [o], _toConsumableArray(F.slice(e)));\n }), {\n first: i && 0 === E.length,\n transitions: F,\n current: k,\n deleted: A,\n prevProps: t\n };\n }\n }]);\n\n return Ot;\n }(s.PureComponent);\n\n Ot.defaultProps = {\n keys: function keys(t) {\n return t;\n },\n unique: !1,\n reset: !1\n };\n var Ct = [\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"big\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"tspan\"].reduce(function (t, e) {\n return t[e] = xt(e), t;\n }, xt);\n e.Spring = At, e.Keyframes = Pt, e.Transition = Ot, e.Trail = St, e.Controller = bt, e.config = kt, e.animated = Ct, e.interpolate = function (t, e, i) {\n return t && new Q(t, e, i);\n }, e.Globals = A;\n}, function (t, e, i) {\n \"use strict\";\n\n i.r(e);\n var n = i(0),\n r = i.n(n),\n o = i(1);\n var s = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n\n e.default = function (_ref) {\n var t = _ref.animateToNumber,\n e = _ref.fontStyle,\n i = _ref.config,\n a = _ref.includeComma,\n l = _ref.delay,\n d = _ref.onFinish,\n c = _ref.onStart,\n _ref$animationType = _ref.animationType,\n u = _ref$animationType === void 0 ? \"random\" : _ref$animationType;\n\n var h = function (t) {\n var e = r.a.useRef();\n return r.a.useEffect(function () {\n e.current = t;\n }), void 0 === e.current ? 0 : e.current;\n }(t),\n p = String(Math.abs(t)),\n f = String(Math.abs(h)),\n m = Array.from(p, Number),\n g = Array.from(f, Number),\n _r$a$useState = r.a.useState(!1),\n _r$a$useState2 = _slicedToArray(_r$a$useState, 2),\n y = _r$a$useState2[0],\n v = _r$a$useState2[1],\n _r$a$useState3 = r.a.useState(!1),\n _r$a$useState4 = _slicedToArray(_r$a$useState3, 2),\n b = _r$a$useState4[0],\n w = _r$a$useState4[1];\n\n if (r.a.useEffect(function () {\n if (y && c) {\n if (setTimeout(function () {\n c(), v(!1);\n }, void 0 === l ? 0 : l), d && \"random\" === u) {\n var _t6 = 500;\n i && i.duration && (_t6 = i.duration), setTimeout(function () {\n d();\n }, _t6);\n }\n }\n }, [y]), r.a.useEffect(function () {\n if (b && d && \"calm\" === u) {\n var _t7 = S(0);\n\n setTimeout(function () {\n d(), w(!1);\n }, _t7);\n }\n }, [b]), a) {\n var _t8 = new Array(Math.ceil(p.length / 3)).fill(0),\n _e11 = new Array(Math.ceil(f.length / 3)).fill(0);\n\n _t8.forEach(function (t, e) {\n 0 !== e && m.splice(p.length - 3 * e, 0, \",\");\n }), _e11.forEach(function (t, e) {\n 0 !== e && g.splice(f.length - 3 * e, 0, \",\");\n });\n }\n\n var _r$a$useState5 = r.a.useState(0),\n _r$a$useState6 = _slicedToArray(_r$a$useState5, 2),\n x = _r$a$useState6[0],\n k = _r$a$useState6[1],\n A = r.a.useRef(null),\n S = Object(n.useCallback)(function (t) {\n var e = m.slice(t).filter(function (t) {\n return \"string\" == typeof t;\n }).length;\n return l ? l + 300 * (m.length - 1 - t - e) : i && i.duration ? (m.length - 1 - t - e) * i.duration : 300 * (m.length - 1 - t - e);\n }, [m, b]);\n\n return r.a.useEffect(function () {\n k(A.current.clientHeight);\n }, [t]), r.a.createElement(r.a.Fragment, null, 0 !== x && r.a.createElement(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"row\"\n }\n }, t < 0 && r.a.createElement(\"div\", {\n style: e\n }, \"-\"), m.map(function (t, n) {\n return \"string\" == typeof t ? r.a.createElement(\"div\", {\n key: n,\n style: _objectSpread({}, e)\n }, t) : r.a.createElement(\"div\", {\n key: n,\n style: {\n height: x,\n overflow: \"hidden\"\n }\n }, r.a.createElement(o.Spring, {\n from: {\n transform: \"translateY(0px)\"\n },\n to: {\n transform: \"translateY(\".concat(x * m[n] * -1, \")\")\n },\n config: i,\n delay: \"calm\" === u ? S(n) : null,\n onRest: function onRest() {\n return w(!0);\n },\n onStart: function onStart() {\n return v(!0);\n }\n }, function (t) {\n return s.map(function (i, n) {\n return r.a.createElement(\"div\", {\n key: n,\n style: _objectSpread(_objectSpread({}, t), e)\n }, i);\n });\n }));\n })), r.a.createElement(\"div\", {\n ref: A,\n style: _objectSpread({\n position: \"absolute\",\n top: -9999\n }, e)\n }, 0));\n };\n}, function (t, e, i) {\n \"use strict\";\n\n function n(t, e) {\n if (null == t) return {};\n var i,\n n,\n r = {},\n o = Object.keys(t);\n\n for (n = 0; n < o.length; n++) {\n i = o[n], e.indexOf(i) >= 0 || (r[i] = t[i]);\n }\n\n return r;\n }\n\n i.r(e), i.d(e, \"default\", function () {\n return n;\n });\n}, function (t, e, i) {\n \"use strict\";\n\n function n() {\n return (n = Object.assign || function (t) {\n for (var e = 1; e < arguments.length; e++) {\n var i = arguments[e];\n\n for (var n in i) {\n Object.prototype.hasOwnProperty.call(i, n) && (t[n] = i[n]);\n }\n }\n\n return t;\n }).apply(this, arguments);\n }\n\n i.r(e), i.d(e, \"default\", function () {\n return n;\n });\n}, function (t, e) {\n t.exports = require(\"react-dom\");\n}]);","!function (e, t) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? t(exports, require(\"react\"), require(\"prop-types\"), require(\"classnames\"), require(\"date-fns/isDate\"), require(\"date-fns/isValid\"), require(\"date-fns/format\"), require(\"date-fns/addMinutes\"), require(\"date-fns/addHours\"), require(\"date-fns/addDays\"), require(\"date-fns/addWeeks\"), require(\"date-fns/addMonths\"), require(\"date-fns/addYears\"), require(\"date-fns/subMinutes\"), require(\"date-fns/subHours\"), require(\"date-fns/subDays\"), require(\"date-fns/subWeeks\"), require(\"date-fns/subMonths\"), require(\"date-fns/subYears\"), require(\"date-fns/getSeconds\"), require(\"date-fns/getMinutes\"), require(\"date-fns/getHours\"), require(\"date-fns/getDay\"), require(\"date-fns/getDate\"), require(\"date-fns/getISOWeek\"), require(\"date-fns/getMonth\"), require(\"date-fns/getQuarter\"), require(\"date-fns/getYear\"), require(\"date-fns/getTime\"), require(\"date-fns/setSeconds\"), require(\"date-fns/setMinutes\"), require(\"date-fns/setHours\"), require(\"date-fns/setMonth\"), require(\"date-fns/setQuarter\"), require(\"date-fns/setYear\"), require(\"date-fns/min\"), require(\"date-fns/max\"), require(\"date-fns/differenceInCalendarDays\"), require(\"date-fns/differenceInCalendarMonths\"), require(\"date-fns/differenceInCalendarWeeks\"), require(\"date-fns/differenceInCalendarYears\"), require(\"date-fns/startOfDay\"), require(\"date-fns/startOfWeek\"), require(\"date-fns/startOfMonth\"), require(\"date-fns/startOfQuarter\"), require(\"date-fns/startOfYear\"), require(\"date-fns/endOfDay\"), require(\"date-fns/endOfWeek\"), require(\"date-fns/endOfMonth\"), require(\"date-fns/isEqual\"), require(\"date-fns/isSameDay\"), require(\"date-fns/isSameMonth\"), require(\"date-fns/isSameYear\"), require(\"date-fns/isSameQuarter\"), require(\"date-fns/isAfter\"), require(\"date-fns/isBefore\"), require(\"date-fns/isWithinInterval\"), require(\"date-fns/toDate\"), require(\"date-fns/parse\"), require(\"date-fns/parseISO\"), require(\"react-onclickoutside\"), require(\"react-popper\"), require(\"react-dom\")) : \"function\" == typeof define && define.amd ? define([\"exports\", \"react\", \"prop-types\", \"classnames\", \"date-fns/isDate\", \"date-fns/isValid\", \"date-fns/format\", \"date-fns/addMinutes\", \"date-fns/addHours\", \"date-fns/addDays\", \"date-fns/addWeeks\", \"date-fns/addMonths\", \"date-fns/addYears\", \"date-fns/subMinutes\", \"date-fns/subHours\", \"date-fns/subDays\", \"date-fns/subWeeks\", \"date-fns/subMonths\", \"date-fns/subYears\", \"date-fns/getSeconds\", \"date-fns/getMinutes\", \"date-fns/getHours\", \"date-fns/getDay\", \"date-fns/getDate\", \"date-fns/getISOWeek\", \"date-fns/getMonth\", \"date-fns/getQuarter\", \"date-fns/getYear\", \"date-fns/getTime\", \"date-fns/setSeconds\", \"date-fns/setMinutes\", \"date-fns/setHours\", \"date-fns/setMonth\", \"date-fns/setQuarter\", \"date-fns/setYear\", \"date-fns/min\", \"date-fns/max\", \"date-fns/differenceInCalendarDays\", \"date-fns/differenceInCalendarMonths\", \"date-fns/differenceInCalendarWeeks\", \"date-fns/differenceInCalendarYears\", \"date-fns/startOfDay\", \"date-fns/startOfWeek\", \"date-fns/startOfMonth\", \"date-fns/startOfQuarter\", \"date-fns/startOfYear\", \"date-fns/endOfDay\", \"date-fns/endOfWeek\", \"date-fns/endOfMonth\", \"date-fns/isEqual\", \"date-fns/isSameDay\", \"date-fns/isSameMonth\", \"date-fns/isSameYear\", \"date-fns/isSameQuarter\", \"date-fns/isAfter\", \"date-fns/isBefore\", \"date-fns/isWithinInterval\", \"date-fns/toDate\", \"date-fns/parse\", \"date-fns/parseISO\", \"react-onclickoutside\", \"react-popper\", \"react-dom\"], t) : t((e = \"undefined\" != typeof globalThis ? globalThis : e || self).DatePicker = {}, e.React, e.PropTypes, e.classNames, e.isDate, e.isValidDate, e.format, e.addMinutes, e.addHours, e.addDays, e.addWeeks, e.addMonths, e.addYears, null, null, e.subDays, e.subWeeks, e.subMonths, e.subYears, e.getSeconds, e.getMinutes, e.getHours, e.getDay, e.getDate, e.getISOWeek, e.getMonth, e.getQuarter, e.getYear, e.getTime, e.setSeconds, e.setMinutes, e.setHours, e.setMonth, e.setQuarter, e.setYear, e.min, e.max, e.differenceInCalendarDays, e.differenceInCalendarMonths, null, e.differenceInCalendarYears, e.startOfDay, e.startOfWeek, e.startOfMonth, e.startOfQuarter, e.startOfYear, e.endOfDay, null, null, e.dfIsEqual, e.dfIsSameDay, e.dfIsSameMonth, e.dfIsSameYear, e.dfIsSameQuarter, e.isAfter, e.isBefore, e.isWithinInterval, e.toDate, e.parse, e.parseISO, e.onClickOutside, e.ReactPopper, e.ReactDOM);\n}(this, function (e, t, r, a, n, o, s, i, p, l, d, c, u, f, h, m, y, v, D, w, k, g, b, C, S, _, M, P, E, N, O, Y, x, T, I, L, F, R, q, A, W, B, j, H, K, Q, V, U, $, z, G, J, X, Z, ee, te, re, ae, ne, oe, se, ie, pe) {\n \"use strict\";\n\n function le(e) {\n return e && \"object\" == typeof e && \"default\" in e ? e : {\n default: e\n };\n }\n\n var de = le(t),\n ce = le(a),\n ue = le(n),\n fe = le(o),\n he = le(s),\n me = le(i),\n ye = le(p),\n ve = le(l),\n De = le(d),\n we = le(c),\n ke = le(u),\n ge = le(m),\n be = le(y),\n Ce = le(v),\n Se = le(D),\n _e = le(w),\n Me = le(k),\n Pe = le(g),\n Ee = le(b),\n Ne = le(C),\n Oe = le(S),\n Ye = le(_),\n xe = le(M),\n Te = le(P),\n Ie = le(E),\n Le = le(N),\n Fe = le(O),\n Re = le(Y),\n qe = le(x),\n Ae = le(T),\n We = le(I),\n Be = le(L),\n je = le(F),\n He = le(R),\n Ke = le(q),\n Qe = le(W),\n Ve = le(B),\n Ue = le(j),\n $e = le(H),\n ze = le(K),\n Ge = le(Q),\n Je = le(V),\n Xe = le(z),\n Ze = le(G),\n et = le(J),\n tt = le(X),\n rt = le(Z),\n at = le(ee),\n nt = le(te),\n ot = le(re),\n st = le(ae),\n it = le(ne),\n pt = le(oe),\n lt = le(se),\n dt = le(pe);\n\n function ct(e) {\n return (ct = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(e);\n }\n\n function ut(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function ft(e, t) {\n for (var r = 0; r < t.length; r++) {\n var a = t[r];\n a.enumerable = a.enumerable || !1, a.configurable = !0, \"value\" in a && (a.writable = !0), Object.defineProperty(e, a.key, a);\n }\n }\n\n function ht(e, t, r) {\n return t && ft(e.prototype, t), r && ft(e, r), e;\n }\n\n function mt(e, t, r) {\n return t in e ? Object.defineProperty(e, t, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = r, e;\n }\n\n function yt() {\n return (yt = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n\n for (var a in r) {\n Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n }\n\n function vt(e, t) {\n var r = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var a = Object.getOwnPropertySymbols(e);\n t && (a = a.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, a);\n }\n\n return r;\n }\n\n function Dt(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? vt(Object(r), !0).forEach(function (t) {\n mt(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : vt(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n\n return e;\n }\n\n function wt(e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), t && gt(e, t);\n }\n\n function kt(e) {\n return (kt = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n })(e);\n }\n\n function gt(e, t) {\n return (gt = Object.setPrototypeOf || function (e, t) {\n return e.__proto__ = t, e;\n })(e, t);\n }\n\n function bt(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }\n\n function Ct(e, t) {\n return !t || \"object\" != typeof t && \"function\" != typeof t ? bt(e) : t;\n }\n\n function St(e) {\n var t = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }();\n\n return function () {\n var r,\n a = kt(e);\n\n if (t) {\n var n = kt(this).constructor;\n r = Reflect.construct(a, arguments, n);\n } else r = a.apply(this, arguments);\n\n return Ct(this, r);\n };\n }\n\n function _t(e) {\n return function (e) {\n if (Array.isArray(e)) return Mt(e);\n }(e) || function (e) {\n if (\"undefined\" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e);\n }(e) || function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return Mt(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === r && e.constructor && (r = e.constructor.name);\n if (\"Map\" === r || \"Set\" === r) return Array.from(e);\n if (\"Arguments\" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return Mt(e, t);\n }(e) || function () {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n\n function Mt(e, t) {\n (null == t || t > e.length) && (t = e.length);\n\n for (var r = 0, a = new Array(t); r < t; r++) {\n a[r] = e[r];\n }\n\n return a;\n }\n\n function Pt(e, t) {\n switch (e) {\n case \"P\":\n return t.date({\n width: \"short\"\n });\n\n case \"PP\":\n return t.date({\n width: \"medium\"\n });\n\n case \"PPP\":\n return t.date({\n width: \"long\"\n });\n\n case \"PPPP\":\n default:\n return t.date({\n width: \"full\"\n });\n }\n }\n\n function Et(e, t) {\n switch (e) {\n case \"p\":\n return t.time({\n width: \"short\"\n });\n\n case \"pp\":\n return t.time({\n width: \"medium\"\n });\n\n case \"ppp\":\n return t.time({\n width: \"long\"\n });\n\n case \"pppp\":\n default:\n return t.time({\n width: \"full\"\n });\n }\n }\n\n var Nt = {\n p: Et,\n P: function P(e, t) {\n var r,\n a = e.match(/(P+)(p+)?/),\n n = a[1],\n o = a[2];\n if (!o) return Pt(e, t);\n\n switch (n) {\n case \"P\":\n r = t.dateTime({\n width: \"short\"\n });\n break;\n\n case \"PP\":\n r = t.dateTime({\n width: \"medium\"\n });\n break;\n\n case \"PPP\":\n r = t.dateTime({\n width: \"long\"\n });\n break;\n\n case \"PPPP\":\n default:\n r = t.dateTime({\n width: \"full\"\n });\n }\n\n return r.replace(\"{{date}}\", Pt(n, t)).replace(\"{{time}}\", Et(o, t));\n }\n },\n Ot = 12,\n Yt = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\n function xt(e) {\n var t = e ? \"string\" == typeof e || e instanceof String ? pt.default(e) : st.default(e) : new Date();\n return It(t) ? t : null;\n }\n\n function Tt(e, t, r, a) {\n var n = null,\n o = Jt(r) || Jt(Gt()),\n s = !0;\n return Array.isArray(t) ? (t.forEach(function (t) {\n var r = it.default(e, t, new Date(), {\n locale: o\n });\n a && (s = It(r) && e === he.default(r, t, {\n awareOfUnicodeTokens: !0\n })), It(r) && s && (n = r);\n }), n) : (n = it.default(e, t, new Date(), {\n locale: o\n }), a ? s = It(n) && e === he.default(n, t, {\n awareOfUnicodeTokens: !0\n }) : It(n) || (t = t.match(Yt).map(function (e) {\n var t = e[0];\n return \"p\" === t || \"P\" === t ? o ? (0, Nt[t])(e, o.formatLong) : t : e;\n }).join(\"\"), e.length > 0 && (n = it.default(e, t.slice(0, e.length), new Date())), It(n) || (n = new Date(e))), It(n) && s ? n : null);\n }\n\n function It(e) {\n return fe.default(e) && at.default(e, new Date(\"1/1/1000\"));\n }\n\n function Lt(e, t, r) {\n if (\"en\" === r) return he.default(e, t, {\n awareOfUnicodeTokens: !0\n });\n var a = Jt(r);\n return r && !a && console.warn('A locale object was not found for the provided string [\"'.concat(r, '\"].')), !a && Gt() && Jt(Gt()) && (a = Jt(Gt())), he.default(e, t, {\n locale: a || null,\n awareOfUnicodeTokens: !0\n });\n }\n\n function Ft(e, t) {\n var r = t.hour,\n a = void 0 === r ? 0 : r,\n n = t.minute,\n o = void 0 === n ? 0 : n,\n s = t.second,\n i = void 0 === s ? 0 : s;\n return Re.default(Fe.default(Le.default(e, i), o), a);\n }\n\n function Rt(e, t) {\n var r = t && Jt(t) || Gt() && Jt(Gt());\n return Oe.default(e, r ? {\n locale: r\n } : null);\n }\n\n function qt(e, t) {\n return Lt(e, \"ddd\", t);\n }\n\n function At(e) {\n return Ve.default(e);\n }\n\n function Wt(e, t) {\n var r = Jt(t || Gt());\n return Ue.default(e, {\n locale: r\n });\n }\n\n function Bt(e) {\n return $e.default(e);\n }\n\n function jt(e) {\n return Ge.default(e);\n }\n\n function Ht(e) {\n return ze.default(e);\n }\n\n function Kt(e, t) {\n return e && t ? tt.default(e, t) : !e && !t;\n }\n\n function Qt(e, t) {\n return e && t ? et.default(e, t) : !e && !t;\n }\n\n function Vt(e, t) {\n return e && t ? rt.default(e, t) : !e && !t;\n }\n\n function Ut(e, t) {\n return e && t ? Ze.default(e, t) : !e && !t;\n }\n\n function $t(e, t) {\n return e && t ? Xe.default(e, t) : !e && !t;\n }\n\n function zt(e, t, r) {\n var a,\n n = Ve.default(t),\n o = Je.default(r);\n\n try {\n a = ot.default(e, {\n start: n,\n end: o\n });\n } catch (e) {\n a = !1;\n }\n\n return a;\n }\n\n function Gt() {\n return (\"undefined\" != typeof window ? window : global).__localeId__;\n }\n\n function Jt(e) {\n if (\"string\" == typeof e) {\n var t = \"undefined\" != typeof window ? window : global;\n return t.__localeData__ ? t.__localeData__[e] : null;\n }\n\n return e;\n }\n\n function Xt(e, t) {\n return Lt(qe.default(xt(), e), \"LLLL\", t);\n }\n\n function Zt(e, t) {\n return Lt(qe.default(xt(), e), \"LLL\", t);\n }\n\n function er(e, t) {\n return Lt(Ae.default(xt(), e), \"QQQ\", t);\n }\n\n function tr(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.minDate,\n a = t.maxDate,\n n = t.excludeDates,\n o = t.includeDates,\n s = t.filterDate;\n return pr(e, {\n minDate: r,\n maxDate: a\n }) || n && n.some(function (t) {\n return Ut(e, t);\n }) || o && !o.some(function (t) {\n return Ut(e, t);\n }) || s && !s(xt(e)) || !1;\n }\n\n function rr(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.excludeDates;\n return r && r.some(function (t) {\n return Ut(e, t);\n }) || !1;\n }\n\n function ar(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.minDate,\n a = t.maxDate,\n n = t.excludeDates,\n o = t.includeDates,\n s = t.filterDate;\n return pr(e, {\n minDate: r,\n maxDate: a\n }) || n && n.some(function (t) {\n return Qt(e, t);\n }) || o && !o.some(function (t) {\n return Qt(e, t);\n }) || s && !s(xt(e)) || !1;\n }\n\n function nr(e, t, r, a) {\n var n = Te.default(e),\n o = Ye.default(e),\n s = Te.default(t),\n i = Ye.default(t),\n p = Te.default(a);\n return n === s && n === p ? o <= r && r <= i : n < s ? p === n && o <= r || p === s && i >= r || p < s && p > n : void 0;\n }\n\n function or(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.minDate,\n a = t.maxDate,\n n = t.excludeDates,\n o = t.includeDates,\n s = t.filterDate;\n return pr(e, {\n minDate: r,\n maxDate: a\n }) || n && n.some(function (t) {\n return Vt(e, t);\n }) || o && !o.some(function (t) {\n return Vt(e, t);\n }) || s && !s(xt(e)) || !1;\n }\n\n function sr(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.minDate,\n a = t.maxDate,\n n = new Date(e, 0, 1);\n return pr(n, {\n minDate: r,\n maxDate: a\n }) || !1;\n }\n\n function ir(e, t, r, a) {\n var n = Te.default(e),\n o = xe.default(e),\n s = Te.default(t),\n i = xe.default(t),\n p = Te.default(a);\n return n === s && n === p ? o <= r && r <= i : n < s ? p === n && o <= r || p === s && i >= r || p < s && p > n : void 0;\n }\n\n function pr(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.minDate,\n a = t.maxDate;\n return r && He.default(e, r) < 0 || a && He.default(e, a) > 0;\n }\n\n function lr(e, t) {\n return t.some(function (t) {\n return Pe.default(t) === Pe.default(e) && Me.default(t) === Me.default(e);\n });\n }\n\n function dr(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.excludeTimes,\n a = t.includeTimes,\n n = t.filterTime;\n return r && lr(e, r) || a && !lr(e, a) || n && !n(e) || !1;\n }\n\n function cr(e, t) {\n var r = t.minTime,\n a = t.maxTime;\n if (!r || !a) throw new Error(\"Both minTime and maxTime props required\");\n var n,\n o = xt(),\n s = Re.default(Fe.default(o, Me.default(e)), Pe.default(e)),\n i = Re.default(Fe.default(o, Me.default(r)), Pe.default(r)),\n p = Re.default(Fe.default(o, Me.default(a)), Pe.default(a));\n\n try {\n n = !ot.default(s, {\n start: i,\n end: p\n });\n } catch (e) {\n n = !1;\n }\n\n return n;\n }\n\n function ur(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.minDate,\n a = t.includeDates,\n n = Ce.default(e, 1);\n return r && Ke.default(r, n) > 0 || a && a.every(function (e) {\n return Ke.default(e, n) > 0;\n }) || !1;\n }\n\n function fr(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.maxDate,\n a = t.includeDates,\n n = we.default(e, 1);\n return r && Ke.default(n, r) > 0 || a && a.every(function (e) {\n return Ke.default(n, e) > 0;\n }) || !1;\n }\n\n function hr(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.minDate,\n a = t.includeDates,\n n = Se.default(e, 1);\n return r && Qe.default(r, n) > 0 || a && a.every(function (e) {\n return Qe.default(e, n) > 0;\n }) || !1;\n }\n\n function mr(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.maxDate,\n a = t.includeDates,\n n = ke.default(e, 1);\n return r && Qe.default(n, r) > 0 || a && a.every(function (e) {\n return Qe.default(n, e) > 0;\n }) || !1;\n }\n\n function yr(e) {\n var t = e.minDate,\n r = e.includeDates;\n\n if (r && t) {\n var a = r.filter(function (e) {\n return He.default(e, t) >= 0;\n });\n return Be.default(a);\n }\n\n return r ? Be.default(r) : t;\n }\n\n function vr(e) {\n var t = e.maxDate,\n r = e.includeDates;\n\n if (r && t) {\n var a = r.filter(function (e) {\n return He.default(e, t) <= 0;\n });\n return je.default(a);\n }\n\n return r ? je.default(r) : t;\n }\n\n function Dr() {\n for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"react-datepicker__day--highlighted\", r = new Map(), a = 0, n = e.length; a < n; a++) {\n var o = e[a];\n\n if (ue.default(o)) {\n var s = Lt(o, \"MM.dd.yyyy\"),\n i = r.get(s) || [];\n i.includes(t) || (i.push(t), r.set(s, i));\n } else if (\"object\" === ct(o)) {\n var p = Object.keys(o),\n l = p[0],\n d = o[p[0]];\n if (\"string\" == typeof l && d.constructor === Array) for (var c = 0, u = d.length; c < u; c++) {\n var f = Lt(d[c], \"MM.dd.yyyy\"),\n h = r.get(f) || [];\n h.includes(l) || (h.push(l), r.set(f, h));\n }\n }\n }\n\n return r;\n }\n\n function wr(e, t, r, a, n) {\n for (var o = n.length, s = [], i = 0; i < o; i++) {\n var p = me.default(ye.default(e, Pe.default(n[i])), Me.default(n[i])),\n l = me.default(e, (r + 1) * a);\n at.default(p, t) && nt.default(p, l) && s.push(n[i]);\n }\n\n return s;\n }\n\n function kr(e) {\n return e < 10 ? \"0\".concat(e) : \"\".concat(e);\n }\n\n function gr(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Ot,\n r = Math.ceil(Te.default(e) / t) * t,\n a = r - (t - 1);\n return {\n startPeriod: a,\n endPeriod: r\n };\n }\n\n function br(e, t, r, a) {\n for (var n = [], o = 0; o < 2 * t + 1; o++) {\n var s = e + t - o,\n i = !0;\n r && (i = Te.default(r) <= s), a && i && (i = Te.default(a) >= s), i && n.push(s);\n }\n\n return n;\n }\n\n var Cr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r(e) {\n var a;\n ut(this, r), mt(bt(a = t.call(this, e)), \"renderOptions\", function () {\n var e = a.props.year,\n t = a.state.yearsList.map(function (t) {\n return de.default.createElement(\"div\", {\n className: e === t ? \"react-datepicker__year-option react-datepicker__year-option--selected_year\" : \"react-datepicker__year-option\",\n key: t,\n onClick: a.onChange.bind(bt(a), t)\n }, e === t ? de.default.createElement(\"span\", {\n className: \"react-datepicker__year-option--selected\"\n }, \"✓\") : \"\", t);\n }),\n r = a.props.minDate ? Te.default(a.props.minDate) : null,\n n = a.props.maxDate ? Te.default(a.props.maxDate) : null;\n return n && a.state.yearsList.find(function (e) {\n return e === n;\n }) || t.unshift(de.default.createElement(\"div\", {\n className: \"react-datepicker__year-option\",\n key: \"upcoming\",\n onClick: a.incrementYears\n }, de.default.createElement(\"a\", {\n className: \"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"\n }))), r && a.state.yearsList.find(function (e) {\n return e === r;\n }) || t.push(de.default.createElement(\"div\", {\n className: \"react-datepicker__year-option\",\n key: \"previous\",\n onClick: a.decrementYears\n }, de.default.createElement(\"a\", {\n className: \"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"\n }))), t;\n }), mt(bt(a), \"onChange\", function (e) {\n a.props.onChange(e);\n }), mt(bt(a), \"handleClickOutside\", function () {\n a.props.onCancel();\n }), mt(bt(a), \"shiftYears\", function (e) {\n var t = a.state.yearsList.map(function (t) {\n return t + e;\n });\n a.setState({\n yearsList: t\n });\n }), mt(bt(a), \"incrementYears\", function () {\n return a.shiftYears(1);\n }), mt(bt(a), \"decrementYears\", function () {\n return a.shiftYears(-1);\n });\n var n = e.yearDropdownItemNumber,\n o = e.scrollableYearDropdown,\n s = n || (o ? 10 : 5);\n return a.state = {\n yearsList: br(a.props.year, s, a.props.minDate, a.props.maxDate)\n }, a;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n var e = ce.default({\n \"react-datepicker__year-dropdown\": !0,\n \"react-datepicker__year-dropdown--scrollable\": this.props.scrollableYearDropdown\n });\n return de.default.createElement(\"div\", {\n className: e\n }, this.renderOptions());\n }\n }]), r;\n }(de.default.Component),\n Sr = lt.default(Cr),\n _r = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n var e;\n ut(this, r);\n\n for (var a = arguments.length, n = new Array(a), o = 0; o < a; o++) {\n n[o] = arguments[o];\n }\n\n return mt(bt(e = t.call.apply(t, [this].concat(n))), \"state\", {\n dropdownVisible: !1\n }), mt(bt(e), \"renderSelectOptions\", function () {\n for (var t = e.props.minDate ? Te.default(e.props.minDate) : 1900, r = e.props.maxDate ? Te.default(e.props.maxDate) : 2100, a = [], n = t; n <= r; n++) {\n a.push(de.default.createElement(\"option\", {\n key: n,\n value: n\n }, n));\n }\n\n return a;\n }), mt(bt(e), \"onSelectChange\", function (t) {\n e.onChange(t.target.value);\n }), mt(bt(e), \"renderSelectMode\", function () {\n return de.default.createElement(\"select\", {\n value: e.props.year,\n className: \"react-datepicker__year-select\",\n onChange: e.onSelectChange\n }, e.renderSelectOptions());\n }), mt(bt(e), \"renderReadView\", function (t) {\n return de.default.createElement(\"div\", {\n key: \"read\",\n style: {\n visibility: t ? \"visible\" : \"hidden\"\n },\n className: \"react-datepicker__year-read-view\",\n onClick: function onClick(t) {\n return e.toggleDropdown(t);\n }\n }, de.default.createElement(\"span\", {\n className: \"react-datepicker__year-read-view--down-arrow\"\n }), de.default.createElement(\"span\", {\n className: \"react-datepicker__year-read-view--selected-year\"\n }, e.props.year));\n }), mt(bt(e), \"renderDropdown\", function () {\n return de.default.createElement(Sr, {\n key: \"dropdown\",\n year: e.props.year,\n onChange: e.onChange,\n onCancel: e.toggleDropdown,\n minDate: e.props.minDate,\n maxDate: e.props.maxDate,\n scrollableYearDropdown: e.props.scrollableYearDropdown,\n yearDropdownItemNumber: e.props.yearDropdownItemNumber\n });\n }), mt(bt(e), \"renderScrollMode\", function () {\n var t = e.state.dropdownVisible,\n r = [e.renderReadView(!t)];\n return t && r.unshift(e.renderDropdown()), r;\n }), mt(bt(e), \"onChange\", function (t) {\n e.toggleDropdown(), t !== e.props.year && e.props.onChange(t);\n }), mt(bt(e), \"toggleDropdown\", function (t) {\n e.setState({\n dropdownVisible: !e.state.dropdownVisible\n }, function () {\n e.props.adjustDateOnChange && e.handleYearChange(e.props.date, t);\n });\n }), mt(bt(e), \"handleYearChange\", function (t, r) {\n e.onSelect(t, r), e.setOpen();\n }), mt(bt(e), \"onSelect\", function (t, r) {\n e.props.onSelect && e.props.onSelect(t, r);\n }), mt(bt(e), \"setOpen\", function () {\n e.props.setOpen && e.props.setOpen(!0);\n }), e;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n var e;\n\n switch (this.props.dropdownMode) {\n case \"scroll\":\n e = this.renderScrollMode();\n break;\n\n case \"select\":\n e = this.renderSelectMode();\n }\n\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__year-dropdown-container react-datepicker__year-dropdown-container--\".concat(this.props.dropdownMode)\n }, e);\n }\n }]), r;\n }(de.default.Component),\n Mr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n var e;\n ut(this, r);\n\n for (var a = arguments.length, n = new Array(a), o = 0; o < a; o++) {\n n[o] = arguments[o];\n }\n\n return mt(bt(e = t.call.apply(t, [this].concat(n))), \"renderOptions\", function () {\n return e.props.monthNames.map(function (t, r) {\n return de.default.createElement(\"div\", {\n className: e.props.month === r ? \"react-datepicker__month-option react-datepicker__month-option--selected_month\" : \"react-datepicker__month-option\",\n key: t,\n onClick: e.onChange.bind(bt(e), r)\n }, e.props.month === r ? de.default.createElement(\"span\", {\n className: \"react-datepicker__month-option--selected\"\n }, \"✓\") : \"\", t);\n });\n }), mt(bt(e), \"onChange\", function (t) {\n return e.props.onChange(t);\n }), mt(bt(e), \"handleClickOutside\", function () {\n return e.props.onCancel();\n }), e;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__month-dropdown\"\n }, this.renderOptions());\n }\n }]), r;\n }(de.default.Component),\n Pr = lt.default(Mr),\n Er = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n var e;\n ut(this, r);\n\n for (var a = arguments.length, n = new Array(a), o = 0; o < a; o++) {\n n[o] = arguments[o];\n }\n\n return mt(bt(e = t.call.apply(t, [this].concat(n))), \"state\", {\n dropdownVisible: !1\n }), mt(bt(e), \"renderSelectOptions\", function (e) {\n return e.map(function (e, t) {\n return de.default.createElement(\"option\", {\n key: t,\n value: t\n }, e);\n });\n }), mt(bt(e), \"renderSelectMode\", function (t) {\n return de.default.createElement(\"select\", {\n value: e.props.month,\n className: \"react-datepicker__month-select\",\n onChange: function onChange(t) {\n return e.onChange(t.target.value);\n }\n }, e.renderSelectOptions(t));\n }), mt(bt(e), \"renderReadView\", function (t, r) {\n return de.default.createElement(\"div\", {\n key: \"read\",\n style: {\n visibility: t ? \"visible\" : \"hidden\"\n },\n className: \"react-datepicker__month-read-view\",\n onClick: e.toggleDropdown\n }, de.default.createElement(\"span\", {\n className: \"react-datepicker__month-read-view--down-arrow\"\n }), de.default.createElement(\"span\", {\n className: \"react-datepicker__month-read-view--selected-month\"\n }, r[e.props.month]));\n }), mt(bt(e), \"renderDropdown\", function (t) {\n return de.default.createElement(Pr, {\n key: \"dropdown\",\n month: e.props.month,\n monthNames: t,\n onChange: e.onChange,\n onCancel: e.toggleDropdown\n });\n }), mt(bt(e), \"renderScrollMode\", function (t) {\n var r = e.state.dropdownVisible,\n a = [e.renderReadView(!r, t)];\n return r && a.unshift(e.renderDropdown(t)), a;\n }), mt(bt(e), \"onChange\", function (t) {\n e.toggleDropdown(), t !== e.props.month && e.props.onChange(t);\n }), mt(bt(e), \"toggleDropdown\", function () {\n return e.setState({\n dropdownVisible: !e.state.dropdownVisible\n });\n }), e;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n var e,\n t = this,\n r = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(this.props.useShortMonthInDropdown ? function (e) {\n return Zt(e, t.props.locale);\n } : function (e) {\n return Xt(e, t.props.locale);\n });\n\n switch (this.props.dropdownMode) {\n case \"scroll\":\n e = this.renderScrollMode(r);\n break;\n\n case \"select\":\n e = this.renderSelectMode(r);\n }\n\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__month-dropdown-container react-datepicker__month-dropdown-container--\".concat(this.props.dropdownMode)\n }, e);\n }\n }]), r;\n }(de.default.Component);\n\n function Nr(e, t) {\n for (var r = [], a = Bt(e), n = Bt(t); !at.default(a, n);) {\n r.push(xt(a)), a = we.default(a, 1);\n }\n\n return r;\n }\n\n var Or = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r(e) {\n var a;\n return ut(this, r), mt(bt(a = t.call(this, e)), \"renderOptions\", function () {\n return a.state.monthYearsList.map(function (e) {\n var t = Ie.default(e),\n r = Kt(a.props.date, e) && Qt(a.props.date, e);\n return de.default.createElement(\"div\", {\n className: r ? \"react-datepicker__month-year-option --selected_month-year\" : \"react-datepicker__month-year-option\",\n key: t,\n onClick: a.onChange.bind(bt(a), t)\n }, r ? de.default.createElement(\"span\", {\n className: \"react-datepicker__month-year-option--selected\"\n }, \"✓\") : \"\", Lt(e, a.props.dateFormat, a.props.locale));\n });\n }), mt(bt(a), \"onChange\", function (e) {\n return a.props.onChange(e);\n }), mt(bt(a), \"handleClickOutside\", function () {\n a.props.onCancel();\n }), a.state = {\n monthYearsList: Nr(a.props.minDate, a.props.maxDate)\n }, a;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n var e = ce.default({\n \"react-datepicker__month-year-dropdown\": !0,\n \"react-datepicker__month-year-dropdown--scrollable\": this.props.scrollableMonthYearDropdown\n });\n return de.default.createElement(\"div\", {\n className: e\n }, this.renderOptions());\n }\n }]), r;\n }(de.default.Component),\n Yr = lt.default(Or),\n xr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n var e;\n ut(this, r);\n\n for (var a = arguments.length, n = new Array(a), o = 0; o < a; o++) {\n n[o] = arguments[o];\n }\n\n return mt(bt(e = t.call.apply(t, [this].concat(n))), \"state\", {\n dropdownVisible: !1\n }), mt(bt(e), \"renderSelectOptions\", function () {\n for (var t = Bt(e.props.minDate), r = Bt(e.props.maxDate), a = []; !at.default(t, r);) {\n var n = Ie.default(t);\n a.push(de.default.createElement(\"option\", {\n key: n,\n value: n\n }, Lt(t, e.props.dateFormat, e.props.locale))), t = we.default(t, 1);\n }\n\n return a;\n }), mt(bt(e), \"onSelectChange\", function (t) {\n e.onChange(t.target.value);\n }), mt(bt(e), \"renderSelectMode\", function () {\n return de.default.createElement(\"select\", {\n value: Ie.default(Bt(e.props.date)),\n className: \"react-datepicker__month-year-select\",\n onChange: e.onSelectChange\n }, e.renderSelectOptions());\n }), mt(bt(e), \"renderReadView\", function (t) {\n var r = Lt(e.props.date, e.props.dateFormat, e.props.locale);\n return de.default.createElement(\"div\", {\n key: \"read\",\n style: {\n visibility: t ? \"visible\" : \"hidden\"\n },\n className: \"react-datepicker__month-year-read-view\",\n onClick: function onClick(t) {\n return e.toggleDropdown(t);\n }\n }, de.default.createElement(\"span\", {\n className: \"react-datepicker__month-year-read-view--down-arrow\"\n }), de.default.createElement(\"span\", {\n className: \"react-datepicker__month-year-read-view--selected-month-year\"\n }, r));\n }), mt(bt(e), \"renderDropdown\", function () {\n return de.default.createElement(Yr, {\n key: \"dropdown\",\n date: e.props.date,\n dateFormat: e.props.dateFormat,\n onChange: e.onChange,\n onCancel: e.toggleDropdown,\n minDate: e.props.minDate,\n maxDate: e.props.maxDate,\n scrollableMonthYearDropdown: e.props.scrollableMonthYearDropdown,\n locale: e.props.locale\n });\n }), mt(bt(e), \"renderScrollMode\", function () {\n var t = e.state.dropdownVisible,\n r = [e.renderReadView(!t)];\n return t && r.unshift(e.renderDropdown()), r;\n }), mt(bt(e), \"onChange\", function (t) {\n e.toggleDropdown();\n var r = xt(parseInt(t));\n Kt(e.props.date, r) && Qt(e.props.date, r) || e.props.onChange(r);\n }), mt(bt(e), \"toggleDropdown\", function () {\n return e.setState({\n dropdownVisible: !e.state.dropdownVisible\n });\n }), e;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n var e;\n\n switch (this.props.dropdownMode) {\n case \"scroll\":\n e = this.renderScrollMode();\n break;\n\n case \"select\":\n e = this.renderSelectMode();\n }\n\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__month-year-dropdown-container react-datepicker__month-year-dropdown-container--\".concat(this.props.dropdownMode)\n }, e);\n }\n }]), r;\n }(de.default.Component),\n Tr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n var e;\n ut(this, r);\n\n for (var a = arguments.length, n = new Array(a), o = 0; o < a; o++) {\n n[o] = arguments[o];\n }\n\n return mt(bt(e = t.call.apply(t, [this].concat(n))), \"dayEl\", de.default.createRef()), mt(bt(e), \"handleClick\", function (t) {\n !e.isDisabled() && e.props.onClick && e.props.onClick(t);\n }), mt(bt(e), \"handleMouseEnter\", function (t) {\n !e.isDisabled() && e.props.onMouseEnter && e.props.onMouseEnter(t);\n }), mt(bt(e), \"handleOnKeyDown\", function (t) {\n \" \" === t.key && (t.preventDefault(), t.key = \"Enter\"), e.props.handleOnKeyDown(t);\n }), mt(bt(e), \"isSameDay\", function (t) {\n return Ut(e.props.day, t);\n }), mt(bt(e), \"isKeyboardSelected\", function () {\n return !e.props.disabledKeyboardNavigation && !e.isSameDay(e.props.selected) && e.isSameDay(e.props.preSelection);\n }), mt(bt(e), \"isDisabled\", function () {\n return tr(e.props.day, e.props);\n }), mt(bt(e), \"isExcluded\", function () {\n return rr(e.props.day, e.props);\n }), mt(bt(e), \"getHighLightedClass\", function (t) {\n var r = e.props,\n a = r.day,\n n = r.highlightDates;\n if (!n) return !1;\n var o = Lt(a, \"MM.dd.yyyy\");\n return n.get(o);\n }), mt(bt(e), \"isInRange\", function () {\n var t = e.props,\n r = t.day,\n a = t.startDate,\n n = t.endDate;\n return !(!a || !n) && zt(r, a, n);\n }), mt(bt(e), \"isInSelectingRange\", function () {\n var t = e.props,\n r = t.day,\n a = t.selectsStart,\n n = t.selectsEnd,\n o = t.selectsRange,\n s = t.selectingDate,\n i = t.startDate,\n p = t.endDate;\n return !(!(a || n || o) || !s || e.isDisabled()) && (a && p && (nt.default(s, p) || $t(s, p)) ? zt(r, s, p) : (n && i && (at.default(s, i) || $t(s, i)) || !(!o || !i || p || !at.default(s, i) && !$t(s, i))) && zt(r, i, s));\n }), mt(bt(e), \"isSelectingRangeStart\", function () {\n if (!e.isInSelectingRange()) return !1;\n var t = e.props,\n r = t.day,\n a = t.selectingDate,\n n = t.startDate;\n return Ut(r, t.selectsStart ? a : n);\n }), mt(bt(e), \"isSelectingRangeEnd\", function () {\n if (!e.isInSelectingRange()) return !1;\n var t = e.props,\n r = t.day,\n a = t.selectingDate,\n n = t.endDate;\n return Ut(r, t.selectsEnd ? a : n);\n }), mt(bt(e), \"isRangeStart\", function () {\n var t = e.props,\n r = t.day,\n a = t.startDate,\n n = t.endDate;\n return !(!a || !n) && Ut(a, r);\n }), mt(bt(e), \"isRangeEnd\", function () {\n var t = e.props,\n r = t.day,\n a = t.startDate,\n n = t.endDate;\n return !(!a || !n) && Ut(n, r);\n }), mt(bt(e), \"isWeekend\", function () {\n var t = Ee.default(e.props.day);\n return 0 === t || 6 === t;\n }), mt(bt(e), \"isOutsideMonth\", function () {\n return void 0 !== e.props.month && e.props.month !== Ye.default(e.props.day);\n }), mt(bt(e), \"getClassNames\", function (t) {\n var r = e.props.dayClassName ? e.props.dayClassName(t) : void 0;\n return ce.default(\"react-datepicker__day\", r, \"react-datepicker__day--\" + qt(e.props.day), {\n \"react-datepicker__day--disabled\": e.isDisabled(),\n \"react-datepicker__day--excluded\": e.isExcluded(),\n \"react-datepicker__day--selected\": e.isSameDay(e.props.selected),\n \"react-datepicker__day--keyboard-selected\": e.isKeyboardSelected(),\n \"react-datepicker__day--range-start\": e.isRangeStart(),\n \"react-datepicker__day--range-end\": e.isRangeEnd(),\n \"react-datepicker__day--in-range\": e.isInRange(),\n \"react-datepicker__day--in-selecting-range\": e.isInSelectingRange(),\n \"react-datepicker__day--selecting-range-start\": e.isSelectingRangeStart(),\n \"react-datepicker__day--selecting-range-end\": e.isSelectingRangeEnd(),\n \"react-datepicker__day--today\": e.isSameDay(xt()),\n \"react-datepicker__day--weekend\": e.isWeekend(),\n \"react-datepicker__day--outside-month\": e.isOutsideMonth()\n }, e.getHighLightedClass(\"react-datepicker__day--highlighted\"));\n }), mt(bt(e), \"getAriaLabel\", function () {\n var t = e.props,\n r = t.day,\n a = t.ariaLabelPrefixWhenEnabled,\n n = void 0 === a ? \"Choose\" : a,\n o = t.ariaLabelPrefixWhenDisabled,\n s = void 0 === o ? \"Not available\" : o,\n i = e.isDisabled() || e.isExcluded() ? s : n;\n return \"\".concat(i, \" \").concat(Lt(r, \"PPPP\"));\n }), mt(bt(e), \"getTabIndex\", function (t, r) {\n var a = t || e.props.selected,\n n = r || e.props.preSelection;\n return e.isKeyboardSelected() || e.isSameDay(a) && Ut(n, a) ? 0 : -1;\n }), mt(bt(e), \"handleFocusDay\", function () {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = !1;\n 0 === e.getTabIndex() && !t.isInputFocused && e.isSameDay(e.props.preSelection) && (document.activeElement && document.activeElement !== document.body || (r = !0), e.props.inline && !e.props.shouldFocusDayInline && (r = !1), e.props.containerRef && e.props.containerRef.current && e.props.containerRef.current.contains(document.activeElement) && document.activeElement.classList.contains(\"react-datepicker__day\") && (r = !0)), r && e.dayEl.current.focus({\n preventScroll: !0\n });\n }), mt(bt(e), \"renderDayContents\", function () {\n if (e.isOutsideMonth()) {\n if (e.props.monthShowsDuplicateDaysEnd && Ne.default(e.props.day) < 10) return null;\n if (e.props.monthShowsDuplicateDaysStart && Ne.default(e.props.day) > 20) return null;\n }\n\n return e.props.renderDayContents ? e.props.renderDayContents(Ne.default(e.props.day), e.props.day) : Ne.default(e.props.day);\n }), mt(bt(e), \"render\", function () {\n return de.default.createElement(\"div\", {\n ref: e.dayEl,\n className: e.getClassNames(e.props.day),\n onKeyDown: e.handleOnKeyDown,\n onClick: e.handleClick,\n onMouseEnter: e.handleMouseEnter,\n tabIndex: e.getTabIndex(),\n \"aria-label\": e.getAriaLabel(),\n role: \"button\",\n \"aria-disabled\": e.isDisabled()\n }, e.renderDayContents());\n }), e;\n }\n\n return ht(r, [{\n key: \"componentDidMount\",\n value: function value() {\n this.handleFocusDay();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function value(e) {\n this.handleFocusDay(e);\n }\n }]), r;\n }(de.default.Component),\n Ir = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n var e;\n ut(this, r);\n\n for (var a = arguments.length, n = new Array(a), o = 0; o < a; o++) {\n n[o] = arguments[o];\n }\n\n return mt(bt(e = t.call.apply(t, [this].concat(n))), \"handleClick\", function (t) {\n e.props.onClick && e.props.onClick(t);\n }), e;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n var e = this.props,\n t = e.weekNumber,\n r = e.ariaLabelPrefix,\n a = void 0 === r ? \"week \" : r,\n n = {\n \"react-datepicker__week-number\": !0,\n \"react-datepicker__week-number--clickable\": !!e.onClick\n };\n return de.default.createElement(\"div\", {\n className: ce.default(n),\n \"aria-label\": \"\".concat(a, \" \").concat(this.props.weekNumber),\n onClick: this.handleClick\n }, t);\n }\n }]), r;\n }(de.default.Component),\n Lr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n var e;\n ut(this, r);\n\n for (var a = arguments.length, n = new Array(a), o = 0; o < a; o++) {\n n[o] = arguments[o];\n }\n\n return mt(bt(e = t.call.apply(t, [this].concat(n))), \"handleDayClick\", function (t, r) {\n e.props.onDayClick && e.props.onDayClick(t, r);\n }), mt(bt(e), \"handleDayMouseEnter\", function (t) {\n e.props.onDayMouseEnter && e.props.onDayMouseEnter(t);\n }), mt(bt(e), \"handleWeekClick\", function (t, r, a) {\n \"function\" == typeof e.props.onWeekSelect && e.props.onWeekSelect(t, r, a), e.props.shouldCloseOnSelect && e.props.setOpen(!1);\n }), mt(bt(e), \"formatWeekNumber\", function (t) {\n return e.props.formatWeekNumber ? e.props.formatWeekNumber(t) : Rt(t);\n }), mt(bt(e), \"renderDays\", function () {\n var t = Wt(e.props.day, e.props.locale),\n r = [],\n a = e.formatWeekNumber(t);\n\n if (e.props.showWeekNumber) {\n var n = e.props.onWeekSelect ? e.handleWeekClick.bind(bt(e), t, a) : void 0;\n r.push(de.default.createElement(Ir, {\n key: \"W\",\n weekNumber: a,\n onClick: n,\n ariaLabelPrefix: e.props.ariaLabelPrefix\n }));\n }\n\n return r.concat([0, 1, 2, 3, 4, 5, 6].map(function (r) {\n var a = ve.default(t, r);\n return de.default.createElement(Tr, {\n ariaLabelPrefixWhenEnabled: e.props.chooseDayAriaLabelPrefix,\n ariaLabelPrefixWhenDisabled: e.props.disabledDayAriaLabelPrefix,\n key: a.valueOf(),\n day: a,\n month: e.props.month,\n onClick: e.handleDayClick.bind(bt(e), a),\n onMouseEnter: e.handleDayMouseEnter.bind(bt(e), a),\n minDate: e.props.minDate,\n maxDate: e.props.maxDate,\n excludeDates: e.props.excludeDates,\n includeDates: e.props.includeDates,\n highlightDates: e.props.highlightDates,\n selectingDate: e.props.selectingDate,\n filterDate: e.props.filterDate,\n preSelection: e.props.preSelection,\n selected: e.props.selected,\n selectsStart: e.props.selectsStart,\n selectsEnd: e.props.selectsEnd,\n selectsRange: e.props.selectsRange,\n startDate: e.props.startDate,\n endDate: e.props.endDate,\n dayClassName: e.props.dayClassName,\n renderDayContents: e.props.renderDayContents,\n disabledKeyboardNavigation: e.props.disabledKeyboardNavigation,\n handleOnKeyDown: e.props.handleOnKeyDown,\n isInputFocused: e.props.isInputFocused,\n containerRef: e.props.containerRef,\n inline: e.props.inline,\n shouldFocusDayInline: e.props.shouldFocusDayInline,\n monthShowsDuplicateDaysEnd: e.props.monthShowsDuplicateDaysEnd,\n monthShowsDuplicateDaysStart: e.props.monthShowsDuplicateDaysStart\n });\n }));\n }), e;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__week\"\n }, this.renderDays());\n }\n }], [{\n key: \"defaultProps\",\n get: function get() {\n return {\n shouldCloseOnSelect: !0\n };\n }\n }]), r;\n }(de.default.Component),\n Fr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n var e;\n ut(this, r);\n\n for (var a = arguments.length, n = new Array(a), o = 0; o < a; o++) {\n n[o] = arguments[o];\n }\n\n return mt(bt(e = t.call.apply(t, [this].concat(n))), \"MONTH_REFS\", _t(Array(12)).map(function () {\n return de.default.createRef();\n })), mt(bt(e), \"isDisabled\", function (t) {\n return tr(t, e.props);\n }), mt(bt(e), \"isExcluded\", function (t) {\n return rr(t, e.props);\n }), mt(bt(e), \"handleDayClick\", function (t, r) {\n e.props.onDayClick && e.props.onDayClick(t, r, e.props.orderInDisplay);\n }), mt(bt(e), \"handleDayMouseEnter\", function (t) {\n e.props.onDayMouseEnter && e.props.onDayMouseEnter(t);\n }), mt(bt(e), \"handleMouseLeave\", function () {\n e.props.onMouseLeave && e.props.onMouseLeave();\n }), mt(bt(e), \"isRangeStartMonth\", function (t) {\n var r = e.props,\n a = r.day,\n n = r.startDate,\n o = r.endDate;\n return !(!n || !o) && Qt(qe.default(a, t), n);\n }), mt(bt(e), \"isRangeStartQuarter\", function (t) {\n var r = e.props,\n a = r.day,\n n = r.startDate,\n o = r.endDate;\n return !(!n || !o) && Vt(Ae.default(a, t), n);\n }), mt(bt(e), \"isRangeEndMonth\", function (t) {\n var r = e.props,\n a = r.day,\n n = r.startDate,\n o = r.endDate;\n return !(!n || !o) && Qt(qe.default(a, t), o);\n }), mt(bt(e), \"isRangeEndQuarter\", function (t) {\n var r = e.props,\n a = r.day,\n n = r.startDate,\n o = r.endDate;\n return !(!n || !o) && Vt(Ae.default(a, t), o);\n }), mt(bt(e), \"isWeekInMonth\", function (t) {\n var r = e.props.day,\n a = ve.default(t, 6);\n return Qt(t, r) || Qt(a, r);\n }), mt(bt(e), \"renderWeeks\", function () {\n for (var t = [], r = e.props.fixedHeight, a = Wt(Bt(e.props.day), e.props.locale), n = 0, o = !1; t.push(de.default.createElement(Lr, {\n ariaLabelPrefix: e.props.weekAriaLabelPrefix,\n chooseDayAriaLabelPrefix: e.props.chooseDayAriaLabelPrefix,\n disabledDayAriaLabelPrefix: e.props.disabledDayAriaLabelPrefix,\n key: n,\n day: a,\n month: Ye.default(e.props.day),\n onDayClick: e.handleDayClick,\n onDayMouseEnter: e.handleDayMouseEnter,\n onWeekSelect: e.props.onWeekSelect,\n formatWeekNumber: e.props.formatWeekNumber,\n locale: e.props.locale,\n minDate: e.props.minDate,\n maxDate: e.props.maxDate,\n excludeDates: e.props.excludeDates,\n includeDates: e.props.includeDates,\n inline: e.props.inline,\n shouldFocusDayInline: e.props.shouldFocusDayInline,\n highlightDates: e.props.highlightDates,\n selectingDate: e.props.selectingDate,\n filterDate: e.props.filterDate,\n preSelection: e.props.preSelection,\n selected: e.props.selected,\n selectsStart: e.props.selectsStart,\n selectsEnd: e.props.selectsEnd,\n selectsRange: e.props.selectsRange,\n showWeekNumber: e.props.showWeekNumbers,\n startDate: e.props.startDate,\n endDate: e.props.endDate,\n dayClassName: e.props.dayClassName,\n setOpen: e.props.setOpen,\n shouldCloseOnSelect: e.props.shouldCloseOnSelect,\n disabledKeyboardNavigation: e.props.disabledKeyboardNavigation,\n renderDayContents: e.props.renderDayContents,\n handleOnKeyDown: e.props.handleOnKeyDown,\n isInputFocused: e.props.isInputFocused,\n containerRef: e.props.containerRef,\n monthShowsDuplicateDaysEnd: e.props.monthShowsDuplicateDaysEnd,\n monthShowsDuplicateDaysStart: e.props.monthShowsDuplicateDaysStart\n })), !o;) {\n n++, a = De.default(a, 1);\n var s = r && n >= 6,\n i = !r && !e.isWeekInMonth(a);\n\n if (s || i) {\n if (!e.props.peekNextMonth) break;\n o = !0;\n }\n }\n\n return t;\n }), mt(bt(e), \"onMonthClick\", function (t, r) {\n e.handleDayClick(Bt(qe.default(e.props.day, r)), t);\n }), mt(bt(e), \"handleMonthNavigation\", function (t, r) {\n e.isDisabled(r) || e.isExcluded(r) || (e.props.setPreSelection(r), e.MONTH_REFS[t].current && e.MONTH_REFS[t].current.focus());\n }), mt(bt(e), \"onMonthKeyDown\", function (t, r) {\n var a = t.key;\n if (!e.props.disabledKeyboardNavigation) switch (a) {\n case \"Enter\":\n e.onMonthClick(t, r), e.props.setPreSelection(e.props.selected);\n break;\n\n case \"ArrowRight\":\n e.handleMonthNavigation(11 === r ? 0 : r + 1, we.default(e.props.preSelection, 1));\n break;\n\n case \"ArrowLeft\":\n e.handleMonthNavigation(0 === r ? 11 : r - 1, Ce.default(e.props.preSelection, 1));\n }\n }), mt(bt(e), \"onQuarterClick\", function (t, r) {\n e.handleDayClick(Ht(Ae.default(e.props.day, r)), t);\n }), mt(bt(e), \"getMonthClassNames\", function (t) {\n var r = e.props,\n a = r.day,\n n = r.startDate,\n o = r.endDate,\n s = r.selected,\n i = r.minDate,\n p = r.maxDate,\n l = r.preSelection,\n d = r.monthClassName,\n c = d ? d(a) : void 0;\n return ce.default(\"react-datepicker__month-text\", \"react-datepicker__month-\".concat(t), c, {\n \"react-datepicker__month--disabled\": (i || p) && ar(qe.default(a, t), e.props),\n \"react-datepicker__month--selected\": Ye.default(a) === t && Te.default(a) === Te.default(s),\n \"react-datepicker__month-text--keyboard-selected\": Ye.default(l) === t,\n \"react-datepicker__month--in-range\": nr(n, o, t, a),\n \"react-datepicker__month--range-start\": e.isRangeStartMonth(t),\n \"react-datepicker__month--range-end\": e.isRangeEndMonth(t)\n });\n }), mt(bt(e), \"getTabIndex\", function (t) {\n var r = Ye.default(e.props.preSelection);\n return e.props.disabledKeyboardNavigation || t !== r ? \"-1\" : \"0\";\n }), mt(bt(e), \"getAriaLabel\", function (t) {\n var r = e.props,\n a = r.ariaLabelPrefix,\n n = void 0 === a ? \"Choose\" : a,\n o = r.disabledDayAriaLabelPrefix,\n s = void 0 === o ? \"Not available\" : o,\n i = r.day,\n p = qe.default(i, t),\n l = e.isDisabled(p) || e.isExcluded(p) ? s : n;\n return \"\".concat(l, \" \").concat(Lt(p, \"MMMM yyyy\"));\n }), mt(bt(e), \"getQuarterClassNames\", function (t) {\n var r = e.props,\n a = r.day,\n n = r.startDate,\n o = r.endDate,\n s = r.selected,\n i = r.minDate,\n p = r.maxDate;\n return ce.default(\"react-datepicker__quarter-text\", \"react-datepicker__quarter-\".concat(t), {\n \"react-datepicker__quarter--disabled\": (i || p) && or(Ae.default(a, t), e.props),\n \"react-datepicker__quarter--selected\": xe.default(a) === t && Te.default(a) === Te.default(s),\n \"react-datepicker__quarter--in-range\": ir(n, o, t, a),\n \"react-datepicker__quarter--range-start\": e.isRangeStartQuarter(t),\n \"react-datepicker__quarter--range-end\": e.isRangeEndQuarter(t)\n });\n }), mt(bt(e), \"renderMonths\", function () {\n var t = e.props,\n r = t.showFullMonthYearPicker,\n a = t.showTwoColumnMonthYearPicker,\n n = t.showFourColumnMonthYearPicker,\n o = t.locale;\n return (n ? [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]] : a ? [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10, 11]] : [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]]).map(function (t, a) {\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__month-wrapper\",\n key: a\n }, t.map(function (t, a) {\n return de.default.createElement(\"div\", {\n ref: e.MONTH_REFS[t],\n key: a,\n onClick: function onClick(r) {\n e.onMonthClick(r, t);\n },\n onKeyDown: function onKeyDown(r) {\n e.onMonthKeyDown(r, t);\n },\n tabIndex: e.getTabIndex(t),\n className: e.getMonthClassNames(t),\n role: \"button\",\n \"aria-label\": e.getAriaLabel(t)\n }, r ? Xt(t, o) : Zt(t, o));\n }));\n });\n }), mt(bt(e), \"renderQuarters\", function () {\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__quarter-wrapper\"\n }, [1, 2, 3, 4].map(function (t, r) {\n return de.default.createElement(\"div\", {\n key: r,\n onClick: function onClick(r) {\n e.onQuarterClick(r, t);\n },\n className: e.getQuarterClassNames(t)\n }, er(t, e.props.locale));\n }));\n }), mt(bt(e), \"getClassNames\", function () {\n var t = e.props;\n t.day;\n var r = t.selectingDate,\n a = t.selectsStart,\n n = t.selectsEnd,\n o = t.showMonthYearPicker,\n s = t.showQuarterYearPicker;\n return ce.default(\"react-datepicker__month\", {\n \"react-datepicker__month--selecting-range\": r && (a || n)\n }, {\n \"react-datepicker__monthPicker\": o\n }, {\n \"react-datepicker__quarterPicker\": s\n });\n }), e;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n var e = this.props,\n t = e.showMonthYearPicker,\n r = e.showQuarterYearPicker,\n a = e.day,\n n = e.ariaLabelPrefix,\n o = void 0 === n ? \"month \" : n;\n return de.default.createElement(\"div\", {\n className: this.getClassNames(),\n onMouseLeave: this.handleMouseLeave,\n \"aria-label\": \"\".concat(o, \" \").concat(Lt(a, \"yyyy-MM\"))\n }, t ? this.renderMonths() : r ? this.renderQuarters() : this.renderWeeks());\n }\n }]), r;\n }(de.default.Component),\n Rr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n var e;\n ut(this, r);\n\n for (var a = arguments.length, n = new Array(a), o = 0; o < a; o++) {\n n[o] = arguments[o];\n }\n\n return mt(bt(e = t.call.apply(t, [this].concat(n))), \"state\", {\n height: null\n }), mt(bt(e), \"handleClick\", function (t) {\n (e.props.minTime || e.props.maxTime) && cr(t, e.props) || (e.props.excludeTimes || e.props.includeTimes || e.props.filterTime) && dr(t, e.props) || e.props.onChange(t);\n }), mt(bt(e), \"liClasses\", function (t, r, a) {\n var n = [\"react-datepicker__time-list-item\", e.props.timeClassName ? e.props.timeClassName(t, r, a) : void 0];\n return e.props.selected && r === Pe.default(t) && a === Me.default(t) && n.push(\"react-datepicker__time-list-item--selected\"), ((e.props.minTime || e.props.maxTime) && cr(t, e.props) || (e.props.excludeTimes || e.props.includeTimes || e.props.filterTime) && dr(t, e.props)) && n.push(\"react-datepicker__time-list-item--disabled\"), e.props.injectTimes && (60 * Pe.default(t) + Me.default(t)) % e.props.intervals != 0 && n.push(\"react-datepicker__time-list-item--injected\"), n.join(\" \");\n }), mt(bt(e), \"renderTimes\", function () {\n for (var t = [], r = e.props.format ? e.props.format : \"p\", a = e.props.intervals, n = At(xt(e.props.selected)), o = 1440 / a, s = e.props.injectTimes && e.props.injectTimes.sort(function (e, t) {\n return e - t;\n }), i = e.props.selected || e.props.openToDate || xt(), p = Pe.default(i), l = Me.default(i), d = Re.default(Fe.default(n, l), p), c = 0; c < o; c++) {\n var u = me.default(n, c * a);\n\n if (t.push(u), s) {\n var f = wr(n, u, c, a, s);\n t = t.concat(f);\n }\n }\n\n return t.map(function (t, a) {\n return de.default.createElement(\"li\", {\n key: a,\n onClick: e.handleClick.bind(bt(e), t),\n className: e.liClasses(t, p, l),\n ref: function ref(r) {\n (nt.default(t, d) || $t(t, d)) && (e.centerLi = r);\n },\n tabIndex: \"0\"\n }, Lt(t, r, e.props.locale));\n });\n }), e;\n }\n\n return ht(r, [{\n key: \"componentDidMount\",\n value: function value() {\n this.list.scrollTop = r.calcCenterPosition(this.props.monthRef ? this.props.monthRef.clientHeight - this.header.clientHeight : this.list.clientHeight, this.centerLi), this.props.monthRef && this.header && this.setState({\n height: this.props.monthRef.clientHeight - this.header.clientHeight\n });\n }\n }, {\n key: \"render\",\n value: function value() {\n var e = this,\n t = this.state.height;\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__time-container \".concat(this.props.todayButton ? \"react-datepicker__time-container--with-today-button\" : \"\")\n }, de.default.createElement(\"div\", {\n className: \"react-datepicker__header react-datepicker__header--time \".concat(this.props.showTimeSelectOnly ? \"react-datepicker__header--time--only\" : \"\"),\n ref: function ref(t) {\n e.header = t;\n }\n }, de.default.createElement(\"div\", {\n className: \"react-datepicker-time__header\"\n }, this.props.timeCaption)), de.default.createElement(\"div\", {\n className: \"react-datepicker__time\"\n }, de.default.createElement(\"div\", {\n className: \"react-datepicker__time-box\"\n }, de.default.createElement(\"ul\", {\n className: \"react-datepicker__time-list\",\n ref: function ref(t) {\n e.list = t;\n },\n style: t ? {\n height: t\n } : {},\n tabIndex: \"0\"\n }, this.renderTimes()))));\n }\n }], [{\n key: \"defaultProps\",\n get: function get() {\n return {\n intervals: 30,\n onTimeChange: function onTimeChange() {},\n todayButton: null,\n timeCaption: \"Time\"\n };\n }\n }]), r;\n }(de.default.Component);\n\n mt(Rr, \"calcCenterPosition\", function (e, t) {\n return t.offsetTop - (e / 2 - t.clientHeight / 2);\n });\n\n var qr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r(e) {\n var a;\n return ut(this, r), mt(bt(a = t.call(this, e)), \"handleYearClick\", function (e, t) {\n a.props.onDayClick && a.props.onDayClick(e, t);\n }), mt(bt(a), \"isSameDay\", function (e, t) {\n return Ut(e, t);\n }), mt(bt(a), \"isKeyboardSelected\", function (e) {\n var t = jt(We.default(a.props.date, e));\n return !a.props.disabledKeyboardNavigation && !a.props.inline && !Ut(t, jt(a.props.selected)) && Ut(t, jt(a.props.preSelection));\n }), mt(bt(a), \"onYearClick\", function (e, t) {\n var r = a.props.date;\n a.handleYearClick(jt(We.default(r, t)), e);\n }), mt(bt(a), \"getYearClassNames\", function (e) {\n var t = a.props,\n r = t.minDate,\n n = t.maxDate,\n o = t.selected;\n return ce.default(\"react-datepicker__year-text\", {\n \"react-datepicker__year-text--selected\": e === Te.default(o),\n \"react-datepicker__year-text--disabled\": (r || n) && sr(e, a.props),\n \"react-datepicker__year-text--keyboard-selected\": a.isKeyboardSelected(e),\n \"react-datepicker__year-text--today\": e === Te.default(xt())\n });\n }), a;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n for (var e = this, t = [], r = this.props, a = gr(r.date, r.yearItemNumber), n = a.startPeriod, o = a.endPeriod, s = function s(r) {\n t.push(de.default.createElement(\"div\", {\n onClick: function onClick(t) {\n e.onYearClick(t, r);\n },\n className: e.getYearClassNames(r),\n key: r\n }, r));\n }, i = n; i <= o; i++) {\n s(i);\n }\n\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__year\"\n }, de.default.createElement(\"div\", {\n className: \"react-datepicker__year-wrapper\"\n }, t));\n }\n }]), r;\n }(de.default.Component),\n Ar = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r(e) {\n var a;\n return ut(this, r), mt(bt(a = t.call(this, e)), \"onTimeChange\", function (e) {\n a.setState({\n time: e\n });\n var t = new Date();\n t.setHours(e.split(\":\")[0]), t.setMinutes(e.split(\":\")[1]), a.props.onChange(t);\n }), mt(bt(a), \"renderTimeInput\", function () {\n var e = a.state.time,\n t = a.props,\n r = t.date,\n n = t.timeString,\n o = t.customTimeInput;\n return o ? de.default.cloneElement(o, {\n date: r,\n value: e,\n onChange: a.onTimeChange\n }) : de.default.createElement(\"input\", {\n type: \"time\",\n className: \"react-datepicker-time__input\",\n placeholder: \"Time\",\n name: \"time-input\",\n required: !0,\n value: e,\n onChange: function onChange(e) {\n a.onTimeChange(e.target.value || n);\n }\n });\n }), a.state = {\n time: a.props.timeString\n }, a;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__input-time-container\"\n }, de.default.createElement(\"div\", {\n className: \"react-datepicker-time__caption\"\n }, this.props.timeInputLabel), de.default.createElement(\"div\", {\n className: \"react-datepicker-time__input-container\"\n }, de.default.createElement(\"div\", {\n className: \"react-datepicker-time__input\"\n }, this.renderTimeInput())));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function value(e, t) {\n return e.timeString !== t.time ? {\n time: e.timeString\n } : null;\n }\n }]), r;\n }(de.default.Component);\n\n function Wr(e) {\n var t = e.className,\n r = e.children,\n a = e.showPopperArrow,\n n = e.arrowProps,\n o = void 0 === n ? {} : n;\n return de.default.createElement(\"div\", {\n className: t\n }, a && de.default.createElement(\"div\", yt({\n className: \"react-datepicker__triangle\"\n }, o)), r);\n }\n\n var Br = [\"react-datepicker__year-select\", \"react-datepicker__month-select\", \"react-datepicker__month-year-select\"],\n jr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r(e) {\n var a;\n return ut(this, r), mt(bt(a = t.call(this, e)), \"handleClickOutside\", function (e) {\n a.props.onClickOutside(e);\n }), mt(bt(a), \"setClickOutsideRef\", function () {\n return a.containerRef.current;\n }), mt(bt(a), \"handleDropdownFocus\", function (e) {\n (function () {\n var e = ((arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).className || \"\").split(/\\s+/);\n return Br.some(function (t) {\n return e.indexOf(t) >= 0;\n });\n })(e.target) && a.props.onDropdownFocus();\n }), mt(bt(a), \"getDateInView\", function () {\n var e = a.props,\n t = e.preSelection,\n r = e.selected,\n n = e.openToDate,\n o = yr(a.props),\n s = vr(a.props),\n i = xt(),\n p = n || r || t;\n return p || (o && nt.default(i, o) ? o : s && at.default(i, s) ? s : i);\n }), mt(bt(a), \"increaseMonth\", function () {\n a.setState(function (e) {\n var t = e.date;\n return {\n date: we.default(t, 1)\n };\n }, function () {\n return a.handleMonthChange(a.state.date);\n });\n }), mt(bt(a), \"decreaseMonth\", function () {\n a.setState(function (e) {\n var t = e.date;\n return {\n date: Ce.default(t, 1)\n };\n }, function () {\n return a.handleMonthChange(a.state.date);\n });\n }), mt(bt(a), \"handleDayClick\", function (e, t, r) {\n a.props.onSelect(e, t, r), a.props.setPreSelection && a.props.setPreSelection(e);\n }), mt(bt(a), \"handleDayMouseEnter\", function (e) {\n a.setState({\n selectingDate: e\n }), a.props.onDayMouseEnter && a.props.onDayMouseEnter(e);\n }), mt(bt(a), \"handleMonthMouseLeave\", function () {\n a.setState({\n selectingDate: null\n }), a.props.onMonthMouseLeave && a.props.onMonthMouseLeave();\n }), mt(bt(a), \"handleYearChange\", function (e) {\n a.props.onYearChange && a.props.onYearChange(e), a.props.adjustDateOnChange && (a.props.onSelect && a.props.onSelect(e), a.props.setOpen && a.props.setOpen(!0)), a.props.setPreSelection && a.props.setPreSelection(e);\n }), mt(bt(a), \"handleMonthChange\", function (e) {\n a.props.onMonthChange && a.props.onMonthChange(e), a.props.adjustDateOnChange && (a.props.onSelect && a.props.onSelect(e), a.props.setOpen && a.props.setOpen(!0)), a.props.setPreSelection && a.props.setPreSelection(e);\n }), mt(bt(a), \"handleMonthYearChange\", function (e) {\n a.handleYearChange(e), a.handleMonthChange(e);\n }), mt(bt(a), \"changeYear\", function (e) {\n a.setState(function (t) {\n var r = t.date;\n return {\n date: We.default(r, e)\n };\n }, function () {\n return a.handleYearChange(a.state.date);\n });\n }), mt(bt(a), \"changeMonth\", function (e) {\n a.setState(function (t) {\n var r = t.date;\n return {\n date: qe.default(r, e)\n };\n }, function () {\n return a.handleMonthChange(a.state.date);\n });\n }), mt(bt(a), \"changeMonthYear\", function (e) {\n a.setState(function (t) {\n var r = t.date;\n return {\n date: We.default(qe.default(r, Ye.default(e)), Te.default(e))\n };\n }, function () {\n return a.handleMonthYearChange(a.state.date);\n });\n }), mt(bt(a), \"header\", function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : a.state.date,\n t = Wt(e, a.props.locale),\n r = [];\n return a.props.showWeekNumbers && r.push(de.default.createElement(\"div\", {\n key: \"W\",\n className: \"react-datepicker__day-name\"\n }, a.props.weekLabel || \"#\")), r.concat([0, 1, 2, 3, 4, 5, 6].map(function (e) {\n var r = ve.default(t, e),\n n = a.formatWeekday(r, a.props.locale),\n o = a.props.weekDayClassName ? a.props.weekDayClassName(r) : void 0;\n return de.default.createElement(\"div\", {\n key: e,\n className: ce.default(\"react-datepicker__day-name\", o)\n }, n);\n }));\n }), mt(bt(a), \"formatWeekday\", function (e, t) {\n return a.props.formatWeekDay ? function (e, t, r) {\n return t(Lt(e, \"EEEE\", r));\n }(e, a.props.formatWeekDay, t) : a.props.useWeekdaysShort ? function (e, t) {\n return Lt(e, \"EEE\", t);\n }(e, t) : function (e, t) {\n return Lt(e, \"EEEEEE\", t);\n }(e, t);\n }), mt(bt(a), \"decreaseYear\", function () {\n a.setState(function (e) {\n var t = e.date;\n return {\n date: Se.default(t, a.props.showYearPicker ? a.props.yearItemNumber : 1)\n };\n }, function () {\n return a.handleYearChange(a.state.date);\n });\n }), mt(bt(a), \"renderPreviousButton\", function () {\n if (!a.props.renderCustomHeader) {\n var e;\n\n switch (!0) {\n case a.props.showMonthYearPicker:\n e = hr(a.state.date, a.props);\n break;\n\n case a.props.showYearPicker:\n e = function (e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.minDate,\n a = t.yearItemNumber,\n n = void 0 === a ? Ot : a,\n o = gr(jt(Se.default(e, n)), n).endPeriod,\n s = r && Te.default(r);\n return s && s > o || !1;\n }(a.state.date, a.props);\n\n break;\n\n default:\n e = ur(a.state.date, a.props);\n }\n\n if ((a.props.forceShowMonthNavigation || a.props.showDisabledMonthNavigation || !e) && !a.props.showTimeSelectOnly) {\n var t = [\"react-datepicker__navigation\", \"react-datepicker__navigation--previous\"],\n r = a.decreaseMonth;\n (a.props.showMonthYearPicker || a.props.showQuarterYearPicker || a.props.showYearPicker) && (r = a.decreaseYear), e && a.props.showDisabledMonthNavigation && (t.push(\"react-datepicker__navigation--previous--disabled\"), r = null);\n var n = a.props.showMonthYearPicker || a.props.showQuarterYearPicker || a.props.showYearPicker,\n o = a.props,\n s = o.previousMonthAriaLabel,\n i = void 0 === s ? \"Previous Month\" : s,\n p = o.previousYearAriaLabel,\n l = void 0 === p ? \"Previous Year\" : p;\n return de.default.createElement(\"button\", {\n type: \"button\",\n className: t.join(\" \"),\n onClick: r,\n \"aria-label\": n ? l : i\n }, n ? a.props.previousYearButtonLabel : a.props.previousMonthButtonLabel);\n }\n }\n }), mt(bt(a), \"increaseYear\", function () {\n a.setState(function (e) {\n var t = e.date;\n return {\n date: ke.default(t, a.props.showYearPicker ? a.props.yearItemNumber : 1)\n };\n }, function () {\n return a.handleYearChange(a.state.date);\n });\n }), mt(bt(a), \"renderNextButton\", function () {\n if (!a.props.renderCustomHeader) {\n var e;\n\n switch (!0) {\n case a.props.showMonthYearPicker:\n e = mr(a.state.date, a.props);\n break;\n\n case a.props.showYearPicker:\n e = function (e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = t.maxDate,\n a = t.yearItemNumber,\n n = void 0 === a ? Ot : a,\n o = gr(ke.default(e, n), n).startPeriod,\n s = r && Te.default(r);\n return s && s < o || !1;\n }(a.state.date, a.props);\n\n break;\n\n default:\n e = fr(a.state.date, a.props);\n }\n\n if ((a.props.forceShowMonthNavigation || a.props.showDisabledMonthNavigation || !e) && !a.props.showTimeSelectOnly) {\n var t = [\"react-datepicker__navigation\", \"react-datepicker__navigation--next\"];\n a.props.showTimeSelect && t.push(\"react-datepicker__navigation--next--with-time\"), a.props.todayButton && t.push(\"react-datepicker__navigation--next--with-today-button\");\n var r = a.increaseMonth;\n (a.props.showMonthYearPicker || a.props.showQuarterYearPicker || a.props.showYearPicker) && (r = a.increaseYear), e && a.props.showDisabledMonthNavigation && (t.push(\"react-datepicker__navigation--next--disabled\"), r = null);\n var n = a.props.showMonthYearPicker || a.props.showQuarterYearPicker || a.props.showYearPicker,\n o = a.props,\n s = o.nextMonthAriaLabel,\n i = void 0 === s ? \"Next Month\" : s,\n p = o.nextYearAriaLabel,\n l = void 0 === p ? \"Next Year\" : p;\n return de.default.createElement(\"button\", {\n type: \"button\",\n className: t.join(\" \"),\n onClick: r,\n \"aria-label\": n ? l : i\n }, n ? a.props.nextYearButtonLabel : a.props.nextMonthButtonLabel);\n }\n }\n }), mt(bt(a), \"renderCurrentMonth\", function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : a.state.date,\n t = [\"react-datepicker__current-month\"];\n return a.props.showYearDropdown && t.push(\"react-datepicker__current-month--hasYearDropdown\"), a.props.showMonthDropdown && t.push(\"react-datepicker__current-month--hasMonthDropdown\"), a.props.showMonthYearDropdown && t.push(\"react-datepicker__current-month--hasMonthYearDropdown\"), de.default.createElement(\"div\", {\n className: t.join(\" \")\n }, Lt(e, a.props.dateFormat, a.props.locale));\n }), mt(bt(a), \"renderYearDropdown\", function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];\n if (a.props.showYearDropdown && !e) return de.default.createElement(_r, {\n adjustDateOnChange: a.props.adjustDateOnChange,\n date: a.state.date,\n onSelect: a.props.onSelect,\n setOpen: a.props.setOpen,\n dropdownMode: a.props.dropdownMode,\n onChange: a.changeYear,\n minDate: a.props.minDate,\n maxDate: a.props.maxDate,\n year: Te.default(a.state.date),\n scrollableYearDropdown: a.props.scrollableYearDropdown,\n yearDropdownItemNumber: a.props.yearDropdownItemNumber\n });\n }), mt(bt(a), \"renderMonthDropdown\", function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];\n if (a.props.showMonthDropdown && !e) return de.default.createElement(Er, {\n dropdownMode: a.props.dropdownMode,\n locale: a.props.locale,\n onChange: a.changeMonth,\n month: Ye.default(a.state.date),\n useShortMonthInDropdown: a.props.useShortMonthInDropdown\n });\n }), mt(bt(a), \"renderMonthYearDropdown\", function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];\n if (a.props.showMonthYearDropdown && !e) return de.default.createElement(xr, {\n dropdownMode: a.props.dropdownMode,\n locale: a.props.locale,\n dateFormat: a.props.dateFormat,\n onChange: a.changeMonthYear,\n minDate: a.props.minDate,\n maxDate: a.props.maxDate,\n date: a.state.date,\n scrollableMonthYearDropdown: a.props.scrollableMonthYearDropdown\n });\n }), mt(bt(a), \"renderTodayButton\", function () {\n if (a.props.todayButton && !a.props.showTimeSelectOnly) return de.default.createElement(\"div\", {\n className: \"react-datepicker__today-button\",\n onClick: function onClick(e) {\n return a.props.onSelect(Ve.default(xt()), e);\n }\n }, a.props.todayButton);\n }), mt(bt(a), \"renderDefaultHeader\", function (e) {\n var t = e.monthDate,\n r = e.i;\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__header \".concat(a.props.showTimeSelect ? \"react-datepicker__header--has-time-select\" : \"\")\n }, a.renderCurrentMonth(t), de.default.createElement(\"div\", {\n className: \"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(a.props.dropdownMode),\n onFocus: a.handleDropdownFocus\n }, a.renderMonthDropdown(0 !== r), a.renderMonthYearDropdown(0 !== r), a.renderYearDropdown(0 !== r)), de.default.createElement(\"div\", {\n className: \"react-datepicker__day-names\"\n }, a.header(t)));\n }), mt(bt(a), \"renderCustomHeader\", function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n t = e.monthDate,\n r = e.i;\n if (a.props.showTimeSelect && !a.state.monthContainer || a.props.showTimeSelectOnly) return null;\n var n = ur(a.state.date, a.props),\n o = fr(a.state.date, a.props),\n s = hr(a.state.date, a.props),\n i = mr(a.state.date, a.props),\n p = !a.props.showMonthYearPicker && !a.props.showQuarterYearPicker && !a.props.showYearPicker;\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__header react-datepicker__header--custom\",\n onFocus: a.props.onDropdownFocus\n }, a.props.renderCustomHeader(Dt(Dt({}, a.state), {}, {\n customHeaderCount: r,\n changeMonth: a.changeMonth,\n changeYear: a.changeYear,\n decreaseMonth: a.decreaseMonth,\n increaseMonth: a.increaseMonth,\n decreaseYear: a.decreaseYear,\n increaseYear: a.increaseYear,\n prevMonthButtonDisabled: n,\n nextMonthButtonDisabled: o,\n prevYearButtonDisabled: s,\n nextYearButtonDisabled: i\n })), p && de.default.createElement(\"div\", {\n className: \"react-datepicker__day-names\"\n }, a.header(t)));\n }), mt(bt(a), \"renderYearHeader\", function () {\n var e = a.state.date,\n t = a.props,\n r = t.showYearPicker,\n n = gr(e, t.yearItemNumber),\n o = n.startPeriod,\n s = n.endPeriod;\n return de.default.createElement(\"div\", {\n className: \"react-datepicker__header react-datepicker-year-header\"\n }, r ? \"\".concat(o, \" - \").concat(s) : Te.default(e));\n }), mt(bt(a), \"renderHeader\", function (e) {\n switch (!0) {\n case void 0 !== a.props.renderCustomHeader:\n return a.renderCustomHeader(e);\n\n case a.props.showMonthYearPicker || a.props.showQuarterYearPicker || a.props.showYearPicker:\n return a.renderYearHeader(e);\n\n default:\n return a.renderDefaultHeader(e);\n }\n }), mt(bt(a), \"renderMonths\", function () {\n if (!a.props.showTimeSelectOnly && !a.props.showYearPicker) {\n for (var e = [], t = a.props.showPreviousMonths ? a.props.monthsShown - 1 : 0, r = Ce.default(a.state.date, t), n = 0; n < a.props.monthsShown; ++n) {\n var o = n - a.props.monthSelectedIn,\n s = we.default(r, o),\n i = \"month-\".concat(n),\n p = n < a.props.monthsShown - 1,\n l = n > 0;\n e.push(de.default.createElement(\"div\", {\n key: i,\n ref: function ref(e) {\n a.monthContainer = e;\n },\n className: \"react-datepicker__month-container\"\n }, a.renderHeader({\n monthDate: s,\n i: n\n }), de.default.createElement(Fr, {\n chooseDayAriaLabelPrefix: a.props.chooseDayAriaLabelPrefix,\n disabledDayAriaLabelPrefix: a.props.disabledDayAriaLabelPrefix,\n weekAriaLabelPrefix: a.props.weekAriaLabelPrefix,\n onChange: a.changeMonthYear,\n day: s,\n dayClassName: a.props.dayClassName,\n monthClassName: a.props.monthClassName,\n onDayClick: a.handleDayClick,\n handleOnKeyDown: a.props.handleOnKeyDown,\n onDayMouseEnter: a.handleDayMouseEnter,\n onMouseLeave: a.handleMonthMouseLeave,\n onWeekSelect: a.props.onWeekSelect,\n orderInDisplay: n,\n formatWeekNumber: a.props.formatWeekNumber,\n locale: a.props.locale,\n minDate: a.props.minDate,\n maxDate: a.props.maxDate,\n excludeDates: a.props.excludeDates,\n highlightDates: a.props.highlightDates,\n selectingDate: a.state.selectingDate,\n includeDates: a.props.includeDates,\n inline: a.props.inline,\n shouldFocusDayInline: a.props.shouldFocusDayInline,\n fixedHeight: a.props.fixedHeight,\n filterDate: a.props.filterDate,\n preSelection: a.props.preSelection,\n setPreSelection: a.props.setPreSelection,\n selected: a.props.selected,\n selectsStart: a.props.selectsStart,\n selectsEnd: a.props.selectsEnd,\n selectsRange: a.props.selectsRange,\n showWeekNumbers: a.props.showWeekNumbers,\n startDate: a.props.startDate,\n endDate: a.props.endDate,\n peekNextMonth: a.props.peekNextMonth,\n setOpen: a.props.setOpen,\n shouldCloseOnSelect: a.props.shouldCloseOnSelect,\n renderDayContents: a.props.renderDayContents,\n disabledKeyboardNavigation: a.props.disabledKeyboardNavigation,\n showMonthYearPicker: a.props.showMonthYearPicker,\n showFullMonthYearPicker: a.props.showFullMonthYearPicker,\n showTwoColumnMonthYearPicker: a.props.showTwoColumnMonthYearPicker,\n showFourColumnMonthYearPicker: a.props.showFourColumnMonthYearPicker,\n showYearPicker: a.props.showYearPicker,\n showQuarterYearPicker: a.props.showQuarterYearPicker,\n isInputFocused: a.props.isInputFocused,\n containerRef: a.containerRef,\n monthShowsDuplicateDaysEnd: p,\n monthShowsDuplicateDaysStart: l\n })));\n }\n\n return e;\n }\n }), mt(bt(a), \"renderYears\", function () {\n if (!a.props.showTimeSelectOnly) return a.props.showYearPicker ? de.default.createElement(\"div\", {\n className: \"react-datepicker__year--container\"\n }, a.renderHeader(), de.default.createElement(qr, yt({\n onDayClick: a.handleDayClick,\n date: a.state.date\n }, a.props))) : void 0;\n }), mt(bt(a), \"renderTimeSection\", function () {\n if (a.props.showTimeSelect && (a.state.monthContainer || a.props.showTimeSelectOnly)) return de.default.createElement(Rr, {\n selected: a.props.selected,\n openToDate: a.props.openToDate,\n onChange: a.props.onTimeChange,\n timeClassName: a.props.timeClassName,\n format: a.props.timeFormat,\n includeTimes: a.props.includeTimes,\n intervals: a.props.timeIntervals,\n minTime: a.props.minTime,\n maxTime: a.props.maxTime,\n excludeTimes: a.props.excludeTimes,\n filterTime: a.props.filterTime,\n timeCaption: a.props.timeCaption,\n todayButton: a.props.todayButton,\n showMonthDropdown: a.props.showMonthDropdown,\n showMonthYearDropdown: a.props.showMonthYearDropdown,\n showYearDropdown: a.props.showYearDropdown,\n withPortal: a.props.withPortal,\n monthRef: a.state.monthContainer,\n injectTimes: a.props.injectTimes,\n locale: a.props.locale,\n showTimeSelectOnly: a.props.showTimeSelectOnly\n });\n }), mt(bt(a), \"renderInputTimeSection\", function () {\n var e = new Date(a.props.selected),\n t = It(e) && Boolean(a.props.selected) ? \"\".concat(kr(e.getHours()), \":\").concat(kr(e.getMinutes())) : \"\";\n if (a.props.showTimeInput) return de.default.createElement(Ar, {\n date: e,\n timeString: t,\n timeInputLabel: a.props.timeInputLabel,\n onChange: a.props.onTimeChange,\n customTimeInput: a.props.customTimeInput\n });\n }), a.containerRef = de.default.createRef(), a.state = {\n date: a.getDateInView(),\n selectingDate: null,\n monthContainer: null\n }, a;\n }\n\n return ht(r, [{\n key: \"componentDidMount\",\n value: function value() {\n var e = this;\n this.props.showTimeSelect && (this.assignMonthContainer = void e.setState({\n monthContainer: e.monthContainer\n }));\n }\n }, {\n key: \"componentDidUpdate\",\n value: function value(e) {\n this.props.preSelection && !Ut(this.props.preSelection, e.preSelection) ? this.setState({\n date: this.props.preSelection\n }) : this.props.openToDate && !Ut(this.props.openToDate, e.openToDate) && this.setState({\n date: this.props.openToDate\n });\n }\n }, {\n key: \"render\",\n value: function value() {\n var e = this.props.container || Wr;\n return de.default.createElement(\"div\", {\n ref: this.containerRef\n }, de.default.createElement(e, {\n className: ce.default(\"react-datepicker\", this.props.className, {\n \"react-datepicker--time-only\": this.props.showTimeSelectOnly\n }),\n showPopperArrow: this.props.showPopperArrow,\n arrowProps: this.props.arrowProps\n }, this.renderPreviousButton(), this.renderNextButton(), this.renderMonths(), this.renderYears(), this.renderTodayButton(), this.renderTimeSection(), this.renderInputTimeSection(), this.props.children));\n }\n }], [{\n key: \"defaultProps\",\n get: function get() {\n return {\n onDropdownFocus: function onDropdownFocus() {},\n monthsShown: 1,\n monthSelectedIn: 0,\n forceShowMonthNavigation: !1,\n timeCaption: \"Time\",\n previousYearButtonLabel: \"Previous Year\",\n nextYearButtonLabel: \"Next Year\",\n previousMonthButtonLabel: \"Previous Month\",\n nextMonthButtonLabel: \"Next Month\",\n customTimeInput: null,\n yearItemNumber: Ot\n };\n }\n }]), r;\n }(de.default.Component),\n Hr = function Hr(e) {\n return !e.disabled && -1 !== e.tabIndex;\n },\n Kr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r(e) {\n var a;\n return ut(this, r), mt(bt(a = t.call(this, e)), \"getTabChildren\", function () {\n return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"), 1, -1).filter(Hr);\n }), mt(bt(a), \"handleFocusStart\", function (e) {\n var t = a.getTabChildren();\n t && t.length > 1 && t[t.length - 1].focus();\n }), mt(bt(a), \"handleFocusEnd\", function (e) {\n var t = a.getTabChildren();\n t && t.length > 1 && t[0].focus();\n }), a.tabLoopRef = de.default.createRef(), a;\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n return this.props.enableTabLoop ? de.default.createElement(\"div\", {\n className: \"react-datepicker__tab-loop\",\n ref: this.tabLoopRef\n }, de.default.createElement(\"div\", {\n className: \"react-datepicker__tab-loop__start\",\n tabIndex: \"0\",\n onFocus: this.handleFocusStart\n }), this.props.children, de.default.createElement(\"div\", {\n className: \"react-datepicker__tab-loop__end\",\n tabIndex: \"0\",\n onFocus: this.handleFocusEnd\n })) : this.props.children;\n }\n }], [{\n key: \"defaultProps\",\n get: function get() {\n return {\n enableTabLoop: !0\n };\n }\n }]), r;\n }(de.default.Component),\n Qr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r(e) {\n var a;\n return ut(this, r), (a = t.call(this, e)).el = document.createElement(\"div\"), a;\n }\n\n return ht(r, [{\n key: \"componentDidMount\",\n value: function value() {\n this.portalRoot = document.getElementById(this.props.portalId), this.portalRoot || (this.portalRoot = document.createElement(\"div\"), this.portalRoot.setAttribute(\"id\", this.props.portalId), document.body.appendChild(this.portalRoot)), this.portalRoot.appendChild(this.el);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function value() {\n this.portalRoot.removeChild(this.el);\n }\n }, {\n key: \"render\",\n value: function value() {\n return dt.default.createPortal(this.props.children, this.el);\n }\n }]), r;\n }(de.default.Component),\n Vr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r() {\n return ut(this, r), t.apply(this, arguments);\n }\n\n return ht(r, [{\n key: \"render\",\n value: function value() {\n var e,\n t = this.props,\n r = t.className,\n a = t.wrapperClassName,\n n = t.hidePopper,\n o = t.popperComponent,\n s = t.popperModifiers,\n i = t.popperPlacement,\n p = t.popperProps,\n l = t.targetComponent,\n d = t.enableTabLoop,\n c = t.popperOnKeyDown,\n u = t.portalId;\n\n if (!n) {\n var f = ce.default(\"react-datepicker-popper\", r);\n e = de.default.createElement(ie.Popper, yt({\n modifiers: s,\n placement: i\n }, p), function (e) {\n var t = e.ref,\n r = e.style,\n a = e.placement,\n n = e.arrowProps;\n return de.default.createElement(Kr, {\n enableTabLoop: d\n }, de.default.createElement(\"div\", {\n ref: t,\n style: r,\n className: f,\n \"data-placement\": a,\n onKeyDown: c\n }, de.default.cloneElement(o, {\n arrowProps: n\n })));\n });\n }\n\n this.props.popperContainer && (e = de.default.createElement(this.props.popperContainer, {}, e)), u && !n && (e = de.default.createElement(Qr, {\n portalId: u\n }, e));\n var h = ce.default(\"react-datepicker-wrapper\", a);\n return de.default.createElement(ie.Manager, {\n className: \"react-datepicker-manager\"\n }, de.default.createElement(ie.Reference, null, function (e) {\n var t = e.ref;\n return de.default.createElement(\"div\", {\n ref: t,\n className: h\n }, l);\n }), e);\n }\n }], [{\n key: \"defaultProps\",\n get: function get() {\n return {\n hidePopper: !0,\n popperModifiers: {\n preventOverflow: {\n enabled: !0,\n escapeWithReference: !0,\n boundariesElement: \"viewport\"\n }\n },\n popperProps: {},\n popperPlacement: \"bottom-start\"\n };\n }\n }]), r;\n }(de.default.Component),\n Ur = \"react-datepicker-ignore-onclickoutside\",\n $r = lt.default(jr);\n\n var zr = \"Date input not valid.\",\n Gr = function (e) {\n wt(r, e);\n var t = St(r);\n\n function r(e) {\n var a;\n return ut(this, r), mt(bt(a = t.call(this, e)), \"getPreSelection\", function () {\n return a.props.openToDate ? a.props.openToDate : a.props.selectsEnd && a.props.startDate ? a.props.startDate : a.props.selectsStart && a.props.endDate ? a.props.endDate : xt();\n }), mt(bt(a), \"calcInitialState\", function () {\n var e = a.getPreSelection(),\n t = yr(a.props),\n r = vr(a.props),\n n = t && nt.default(e, Ve.default(t)) ? t : r && at.default(e, Je.default(r)) ? r : e;\n return {\n open: a.props.startOpen || !1,\n preventFocus: !1,\n preSelection: a.props.selected ? a.props.selected : n,\n highlightDates: Dr(a.props.highlightDates),\n focused: !1,\n shouldFocusDayInline: !1\n };\n }), mt(bt(a), \"clearPreventFocusTimeout\", function () {\n a.preventFocusTimeout && clearTimeout(a.preventFocusTimeout);\n }), mt(bt(a), \"setFocus\", function () {\n a.input && a.input.focus && a.input.focus({\n preventScroll: !0\n });\n }), mt(bt(a), \"setBlur\", function () {\n a.input && a.input.blur && a.input.blur(), a.cancelFocusInput();\n }), mt(bt(a), \"setOpen\", function (e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];\n a.setState({\n open: e,\n preSelection: e && a.state.open ? a.state.preSelection : a.calcInitialState().preSelection,\n lastPreSelectChange: Xr\n }, function () {\n e || a.setState(function (e) {\n return {\n focused: !!t && e.focused\n };\n }, function () {\n !t && a.setBlur(), a.setState({\n inputValue: null\n });\n });\n });\n }), mt(bt(a), \"inputOk\", function () {\n return ue.default(a.state.preSelection);\n }), mt(bt(a), \"isCalendarOpen\", function () {\n return void 0 === a.props.open ? a.state.open && !a.props.disabled && !a.props.readOnly : a.props.open;\n }), mt(bt(a), \"handleFocus\", function (e) {\n a.state.preventFocus || (a.props.onFocus(e), a.props.preventOpenOnFocus || a.props.readOnly || a.setOpen(!0)), a.setState({\n focused: !0\n });\n }), mt(bt(a), \"cancelFocusInput\", function () {\n clearTimeout(a.inputFocusTimeout), a.inputFocusTimeout = null;\n }), mt(bt(a), \"deferFocusInput\", function () {\n a.cancelFocusInput(), a.inputFocusTimeout = setTimeout(function () {\n return a.setFocus();\n }, 1);\n }), mt(bt(a), \"handleDropdownFocus\", function () {\n a.cancelFocusInput();\n }), mt(bt(a), \"handleBlur\", function (e) {\n (!a.state.open || a.props.withPortal || a.props.showTimeInput) && a.props.onBlur(e), a.setState({\n focused: !1\n });\n }), mt(bt(a), \"handleCalendarClickOutside\", function (e) {\n a.props.inline || a.setOpen(!1), a.props.onClickOutside(e), a.props.withPortal && e.preventDefault();\n }), mt(bt(a), \"handleChange\", function () {\n for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) {\n t[r] = arguments[r];\n }\n\n var n = t[0];\n\n if (!a.props.onChangeRaw || (a.props.onChangeRaw.apply(bt(a), t), \"function\" == typeof n.isDefaultPrevented && !n.isDefaultPrevented())) {\n a.setState({\n inputValue: n.target.value,\n lastPreSelectChange: Jr\n });\n var o = Tt(n.target.value, a.props.dateFormat, a.props.locale, a.props.strictParsing);\n !o && n.target.value || a.setSelected(o, n, !0);\n }\n }), mt(bt(a), \"handleSelect\", function (e, t, r) {\n a.setState({\n preventFocus: !0\n }, function () {\n return a.preventFocusTimeout = setTimeout(function () {\n return a.setState({\n preventFocus: !1\n });\n }, 50), a.preventFocusTimeout;\n }), a.props.onChangeRaw && a.props.onChangeRaw(t), a.setSelected(e, t, !1, r), !a.props.shouldCloseOnSelect || a.props.showTimeSelect ? a.setPreSelection(e) : a.props.inline || a.setOpen(!1);\n }), mt(bt(a), \"setSelected\", function (e, t, r, n) {\n var o = e;\n\n if (null === o || !tr(o, a.props)) {\n var s = a.props,\n i = s.onChange,\n p = s.selectsRange,\n l = s.startDate,\n d = s.endDate;\n if (!$t(a.props.selected, o) || a.props.allowSameDay || p) if (null !== o && (!a.props.selected || r && (a.props.showTimeSelect || a.props.showTimeSelectOnly || a.props.showTimeInput) || (o = Ft(o, {\n hour: Pe.default(a.props.selected),\n minute: Me.default(a.props.selected),\n second: _e.default(a.props.selected)\n })), a.props.inline || a.setState({\n preSelection: o\n }), a.props.focusSelectedMonth || a.setState({\n monthSelectedIn: n\n })), p) {\n var c = l && !d,\n u = l && d;\n !l && !d ? i([o, null], t) : c && (nt.default(o, l) ? i([o, null], t) : i([l, o], t)), u && i([o, null], t);\n } else i(o, t);\n r || (a.props.onSelect(o, t), a.setState({\n inputValue: null\n }));\n }\n }), mt(bt(a), \"setPreSelection\", function (e) {\n var t = void 0 !== a.props.minDate,\n r = void 0 !== a.props.maxDate,\n n = !0;\n\n if (e) {\n var o = Ve.default(e);\n if (t && r) n = zt(e, a.props.minDate, a.props.maxDate);else if (t) {\n var s = Ve.default(a.props.minDate);\n n = at.default(e, s) || $t(o, s);\n } else if (r) {\n var i = Je.default(a.props.maxDate);\n n = nt.default(e, i) || $t(o, i);\n }\n }\n\n n && a.setState({\n preSelection: e\n });\n }), mt(bt(a), \"handleTimeChange\", function (e) {\n var t = Ft(a.props.selected ? a.props.selected : a.getPreSelection(), {\n hour: Pe.default(e),\n minute: Me.default(e)\n });\n a.setState({\n preSelection: t\n }), a.props.onChange(t), a.props.shouldCloseOnSelect && a.setOpen(!1), a.props.showTimeInput && a.setOpen(!0), a.setState({\n inputValue: null\n });\n }), mt(bt(a), \"onInputClick\", function () {\n a.props.disabled || a.props.readOnly || a.setOpen(!0), a.props.onInputClick();\n }), mt(bt(a), \"onInputKeyDown\", function (e) {\n a.props.onKeyDown(e);\n var t = e.key;\n\n if (a.state.open || a.props.inline || a.props.preventOpenOnFocus) {\n if (a.state.open) {\n if (\"ArrowDown\" === t || \"ArrowUp\" === t) {\n e.preventDefault();\n var r = a.calendar.componentNode && a.calendar.componentNode.querySelector('.react-datepicker__day[tabindex=\"0\"]');\n return void (r && r.focus({\n preventScroll: !0\n }));\n }\n\n var n = xt(a.state.preSelection);\n \"Enter\" === t ? (e.preventDefault(), a.inputOk() && a.state.lastPreSelectChange === Xr ? (a.handleSelect(n, e), !a.props.shouldCloseOnSelect && a.setPreSelection(n)) : a.setOpen(!1)) : \"Escape\" === t && (e.preventDefault(), a.setOpen(!1)), a.inputOk() || a.props.onInputError({\n code: 1,\n msg: zr\n });\n }\n } else \"ArrowDown\" !== t && \"ArrowUp\" !== t && \"Enter\" !== t || a.onInputClick();\n }), mt(bt(a), \"onDayKeyDown\", function (e) {\n a.props.onKeyDown(e);\n var t = e.key,\n r = xt(a.state.preSelection);\n if (\"Enter\" === t) e.preventDefault(), a.handleSelect(r, e), !a.props.shouldCloseOnSelect && a.setPreSelection(r);else if (\"Escape\" === t) e.preventDefault(), a.setOpen(!1), a.inputOk() || a.props.onInputError({\n code: 1,\n msg: zr\n });else if (!a.props.disabledKeyboardNavigation) {\n var n;\n\n switch (t) {\n case \"ArrowLeft\":\n n = ge.default(r, 1);\n break;\n\n case \"ArrowRight\":\n n = ve.default(r, 1);\n break;\n\n case \"ArrowUp\":\n n = be.default(r, 1);\n break;\n\n case \"ArrowDown\":\n n = De.default(r, 1);\n break;\n\n case \"PageUp\":\n n = Ce.default(r, 1);\n break;\n\n case \"PageDown\":\n n = we.default(r, 1);\n break;\n\n case \"Home\":\n n = Se.default(r, 1);\n break;\n\n case \"End\":\n n = ke.default(r, 1);\n }\n\n if (!n) return void (a.props.onInputError && a.props.onInputError({\n code: 1,\n msg: zr\n }));\n\n if (e.preventDefault(), a.setState({\n lastPreSelectChange: Xr\n }), a.props.adjustDateOnChange && a.setSelected(n), a.setPreSelection(n), a.props.inline) {\n var o = Ye.default(r),\n s = Ye.default(n),\n i = Te.default(r),\n p = Te.default(n);\n o !== s || i !== p ? a.setState({\n shouldFocusDayInline: !0\n }) : a.setState({\n shouldFocusDayInline: !1\n });\n }\n }\n }), mt(bt(a), \"onPopperKeyDown\", function (e) {\n \"Escape\" === e.key && (e.preventDefault(), a.setState({\n preventFocus: !0\n }, function () {\n a.setOpen(!1), setTimeout(function () {\n a.setFocus(), a.setState({\n preventFocus: !1\n });\n });\n }));\n }), mt(bt(a), \"onClearClick\", function (e) {\n e && e.preventDefault && e.preventDefault(), a.props.onChange(null, e), a.setState({\n inputValue: null\n });\n }), mt(bt(a), \"clear\", function () {\n a.onClearClick();\n }), mt(bt(a), \"onScroll\", function (e) {\n \"boolean\" == typeof a.props.closeOnScroll && a.props.closeOnScroll ? e.target !== document && e.target !== document.documentElement && e.target !== document.body || a.setOpen(!1) : \"function\" == typeof a.props.closeOnScroll && a.props.closeOnScroll(e) && a.setOpen(!1);\n }), mt(bt(a), \"renderCalendar\", function () {\n return a.props.inline || a.isCalendarOpen() ? de.default.createElement($r, {\n ref: function ref(e) {\n a.calendar = e;\n },\n locale: a.props.locale,\n chooseDayAriaLabelPrefix: a.props.chooseDayAriaLabelPrefix,\n disabledDayAriaLabelPrefix: a.props.disabledDayAriaLabelPrefix,\n weekAriaLabelPrefix: a.props.weekAriaLabelPrefix,\n adjustDateOnChange: a.props.adjustDateOnChange,\n setOpen: a.setOpen,\n shouldCloseOnSelect: a.props.shouldCloseOnSelect,\n dateFormat: a.props.dateFormatCalendar,\n useWeekdaysShort: a.props.useWeekdaysShort,\n formatWeekDay: a.props.formatWeekDay,\n dropdownMode: a.props.dropdownMode,\n selected: a.props.selected,\n preSelection: a.state.preSelection,\n onSelect: a.handleSelect,\n onWeekSelect: a.props.onWeekSelect,\n openToDate: a.props.openToDate,\n minDate: a.props.minDate,\n maxDate: a.props.maxDate,\n selectsStart: a.props.selectsStart,\n selectsEnd: a.props.selectsEnd,\n selectsRange: a.props.selectsRange,\n startDate: a.props.startDate,\n endDate: a.props.endDate,\n excludeDates: a.props.excludeDates,\n filterDate: a.props.filterDate,\n onClickOutside: a.handleCalendarClickOutside,\n formatWeekNumber: a.props.formatWeekNumber,\n highlightDates: a.state.highlightDates,\n includeDates: a.props.includeDates,\n includeTimes: a.props.includeTimes,\n injectTimes: a.props.injectTimes,\n inline: a.props.inline,\n shouldFocusDayInline: a.state.shouldFocusDayInline,\n peekNextMonth: a.props.peekNextMonth,\n showMonthDropdown: a.props.showMonthDropdown,\n showPreviousMonths: a.props.showPreviousMonths,\n useShortMonthInDropdown: a.props.useShortMonthInDropdown,\n showMonthYearDropdown: a.props.showMonthYearDropdown,\n showWeekNumbers: a.props.showWeekNumbers,\n showYearDropdown: a.props.showYearDropdown,\n withPortal: a.props.withPortal,\n forceShowMonthNavigation: a.props.forceShowMonthNavigation,\n showDisabledMonthNavigation: a.props.showDisabledMonthNavigation,\n scrollableYearDropdown: a.props.scrollableYearDropdown,\n scrollableMonthYearDropdown: a.props.scrollableMonthYearDropdown,\n todayButton: a.props.todayButton,\n weekLabel: a.props.weekLabel,\n outsideClickIgnoreClass: Ur,\n fixedHeight: a.props.fixedHeight,\n monthsShown: a.props.monthsShown,\n monthSelectedIn: a.state.monthSelectedIn,\n onDropdownFocus: a.handleDropdownFocus,\n onMonthChange: a.props.onMonthChange,\n onYearChange: a.props.onYearChange,\n dayClassName: a.props.dayClassName,\n weekDayClassName: a.props.weekDayClassName,\n monthClassName: a.props.monthClassName,\n timeClassName: a.props.timeClassName,\n showTimeSelect: a.props.showTimeSelect,\n showTimeSelectOnly: a.props.showTimeSelectOnly,\n onTimeChange: a.handleTimeChange,\n timeFormat: a.props.timeFormat,\n timeIntervals: a.props.timeIntervals,\n minTime: a.props.minTime,\n maxTime: a.props.maxTime,\n excludeTimes: a.props.excludeTimes,\n filterTime: a.props.filterTime,\n timeCaption: a.props.timeCaption,\n className: a.props.calendarClassName,\n container: a.props.calendarContainer,\n yearItemNumber: a.props.yearItemNumber,\n yearDropdownItemNumber: a.props.yearDropdownItemNumber,\n previousMonthButtonLabel: a.props.previousMonthButtonLabel,\n nextMonthButtonLabel: a.props.nextMonthButtonLabel,\n previousYearButtonLabel: a.props.previousYearButtonLabel,\n nextYearButtonLabel: a.props.nextYearButtonLabel,\n timeInputLabel: a.props.timeInputLabel,\n disabledKeyboardNavigation: a.props.disabledKeyboardNavigation,\n renderCustomHeader: a.props.renderCustomHeader,\n popperProps: a.props.popperProps,\n renderDayContents: a.props.renderDayContents,\n onDayMouseEnter: a.props.onDayMouseEnter,\n onMonthMouseLeave: a.props.onMonthMouseLeave,\n showTimeInput: a.props.showTimeInput,\n showMonthYearPicker: a.props.showMonthYearPicker,\n showFullMonthYearPicker: a.props.showFullMonthYearPicker,\n showTwoColumnMonthYearPicker: a.props.showTwoColumnMonthYearPicker,\n showFourColumnMonthYearPicker: a.props.showFourColumnMonthYearPicker,\n showYearPicker: a.props.showYearPicker,\n showQuarterYearPicker: a.props.showQuarterYearPicker,\n showPopperArrow: a.props.showPopperArrow,\n excludeScrollbar: a.props.excludeScrollbar,\n handleOnKeyDown: a.onDayKeyDown,\n isInputFocused: a.state.focused,\n customTimeInput: a.props.customTimeInput,\n setPreSelection: a.setPreSelection\n }, a.props.children) : null;\n }), mt(bt(a), \"renderDateInput\", function () {\n var e,\n t,\n r,\n n,\n o,\n s = ce.default(a.props.className, mt({}, Ur, a.state.open)),\n i = a.props.customInput || de.default.createElement(\"input\", {\n type: \"text\"\n }),\n p = a.props.customInputRef || \"ref\",\n l = \"string\" == typeof a.props.value ? a.props.value : \"string\" == typeof a.state.inputValue ? a.state.inputValue : (t = a.props.selected, r = a.props, n = r.dateFormat, o = r.locale, t && Lt(t, Array.isArray(n) ? n[0] : n, o) || \"\");\n return de.default.cloneElement(i, (mt(e = {}, p, function (e) {\n a.input = e;\n }), mt(e, \"value\", l), mt(e, \"onBlur\", a.handleBlur), mt(e, \"onChange\", a.handleChange), mt(e, \"onClick\", a.onInputClick), mt(e, \"onFocus\", a.handleFocus), mt(e, \"onKeyDown\", a.onInputKeyDown), mt(e, \"id\", a.props.id), mt(e, \"name\", a.props.name), mt(e, \"autoFocus\", a.props.autoFocus), mt(e, \"placeholder\", a.props.placeholderText), mt(e, \"disabled\", a.props.disabled), mt(e, \"autoComplete\", a.props.autoComplete), mt(e, \"className\", ce.default(i.props.className, s)), mt(e, \"title\", a.props.title), mt(e, \"readOnly\", a.props.readOnly), mt(e, \"required\", a.props.required), mt(e, \"tabIndex\", a.props.tabIndex), mt(e, \"aria-describedby\", a.props.ariaDescribedBy), mt(e, \"aria-invalid\", a.props.ariaInvalid), mt(e, \"aria-labelledby\", a.props.ariaLabelledBy), mt(e, \"aria-required\", a.props.ariaRequired), e));\n }), mt(bt(a), \"renderClearButton\", function () {\n var e = a.props,\n t = e.isClearable,\n r = e.selected,\n n = e.clearButtonTitle,\n o = e.clearButtonClassName,\n s = e.ariaLabelClose,\n i = void 0 === s ? \"Close\" : s;\n return t && null != r ? de.default.createElement(\"button\", {\n type: \"button\",\n className: \"react-datepicker__close-icon \".concat(o),\n \"aria-label\": i,\n onClick: a.onClearClick,\n title: n,\n tabIndex: -1\n }) : null;\n }), a.state = a.calcInitialState(), a;\n }\n\n return ht(r, [{\n key: \"componentDidMount\",\n value: function value() {\n window.addEventListener(\"scroll\", this.onScroll, !0);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function value(e, t) {\n var r, a;\n e.inline && (r = e.selected, a = this.props.selected, r && a ? Ye.default(r) !== Ye.default(a) || Te.default(r) !== Te.default(a) : r !== a) && this.setPreSelection(this.props.selected), void 0 !== this.state.monthSelectedIn && e.monthsShown !== this.props.monthsShown && this.setState({\n monthSelectedIn: 0\n }), e.highlightDates !== this.props.highlightDates && this.setState({\n highlightDates: Dr(this.props.highlightDates)\n }), t.focused || $t(e.selected, this.props.selected) || this.setState({\n inputValue: null\n }), t.open !== this.state.open && (!1 === t.open && !0 === this.state.open && this.props.onCalendarOpen(), !0 === t.open && !1 === this.state.open && this.props.onCalendarClose());\n }\n }, {\n key: \"componentWillUnmount\",\n value: function value() {\n this.clearPreventFocusTimeout(), window.removeEventListener(\"scroll\", this.onScroll, !0);\n }\n }, {\n key: \"render\",\n value: function value() {\n var e = this.renderCalendar();\n return this.props.inline && !this.props.withPortal ? e : this.props.withPortal ? de.default.createElement(\"div\", null, this.props.inline ? null : de.default.createElement(\"div\", {\n className: \"react-datepicker__input-container\"\n }, this.renderDateInput(), this.renderClearButton()), this.state.open || this.props.inline ? de.default.createElement(\"div\", {\n className: \"react-datepicker__portal\"\n }, e) : null) : de.default.createElement(Vr, {\n className: this.props.popperClassName,\n wrapperClassName: this.props.wrapperClassName,\n hidePopper: !this.isCalendarOpen(),\n portalId: this.props.portalId,\n popperModifiers: this.props.popperModifiers,\n targetComponent: de.default.createElement(\"div\", {\n className: \"react-datepicker__input-container\"\n }, this.renderDateInput(), this.renderClearButton()),\n popperContainer: this.props.popperContainer,\n popperComponent: e,\n popperPlacement: this.props.popperPlacement,\n popperProps: this.props.popperProps,\n popperOnKeyDown: this.onPopperKeyDown,\n enableTabLoop: this.props.enableTabLoop\n });\n }\n }], [{\n key: \"defaultProps\",\n get: function get() {\n return {\n allowSameDay: !1,\n dateFormat: \"MM/dd/yyyy\",\n dateFormatCalendar: \"LLLL yyyy\",\n onChange: function onChange() {},\n disabled: !1,\n disabledKeyboardNavigation: !1,\n dropdownMode: \"scroll\",\n onFocus: function onFocus() {},\n onBlur: function onBlur() {},\n onKeyDown: function onKeyDown() {},\n onInputClick: function onInputClick() {},\n onSelect: function onSelect() {},\n onClickOutside: function onClickOutside() {},\n onMonthChange: function onMonthChange() {},\n onCalendarOpen: function onCalendarOpen() {},\n onCalendarClose: function onCalendarClose() {},\n preventOpenOnFocus: !1,\n onYearChange: function onYearChange() {},\n onInputError: function onInputError() {},\n monthsShown: 1,\n readOnly: !1,\n withPortal: !1,\n shouldCloseOnSelect: !0,\n showTimeSelect: !1,\n showTimeInput: !1,\n showPreviousMonths: !1,\n showMonthYearPicker: !1,\n showFullMonthYearPicker: !1,\n showTwoColumnMonthYearPicker: !1,\n showFourColumnMonthYearPicker: !1,\n showYearPicker: !1,\n showQuarterYearPicker: !1,\n strictParsing: !1,\n timeIntervals: 30,\n timeCaption: \"Time\",\n previousMonthButtonLabel: \"Previous Month\",\n nextMonthButtonLabel: \"Next Month\",\n previousYearButtonLabel: \"Previous Year\",\n nextYearButtonLabel: \"Next Year\",\n timeInputLabel: \"Time\",\n enableTabLoop: !0,\n yearItemNumber: Ot,\n renderDayContents: function renderDayContents(e) {\n return e;\n },\n focusSelectedMonth: !1,\n showPopperArrow: !0,\n excludeScrollbar: !0,\n customTimeInput: null\n };\n }\n }]), r;\n }(de.default.Component),\n Jr = \"input\",\n Xr = \"navigate\";\n\n e.CalendarContainer = Wr, e.default = Gr, e.getDefaultLocale = Gt, e.registerLocale = function (e, t) {\n var r = \"undefined\" != typeof window ? window : global;\n r.__localeData__ || (r.__localeData__ = {}), r.__localeData__[e] = t;\n }, e.setDefaultLocale = function (e) {\n (\"undefined\" != typeof window ? window : global).__localeId__ = e;\n }, Object.defineProperty(e, \"__esModule\", {\n value: !0\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n 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,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\n}\nexport function __spreadArray(to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\n to[j] = from[i];\n }\n\n return to;\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\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 || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n 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) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : 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],\n 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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\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) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n 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}\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}","export var COMMON_MIME_TYPES = new Map([['avi', 'video/avi'], ['gif', 'image/gif'], ['ico', 'image/x-icon'], ['jpeg', 'image/jpeg'], ['jpg', 'image/jpeg'], ['mkv', 'video/x-matroska'], ['mov', 'video/quicktime'], ['mp4', 'video/mp4'], ['pdf', 'application/pdf'], ['png', 'image/png'], ['zip', 'application/zip'], ['doc', 'application/msword'], ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document']]);\nexport function toFileWithPath(file, path) {\n var f = withMimeType(file);\n\n if (typeof f.path !== 'string') {\n // on electron, path is already set to the absolute path\n var webkitRelativePath = file.webkitRelativePath;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string' ? path // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0 ? webkitRelativePath : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n return f;\n}\n\nfunction withMimeType(file) {\n var name = file.name;\n var hasExtension = name && name.lastIndexOf('.') !== -1;\n\n if (hasExtension && !file.type) {\n var ext = name.split('.').pop().toLowerCase();\n var type = COMMON_MIME_TYPES.get(ext);\n\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n\n return file;\n}","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { toFileWithPath } from './file';\nvar FILES_TO_IGNORE = [// Thumbnail cache files for macOS and Windows\n'.DS_Store', 'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n * @param evt\n */\n\nexport function fromEvent(evt) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , isDragEvt(evt) && evt.dataTransfer ? getDataTransferFiles(evt.dataTransfer, evt.type) : getInputFiles(evt)];\n });\n });\n}\n\nfunction isDragEvt(value) {\n return !!value.dataTransfer;\n}\n\nfunction getInputFiles(evt) {\n var files = isInput(evt.target) ? evt.target.files ? fromList(evt.target.files) : [] : [];\n return files.map(function (file) {\n return toFileWithPath(file);\n });\n}\n\nfunction isInput(value) {\n return value !== null;\n}\n\nfunction getDataTransferFiles(dt, type) {\n return __awaiter(this, void 0, void 0, function () {\n var items, files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!dt.items) return [3\n /*break*/\n , 2];\n items = fromList(dt.items).filter(function (item) {\n return item.kind === 'file';\n }); // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n\n if (type !== 'drop') {\n return [2\n /*return*/\n , items];\n }\n\n return [4\n /*yield*/\n , Promise.all(items.map(toFilePromises))];\n\n case 1:\n files = _a.sent();\n return [2\n /*return*/\n , noIgnoredFiles(flatten(files))];\n\n case 2:\n return [2\n /*return*/\n , noIgnoredFiles(fromList(dt.files).map(function (file) {\n return toFileWithPath(file);\n }))];\n }\n });\n });\n}\n\nfunction noIgnoredFiles(files) {\n return files.filter(function (file) {\n return FILES_TO_IGNORE.indexOf(file.name) === -1;\n });\n} // IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\n\n\nfunction fromList(items) {\n var files = []; // tslint:disable: prefer-for-of\n\n for (var i = 0; i < items.length; i++) {\n var file = items[i];\n files.push(file);\n }\n\n return files;\n} // https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\n\n\nfunction toFilePromises(item) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n\n var entry = item.webkitGetAsEntry(); // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry);\n }\n\n return fromDataTransferItem(item);\n}\n\nfunction flatten(items) {\n return items.reduce(function (acc, files) {\n return __spread(acc, Array.isArray(files) ? flatten(files) : [files]);\n }, []);\n}\n\nfunction fromDataTransferItem(item) {\n var file = item.getAsFile();\n\n if (!file) {\n return Promise.reject(item + \" is not a File\");\n }\n\n var fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n} // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\n\n\nfunction fromEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)];\n });\n });\n} // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\n\n\nfunction fromDirEntry(entry) {\n var reader = entry.createReader();\n return new Promise(function (resolve, reject) {\n var entries = [];\n\n function readEntries() {\n var _this = this; // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n\n\n reader.readEntries(function (batch) {\n return __awaiter(_this, void 0, void 0, function () {\n var files, err_1, items;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!batch.length) return [3\n /*break*/\n , 5];\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , Promise.all(entries)];\n\n case 2:\n files = _a.sent();\n resolve(files);\n return [3\n /*break*/\n , 4];\n\n case 3:\n err_1 = _a.sent();\n reject(err_1);\n return [3\n /*break*/\n , 4];\n\n case 4:\n return [3\n /*break*/\n , 6];\n\n case 5:\n items = Promise.all(batch.map(fromEntry));\n entries.push(items); // Continue reading\n\n readEntries();\n _a.label = 6;\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n }, function (err) {\n reject(err);\n });\n }\n\n readEntries();\n });\n} // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\n\n\nfunction fromFileEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , new Promise(function (resolve, reject) {\n entry.file(function (file) {\n var fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, function (err) {\n reject(err);\n });\n })];\n });\n });\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files'; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}","function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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 _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/* eslint prefer-template: 0 */\n\n\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, [\"open\"]);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null\n};\nDropzone.defaultProps = defaultProps;\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch]); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n\n if (typeof onFileDialogCancel === 'function') {\n onFileDialogCancel();\n }\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancel]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [multiple, accept, minSize, maxSize, maxFiles, getFilesFromEvent, onDrop, onDropAccepted, onDropRejected, noDragEventsBubbling]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, [\"refKey\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"]);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb))\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, [\"refKey\", \"onChange\", \"onClick\"]);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false,\n isDragActive: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n });\n\n default:\n return state;\n }\n}","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n if (length !== keyList(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n } // end fast-deep-equal\n // start react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element && b instanceof Element) return a === b; // custom handling for React\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n } // end react-fast-compare\n // fast-deep-equal index.js 2.0.1\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i) || error.number === -2146828260) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","\"use strict\";\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _imagesloaded = _interopRequireDefault(require(\"imagesloaded\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar FlickityComponent = /*#__PURE__*/function (_Component) {\n _inherits(FlickityComponent, _Component);\n\n var _super = _createSuper(FlickityComponent);\n\n function FlickityComponent(props) {\n var _this;\n\n _classCallCheck(this, FlickityComponent);\n\n _this = _super.call(this, props);\n _this.state = {\n flickityReady: false,\n flickityCreated: false,\n cellCount: 0\n };\n _this.carousel = null;\n _this.flkty = null;\n return _this;\n }\n\n _createClass(FlickityComponent, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _this$props = this.props,\n children = _this$props.children,\n _this$props$options = _this$props.options,\n draggable = _this$props$options.draggable,\n initialIndex = _this$props$options.initialIndex,\n reloadOnUpdate = _this$props.reloadOnUpdate,\n disableImagesLoaded = _this$props.disableImagesLoaded;\n var flickityReady = this.state.flickityReady;\n\n if (reloadOnUpdate || !prevState.flickityReady && flickityReady) {\n var isActive = this.flkty.isActive;\n this.flkty.deactivate();\n this.flkty.selectedIndex = initialIndex || 0;\n this.flkty.options.draggable = draggable === undefined ? children ? children.length > 1 : false : draggable;\n if (isActive) this.flkty.activate();\n\n if (!disableImagesLoaded && this.carousel) {\n (0, _imagesloaded[\"default\"])(this.carousel, function () {\n _this2.flkty.reloadCells();\n });\n }\n } else {\n this.flkty.reloadCells();\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!canUseDOM) return null;\n\n var Flickity = require('flickity');\n\n var _this$props2 = this.props,\n flickityRef = _this$props2.flickityRef,\n options = _this$props2.options;\n this.flkty = new Flickity(this.carousel, options);\n if (flickityRef) flickityRef(this.flkty);\n\n if (this.props[\"static\"]) {\n this.setReady();\n } else {\n this.setState({\n flickityCreated: true\n });\n }\n }\n }, {\n key: \"setReady\",\n value: function setReady() {\n var _this3 = this;\n\n if (this.state.flickityReady) return;\n\n var setFlickityToReady = function setFlickityToReady() {\n return _this3.setState({\n flickityReady: true\n });\n };\n\n if (this.props.disableImagesLoaded) setFlickityToReady();else (0, _imagesloaded[\"default\"])(this.carousel, setFlickityToReady);\n }\n }, {\n key: \"renderPortal\",\n value: function renderPortal() {\n var _this4 = this;\n\n if (!this.carousel) return null;\n var mountNode = this.carousel.querySelector('.flickity-slider');\n\n if (mountNode) {\n var element = /*#__PURE__*/(0, _reactDom.createPortal)(this.props.children, mountNode);\n setTimeout(function () {\n return _this4.setReady();\n }, 0);\n return element;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(this.props.elementType, {\n className: this.props.className,\n ref: function ref(c) {\n _this5.carousel = c;\n }\n }, this.props[\"static\"] ? this.props.children : this.renderPortal());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var cellCount = _react[\"default\"].Children.count(props.children);\n\n if (cellCount !== state.cellCount) return {\n flickityReady: false,\n cellCount: cellCount\n };\n return null;\n }\n }]);\n\n return FlickityComponent;\n}(_react.Component);\n\nFlickityComponent.propTypes = {\n children: _propTypes[\"default\"].array,\n className: _propTypes[\"default\"].string,\n disableImagesLoaded: _propTypes[\"default\"].bool,\n elementType: _propTypes[\"default\"].string,\n flickityRef: _propTypes[\"default\"].func,\n options: _propTypes[\"default\"].object,\n reloadOnUpdate: _propTypes[\"default\"].bool,\n \"static\": _propTypes[\"default\"].bool\n};\nFlickityComponent.defaultProps = {\n className: '',\n disableImagesLoaded: false,\n elementType: 'div',\n options: {},\n reloadOnUpdate: false,\n \"static\": false\n};\nvar _default = FlickityComponent;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport React from 'react';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true\n};\nvar i18nInstance;\nexport var I18nContext = React.createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","import { Component, createElement } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n/**\n * Check whether some DOM node is our Component's node.\n */\n\n\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n\n\n while (current.parentNode) {\n if (isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n} // ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\n\n\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};\n\nfunction autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();\nvar passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = null;\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions = {\n passive: !instance.props.preventDefault\n };\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n };\n\n _this.__getComponentNode = function () {\n var instance = _this.getInstance();\n\n if (config && typeof config.setClickOutsideRef === 'function') {\n return config.setClickOutsideRef()(instance);\n }\n\n if (typeof instance.setClickOutsideRef === 'function') {\n return instance.setClickOutsideRef();\n }\n\n return findDOMNode(instance);\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.componentNode === null) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_this, eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_this, eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (!WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n\n\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n }\n }\n\n this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n if (this.props.disableOnClickOutside) return;\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = this.__getComponentNode();\n };\n /**\n * Remove all document's event listeners for this component\n */\n\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n };\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n\n /**\n * Pass-through render\n */\n\n\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _props = this.props,\n excludeScrollbar = _props.excludeScrollbar,\n props = _objectWithoutProperties(_props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}\n\nexport { IGNORE_CLASS_NAME };\nexport default onClickOutsideHOC;","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\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 all\n * 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 THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\n\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\n\n\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\n\n\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\n\n\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\n\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\n}\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n\n\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\n\n\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\n\n\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\n\n\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\n\n\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function 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\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\n\n\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n\n\nfunction getBoundingClientRect(element) {\n var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\n}\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n\n\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\n}\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n } // Add paddings\n\n\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\n}\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n\n\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\n}\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\n\n\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\n\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\n\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\n\n\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\n\n\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\n\n\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\n\n\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\n });\n}\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\n\n\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\n\n\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n\n var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n\n var left = void 0,\n top = void 0;\n\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n\n return isRequired;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len]; //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\n}\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\n\n\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\n}\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\n\n\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\n\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\n\n\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n }); // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n } // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\n\n\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\n\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n }); // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n } // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","import _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from '@hypnosphi/create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport deepEqual from \"deep-equal\";\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef, shallowEqual } from './utils';\nvar initialStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n pointerEvents: 'none'\n};\nvar initialArrowStyle = {};\nexport var InnerPopper = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerPopper, _React$Component);\n\n function InnerPopper() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"arrowNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setPopperNode\", function (popperNode) {\n if (!popperNode || _this.popperNode === popperNode) return;\n setRef(_this.props.innerRef, popperNode);\n _this.popperNode = popperNode;\n\n _this.updatePopperInstance();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateStateModifier\", {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n var placement = data.placement;\n\n _this.setState({\n data: data,\n placement: placement\n });\n\n return data;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptions\", function () {\n return {\n placement: _this.props.placement,\n eventsEnabled: _this.props.eventsEnabled,\n positionFixed: _this.props.positionFixed,\n modifiers: _extends({}, _this.props.modifiers, {\n arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, {\n enabled: !!_this.arrowNode,\n element: _this.arrowNode\n }),\n applyStyle: {\n enabled: false\n },\n updateStateModifier: _this.updateStateModifier\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperStyle\", function () {\n return !_this.popperNode || !_this.state.data ? initialStyle : _extends({\n position: _this.state.data.offsets.popper.position\n }, _this.state.data.styles);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n popperNode = _assertThisInitialize.popperNode;\n\n var referenceElement = _this.props.referenceElement;\n if (!referenceElement || !popperNode) return;\n _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scheduleUpdate\", function () {\n if (_this.popperInstance) {\n _this.popperInstance.scheduleUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = InnerPopper.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the Popper.js options have changed, update the instance (destroy + create)\n if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || !deepEqual(this.props.modifiers, prevProps.modifiers, {\n strict: true\n })) {\n // develop only check that modifiers isn't being updated needlessly\n if (process.env.NODE_ENV === \"development\") {\n if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && shallowEqual(this.props.modifiers, prevProps.modifiers)) {\n console.warn(\"'modifiers' prop reference updated even though all values appear the same.\\nConsider memoizing the 'modifiers' object to avoid needless rendering.\");\n }\n }\n\n this.updatePopperInstance();\n } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n } // A placement difference in state means popper determined a new placement\n // apart from the props value. By the time the popper element is rendered with\n // the new position Popper has already measured it, if the place change triggers\n // a size change it will result in a misaligned popper. So we schedule an update to be sure.\n\n\n if (prevState.placement !== this.state.placement) {\n this.scheduleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n this.destroyPopperInstance();\n };\n\n _proto.render = function render() {\n return unwrapArray(this.props.children)({\n ref: this.setPopperNode,\n style: this.getPopperStyle(),\n placement: this.getPopperPlacement(),\n outOfBoundaries: this.getOutOfBoundariesState(),\n scheduleUpdate: this.scheduleUpdate,\n arrowProps: {\n ref: this.setArrowNode,\n style: this.getArrowStyle()\n }\n });\n };\n\n return InnerPopper;\n}(React.Component);\n\n_defineProperty(InnerPopper, \"defaultProps\", {\n placement: 'bottom',\n eventsEnabled: true,\n referenceElement: undefined,\n positionFixed: false\n});\n\nvar placements = PopperJS.placements;\nexport { placements };\nexport default function Popper(_ref) {\n var referenceElement = _ref.referenceElement,\n props = _objectWithoutPropertiesLoose(_ref, [\"referenceElement\"]);\n\n return React.createElement(ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {\n return React.createElement(InnerPopper, _extends({\n referenceElement: referenceElement !== undefined ? referenceElement : referenceNode\n }, props));\n });\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\n\nvar InnerReference = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerReference, _React$Component);\n\n function InnerReference() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"refHandler\", function (node) {\n setRef(_this.props.innerRef, node);\n safeInvoke(_this.props.setReferenceNode, node);\n });\n\n return _this;\n }\n\n var _proto = InnerReference.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n };\n\n _proto.render = function render() {\n warning(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n return unwrapArray(this.props.children)({\n ref: this.refHandler\n });\n };\n\n return InnerReference;\n}(React.Component);\n\nexport default function Reference(props) {\n return React.createElement(ManagerReferenceNodeSetterContext.Consumer, null, function (setReferenceNode) {\n return React.createElement(InnerReference, _extends({\n setReferenceNode: setReferenceNode\n }, props));\n });\n}","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState();\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","\"use strict\";\n/**\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.jsonLdScriptProps = exports.JsonLd = exports.helmetJsonLdProp = void 0;\n\nvar json_ld_1 = require(\"./json-ld\");\n\nObject.defineProperty(exports, \"helmetJsonLdProp\", {\n enumerable: true,\n get: function get() {\n return json_ld_1.helmetJsonLdProp;\n }\n});\nObject.defineProperty(exports, \"JsonLd\", {\n enumerable: true,\n get: function get() {\n return json_ld_1.JsonLd;\n }\n});\nObject.defineProperty(exports, \"jsonLdScriptProps\", {\n enumerable: true,\n get: function get() {\n return json_ld_1.jsonLdScriptProps;\n }\n});","\"use strict\";\n/**\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.helmetJsonLdProp = exports.jsonLdScriptProps = exports.JsonLd = void 0;\n\nvar React = require(\"react\");\n\nfunction JsonLd(props) {\n return React.createElement(\"script\", __assign({}, jsonLdScriptProps(props.item, props)));\n}\n\nexports.JsonLd = JsonLd;\n\nfunction jsonLdScriptProps(item, options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n type: \"application/ld+json\",\n dangerouslySetInnerHTML: {\n __html: JSON.stringify(item, safeJsonLdReplacer, options.space)\n }\n };\n}\n\nexports.jsonLdScriptProps = jsonLdScriptProps;\n\nfunction helmetJsonLdProp(item, options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n type: \"application/ld+json\",\n innerHTML: JSON.stringify(item, safeJsonLdReplacer, options.space)\n };\n}\n\nexports.helmetJsonLdProp = helmetJsonLdProp;\nvar ESCAPE_ENTITIES = Object.freeze({\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\"\n});\nvar ESCAPE_REGEX = new RegExp(\"[\" + Object.keys(ESCAPE_ENTITIES).join(\"\") + \"]\", \"g\");\n\nvar ESCAPE_REPLACER = function ESCAPE_REPLACER(t) {\n return ESCAPE_ENTITIES[t];\n};\n/**\n * A replacer for JSON.stringify to strip JSON-LD of illegal HTML entities\n * per https://www.w3.org/TR/json-ld11/#restrictions-for-contents-of-json-ld-script-elements\n */\n\n\nvar safeJsonLdReplacer = function () {\n // Replace per https://www.w3.org/TR/json-ld11/#restrictions-for-contents-of-json-ld-script-elements\n // Solution from https://stackoverflow.com/a/5499821/864313\n return function (_, value) {\n switch (typeof value) {\n case \"object\":\n // Omit null values.\n if (value === null) {\n return undefined;\n }\n\n return value;\n // JSON.stringify will recursively call replacer.\n\n case \"number\":\n case \"boolean\":\n case \"bigint\":\n return value;\n // These values are not risky.\n\n case \"string\":\n return value.replace(ESCAPE_REGEX, ESCAPE_REPLACER);\n\n default:\n {\n // We shouldn't expect other types.\n isNever(value); // JSON.stringify will remove this element.\n\n return undefined;\n }\n }\n };\n}(); // Utility: Assert never\n\n\nfunction isNever(_) {}","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","'use strict';\n\nvar assign = require('./utils/assign');\n\nvar compose = require('redux').compose;\n\nfunction enhancer() {\n var config = arguments[0] || {};\n config.features = {\n pause: true,\n export: true,\n test: true\n };\n config.type = 'redux';\n if (config.autoPause === undefined) config.autoPause = true;\n if (config.latency === undefined) config.latency = 500;\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var origDispatch = store.dispatch;\n\n var devTools = window.__REDUX_DEVTOOLS_EXTENSION__.connect(config);\n\n devTools.init(store.getState());\n\n var dispatch = function dispatch(action) {\n var r = origDispatch(action);\n devTools.send(action, store.getState());\n return r;\n };\n\n if (Object.assign) return Object.assign(store, {\n dispatch: dispatch\n });\n return assign(store, 'dispatch', dispatch);\n };\n };\n}\n\nfunction composeWithEnhancer(config) {\n return function () {\n return compose(compose.apply(null, arguments), enhancer(config));\n };\n}\n\nexports.__esModule = true;\n\nexports.composeWithDevTools = function () {\n if (typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__) {\n if (arguments.length === 0) return enhancer();\n if (typeof arguments[0] === 'object') return composeWithEnhancer(arguments[0]);\n return composeWithEnhancer().apply(null, arguments);\n }\n\n if (arguments.length === 0) return undefined;\n if (typeof arguments[0] === 'object') return compose;\n return compose.apply(null, arguments);\n};\n\nexports.devToolsEnhancer = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ ? enhancer : function () {\n return function (noop) {\n return noop;\n };\n};","'use strict';\n\nvar compose = require('redux').compose;\n\nvar logOnly = require('./logOnly');\n\nexports.__esModule = true;\nexports.composeWithDevTools = process.env.NODE_ENV === 'production' ? logOnly.composeWithDevTools : typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n if (arguments.length === 0) return undefined;\n if (typeof arguments[0] === 'object') return compose;\n return compose.apply(null, arguments);\n};\nexports.devToolsEnhancer = process.env.NODE_ENV === 'production' ? logOnly.devToolsEnhancer : typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () {\n return function (noop) {\n return noop;\n };\n};","var objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n if ({}.hasOwnProperty.call(obj, key)) keys.push(key);\n }\n\n return keys;\n};\n\nfunction assign(obj, newKey, newValue) {\n var keys = objectKeys(obj);\n var copy = {};\n\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n copy[key] = obj[key];\n }\n\n copy[newKey] = newValue;\n return copy;\n}\n\nmodule.exports = assign;","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\n\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n} // Inlined version of the `symbol-observable` polyfill\n\n\nvar $$observable = function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\n\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\n\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n // Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\n function miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n }\n\n function ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n }\n\n function isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n }\n\n function isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n }\n\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\n\n\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\n\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n if (this != null && this !== $Object(this)) {\n throw new $TypeError('RegExp.prototype.flags getter called on non-object');\n }\n\n var result = '';\n\n if (this.global) {\n result += 'g';\n }\n\n if (this.ignoreCase) {\n result += 'i';\n }\n\n if (this.multiline) {\n result += 'm';\n }\n\n if (this.dotAll) {\n result += 's';\n }\n\n if (this.unicode) {\n result += 'u';\n }\n\n if (this.sticky) {\n result += 'y';\n }\n\n return result;\n};","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\ndefine(flagsBound, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = flagsBound;","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n if (!supportsDescriptors) {\n throw new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n if (/a/mig.flags === 'gim') {\n var descriptor = $gOPD(RegExp.prototype, 'flags');\n\n if (descriptor && typeof descriptor.get === 'function' && typeof /a/.dotAll === 'boolean') {\n return descriptor.get;\n }\n }\n\n return implementation;\n};","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar getPolyfill = require('./polyfill');\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n if (!supportsDescriptors || !getProto) {\n throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n var polyfill = getPolyfill();\n var proto = getProto(regex);\n var descriptor = gOPD(proto, 'flags');\n\n if (!descriptor || descriptor.get !== polyfill) {\n defineProperty(proto, 'flags', {\n configurable: true,\n enumerable: false,\n get: polyfill\n });\n }\n\n return polyfill;\n};","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n\n\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n\n return false;\n });\n return result;\n }\n\n return (\n /** @class */\n function () {\n function class_1() {\n this.__entries__ = [];\n }\n\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function get() {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n return class_1;\n }()\n );\n}();\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment.\n\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n } // eslint-disable-next-line no-new-func\n\n\n return Function('return this')();\n}();\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\n\n\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}(); // Defines minimum timeout before adding a trailing call.\n\n\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\n\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n\n\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n\n\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n } // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n\n\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n} // Minimum delay before invoking the update of observers.\n\n\nvar REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\n\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available.\n\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\n\nvar ResizeObserverController =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n } // Add listeners if they haven't been added yet.\n\n\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer); // Remove observer if it's present in registry.\n\n if (~index) {\n observers.splice(index, 1);\n } // Remove listeners if controller has no connected observers.\n\n\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n\n\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n }); // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n } // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n\n\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element.\n\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\n\n\nvar defineConfigurable = function defineConfigurable(target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n};\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\n\n\nvar getWindowOf = function getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || global$1;\n}; // Placeholder of an empty content rectangle.\n\n\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\n\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\n\n\nfunction getBordersSize(styles) {\n var positions = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\n\n\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n\n var width = toFloat(styles.width),\n height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n } // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n\n\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n } // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n\n\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\n\n\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable.\n\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\n\n\nvar ResizeObservation =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n\n\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n\n return ResizeObservation;\n}();\n\nvar ResizeObserverEntry =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n\n return ResizeObserverEntry;\n}();\n\nvar ResizeObserverSPI =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is already being observed.\n\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this); // Force the update of observations.\n\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is not being observed.\n\n if (!observations.has(target)) {\n return;\n }\n\n observations.delete(target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation.\n\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n\n return ResizeObserverSPI;\n}(); // Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\n\n\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\n\nvar ResizeObserver =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n\n return ResizeObserver;\n}(); // Expose public methods of ResizeObserver.\n\n\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\n\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n}();\n\nexport default index;","function t(t) {\n return t && \"object\" == typeof t && \"default\" in t ? t.default : t;\n}\n\nvar e = t(require(\"uniq\")),\n n = t(require(\"dashify\")),\n r = t(require(\"uppercamelcase\")),\n i = require(\"yup\"),\n o = {\n getProps: function getProps(t) {\n return t && t.properties;\n },\n getType: function getType(t) {\n return t && t.type;\n },\n getName: function getName(t) {\n return t && t.name || t.title;\n },\n getConstraints: function getConstraints(t) {\n return t;\n },\n isString: function isString(t) {\n return t && \"string\" === t.type;\n },\n isArray: function isArray(t) {\n return t && \"array\" === t.type;\n },\n isInteger: function isInteger(t) {\n return t && \"integer\" === t.type || \"int\" === t.type;\n },\n isBoolean: function isBoolean(t) {\n return t && \"boolean\" === t.type;\n },\n hasDateFormat: function hasDateFormat(t) {\n return t && [\"date\", \"date-time\"].find(function (e) {\n return e === t.format;\n });\n },\n isDate: function isDate(t) {\n return t && \"string\" === t.type && o.hasDateFormat(t.format);\n },\n isNumber: function isNumber(t) {\n return t && (\"number\" === t.type || o.isInteger(t));\n },\n isObject: function isObject(t) {\n return t && \"object\" === t.type;\n },\n isRequired: function isRequired(t) {\n return t && t.required;\n }\n},\n s = {\n \"json-schema\": o,\n \"type-def\": {\n getProps: function getProps(t) {\n return t && t.fields;\n },\n getType: function getType(t) {\n return t && t.type;\n },\n getName: function getName(t) {\n return t && t.name;\n },\n getConstraints: function getConstraints(t) {\n return t && (t.directives || {}).constraints || {};\n },\n isString: function isString(t) {\n return t && \"String\" === t.type;\n },\n isArray: function isArray(t) {\n return t && t.isList;\n },\n isInteger: function isInteger(t) {\n return t && \"Int\" === t.type;\n },\n isBoolean: function isBoolean(t) {\n return t && \"Boolean\" === t.type;\n },\n isDate: function isDate(t) {\n return t && \"Date\" === t.type || t.directives.date;\n },\n isNumber: function isNumber(t) {\n return t && \"Int\" === t.type || \"Float\" === t.type;\n },\n isObject: function isObject(t) {\n return t && \"Object\" === t.type;\n },\n isRequired: function isRequired(t) {\n return t && !t.isNullable;\n }\n }\n},\n a = function a(t) {\n void 0 === t && (t = {});\n var e = t.log,\n n = t.error;\n this.enable = t.enable || {}, this.log = \"function\" == typeof e ? e : console.log, this.err = \"function\" == typeof n ? n : console.error;\n};\n\na.prototype.error = function (t, e) {\n if (!1 !== this.enable.error) throw this.err && (e ? this.err(t, e) : this.err(t)), t;\n}, a.prototype.warn = function (t, e) {\n this.enable.warn && this.logInfo(\"WARNING: \" + t, e);\n}, a.prototype.logInfo = function (t, e) {\n this.enable.log && this.log && (e ? this.log(t, e) : this.log(t));\n};\n\nvar u = function (t) {\n function e(e) {\n void 0 === e && (e = {}), t.call(this, e);\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e.prototype.isNothing = function (t) {\n return null == t;\n }, e.prototype.isPresent = function (t) {\n return !this.isNothing(t);\n }, e.prototype.toNumber = function (t) {\n return Number(t);\n }, e.prototype.isNumberLike = function (t) {\n return !isNaN(this.toNumber(t));\n }, e.prototype.isObjectType = function (t) {\n return t === Object(t);\n }, e.prototype.isArrayType = function (t) {\n return Array.isArray(t);\n }, e.prototype.isNumberType = function (t) {\n return !isNaN(t);\n }, e.prototype.isStringType = function (t) {\n return \"string\" == typeof t;\n }, e.prototype.isFunctionType = function (t) {\n return \"function\" == typeof t;\n }, e.prototype.isDateType = function (t) {\n return t instanceof Date;\n }, e;\n}(a),\n c = function (t) {\n function e(e) {\n void 0 === e && (e = {}), t.call(this, e), this.config = Object.assign({}, s[e.schemaType || \"json-schema\"], e);\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e;\n}(u);\n\nfunction p(t) {\n return t === Object(t);\n}\n\nvar h = function h(t, e) {\n void 0 === e && (e = {}), this.whenEntryObj = t;\n var n = e.properties,\n r = e.config,\n i = e.key,\n o = e.when,\n s = e.type;\n this.schema = e.schema, this.when = o, this.properties = n || {}, this.key = i, this.type = s, this.config = r;\n},\n f = {\n entryObj: {\n configurable: !0\n }\n};\n\nfunction l(t) {\n return t === Object(t);\n}\n\nh.prototype.validateAndConfigure = function (t) {\n if (!p(t = t || this.whenEntryObj)) return this.warn(\"invalid or missing when entry constraint object\", t), !1;\n var e = Object.keys(t);\n return e.length < 2 ? (this.warn(\"validateAndConfigure: when entry constraint must have at least 2 keys: \" + e, t), !1) : this.hasKey(e, \"is\") ? !!this.hasKey(e, \"then\") || (this.warn(\"validateAndConfigure: when entry constraint missing 'then' or 'else' constraint: \" + e, t), !1) : (this.warn(\"validateAndConfigure: when entry constraint missing 'is' constraint: \" + e, t), !1);\n}, h.prototype.createYupSchemaEntry = function (t) {\n return this.config.createYupSchemaEntry(t);\n}, h.prototype.createValue = function (t, e) {\n return \"string\" == typeof t && ((t = {})[t] = !0), p(t) || this.error(\"createValue: \" + e + \" must be a schema object\"), Object.assign({}, {\n key: this.key,\n type: this.type\n }, t);\n}, h.prototype.createEntryOpts = function (t, e) {\n var n = this.createValue(t, e);\n return {\n schema: this.schema,\n properties: this.properties,\n key: this.key,\n type: this.type,\n value: n,\n config: this.config\n };\n}, h.prototype.createEntry = function (t, e) {\n var n = this.createEntryOpts(t, e);\n return this.createYupSchemaEntry(n);\n}, h.prototype.hasKey = function (t, e) {\n return t.find(function (t) {\n return t === e;\n });\n}, h.prototype.hasAnyKey = function (t, e) {\n return t.find(function (t) {\n return e.includes(t);\n });\n}, h.prototype.whenEntryFor = function (t, e, n) {\n if (n = n || e, \"string\" == typeof t && ((t = {})[t] = !0), !p(t)) throw \"whenEntryFor: Invalid when object \" + t;\n var r = Object.assign({}, t[n]);\n return delete t[n], r ? (t[e] = this.createEntry(r, e), t) : t;\n}, h.prototype.calcEntryObj = function () {\n var t = Object.assign({}, this.whenEntryObj);\n return \"otherwise\" in (t = this.whenEntryFor(t, \"then\")) && (t = this.whenEntryFor(t, \"otherwise\")), \"else\" in t && (t = this.whenEntryFor(t, \"else\")), t;\n}, f.entryObj.get = function () {\n return this.validateAndConfigure() && this.calcEntryObj();\n}, h.prototype.warn = function (t, e) {\n console.error(\"[WhenEntry] WARNING\", t, e);\n}, h.prototype.error = function (t, e) {\n throw console.error(\"[WhenEntry] ERROR\", t, e), t;\n}, Object.defineProperties(h.prototype, f);\n\nvar y = function y(t) {\n void 0 === t && (t = {});\n var e = t.type,\n n = t.key,\n r = t.value,\n i = t.when,\n o = t.schema,\n s = t.properties,\n a = t.config;\n this.opts = t, this.when = i, this.key = n, this.type = e, this.value = r, this.schema = o, this.properties = s, this.config = a, this.validate();\n},\n d = {\n constraintObj: {\n configurable: !0\n },\n keyVal: {\n configurable: !0\n },\n constraintValue: {\n configurable: !0\n },\n constraint: {\n configurable: !0\n }\n};\n\ny.prototype.validate = function () {\n \"string\" != typeof this.type && this.error(\"validate: invalid or mising type: \" + this.type, this.opts), l(this.when) || this.error(\"validate: invalid or mising when: \" + this.when, this.opts);\n}, y.prototype.validateAndConfigure = function (t) {\n if (!l(t = t || this.when)) return this.warn(\"invalid or missing when constraint\", t), !1;\n var e = Object.keys(t);\n return e.length < 1 ? (this.warn(\"when constraint must have at least 1 key: \" + e, t), !1) : (this.whenKeys = e, !0);\n}, y.prototype.createWhenEntry = function (t, e) {\n return function (e, n) {\n return void 0 === n && (n = {}), new h(t, n);\n }(0, e);\n}, y.prototype.accumulate = function (t, e) {\n var n = this.when[e];\n if (!l(n)) return this.warn(\"invalid when entry constraint object \" + n + \" for \" + e), t;\n var r = this.createWhenEntry(n, {\n type: this.type,\n key: this.key,\n schema: this.schema,\n properties: this.properties,\n config: this.config\n }).entryObj;\n return r ? t = Object.assign(t, r) : t;\n}, d.constraintObj.get = function () {\n return this.whenKeys ? this.whenKeys.reduce(this.accumulate.bind(this), {}) : {};\n}, d.keyVal.get = function () {\n var t = this.whenKeys || [];\n return 1 === t.length ? t[0] : t;\n}, d.constraintValue.get = function () {\n return !!this.keyVal && [this.keyVal, this.constraintObj];\n}, d.constraint.get = function () {\n return this.validateAndConfigure() && this.constraintValue;\n}, y.prototype.warn = function (t, e) {\n console.error(\"[WhenCondition] WARNING\", t, e);\n}, y.prototype.error = function (t, e) {\n throw console.error(\"[WhenCondition] ERROR\", t, e), t;\n}, Object.defineProperties(y.prototype, d);\n\nvar g = function (t) {\n function e(e, n) {\n var r = this;\n void 0 === n && (n = {}), t.call(this, n), this.typeHandler = e, this.constraintsAdded = {}, this.delegators.map(function (t) {\n r[t] = e[t];\n });\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n delegators: {\n configurable: !0\n },\n noValueConstraints: {\n configurable: !0\n },\n constraintsMap: {\n configurable: !0\n },\n aliasMap: {\n configurable: !0\n }\n };\n return n.delegators.get = function () {\n return [\"errMessages\", \"base\", \"key\", \"constraints\", \"errorMessageHandler\"];\n }, e.prototype.build = function (t, e) {\n void 0 === e && (e = {});\n var n = e.constraintName,\n r = e.constraintValue,\n i = e.method,\n o = e.yup,\n s = e.values,\n a = e.errName;\n if (o = o || this.base, this.isNothing(r = r || e.propValue || this.constraints[t])) return this.warn(\"no prop value\"), !1;\n n = n || t;\n var u = this.aliasMap[i = i || n] || i;\n if (!o[u]) return this.warn(\"Yup has no such API method: \" + u), !1;\n var c = o[u].bind(o),\n p = this.valErrMessage(n),\n h = a && this.valErrMessage(a),\n f = {\n constraintName: n,\n yup: o,\n constraintFn: c,\n errFn: p || h\n },\n l = this.multiValueConstraint(s, f),\n y = this.presentConstraintValue(r, f),\n d = this.nonPresentConstraintValue(r, f),\n g = l || y || d;\n return g ? (this.base = g, g) : (this.warn(\"buildConstraint: missing value or values options\"), !1);\n }, e.prototype.nonPresentConstraintValue = function (t, e) {\n var n = e.constraintName,\n r = e.constraintFn,\n i = e.errFn;\n if (!this.isPresent(t)) return this.onConstraintAdded({\n name: n\n }), r(i);\n }, e.prototype.presentConstraintValue = function (t, e) {\n var n = e.constraintName,\n r = e.constraintFn,\n i = e.errFn;\n if (this.isPresent(t)) return this.onConstraintAdded({\n name: n,\n value: t\n }), this.isNoValueConstraint(n) ? r(i) : r(t, i);\n }, e.prototype.multiValueConstraint = function (t, e) {\n var n = e.constraintFn,\n r = e.constraintName,\n i = e.errFn;\n\n if (this.isPresent(t)) {\n if (Array.isArray(t)) return this.onConstraintAdded({\n name: r,\n value: t\n }), n(t, i);\n this.warn(\"buildConstraint: values option must be an array of arguments\");\n }\n }, e.prototype.isNoValueConstraint = function (t) {\n return this.noValueConstraints.includes(t);\n }, n.noValueConstraints.get = function () {\n return [\"required\", \"email\", \"url\", \"format\"];\n }, e.prototype.addValueConstraint = function (t, e) {\n return void 0 === e && (e = {}), this.addConstraint(t, {\n constraintName: e.constraintName,\n value: !0,\n errName: e.errName\n });\n }, e.prototype.addConstraint = function (t, e) {\n var n = this.build(t, e);\n return !!n && (this.typeHandler.base = n, n);\n }, e.prototype.onConstraintAdded = function (t) {\n return this.constraintsAdded[t.name] = t.value, this.typeHandler;\n }, n.constraintsMap.get = function () {\n return {\n simple: [\"required\", \"notRequired\", \"nullable\"],\n value: [\"default\", \"strict\"]\n };\n }, e.prototype.valErrMessage = function (t) {\n return this.errorMessageHandler.valErrMessage(t);\n }, n.aliasMap.get = function () {\n return {\n oneOf: \"oneOf\",\n enum: \"oneOf\",\n anyOf: \"oneOf\"\n };\n }, Object.defineProperties(e.prototype, n), e;\n}(u),\n m = function (t) {\n function e(e, n) {\n void 0 === n && (n = {}), t.call(this, n), this.typeHandler = e, this.constraints = e.constraints, this.errMessages = e.errMessages, this.key = e.key, this.type = e.type;\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e.prototype.valErrMessage = function (t) {\n var e = this.constraints,\n n = this.errMessageFor(t);\n return \"function\" == typeof n ? n(e) : n;\n }, e.prototype.errMessageFor = function (t) {\n var e = this.errMessages,\n n = e[this.key];\n return n ? n[t] : e[\"$\" + t];\n }, e;\n}(u),\n v = function (t) {\n function e() {\n t.apply(this, arguments);\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e;\n}(Error),\n b = function (t) {\n function n(e) {\n void 0 === e && (e = {}), t.call(this, e.config);\n var n = e.schema,\n r = e.key,\n o = e.value,\n s = e.config;\n s = s || {}, n = n || {}, this.validateOnCreate(r, o, e), this.yup = i, this.key = r, this.schema = n, this.properties = n.properties || {}, this.value = o, this.constraints = this.getConstraints(), this.format = o.format || this.constraints.format, this.config = s || {}, this.type = \"mixed\", this.mixedConfig = this.config.mixed || {}, this.typeConfig = this.config[this.type] || {}, this.base = i.mixed(), this.errMessages = s.errMessages || {}, this.configureTypeConfig(), this.constraintsAdded = {};\n }\n\n t && (n.__proto__ = t), (n.prototype = Object.create(t && t.prototype)).constructor = n;\n var r = {\n mode: {\n configurable: !0\n },\n disableFlags: {\n configurable: !0\n },\n enableFlags: {\n configurable: !0\n },\n shouldPreProcessValue: {\n configurable: !0\n },\n value: {\n configurable: !0\n },\n mixedEnabled: {\n configurable: !0\n },\n typeEnabled: {\n configurable: !0\n },\n $typeExtends: {\n configurable: !0\n },\n configuredTypeEnabled: {\n configurable: !0\n },\n $typeEnabled: {\n configurable: !0\n },\n enabled: {\n configurable: !0\n },\n constraintsMap: {\n configurable: !0\n }\n };\n return n.prototype.configureTypeConfig = function () {\n this.typeConfig.enabled || this.typeConfig.extends || this.typeConfig.convert && (this.typeConfig.extends = Object.keys(this.typeConfig.convert));\n }, n.prototype.isRequired = function (t) {\n return !0 === (t = t || this.value).required;\n }, r.mode.get = function () {\n return this.config.mode || {};\n }, r.disableFlags.get = function () {\n return [!1, \"disabled\", \"no\", \"off\"];\n }, r.enableFlags.get = function () {\n return [!0, \"enabled\", \"yes\", \"on\"];\n }, n.prototype.disabledMode = function (t) {\n var e = this.mode[t];\n return !!this.disableFlags.find(function (t) {\n return e === t;\n });\n }, n.prototype.enabledMode = function (t) {\n var e = this.mode[t];\n return !!this.enableFlags.find(function (t) {\n return e === t;\n });\n }, r.shouldPreProcessValue.get = function () {\n return !this.disabledMode(\"notRequired\");\n }, n.prototype.preProcessedConstraintValue = function (t) {\n return this.shouldPreProcessValue ? this.isRequired(t) ? t : Object.assign({}, t, {\n notRequired: !0\n }) : t;\n }, r.value.set = function (t) {\n this._value = this.preProcessedConstraintValue(t);\n }, r.value.get = function () {\n return this._value;\n }, n.prototype.initHelpers = function () {\n var t = this.config;\n this.errorMessageHandler = (this.config.createErrorMessageHandler || this.createErrorMessageHandler)(this, t), this.constraintBuilder = (this.config.createConstraintBuilder || this.createConstraintBuilder)(this, t), this.rebind(\"addConstraint\", \"addValueConstraint\");\n }, n.prototype.createConstraintBuilder = function (t, e) {\n return void 0 === e && (e = {}), new g(t, e);\n }, n.prototype.createErrorMessageHandler = function (t, e) {\n return void 0 === e && (e = {}), new m(t, e);\n }, n.prototype.rebind = function () {\n for (var t = this, e = [], n = arguments.length; n--;) {\n e[n] = arguments[n];\n }\n\n e.map(function (e) {\n var n = t[e];\n t[e] = t.isFunctionType(n) ? n.bind(t) : n;\n });\n }, n.prototype.validateOnCreate = function (t, e, n) {\n t || this.error(\"create: missing key \" + JSON.stringify(n)), e || this.error(\"create: missing value \" + JSON.stringify(n));\n }, r.mixedEnabled.get = function () {\n return this.mixedConfig.enabled || [\"oneOf\", \"notOneOf\", \"when\", \"nullable\", \"isType\"];\n }, r.typeEnabled.get = function () {\n return [];\n }, r.$typeExtends.get = function () {\n if (Array.isArray(this.typeConfig.extends)) return e(this.typeConfig.extends.concat(this.typeEnabled));\n }, r.configuredTypeEnabled.get = function () {\n return Array.isArray(this.typeConfig.enabled) ? this.typeConfig.enabled : this.typeEnabled;\n }, r.$typeEnabled.get = function () {\n return this.$typeExtends || this.configuredTypeEnabled;\n }, r.enabled.get = function () {\n return this.mixedEnabled.concat(this.$typeEnabled);\n }, n.prototype.convertEnabled = function () {\n var t = this;\n this.enabled.map(function (e) {\n var n = t.convertFnFor(e);\n n && n(t);\n });\n }, n.prototype.convertFnFor = function (t) {\n return this.customConvertFnFor(t) || this.builtInConvertFnFor(t);\n }, n.prototype.customConvertFnFor = function (t) {\n return (this.typeConfig.convert || {})[t];\n }, n.prototype.builtInConvertFnFor = function (t) {\n return this[t].bind(this);\n }, n.prototype.getConstraints = function () {\n return this.config.getConstraints(this.value);\n }, n.prototype.createSchemaEntry = function () {\n return this.convert().base;\n }, n.prototype.convert = function () {\n return this.initHelpers(), this.addMappedConstraints(), this.convertEnabled(), this;\n }, n.prototype.addValueConstraint = function (t, e) {\n var n = this.constraintBuilder.addValueConstraint(t, e);\n return n && (this.base = n.base), this;\n }, n.prototype.addConstraint = function (t, e) {\n var n = this.constraintBuilder.addConstraint(t, e);\n return n && (this.base = n), this;\n }, n.prototype.addMappedConstraints = function () {\n var t = Object.keys(this.constraintsMap),\n e = this.addMappedConstraint.bind(this);\n return t.map(e), this;\n }, n.prototype.addMappedConstraint = function (t) {\n var e = this[\"value\" === t ? \"addValueConstraint\" : \"addConstraint\"];\n this.constraintsMap[t].map(function (t) {\n e(t);\n });\n }, r.constraintsMap.get = function () {\n return {\n simple: [\"required\", \"notRequired\", \"nullable\"],\n value: [\"default\", \"strict\"]\n };\n }, n.prototype.oneOf = function () {\n var t = this,\n e = this.constraints.enum || this.constraints.oneOf || this.constraints.anyOf;\n if (this.isNothing(e)) return this;\n e = Array.isArray(e) ? e : [e];\n var n = [\"oneOf\", \"enum\", \"anyOf\"].find(function (e) {\n return void 0 !== t.constraints[e];\n });\n return this.addConstraint(n, {\n values: e\n });\n }, n.prototype.notOneOf = function () {\n var t = this.constraints,\n e = t.not,\n n = t.notOneOf || e && (e.enum || e.oneOf);\n return this.isNothing(n) ? this : (n = Array.isArray(n) ? n : [n], this.addConstraint(\"notOneOf\", {\n values: n\n }));\n }, n.prototype.valErrMessage = function (t) {\n return this.errorMessageHandler.valErrMessage(t);\n }, n.prototype.createWhenConditionFor = function (t) {\n return (this.config.createWhenCondition || function (t) {\n return new y(t);\n })({\n key: this.key,\n type: this.type,\n value: this.value,\n schema: this.schema,\n properties: this.properties,\n config: this.config,\n when: t\n });\n }, n.prototype.when = function () {\n var t,\n e = this.constraints.when;\n if ((t = e) !== Object(t)) return this;\n var n = this.createWhenConditionFor(e).constraint;\n return n ? (this.logInfo(\"Adding when constraint for \" + this.key, n), this.addConstraint(\"when\", {\n values: n,\n errName: \"when\"\n }), this) : (this.warn(\"Invalid when constraint for: \" + e), this);\n }, n.prototype.isType = function () {\n return this.addConstraint(\"isType\", {\n value: this.constraints.isType,\n errName: \"notOneOf\"\n }), this;\n }, n.prototype.nullable = function () {\n var t = this.constraints;\n return this.addConstraint(\"nullable\", {\n value: t.nullable || t.isNullable,\n errName: \"notOneOf\"\n }), this;\n }, n.prototype.message = function () {\n return config.messages[this.key] || config.messages[this.type] || {};\n }, n.prototype.errMessage = function (t) {\n return void 0 === t && (t = \"default\"), this.message[t] || \"error\";\n }, n.prototype.toValidJSONSchema = function () {}, n.prototype.normalize = function () {}, n.prototype.deNormalize = function () {}, n.prototype.errorMsg = function (t) {\n this.throwError(t);\n }, n.prototype.error = function (t, e) {\n var n = [\"[\" + t + \"]\", e].join(\" \");\n this.errorMsg(n);\n }, n.prototype.throwError = function (t) {\n throw t;\n }, Object.defineProperties(n.prototype, r), n;\n}(c),\n O = [\"oneOf\", \"enum\", \"required\", \"notRequired\", \"minDate\", \"min\", \"maxDate\", \"max\", \"trim\", \"lowercase\", \"uppercase\", \"email\", \"url\", \"minLength\", \"maxLength\", \"pattern\", \"matches\", \"regex\", \"integer\", \"positive\", \"minimum\", \"maximum\"],\n C = {\n errMessages: function errMessages(t) {\n return void 0 === t && (t = O), t.reduce(function (t, e) {\n return t[e] = function (t) {\n var e = t.value;\n return t.key + \": invalid for \" + (e.name || e.title);\n }, t;\n }, {});\n }\n},\n j = function (t) {\n function e(e) {\n t.call(this, e), this.type = \"array\", this.base = this.yup.array(), this.createYupSchemaEntry = this.config.createYupSchemaEntry;\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n typeEnabled: {\n configurable: !0\n }\n };\n return e.create = function (t) {\n return new e(t);\n }, e.prototype.convert = function () {\n return t.prototype.convert.call(this), this;\n }, n.typeEnabled.get = function () {\n return [\"maxItems\", \"minItems\", \"ensureItems\", \"compact\", \"itemsOf\"];\n }, e.prototype.ensureItems = function () {\n return this.addConstraint(\"ensure\");\n }, e.prototype.compact = function () {\n return this.addConstraint(\"compact\");\n }, e.prototype.itemsOf = function () {\n var t = this.constraints,\n e = t.items || t.itemsOf || this.constraints.of;\n if (!this.isNothing(e)) if (Array.isArray(e)) this.error(\"itemsOf\", \"does not (yet) support an Array of schemas\");else if (this.isObjectType(e)) {\n if (this.createYupSchemaEntry) {\n try {\n var n = this.createYupSchemaEntry({\n key: this.key,\n value: e,\n config: this.config\n });\n return this.addConstraint(\"of\", {\n constraintValue: n,\n propValue: e\n });\n } catch (t) {\n this.error(\"itemsOf: Error\", t);\n }\n\n return this;\n }\n\n this.warn(\"missing createYupSchemaEntry in config, needed for recursive validation\");\n } else this.error(\"itemsOf\", \"must be a schema object, was \" + typeof e);\n }, e.prototype.maxItems = function () {\n var t = this.constraints,\n e = t.maxItems || t.max;\n if (!this.isNumberType(e)) return this;\n if (!this.isValidSize(e)) return this.handleInvalidSize(\"maxItems\", e);\n var n = e && this.base.max(e);\n return this.base = n || this.base, this;\n }, e.prototype.minItems = function () {\n var t = this.constraints,\n e = t.minItems || t.min;\n if (!this.isNumberType(e)) return this;\n if (!this.isValidSize(e)) return this.handleInvalidSize(\"minItems\", e);\n var n = e && this.base.min(e);\n return this.base = n || this.base, this;\n }, e.prototype.$items = function () {\n return this;\n }, e.prototype.$additionalItems = function () {\n return this;\n }, e.prototype.$uniqueItems = function () {\n return this;\n }, e.prototype.$contains = function () {\n return this;\n }, e.prototype.handleInvalidSize = function (t, e) {\n var n = \"invalid array size constraint for \" + t + \", was \" + e + \". Must be a number >= 0\";\n return this.config.warnOnInvalid ? (this.warn(n), this) : (this.error(n, e), this);\n }, e.prototype.isValidSize = function (t) {\n return this.isNumberType(t) && t >= 0;\n }, Object.defineProperties(e.prototype, n), e;\n}(b),\n w = function (t) {\n function e(e) {\n t.call(this, e);\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e.prototype.isArray = function (t) {\n return this.config.isArray || this.error(\"ArrayHandler: mising isArray in config\", this.config), this.config.isArray(t);\n }, e.prototype.handle = function (t) {\n return this.isArray(t) && j.create(t).createSchemaEntry();\n }, e;\n}(c);\n\nfunction E(t, e) {\n return void 0 === e && (e = {}), t && new w(e).handle(t);\n}\n\nvar _ = function (t) {\n function e(e) {\n t.call(this, e), this.type = \"boolean\", this.base = this.yup.boolean();\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e.create = function (t) {\n return new e(t);\n }, e;\n}(b),\n N = function N(t) {\n this.config = t;\n};\n\nfunction T(t, e) {\n return void 0 === e && (e = {}), t && new N(e).handle(t);\n}\n\nN.prototype.isBoolean = function (t) {\n return this.config.isBoolean(t);\n}, N.prototype.handle = function (t) {\n return this.isBoolean(t) && _.create(t).createSchemaEntry();\n};\n\nvar M = function (t) {\n function e(e) {\n t.call(this, e);\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n $map: {\n configurable: !0\n }\n };\n return n.$map.get = function () {\n return {\n moreThan: [\"exclusiveMinimum\", \"moreThan\"],\n lessThan: [\"exclusiveMaximum\", \"lessThan\"],\n max: [\"maximum\", \"max\"],\n min: [\"minimum\", \"min\"]\n };\n }, Object.defineProperties(e.prototype, n), e;\n}(function (t) {\n function e(e) {\n t.call(this, e);\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n explainConstraintValidMsg: {\n configurable: !0\n }\n };\n return e.prototype.transform = function (t) {\n return this.typer.toNumber(t);\n }, e.prototype.isValidConstraint = function (t) {\n return this.typer.isNumberLike(t);\n }, n.explainConstraintValidMsg.get = function () {\n return \"Must be a number or convertible to a number\";\n }, Object.defineProperties(e.prototype, n), e;\n}(function (t) {\n function e(e, n) {\n var r = this;\n t.call(this, e.config), this.map = n || this.$map || {}, this.typer = e, this.delegates.map(function (t) {\n var n = e[t];\n n || r.error(\"missing delegate: \" + t, {\n typer: e\n }), r[t] = r.isFunctionType(n) ? n.bind(e) : n;\n });\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n delegates: {\n configurable: !0\n },\n explainConstraintValidMsg: {\n configurable: !0\n }\n };\n return e.prototype.isStringType = function (t) {\n return \"string\" == typeof t;\n }, n.delegates.get = function () {\n return [\"constraints\", \"addConstraint\", \"constraintsAdded\"];\n }, e.prototype.add = function () {\n var t = this,\n e = this.map;\n Object.keys(e).map(function (n) {\n var r = t.entryNames(e[n]);\n t.addConstraints(n, r);\n });\n }, e.prototype.entryNames = function (t) {\n return Array.isArray(t) ? t : [t];\n }, e.prototype.addConstraints = function (t, e) {\n var n = this;\n return void 0 === e && (e = []), e.map(function (e) {\n var r = n.validateAndTransform(e);\n n.addConstraint(e, {\n method: t,\n value: r\n });\n }), this;\n }, e.prototype.validateAndTransform = function (t) {\n var e = this.constraints[t];\n return this.validate(e), this.transform(e);\n }, e.prototype.invalidMsg = function (t, e) {\n return \"invalid constraint for \" + t + \", was \" + e + \".\";\n }, n.explainConstraintValidMsg.get = function () {\n return \"\";\n }, e.prototype.invalidConstraintMsg = function (t, e) {\n return [this.invalidMsg(t, e), this.explainConstraintValidMsg].join(\"\\n\");\n }, e.prototype.validate = function (t) {\n return this.isNothing(t) ? this : this.isValidConstraint(t) ? void 0 : this.handleInvalidConstraint(name, t);\n }, e.prototype.isValidConstraint = function (t) {\n return !0;\n }, e.prototype.handleInvalidConstraint = function (t, e) {\n var n = this.invalidConstraintMsg(t, e);\n return this.config.warnOnInvalid ? (this.warn(n), this) : (this.error(n, e), this);\n }, Object.defineProperties(e.prototype, n), e;\n}(u))),\n x = function (t) {\n function e(e, n) {\n t.call(this, e, n);\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e.prototype.isValid = function () {\n return this.config.isNumber(this.obj);\n }, e;\n}(function (t) {\n function e(e, n) {\n t.call(this, n), this.obj = e;\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e.prototype.isValid = function () {\n return !1;\n }, e.prototype.verify = function () {\n return this.isPresent(this.obj) && this.isValid(this.obj);\n }, e;\n}(c)),\n S = function S(t, e) {\n return void 0 === e && (e = {}), function (t, e) {\n return new x(t, e);\n }(t, e).verify();\n};\n\nfunction V(t, e) {\n return void 0 === e && (e = {}), S(t, e) && function (t) {\n return k.schemaEntryFor(t);\n }(t);\n}\n\nvar k = function (t) {\n function e(e) {\n t.call(this, e), this.type = this.normalizeNumType(e.type), this.base = this.yup.number(), this.rangeConstraint = new M(this);\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n typeEnabled: {\n configurable: !0\n },\n isInteger: {\n configurable: !0\n },\n isNegative: {\n configurable: !0\n },\n isPositive: {\n configurable: !0\n }\n };\n return e.prototype.normalizeNumType = function (t) {\n return \"int\" === t ? \"integer\" : t;\n }, e.create = function (t) {\n return new e(t);\n }, e.schemaEntryFor = function (t) {\n return e.create(t).createSchemaEntry();\n }, n.typeEnabled.get = function () {\n return [\"range\", \"posNeg\", \"integer\"];\n }, e.prototype.convert = function () {\n return t.prototype.convert.call(this), this;\n }, e.prototype.range = function () {\n this.rangeConstraint.add();\n }, e.prototype.truncate = function () {\n return this.addConstraint(\"truncate\");\n }, e.prototype.round = function () {\n var t = this.constraints.round;\n if (this.isNothing(t)) return this;\n var e = this.isStringType(t) ? t : \"round\";\n return t && this.base.round(e), this;\n }, e.prototype.posNeg = function () {\n this.positive(), this.negative();\n }, e.prototype.integer = function () {\n return this.isInteger && this.addConstraint(\"integer\"), this;\n }, n.isInteger.get = function () {\n return this.config.isInteger(this.type);\n }, e.prototype.positive = function () {\n return this.addConstraint(\"positive\");\n }, e.prototype.negative = function () {\n return this.addConstraint(\"negative\");\n }, n.isNegative.get = function () {\n var t = this.constraints,\n e = t.exclusiveMaximum;\n return !!t.negative || void 0 !== e && 0 === e;\n }, n.isPositive.get = function () {\n var t = this.constraints,\n e = t.exclusiveMinimum;\n return !!t.positive || void 0 !== e && 0 === e;\n }, e.prototype.normalize = function () {\n this.constraints.maximum = this.constraints.maximum || this.constraints.max, this.constraints.minimum = this.constraints.minimum || this.constraints.min;\n }, Object.defineProperties(e.prototype, n), e;\n}(b),\n A = function (t) {\n function e(e) {\n t.call(this, e), this.type = \"object\", this.base = this.yup.object(), this.properties = this.value.properties;\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n typeEnabled: {\n configurable: !0\n }\n };\n return e.create = function (t) {\n return new e(t);\n }, n.typeEnabled.get = function () {\n return [\"noUnknown\", \"camelCase\", \"constantCase\"];\n }, e.prototype.convert = function () {\n if (!this.properties) return this;\n t.prototype.convert.call(this);\n var e = this.value,\n n = this.config;\n\n if (e) {\n n.buildYup || this.error(\"convert\", \"Missing buildYup function from config\", n);\n var r = this.config.buildYup(e, n);\n this.base = r;\n }\n\n return this;\n }, e.prototype.camelCase = function () {\n return this.addConstraint(\"camelCase\");\n }, e.prototype.constantCase = function () {\n return this.addConstraint(\"constantCase\");\n }, e.prototype.noUnknown = function () {\n var t = this.value,\n e = t.noUnknown || t.propertyNames,\n n = e && this.base.noUnknown(e, this.valErrMessage(\"propertyNames\") || this.valErrMessage(\"noUnknown\"));\n return this.base = n || this.base, this;\n }, Object.defineProperties(e.prototype, n), e;\n}(b),\n P = function P(t) {\n return t && \"object\" === t.type;\n},\n I = function I(t) {\n void 0 === t && (t = {}), (t = t || {}).isObject = t.isObject || P, this.config = t, this.schema = t.schema;\n};\n\nfunction F(t, e) {\n return void 0 === e && (e = {}), t && new I(e).handle(t);\n}\n\nI.prototype.isObject = function (t) {\n return this.config.isObject(t.value);\n}, I.prototype.handle = function (t) {\n return this.isObject(t) && A.create(Object.assign({}, t, {\n config: this.config\n })).createSchemaEntry();\n};\n\nvar D = function (t) {\n function e(e) {\n t.call(this, e), this.type = \"string\", this.base = this.yup.string();\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n typeEnabled: {\n configurable: !0\n },\n isEmail: {\n configurable: !0\n },\n isUrl: {\n configurable: !0\n }\n };\n return e.create = function (t) {\n return new e(t);\n }, e.prototype.convert = function () {\n return t.prototype.convert.call(this), this;\n }, n.typeEnabled.get = function () {\n return [\"normalize\", \"minLength\", \"maxLength\", \"pattern\", \"lowercase\", \"uppercase\", \"email\", \"url\", \"genericFormat\"];\n }, e.prototype.trim = function () {\n return this.addConstraint(\"trim\");\n }, e.prototype.lowercase = function () {\n return this.addConstraint(\"lowercase\");\n }, e.prototype.uppercase = function () {\n return this.addConstraint(\"uppercase\");\n }, e.prototype.genericFormat = function () {\n 1 != !this.config.format && this.yup.prototype[this.format] && this.addConstraint(this.format);\n }, e.prototype.email = function () {\n if (!this.isEmail) return this;\n var t = this.constraintNameFor(\"email\", \"format\");\n return this.addConstraint(\"email\", {\n constraintValue: !0,\n constraintName: t,\n method: \"email\",\n errName: \"email\"\n }), this;\n }, e.prototype.constraintNameFor = function () {\n for (var t = this, e = [], n = arguments.length; n--;) {\n e[n] = arguments[n];\n }\n\n return e.find(function (e) {\n return t.constraints[e];\n });\n }, n.isEmail.get = function () {\n return this.constraints.email || \"email\" === this.format;\n }, e.prototype.url = function () {\n if (!this.isUrl) return this;\n var t = this.constraintNameFor(\"url\", \"format\");\n return this.addConstraint(\"url\", {\n constraintValue: !0,\n constraintName: t,\n method: \"url\",\n errName: \"url\"\n }), this;\n }, n.isUrl.get = function () {\n return this.constraints.url || \"url\" === this.format;\n }, e.prototype.minLength = function () {\n var t = this.constraints.minLength,\n e = this.valErrMessage(\"minLength\") || this.valErrMessage(\"min\"),\n n = t && this.base.min(t, e);\n return this.base = n || this.base, this;\n }, e.prototype.maxLength = function () {\n var t = this.constraints.maxLength,\n e = this.valErrMessage(\"maxLength\") || this.valErrMessage(\"max\"),\n n = t && this.base.max(t, e);\n return this.base = n || this.base, this;\n }, e.prototype.pattern = function () {\n var t = this.constraints,\n e = t.pattern;\n if (!e) return this;\n var n = new RegExp(e, t.flags),\n r = this.valErrMessage(\"pattern\") || this.valErrMessage(\"matches\") || this.valErrMessage(\"regex\"),\n i = n && this.base.matches(n, r);\n return this.base = i || this.base, this;\n }, e.prototype.normalize = function () {\n this.constraints.pattern = this.constraints.pattern || this.constraints.matches || this.constraints.regex, this.constraints.maxLength = this.constraints.maxLength || this.constraints.max, this.constraints.minLength = this.constraints.minLength || this.constraints.min;\n }, Object.defineProperties(e.prototype, n), e;\n}(b),\n R = function R(t) {\n this.config = t;\n};\n\nfunction Y(t, e) {\n return void 0 === e && (e = {}), t && new R(e).handle(t);\n}\n\nR.prototype.isString = function (t) {\n return this.config.isString(t);\n}, R.prototype.handle = function (t) {\n return this.isString(t) && D.create(Object.assign({}, {\n config: this.config\n }, t)).createSchemaEntry();\n};\n\nvar q = function (t) {\n function e(e) {\n t.call(this, e), this.type = \"date\", this.base = this.yup.date();\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n typeEnabled: {\n configurable: !0\n }\n };\n return e.create = function (t) {\n return new e(t);\n }, n.typeEnabled.get = function () {\n return [\"minDate\", \"maxDate\"];\n }, e.prototype.convert = function () {\n return t.prototype.convert.call(this), this;\n }, e.prototype.toDate = function (t) {\n return new Date(t);\n }, e.prototype.isValidDateType = function (t) {\n return this.isStringType(t) || this.isDateType(t);\n }, e.prototype.isValidDate = function (t) {\n return !!this.isValidDateType(t) && (!this.isStringType(t) || Boolean(Date.parse(t)));\n }, e.prototype.transformToDate = function (t) {\n return this.isNumberType(t) ? new Date(t) : t;\n }, e.prototype.minDate = function () {\n var t = this.constraints.minDate || this.constraints.min;\n if (this.isNothing(t)) return this;\n var e = this.transformToDate(t);\n if (!this.isValidDateType(e)) return this.handleInvalidDate(\"minDate\", e);\n var n = e && this.base.min(this.toDate(e), this.valErrMessage(\"minDate\") || this.valErrMessage(\"min\"));\n return this.base = n || this.base, this;\n }, e.prototype.maxDate = function () {\n var t = this.constraints.maxDate || this.constraints.max;\n if (this.isNothing(t)) return this;\n var e = this.transformToDate(t);\n if (!this.isValidDateType(e)) return this.handleInvalidDate(\"maxDate\", e);\n var n = e && this.base.max(this.toDate(e), this.valErrMessage(\"maxDate\") || this.valErrMessage(\"max\"));\n return this.base = n || this.base, this;\n }, e.prototype.handleInvalidDate = function (t, e) {\n var n = \"invalid constraint for \" + t + \", was \" + e + \". Must be a number, string (valid date format) or a Date instance\";\n return this.config.warnOnInvalid ? (this.warn(n), this) : (this.error(n, e), this);\n }, Object.defineProperties(e.prototype, n), e;\n}(b),\n H = function H(t) {\n this.config = t;\n};\n\nfunction B(t, e) {\n return void 0 === e && (e = {}), t && new H(e).handle(t);\n}\n\nH.prototype.isDate = function (t) {\n return this.config.isDate(t);\n}, H.prototype.handle = function (t) {\n return this.isDate(t) && q.create(t).createSchemaEntry();\n};\n\nvar z = {\n errValKeys: O,\n defaults: C,\n YupArray: j,\n toYupArray: E,\n YupBoolean: _,\n toYupBoolean: T,\n YupNumber: k,\n toYupNumberSchemaEntry: V,\n toYupNumber: function toYupNumber(t, e) {\n return void 0 === e && (e = {}), S(t, e) && function (t) {\n return k.create(t);\n }(t);\n },\n YupObject: A,\n toYupObject: F,\n YupString: D,\n toYupString: Y,\n YupDate: q,\n toYupDate: B,\n YupMixed: b,\n ConvertYupSchemaError: v,\n Base: c\n},\n L = function (t) {\n function e() {\n t.apply(this, arguments);\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e;\n}(Error),\n $ = function (t) {\n function e(e, n) {\n t.call(this, n);\n var r = e.value,\n i = e.type,\n o = e.kind,\n s = e.name,\n a = e.key,\n u = e.schema,\n c = e.types;\n this.opts = e, this.kind = o, this.value = r, this.schema = u, this.key = a, this.value = r || {}, this.name = s, this.type = i, this.types = c;\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n obj: {\n configurable: !0\n }\n };\n return e.prototype.error = function (t, e) {\n var n = this.opts;\n throw e ? console.error.apply(console, [t, e].concat(n)) : console.error.apply(console, [t].concat(n)), new L(t);\n }, e.prototype.resolve = function () {\n throw \"Must be implemented by subclass\";\n }, n.obj.get = function () {\n return {\n schema: this.schema,\n key: this.key,\n value: this.value,\n type: this.type,\n kind: this.kind,\n config: this.config\n };\n }, Object.defineProperties(e.prototype, n), e;\n}(c),\n U = function (t) {\n function e(e, n) {\n t.call(this, e, n);\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e.prototype.resolve = function () {\n if (Array.isArray(this.value)) {\n var t = this.config.toMultiType;\n return t ? t(this) : void 0;\n }\n }, e;\n}($),\n K = function (t) {\n function e(e, n) {\n t.call(this, e, n);\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e.prototype.resolve = function () {\n if (!Array.isArray(this.value)) {\n var t = this.config.toSingleType;\n if (t) return t(this);\n\n for (var e, n = this.obj, r = this.config, i = 0, o = Object.keys(this.types); i < o.length; i += 1) {\n var s = this.types[o[i]];\n if (s && (e = s(n, r)), e) break;\n }\n\n return e;\n }\n }, e;\n}($),\n W = function W(t, e) {\n return new J(t, e);\n},\n J = function (t) {\n function e(e, n) {\n t.call(this, e, n), this.initResolvers();\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e.prototype.initResolvers = function () {\n var t = this.opts,\n e = this.config,\n n = e.createMultiTypeResolver || this.createMultiTypeResolver.bind(this);\n this.multiTypeResolver = n(t, e);\n var r = e.createSingleTypeResolver || this.createSingleTypeResolver.bind(this);\n this.singleTypeResolver = r(t, e);\n }, e.prototype.createMultiTypeResolver = function () {\n return new U(this.opts, this.config);\n }, e.prototype.createSingleTypeResolver = function () {\n return new K(this.opts, this.config);\n }, e.prototype.resolve = function () {\n return this.toMultiType() || this.toSingleType() || this.toDefaultEntry();\n }, e.prototype.toMultiType = function () {\n return (this.config.toMultiType || this.singleTypeResolver.resolve.bind(this.singleTypeResolver))(this);\n }, e.prototype.toSingleType = function () {\n return (this.config.toSingleType || this.singleTypeResolver.resolve.bind(this.singleTypeResolver))(this);\n }, e.prototype.toDefaultEntry = function () {\n return this.defaultType();\n }, e.prototype.defaultType = function () {\n this.error(\"toEntry: unknown type\", this.type);\n }, e;\n}($),\n G = function (t) {\n function e() {\n t.apply(this, arguments);\n }\n\n return t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e, e;\n}(Error),\n Q = function (t) {\n function e(e) {\n t.call(this, e.config);\n var n = e.schema,\n r = e.name,\n i = e.key,\n o = e.value,\n s = e.config;\n this.opts = e, this.schema = n, this.key = i, this.value = o || {}, this.config = s || {}, this.name = r;\n var a = Array.isArray(o) ? \"array\" : o.type;\n this.kind = \"array\" === a ? \"multi\" : \"single\", this.type = a, this.setTypeHandlers(), this.setPropertyHandler();\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n defaultTypeHandlerMap: {\n configurable: !0\n }\n };\n return e.prototype.setPropertyHandler = function () {\n var t = this.config;\n this.propertyValueHandler = (t.createPropertyValueHandler || this.createPropertyValueHandler)({\n type: this.type,\n kind: this.kind,\n types: this.types,\n value: this.value,\n name: this.name,\n key: this.key,\n schema: this.schema\n }, t);\n }, e.prototype.createPropertyValueHandler = function (t, e) {\n return W(t, e);\n }, n.defaultTypeHandlerMap.get = function () {\n return {\n string: Y,\n number: V,\n boolean: T,\n array: E,\n object: F,\n date: B\n };\n }, e.prototype.setTypeHandlers = function () {\n this.types = Object.assign({}, this.defaultTypeHandlerMap, this.config.typeHandlers || {});\n }, e.prototype.isValidSchema = function () {\n return this.isStringType(this.type);\n }, e.prototype.error = function (t, e) {\n var n = this.opts;\n throw e ? console.error.apply(console, [t, e].concat(n)) : console.error.apply(console, [t].concat(n)), new G(t);\n }, e.prototype.toEntry = function () {\n if (!this.isValidSchema()) {\n var t = JSON.stringify(this.schema);\n this.error(\"Not a valid schema: type \" + this.type + \" must be a string, was \" + typeof this.type + \" \" + t);\n }\n\n return this.propertyValueHandler.resolve(this.opts, this.config);\n }, Object.defineProperties(e.prototype, n), e;\n}(c);\n\nfunction X(t) {\n return void 0 === t && (t = {}), new Q(t).toEntry();\n}\n\nvar Z = {\n alphanumeric: {\n optsKey: \"locale\"\n },\n alpha: {\n optsKey: \"locale\"\n },\n ascii: {},\n byte: {},\n creditCard: {},\n currency: {\n opts: \"currencyOpts\"\n },\n dataUri: {},\n dateTime: {},\n date: {},\n domainName: {\n opts: \"domainOpts\"\n },\n hash: {\n opts: \"hashAlgo\"\n },\n hexColor: {},\n ipv4: {},\n ipv6: {},\n isbn: {},\n magnetUri: {},\n mimeType: {},\n mobilePhone: {},\n mongoId: {},\n postalCode: {},\n uuid: {}\n},\n tt = {\n createValidatorName: function createValidatorName(t, e) {\n return \"is\" + (t = (t = r(t || e)).replace(/Uri$/, \"URI\")).replace(/Id$/, \"ID\");\n },\n createTestName: function createTestName(t, e) {\n return n(t || e);\n }\n},\n et = {\n isMagnetURI: function isMagnetURI(t, e) {\n return /magnet:\\?xt=urn:[a-z0-9]+:[a-z0-9]{32}/i.test(t);\n }\n};\n\nfunction nt(t, e) {\n return void 0 === e && (e = {}), new it(t, e).yupSchema;\n}\n\nfunction rt(t) {\n return t === Object(t);\n}\n\nvar it = function (t) {\n function e(e, n) {\n void 0 === n && (n = {}), t.call(this, n), n.buildYup = nt, n.createYupSchemaEntry = n.createYupSchemaEntry || X, this.config = Object.assign(this.config, n), this.schema = e;\n var r = this.getType(e),\n i = this.getProps(e);\n if (this.type = r, this.properties = i, this.additionalProps = this.getAdditionalProperties(e), this.required = this.getRequired(e), function (t) {\n return t && \"object\" === t;\n }(r)) {\n if (rt(i)) {\n var o = this.getName(e),\n s = this.normalizeRequired(e),\n a = this.propsToShape({\n properties: s,\n name: o,\n config: n\n });\n this.shapeConfig = a, this.validSchema = !0;\n } else {\n var u = JSON.stringify(s);\n this.error(\"invalid schema: must have a properties object: \" + u);\n }\n } else this.error('invalid schema: must be type: \"object\", was type: ' + r);\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var n = {\n yupSchema: {\n configurable: !0\n }\n };\n return e.prototype.getAdditionalProperties = function (t) {\n return t.additionalProperties;\n }, e.prototype.getRequired = function (t) {\n var e = this.config.getRequired;\n return e ? e(t) : t.required || [];\n }, e.prototype.getProps = function (t) {\n return this.config.getProps(t);\n }, e.prototype.getType = function (t) {\n return this.config.getType(t);\n }, e.prototype.getName = function (t) {\n return this.config.getName(t);\n }, n.yupSchema.get = function () {\n return i.object().shape(this.shapeConfig);\n }, e.prototype.normalizeRequired = function () {\n var t = this,\n e = Object.assign({}, this.properties),\n n = [].concat(this.required) || [];\n return Object.keys(e).reduce(function (r, i) {\n var o = e[i],\n s = n.indexOf(i) >= 0;\n return rt(o) ? o.required = t.isRequired(o) || s : t.warn(\"Bad value: \" + o + \" must be an object\"), r[i] = o, r;\n }, {});\n }, e.prototype.isRequired = function (t) {\n return this.config.isRequired(t);\n }, e.prototype.propsToShape = function (t) {\n void 0 === t && (t = {});\n var e = this.objPropsToShape(t);\n return this.objPropsShape = e, this.addPropsShape = this.additionalPropsToShape(t, e), e;\n }, e.prototype.additionalPropsToShape = function (t, e) {\n return e;\n }, e.prototype.objPropsToShape = function (t) {\n var e = this,\n n = t.name,\n r = Object.assign({}, this.properties);\n return Object.keys(r).reduce(function (t, i) {\n var o = e.propToYupSchemaEntry({\n name: n,\n key: i,\n value: r[i]\n });\n return e.logInfo(\"propsToShape\", {\n key: i,\n yupSchemaEntry: o\n }), t[i] = o, t;\n }, {});\n }, e.prototype.propToYupSchemaEntry = function (t) {\n var e = t.value;\n return void 0 === e && (e = {}), this.createYupSchemaEntry({\n schema: this.schema,\n name: t.name,\n key: t.key,\n value: e,\n config: this.config\n });\n }, e.prototype.createYupSchemaEntry = function (t) {\n var e = t.config;\n return e.createYupSchemaEntry({\n schema: t.schema,\n name: t.name,\n key: t.key,\n value: t.value,\n config: e\n });\n }, Object.defineProperties(e.prototype, n), e;\n}(c);\n\nexports.buildYup = nt, exports.YupBuilder = it, exports.YupSchemaEntry = Q, exports.YupSchemaEntryError = G, exports.types = z, exports.createYupSchemaEntry = X, exports.extendYupApi = function (t) {\n var e = this;\n void 0 === t && (t = {});\n var n = t.constraints,\n r = t.override;\n void 0 === r && (r = !1);\n var o,\n s = t.validator,\n a = t.createValidatorName,\n u = t.createTestName;\n if (!s) throw \"extendYupApi: missing validator option\";\n Array.isArray(n) && (void 0 === o && (o = {}), n = n.reduce(function (t, e) {\n if (\"string\" != typeof e && !(e instanceof Object)) {\n if (!1 !== o.throws) throw \"toConstraintsMap: invalid entry \" + e;\n return t;\n }\n\n if (\"string\" == typeof e) t[name] = {};else {\n if (!e.name) {\n if (!1 !== o.throws) throw \"toConstraintsMap: invalid entry \" + e + \" missing name\";\n return t;\n }\n\n t[e.name] = e;\n }\n return t;\n }, {})), n = r ? n || Z : Object.assign({}, Z, n || {}), a = a || tt.createValidatorName, u = u || tt.createTestName, Object.keys(n).map(function (t) {\n var r = n[t],\n o = r.testName,\n c = r.optsKey,\n p = r.logging,\n h = a(r.validatorName, t);\n o = u(o, t), i.addMethod(i.string, t, function (n) {\n void 0 === n && (n = {});\n var r = n.message,\n a = n[c];\n return i.string().test(o, r, function (n) {\n var i = e.path,\n u = e.createError,\n c = s[h];\n if (\"function\" != typeof (c = c || et[h])) throw Error(\"No method named ${validatorName} on validator\");\n var f = c(n, a);\n return !0 === p && console.log(\"Yup validator bridge\", {\n key: t,\n fullValidatorName: h,\n testName: o,\n value: n,\n valid: f\n }), f || u({\n path: i,\n message: r\n });\n });\n });\n });\n}, exports.PropertyValueResolver = J, exports.createPropertyValueResolver = W, exports.ErrorMessageHandler = m, exports.ConstraintBuilder = g;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nvar Condition = /*#__PURE__*/function () {\n function Condition(refs, options) {\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!(0, _has.default)(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n var is = options.is,\n then = options.then,\n otherwise = options.otherwise;\n var check = typeof is === 'function' ? is : function () {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return values.every(function (value) {\n return value === is;\n });\n };\n\n this.fn = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var options = args.pop();\n var schema = args.pop();\n var branch = check.apply(void 0, args) ? then : otherwise;\n if (!branch) return undefined;\n if (typeof branch === 'function') return branch(schema);\n return schema.concat(branch.resolve(options));\n };\n }\n\n var _proto = Condition.prototype;\n\n _proto.resolve = function resolve(base, options) {\n var values = this.refs.map(function (ref) {\n return ref.getValue(options);\n });\n var schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!(0, _isSchema.default)(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n };\n\n return Condition;\n}();\n\nvar _default = Condition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nvar Lazy = /*#__PURE__*/function () {\n function Lazy(mapFn) {\n this._resolve = function (value, options) {\n var schema = mapFn(value, options);\n if (!(0, _isSchema.default)(schema)) throw new TypeError('lazy() functions must return a valid schema');\n return schema.resolve(options);\n };\n }\n\n var _proto = Lazy.prototype;\n\n _proto.resolve = function resolve(options) {\n return this._resolve(options.value, options);\n };\n\n _proto.cast = function cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n };\n\n _proto.validate = function validate(value, options) {\n return this._resolve(value, options).validate(value, options);\n };\n\n _proto.validateSync = function validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n };\n\n _proto.validateAt = function validateAt(path, value, options) {\n return this._resolve(value, options).validateAt(path, value, options);\n };\n\n _proto.validateSyncAt = function validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n };\n\n return Lazy;\n}();\n\nLazy.prototype.__isYupSchema__ = true;\nvar _default = Lazy;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propertyExpr = require(\"property-expr\");\n\nvar prefixes = {\n context: '$',\n value: '.'\n};\n\nvar Reference = /*#__PURE__*/function () {\n function Reference(key, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n var prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && (0, _propertyExpr.getter)(this.path, true);\n this.map = options.map;\n }\n\n var _proto = Reference.prototype;\n\n _proto.getValue = function getValue(options) {\n var result = this.isContext ? options.context : this.isValue ? options.value : options.parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n };\n\n _proto.cast = function cast(value, options) {\n return this.getValue((0, _extends2.default)({}, options, {\n value: value\n }));\n };\n\n _proto.resolve = function resolve() {\n return this;\n };\n\n _proto.describe = function describe() {\n return {\n type: 'ref',\n key: this.key\n };\n };\n\n _proto.toString = function toString() {\n return \"Ref(\" + this.key + \")\";\n };\n\n Reference.isRef = function isRef(value) {\n return value && value.__isYupRef;\n };\n\n return Reference;\n}();\n\nexports.default = Reference;\nReference.prototype.__isYupRef = true;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ValidationError;\n\nvar _printValue = _interopRequireDefault(require(\"./util/printValue\"));\n\nvar strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\n\nvar replace = function replace(str) {\n return function (params) {\n return str.replace(strReg, function (_, key) {\n return (0, _printValue.default)(params[key]);\n });\n };\n};\n\nfunction ValidationError(errors, value, field, type) {\n var _this = this;\n\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n if (errors) [].concat(errors).forEach(function (err) {\n _this.errors = _this.errors.concat(err.errors || err);\n if (err.inner) _this.inner = _this.inner.concat(err.inner.length ? err.inner : err);\n });\n this.message = this.errors.length > 1 ? this.errors.length + \" errors occurred\" : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n}\n\nValidationError.prototype = Object.create(Error.prototype);\nValidationError.prototype.constructor = ValidationError;\n\nValidationError.isError = function (err) {\n return err && err.name === 'ValidationError';\n};\n\nValidationError.formatError = function (message, params) {\n if (typeof message === 'string') message = replace(message);\n\n var fn = function fn(params) {\n params.path = params.label || params.path || 'this';\n return typeof message === 'function' ? message(params) : message;\n };\n\n return arguments.length === 1 ? fn : fn(params);\n};\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/taggedTemplateLiteralLoose\"));\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _isAbsent = _interopRequireDefault(require(\"./util/isAbsent\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nvar _makePath = _interopRequireDefault(require(\"./util/makePath\"));\n\nvar _printValue = _interopRequireDefault(require(\"./util/printValue\"));\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _locale = require(\"./locale\");\n\nvar _runValidations = _interopRequireWildcard(require(\"./util/runValidations\"));\n\nfunction _templateObject() {\n var data = (0, _taggedTemplateLiteralLoose2.default)([\"\", \"[\", \"]\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nvar _default = ArraySchema;\nexports.default = _default;\n\nfunction ArraySchema(type) {\n var _this = this;\n\n if (!(this instanceof ArraySchema)) return new ArraySchema(type);\n\n _mixed.default.call(this, {\n type: 'array'\n }); // `undefined` specifically means uninitialized, as opposed to\n // \"no subtype\"\n\n\n this._subType = undefined;\n this.withMutation(function () {\n _this.transform(function (values) {\n if (typeof values === 'string') try {\n values = JSON.parse(values);\n } catch (err) {\n values = null;\n }\n return this.isType(values) ? values : null;\n });\n\n if (type) _this.of(type);\n });\n}\n\n(0, _inherits.default)(ArraySchema, _mixed.default, {\n _typeCheck: function _typeCheck(v) {\n return Array.isArray(v);\n },\n _cast: function _cast(_value, _opts) {\n var _this2 = this;\n\n var value = _mixed.default.prototype._cast.call(this, _value, _opts); //should ignore nulls here\n\n\n if (!this._typeCheck(value) || !this._subType) return value;\n var isChanged = false;\n var castArray = value.map(function (v) {\n var castElement = _this2._subType.cast(v, _opts);\n\n if (castElement !== v) {\n isChanged = true;\n }\n\n return castElement;\n });\n return isChanged ? castArray : value;\n },\n _validate: function _validate(_value, options) {\n var _this3 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var errors = [];\n var sync = options.sync;\n var path = options.path;\n var subType = this._subType;\n\n var endEarly = this._option('abortEarly', options);\n\n var recursive = this._option('recursive', options);\n\n var originalValue = options.originalValue != null ? options.originalValue : _value;\n return _mixed.default.prototype._validate.call(this, _value, options).catch((0, _runValidations.propagateErrors)(endEarly, errors)).then(function (value) {\n if (!recursive || !subType || !_this3._typeCheck(value)) {\n if (errors.length) throw errors[0];\n return value;\n }\n\n originalValue = originalValue || value;\n var validations = value.map(function (item, idx) {\n var path = (0, _makePath.default)(_templateObject(), options.path, idx); // object._validate note for isStrict explanation\n\n var innerOptions = (0, _extends2.default)({}, options, {\n path: path,\n strict: true,\n parent: value,\n originalValue: originalValue[idx]\n });\n if (subType.validate) return subType.validate(item, innerOptions);\n return true;\n });\n return (0, _runValidations.default)({\n sync: sync,\n path: path,\n value: value,\n errors: errors,\n endEarly: endEarly,\n validations: validations\n });\n });\n },\n _isPresent: function _isPresent(value) {\n return _mixed.default.prototype._cast.call(this, value) && value.length > 0;\n },\n of: function of(schema) {\n var next = this.clone();\n if (schema !== false && !(0, _isSchema.default)(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema, or `false` to negate a current sub-schema. ' + 'not: ' + (0, _printValue.default)(schema));\n next._subType = schema;\n return next;\n },\n min: function min(_min, message) {\n message = message || _locale.array.min;\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n min: _min\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value.length >= this.resolve(_min);\n }\n });\n },\n max: function max(_max, message) {\n message = message || _locale.array.max;\n return this.test({\n message: message,\n name: 'max',\n exclusive: true,\n params: {\n max: _max\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value.length <= this.resolve(_max);\n }\n });\n },\n ensure: function ensure() {\n var _this4 = this;\n\n return this.default(function () {\n return [];\n }).transform(function (val) {\n if (_this4.isType(val)) return val;\n return val === null ? [] : [].concat(val);\n });\n },\n compact: function compact(rejector) {\n var reject = !rejector ? function (v) {\n return !!v;\n } : function (v, i, a) {\n return !rejector(v, i, a);\n };\n return this.transform(function (values) {\n return values != null ? values.filter(reject) : values;\n });\n },\n describe: function describe() {\n var base = _mixed.default.prototype.describe.call(this);\n\n if (this._subType) base.innerType = this._subType.describe();\n return base;\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _default = BooleanSchema;\nexports.default = _default;\n\nfunction BooleanSchema() {\n var _this = this;\n\n if (!(this instanceof BooleanSchema)) return new BooleanSchema();\n\n _mixed.default.call(this, {\n type: 'boolean'\n });\n\n this.withMutation(function () {\n _this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(value)) return true;\n if (/^(false|0)$/i.test(value)) return false;\n }\n\n return value;\n });\n });\n}\n\n(0, _inherits.default)(BooleanSchema, _mixed.default, {\n _typeCheck: function _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _isodate = _interopRequireDefault(require(\"./util/isodate\"));\n\nvar _locale = require(\"./locale\");\n\nvar _isAbsent = _interopRequireDefault(require(\"./util/isAbsent\"));\n\nvar _Reference = _interopRequireDefault(require(\"./Reference\"));\n\nvar invalidDate = new Date('');\n\nvar isDate = function isDate(obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n};\n\nvar _default = DateSchema;\nexports.default = _default;\n\nfunction DateSchema() {\n var _this = this;\n\n if (!(this instanceof DateSchema)) return new DateSchema();\n\n _mixed.default.call(this, {\n type: 'date'\n });\n\n this.withMutation(function () {\n _this.transform(function (value) {\n if (this.isType(value)) return value;\n value = (0, _isodate.default)(value);\n return value ? new Date(value) : invalidDate;\n });\n });\n}\n\n(0, _inherits.default)(DateSchema, _mixed.default, {\n _typeCheck: function _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n },\n min: function min(_min, message) {\n if (message === void 0) {\n message = _locale.date.min;\n }\n\n var limit = _min;\n\n if (!_Reference.default.isRef(limit)) {\n limit = this.cast(_min);\n if (!this._typeCheck(limit)) throw new TypeError('`min` must be a Date or a value that can be `cast()` to a Date');\n }\n\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n min: _min\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value >= this.resolve(limit);\n }\n });\n },\n max: function max(_max, message) {\n if (message === void 0) {\n message = _locale.date.max;\n }\n\n var limit = _max;\n\n if (!_Reference.default.isRef(limit)) {\n limit = this.cast(_max);\n if (!this._typeCheck(limit)) throw new TypeError('`max` must be a Date or a value that can be `cast()` to a Date');\n }\n\n return this.test({\n message: message,\n name: 'max',\n exclusive: true,\n params: {\n max: _max\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value <= this.resolve(limit);\n }\n });\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.addMethod = addMethod;\nexports.lazy = exports.ref = exports.boolean = void 0;\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nexports.mixed = _mixed.default;\n\nvar _boolean = _interopRequireDefault(require(\"./boolean\"));\n\nexports.bool = _boolean.default;\n\nvar _string = _interopRequireDefault(require(\"./string\"));\n\nexports.string = _string.default;\n\nvar _number = _interopRequireDefault(require(\"./number\"));\n\nexports.number = _number.default;\n\nvar _date = _interopRequireDefault(require(\"./date\"));\n\nexports.date = _date.default;\n\nvar _object = _interopRequireDefault(require(\"./object\"));\n\nexports.object = _object.default;\n\nvar _array = _interopRequireDefault(require(\"./array\"));\n\nexports.array = _array.default;\n\nvar _Reference = _interopRequireDefault(require(\"./Reference\"));\n\nvar _Lazy = _interopRequireDefault(require(\"./Lazy\"));\n\nvar _ValidationError = _interopRequireDefault(require(\"./ValidationError\"));\n\nexports.ValidationError = _ValidationError.default;\n\nvar _reach = _interopRequireDefault(require(\"./util/reach\"));\n\nexports.reach = _reach.default;\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nexports.isSchema = _isSchema.default;\n\nvar _setLocale = _interopRequireDefault(require(\"./setLocale\"));\n\nexports.setLocale = _setLocale.default;\nvar boolean = _boolean.default;\nexports.boolean = boolean;\n\nvar ref = function ref(key, options) {\n return new _Reference.default(key, options);\n};\n\nexports.ref = ref;\n\nvar lazy = function lazy(fn) {\n return new _Lazy.default(fn);\n};\n\nexports.lazy = lazy;\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !(0, _isSchema.default)(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.array = exports.object = exports.boolean = exports.date = exports.number = exports.string = exports.mixed = void 0;\n\nvar _printValue = _interopRequireDefault(require(\"./util/printValue\"));\n\nvar mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" must be a `\" + type + \"` type, \" + (\"but the final value was: `\" + (0, _printValue.default)(value, true) + \"`\") + (isCast ? \" (cast from the value `\" + (0, _printValue.default)(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n If \\\"null\\\" is intended as an empty value be sure to mark the schema as `.nullable()`\";\n }\n\n return msg;\n }\n};\nexports.mixed = mixed;\nvar string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nexports.string = string;\nvar number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n notEqual: '${path} must be not equal to ${notEqual}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexports.number = number;\nvar date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexports.date = date;\nvar boolean = {};\nexports.boolean = boolean;\nvar object = {\n noUnknown: '${path} field cannot have keys not specified in the object shape'\n};\nexports.object = object;\nvar array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items'\n};\nexports.array = array;\nvar _default = {\n mixed: mixed,\n string: string,\n number: number,\n date: date,\n object: object,\n array: array,\n boolean: boolean\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = SchemaType;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _cloneDeepWith = _interopRequireDefault(require(\"lodash/cloneDeepWith\"));\n\nvar _toArray2 = _interopRequireDefault(require(\"lodash/toArray\"));\n\nvar _locale = require(\"./locale\");\n\nvar _Condition = _interopRequireDefault(require(\"./Condition\"));\n\nvar _runValidations = _interopRequireDefault(require(\"./util/runValidations\"));\n\nvar _prependDeep = _interopRequireDefault(require(\"./util/prependDeep\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./util/isSchema\"));\n\nvar _createValidation = _interopRequireDefault(require(\"./util/createValidation\"));\n\nvar _printValue = _interopRequireDefault(require(\"./util/printValue\"));\n\nvar _Reference = _interopRequireDefault(require(\"./Reference\"));\n\nvar _reach = require(\"./util/reach\");\n\nvar RefSet = /*#__PURE__*/function () {\n function RefSet() {\n this.list = new Set();\n this.refs = new Map();\n }\n\n var _proto = RefSet.prototype;\n\n _proto.toArray = function toArray() {\n return (0, _toArray2.default)(this.list).concat((0, _toArray2.default)(this.refs.values()));\n };\n\n _proto.add = function add(value) {\n _Reference.default.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n };\n\n _proto.delete = function _delete(value) {\n _Reference.default.isRef(value) ? this.refs.delete(value.key, value) : this.list.delete(value);\n };\n\n _proto.has = function has(value, resolve) {\n if (this.list.has(value)) return true;\n var item,\n values = this.refs.values();\n\n while (item = values.next(), !item.done) {\n if (resolve(item.value) === value) return true;\n }\n\n return false;\n };\n\n return RefSet;\n}();\n\nfunction SchemaType(options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (!(this instanceof SchemaType)) return new SchemaType();\n this._deps = [];\n this._conditions = [];\n this._options = {\n abortEarly: true,\n recursive: true\n };\n this._exclusive = Object.create(null);\n this._whitelist = new RefSet();\n this._blacklist = new RefSet();\n this.tests = [];\n this.transforms = [];\n this.withMutation(function () {\n _this.typeError(_locale.mixed.notType);\n });\n if ((0, _has.default)(options, 'default')) this._defaultDefault = options.default;\n this._type = options.type || 'mixed';\n}\n\nvar proto = SchemaType.prototype = {\n __isYupSchema__: true,\n constructor: SchemaType,\n clone: function clone() {\n var _this2 = this;\n\n if (this._mutate) return this; // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n return (0, _cloneDeepWith.default)(this, function (value) {\n if ((0, _isSchema.default)(value) && value !== _this2) return value;\n });\n },\n label: function label(_label) {\n var next = this.clone();\n next._label = _label;\n return next;\n },\n meta: function meta(obj) {\n if (arguments.length === 0) return this._meta;\n var next = this.clone();\n next._meta = (0, _extends2.default)(next._meta || {}, obj);\n return next;\n },\n withMutation: function withMutation(fn) {\n var before = this._mutate;\n this._mutate = true;\n var result = fn(this);\n this._mutate = before;\n return result;\n },\n concat: function concat(schema) {\n if (!schema || schema === this) return this;\n if (schema._type !== this._type && this._type !== 'mixed') throw new TypeError(\"You cannot `concat()` schema's of different types: \" + this._type + \" and \" + schema._type);\n var next = (0, _prependDeep.default)(schema.clone(), this); // new undefined default is overriden by old non-undefined one, revert\n\n if ((0, _has.default)(schema, '_default')) next._default = schema._default;\n next.tests = this.tests;\n next._exclusive = this._exclusive; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n next.withMutation(function (next) {\n schema.tests.forEach(function (fn) {\n next.test(fn.OPTIONS);\n });\n });\n return next;\n },\n isType: function isType(v) {\n if (this._nullable && v === null) return true;\n return !this._typeCheck || this._typeCheck(v);\n },\n resolve: function resolve(options) {\n var schema = this;\n\n if (schema._conditions.length) {\n var conditions = schema._conditions;\n schema = schema.clone();\n schema._conditions = [];\n schema = conditions.reduce(function (schema, condition) {\n return condition.resolve(schema, options);\n }, schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n },\n cast: function cast(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var resolvedSchema = this.resolve((0, _extends2.default)({}, options, {\n value: value\n }));\n\n var result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n var formattedValue = (0, _printValue.default)(value);\n var formattedResult = (0, _printValue.default)(result);\n throw new TypeError(\"The value of \" + (options.path || 'field') + \" could not be cast to a value \" + (\"that satisfies the schema type: \\\"\" + resolvedSchema._type + \"\\\". \\n\\n\") + (\"attempted value: \" + formattedValue + \" \\n\") + (formattedResult !== formattedValue ? \"result of cast: \" + formattedResult : ''));\n }\n\n return result;\n },\n _cast: function _cast(rawValue) {\n var _this3 = this;\n\n var value = rawValue === undefined ? rawValue : this.transforms.reduce(function (value, fn) {\n return fn.call(_this3, value, rawValue);\n }, rawValue);\n\n if (value === undefined && (0, _has.default)(this, '_default')) {\n value = this.default();\n }\n\n return value;\n },\n _validate: function _validate(_value, options) {\n var _this4 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var value = _value;\n var originalValue = options.originalValue != null ? options.originalValue : _value;\n\n var isStrict = this._option('strict', options);\n\n var endEarly = this._option('abortEarly', options);\n\n var sync = options.sync;\n var path = options.path;\n var label = this._label;\n\n if (!isStrict) {\n value = this._cast(value, (0, _extends2.default)({\n assert: false\n }, options));\n } // value is cast, we can check if it meets type requirements\n\n\n var validationParams = {\n value: value,\n path: path,\n schema: this,\n options: options,\n label: label,\n originalValue: originalValue,\n sync: sync\n };\n var initialTests = [];\n if (this._typeError) initialTests.push(this._typeError(validationParams));\n if (this._whitelistError) initialTests.push(this._whitelistError(validationParams));\n if (this._blacklistError) initialTests.push(this._blacklistError(validationParams));\n return (0, _runValidations.default)({\n validations: initialTests,\n endEarly: endEarly,\n value: value,\n path: path,\n sync: sync\n }).then(function (value) {\n return (0, _runValidations.default)({\n path: path,\n sync: sync,\n value: value,\n endEarly: endEarly,\n validations: _this4.tests.map(function (fn) {\n return fn(validationParams);\n })\n });\n });\n },\n validate: function validate(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var schema = this.resolve((0, _extends2.default)({}, options, {\n value: value\n }));\n return schema._validate(value, options);\n },\n validateSync: function validateSync(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var schema = this.resolve((0, _extends2.default)({}, options, {\n value: value\n }));\n var result, err;\n\n schema._validate(value, (0, _extends2.default)({}, options, {\n sync: true\n })).then(function (r) {\n return result = r;\n }).catch(function (e) {\n return err = e;\n });\n\n if (err) throw err;\n return result;\n },\n isValid: function isValid(value, options) {\n return this.validate(value, options).then(function () {\n return true;\n }).catch(function (err) {\n if (err.name === 'ValidationError') return false;\n throw err;\n });\n },\n isValidSync: function isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (err.name === 'ValidationError') return false;\n throw err;\n }\n },\n getDefault: function getDefault(options) {\n if (options === void 0) {\n options = {};\n }\n\n var schema = this.resolve(options);\n return schema.default();\n },\n default: function _default(def) {\n if (arguments.length === 0) {\n var defaultValue = (0, _has.default)(this, '_default') ? this._default : this._defaultDefault;\n return typeof defaultValue === 'function' ? defaultValue.call(this) : (0, _cloneDeepWith.default)(defaultValue);\n }\n\n var next = this.clone();\n next._default = def;\n return next;\n },\n strict: function strict(isStrict) {\n if (isStrict === void 0) {\n isStrict = true;\n }\n\n var next = this.clone();\n next._options.strict = isStrict;\n return next;\n },\n _isPresent: function _isPresent(value) {\n return value != null;\n },\n required: function required(message) {\n if (message === void 0) {\n message = _locale.mixed.required;\n }\n\n return this.test({\n message: message,\n name: 'required',\n exclusive: true,\n test: function test(value) {\n return this.schema._isPresent(value);\n }\n });\n },\n notRequired: function notRequired() {\n var next = this.clone();\n next.tests = next.tests.filter(function (test) {\n return test.OPTIONS.name !== 'required';\n });\n return next;\n },\n nullable: function nullable(isNullable) {\n if (isNullable === void 0) {\n isNullable = true;\n }\n\n var next = this.clone();\n next._nullable = isNullable;\n return next;\n },\n transform: function transform(fn) {\n var next = this.clone();\n next.transforms.push(fn);\n return next;\n },\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n test: function test() {\n var opts;\n\n if (arguments.length === 1) {\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'function') {\n opts = {\n test: arguments.length <= 0 ? undefined : arguments[0]\n };\n } else {\n opts = arguments.length <= 0 ? undefined : arguments[0];\n }\n } else if (arguments.length === 2) {\n opts = {\n name: arguments.length <= 0 ? undefined : arguments[0],\n test: arguments.length <= 1 ? undefined : arguments[1]\n };\n } else {\n opts = {\n name: arguments.length <= 0 ? undefined : arguments[0],\n message: arguments.length <= 1 ? undefined : arguments[1],\n test: arguments.length <= 2 ? undefined : arguments[2]\n };\n }\n\n if (opts.message === undefined) opts.message = _locale.mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n var next = this.clone();\n var validate = (0, _createValidation.default)(opts);\n var isExclusive = opts.exclusive || opts.name && next._exclusive[opts.name] === true;\n\n if (opts.exclusive && !opts.name) {\n throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n next._exclusive[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(function (fn) {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n\n return true;\n });\n next.tests.push(validate);\n return next;\n },\n when: function when(keys, options) {\n if (arguments.length === 1) {\n options = keys;\n keys = '.';\n }\n\n var next = this.clone(),\n deps = [].concat(keys).map(function (key) {\n return new _Reference.default(key);\n });\n deps.forEach(function (dep) {\n if (dep.isSibling) next._deps.push(dep.key);\n });\n\n next._conditions.push(new _Condition.default(deps, options));\n\n return next;\n },\n typeError: function typeError(message) {\n var next = this.clone();\n next._typeError = (0, _createValidation.default)({\n message: message,\n name: 'typeError',\n test: function test(value) {\n if (value !== undefined && !this.schema.isType(value)) return this.createError({\n params: {\n type: this.schema._type\n }\n });\n return true;\n }\n });\n return next;\n },\n oneOf: function oneOf(enums, message) {\n if (message === void 0) {\n message = _locale.mixed.oneOf;\n }\n\n var next = this.clone();\n enums.forEach(function (val) {\n next._whitelist.add(val);\n\n next._blacklist.delete(val);\n });\n next._whitelistError = (0, _createValidation.default)({\n message: message,\n name: 'oneOf',\n test: function test(value) {\n if (value === undefined) return true;\n var valids = this.schema._whitelist;\n return valids.has(value, this.resolve) ? true : this.createError({\n params: {\n values: valids.toArray().join(', ')\n }\n });\n }\n });\n return next;\n },\n notOneOf: function notOneOf(enums, message) {\n if (message === void 0) {\n message = _locale.mixed.notOneOf;\n }\n\n var next = this.clone();\n enums.forEach(function (val) {\n next._blacklist.add(val);\n\n next._whitelist.delete(val);\n });\n next._blacklistError = (0, _createValidation.default)({\n message: message,\n name: 'notOneOf',\n test: function test(value) {\n var invalids = this.schema._blacklist;\n if (invalids.has(value, this.resolve)) return this.createError({\n params: {\n values: invalids.toArray().join(', ')\n }\n });\n return true;\n }\n });\n return next;\n },\n strip: function strip(_strip) {\n if (_strip === void 0) {\n _strip = true;\n }\n\n var next = this.clone();\n next._strip = _strip;\n return next;\n },\n _option: function _option(key, overrides) {\n return (0, _has.default)(overrides, key) ? overrides[key] : this._options[key];\n },\n describe: function describe() {\n var next = this.clone();\n return {\n type: next._type,\n meta: next._meta,\n label: next._label,\n tests: next.tests.map(function (fn) {\n return {\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n };\n }).filter(function (n, idx, list) {\n return list.findIndex(function (c) {\n return c.name === n.name;\n }) === idx;\n })\n };\n }\n};\nvar _arr = ['validate', 'validateSync'];\n\nvar _loop = function _loop() {\n var method = _arr[_i];\n\n proto[method + \"At\"] = function (path, value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _getIn = (0, _reach.getIn)(this, path, value, options.context),\n parent = _getIn.parent,\n parentPath = _getIn.parentPath,\n schema = _getIn.schema;\n\n return schema[method](parent && parent[parentPath], (0, _extends2.default)({}, options, {\n parent: parent,\n path: path\n }));\n };\n};\n\nfor (var _i = 0; _i < _arr.length; _i++) {\n _loop();\n}\n\nvar _arr2 = ['equals', 'is'];\n\nfor (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var alias = _arr2[_i2];\n proto[alias] = proto.oneOf;\n}\n\nvar _arr3 = ['not', 'nope'];\n\nfor (var _i3 = 0; _i3 < _arr3.length; _i3++) {\n var _alias = _arr3[_i3];\n proto[_alias] = proto.notOneOf;\n}\n\nproto.optional = proto.notRequired;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = NumberSchema;\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _locale = require(\"./locale\");\n\nvar _isAbsent = _interopRequireDefault(require(\"./util/isAbsent\"));\n\nvar isNaN = function isNaN(value) {\n return value != +value;\n};\n\nvar isInteger = function isInteger(val) {\n return (0, _isAbsent.default)(val) || val === (val | 0);\n};\n\nfunction NumberSchema() {\n var _this = this;\n\n if (!(this instanceof NumberSchema)) return new NumberSchema();\n\n _mixed.default.call(this, {\n type: 'number'\n });\n\n this.withMutation(function () {\n _this.transform(function (value) {\n var parsed = value;\n\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n parsed = +parsed;\n }\n\n if (this.isType(parsed)) return parsed;\n return parseFloat(parsed);\n });\n });\n}\n\n(0, _inherits.default)(NumberSchema, _mixed.default, {\n _typeCheck: function _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n },\n min: function min(_min, message) {\n if (message === void 0) {\n message = _locale.number.min;\n }\n\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n min: _min\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value >= this.resolve(_min);\n }\n });\n },\n max: function max(_max, message) {\n if (message === void 0) {\n message = _locale.number.max;\n }\n\n return this.test({\n message: message,\n name: 'max',\n exclusive: true,\n params: {\n max: _max\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value <= this.resolve(_max);\n }\n });\n },\n lessThan: function lessThan(less, message) {\n if (message === void 0) {\n message = _locale.number.lessThan;\n }\n\n return this.test({\n message: message,\n name: 'max',\n exclusive: true,\n params: {\n less: less\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value < this.resolve(less);\n }\n });\n },\n moreThan: function moreThan(more, message) {\n if (message === void 0) {\n message = _locale.number.moreThan;\n }\n\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n more: more\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value > this.resolve(more);\n }\n });\n },\n positive: function positive(msg) {\n if (msg === void 0) {\n msg = _locale.number.positive;\n }\n\n return this.moreThan(0, msg);\n },\n negative: function negative(msg) {\n if (msg === void 0) {\n msg = _locale.number.negative;\n }\n\n return this.lessThan(0, msg);\n },\n integer: function integer(message) {\n if (message === void 0) {\n message = _locale.number.integer;\n }\n\n return this.test({\n name: 'integer',\n message: message,\n test: isInteger\n });\n },\n truncate: function truncate() {\n return this.transform(function (value) {\n return !(0, _isAbsent.default)(value) ? value | 0 : value;\n });\n },\n round: function round(method) {\n var avail = ['ceil', 'floor', 'round', 'trunc'];\n method = method && method.toLowerCase() || 'round'; // this exists for symemtry with the new Math.trunc\n\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(function (value) {\n return !(0, _isAbsent.default)(value) ? Math[method](value) : value;\n });\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ObjectSchema;\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/taggedTemplateLiteralLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _snakeCase2 = _interopRequireDefault(require(\"lodash/snakeCase\"));\n\nvar _camelCase2 = _interopRequireDefault(require(\"lodash/camelCase\"));\n\nvar _mapKeys = _interopRequireDefault(require(\"lodash/mapKeys\"));\n\nvar _mapValues = _interopRequireDefault(require(\"lodash/mapValues\"));\n\nvar _propertyExpr = require(\"property-expr\");\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _locale = require(\"./locale.js\");\n\nvar _sortFields = _interopRequireDefault(require(\"./util/sortFields\"));\n\nvar _sortByKeyOrder = _interopRequireDefault(require(\"./util/sortByKeyOrder\"));\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _makePath = _interopRequireDefault(require(\"./util/makePath\"));\n\nvar _runValidations = _interopRequireWildcard(require(\"./util/runValidations\"));\n\nfunction _templateObject2() {\n var data = (0, _taggedTemplateLiteralLoose2.default)([\"\", \".\", \"\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = (0, _taggedTemplateLiteralLoose2.default)([\"\", \".\", \"\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nvar isObject = function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n};\n\nfunction unknown(ctx, value) {\n var known = Object.keys(ctx.fields);\n return Object.keys(value).filter(function (key) {\n return known.indexOf(key) === -1;\n });\n}\n\nfunction ObjectSchema(spec) {\n var _this2 = this;\n\n if (!(this instanceof ObjectSchema)) return new ObjectSchema(spec);\n\n _mixed.default.call(this, {\n type: 'object',\n default: function _default() {\n var _this = this;\n\n if (!this._nodes.length) return undefined;\n var dft = {};\n\n this._nodes.forEach(function (key) {\n dft[key] = _this.fields[key].default ? _this.fields[key].default() : undefined;\n });\n\n return dft;\n }\n });\n\n this.fields = Object.create(null);\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(function () {\n _this2.transform(function coerce(value) {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch (err) {\n value = null;\n }\n }\n\n if (this.isType(value)) return value;\n return null;\n });\n\n if (spec) {\n _this2.shape(spec);\n }\n });\n}\n\n(0, _inherits.default)(ObjectSchema, _mixed.default, {\n _typeCheck: function _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n },\n _cast: function _cast(_value, options) {\n var _this3 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var value = _mixed.default.prototype._cast.call(this, _value, options); //should ignore nulls here\n\n\n if (value === undefined) return this.default();\n if (!this._typeCheck(value)) return value;\n var fields = this.fields;\n var strip = this._option('stripUnknown', options) === true;\n\n var props = this._nodes.concat(Object.keys(value).filter(function (v) {\n return _this3._nodes.indexOf(v) === -1;\n }));\n\n var intermediateValue = {}; // is filled during the transform below\n\n var innerOptions = (0, _extends2.default)({}, options, {\n parent: intermediateValue,\n __validating: false\n });\n var isChanged = false;\n props.forEach(function (prop) {\n var field = fields[prop];\n var exists = (0, _has.default)(value, prop);\n\n if (field) {\n var fieldValue;\n var strict = field._options && field._options.strict; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (0, _makePath.default)(_templateObject(), options.path, prop);\n innerOptions.value = value[prop];\n field = field.resolve(innerOptions);\n\n if (field._strip === true) {\n isChanged = isChanged || prop in value;\n return;\n }\n\n fieldValue = !options.__validating || !strict ? field.cast(value[prop], innerOptions) : value[prop];\n if (fieldValue !== undefined) intermediateValue[prop] = fieldValue;\n } else if (exists && !strip) intermediateValue[prop] = value[prop];\n\n if (intermediateValue[prop] !== value[prop]) isChanged = true;\n });\n return isChanged ? intermediateValue : value;\n },\n _validate: function _validate(_value, opts) {\n var _this4 = this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n var endEarly, recursive;\n var sync = opts.sync;\n var errors = [];\n var originalValue = opts.originalValue != null ? opts.originalValue : _value;\n endEarly = this._option('abortEarly', opts);\n recursive = this._option('recursive', opts);\n opts = (0, _extends2.default)({}, opts, {\n __validating: true,\n originalValue: originalValue\n });\n return _mixed.default.prototype._validate.call(this, _value, opts).catch((0, _runValidations.propagateErrors)(endEarly, errors)).then(function (value) {\n if (!recursive || !isObject(value)) {\n // only iterate though actual objects\n if (errors.length) throw errors[0];\n return value;\n }\n\n originalValue = originalValue || value;\n\n var validations = _this4._nodes.map(function (key) {\n var path = (0, _makePath.default)(_templateObject2(), opts.path, key);\n var field = _this4.fields[key];\n var innerOptions = (0, _extends2.default)({}, opts, {\n path: path,\n parent: value,\n originalValue: originalValue[key]\n });\n\n if (field && field.validate) {\n // inner fields are always strict:\n // 1. this isn't strict so the casting will also have cast inner values\n // 2. this is strict in which case the nested values weren't cast either\n innerOptions.strict = true;\n return field.validate(value[key], innerOptions);\n }\n\n return Promise.resolve(true);\n });\n\n return (0, _runValidations.default)({\n sync: sync,\n validations: validations,\n value: value,\n errors: errors,\n endEarly: endEarly,\n path: opts.path,\n sort: (0, _sortByKeyOrder.default)(_this4.fields)\n });\n });\n },\n concat: function concat(schema) {\n var next = _mixed.default.prototype.concat.call(this, schema);\n\n next._nodes = (0, _sortFields.default)(next.fields, next._excludedEdges);\n return next;\n },\n shape: function shape(schema, excludes) {\n if (excludes === void 0) {\n excludes = [];\n }\n\n var next = this.clone();\n var fields = (0, _extends2.default)(next.fields, schema);\n next.fields = fields;\n\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n var keys = excludes.map(function (_ref) {\n var first = _ref[0],\n second = _ref[1];\n return first + \"-\" + second;\n });\n next._excludedEdges = next._excludedEdges.concat(keys);\n }\n\n next._nodes = (0, _sortFields.default)(fields, next._excludedEdges);\n return next;\n },\n from: function from(_from, to, alias) {\n var fromGetter = (0, _propertyExpr.getter)(_from, true);\n return this.transform(function (obj) {\n if (obj == null) return obj;\n var newObj = obj;\n\n if ((0, _has.default)(obj, _from)) {\n newObj = (0, _extends2.default)({}, obj);\n if (!alias) delete newObj[_from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n },\n noUnknown: function noUnknown(noAllow, message) {\n if (noAllow === void 0) {\n noAllow = true;\n }\n\n if (message === void 0) {\n message = _locale.object.noUnknown;\n }\n\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n var next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test: function test(value) {\n return value == null || !noAllow || unknown(this.schema, value).length === 0;\n }\n });\n next._options.stripUnknown = noAllow;\n return next;\n },\n unknown: function unknown(allow, message) {\n if (allow === void 0) {\n allow = true;\n }\n\n if (message === void 0) {\n message = _locale.object.noUnknown;\n }\n\n return this.noUnknown(!allow, message);\n },\n transformKeys: function transformKeys(fn) {\n return this.transform(function (obj) {\n return obj && (0, _mapKeys.default)(obj, function (_, key) {\n return fn(key);\n });\n });\n },\n camelCase: function camelCase() {\n return this.transformKeys(_camelCase2.default);\n },\n snakeCase: function snakeCase() {\n return this.transformKeys(_snakeCase2.default);\n },\n constantCase: function constantCase() {\n return this.transformKeys(function (key) {\n return (0, _snakeCase2.default)(key).toUpperCase();\n });\n },\n describe: function describe() {\n var base = _mixed.default.prototype.describe.call(this);\n\n base.fields = (0, _mapValues.default)(this.fields, function (value) {\n return value.describe();\n });\n return base;\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = setLocale;\n\nvar _locale = _interopRequireDefault(require(\"./locale\"));\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(function (type) {\n Object.keys(custom[type]).forEach(function (method) {\n _locale.default[type][method] = custom[type][method];\n });\n });\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = StringSchema;\n\nvar _inherits = _interopRequireDefault(require(\"./util/inherits\"));\n\nvar _mixed = _interopRequireDefault(require(\"./mixed\"));\n\nvar _locale = require(\"./locale\");\n\nvar _isAbsent = _interopRequireDefault(require(\"./util/isAbsent\")); // eslint-disable-next-line\n\n\nvar rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nvar rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\nvar isTrimmed = function isTrimmed(value) {\n return (0, _isAbsent.default)(value) || value === value.trim();\n};\n\nfunction StringSchema() {\n var _this = this;\n\n if (!(this instanceof StringSchema)) return new StringSchema();\n\n _mixed.default.call(this, {\n type: 'string'\n });\n\n this.withMutation(function () {\n _this.transform(function (value) {\n if (this.isType(value)) return value;\n return value != null && value.toString ? value.toString() : value;\n });\n });\n}\n\n(0, _inherits.default)(StringSchema, _mixed.default, {\n _typeCheck: function _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n },\n _isPresent: function _isPresent(value) {\n return _mixed.default.prototype._cast.call(this, value) && value.length > 0;\n },\n length: function length(_length, message) {\n if (message === void 0) {\n message = _locale.string.length;\n }\n\n return this.test({\n message: message,\n name: 'length',\n exclusive: true,\n params: {\n length: _length\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value.length === this.resolve(_length);\n }\n });\n },\n min: function min(_min, message) {\n if (message === void 0) {\n message = _locale.string.min;\n }\n\n return this.test({\n message: message,\n name: 'min',\n exclusive: true,\n params: {\n min: _min\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value.length >= this.resolve(_min);\n }\n });\n },\n max: function max(_max, message) {\n if (message === void 0) {\n message = _locale.string.max;\n }\n\n return this.test({\n name: 'max',\n exclusive: true,\n message: message,\n params: {\n max: _max\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value.length <= this.resolve(_max);\n }\n });\n },\n matches: function matches(regex, options) {\n var excludeEmptyString = false;\n var message;\n\n if (options) {\n if (options.message || options.hasOwnProperty('excludeEmptyString')) {\n excludeEmptyString = options.excludeEmptyString;\n message = options.message;\n } else message = options;\n }\n\n return this.test({\n message: message || _locale.string.matches,\n params: {\n regex: regex\n },\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value === '' && excludeEmptyString || regex.test(value);\n }\n });\n },\n email: function email(message) {\n if (message === void 0) {\n message = _locale.string.email;\n }\n\n return this.matches(rEmail, {\n message: message,\n excludeEmptyString: true\n });\n },\n url: function url(message) {\n if (message === void 0) {\n message = _locale.string.url;\n }\n\n return this.matches(rUrl, {\n message: message,\n excludeEmptyString: true\n });\n },\n //-- transforms --\n ensure: function ensure() {\n return this.default('').transform(function (val) {\n return val === null ? '' : val;\n });\n },\n trim: function trim(message) {\n if (message === void 0) {\n message = _locale.string.trim;\n }\n\n return this.transform(function (val) {\n return val != null ? val.trim() : val;\n }).test({\n message: message,\n name: 'trim',\n test: isTrimmed\n });\n },\n lowercase: function lowercase(message) {\n if (message === void 0) {\n message = _locale.string.lowercase;\n }\n\n return this.transform(function (value) {\n return !(0, _isAbsent.default)(value) ? value.toLowerCase() : value;\n }).test({\n message: message,\n name: 'string_case',\n exclusive: true,\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value === value.toLowerCase();\n }\n });\n },\n uppercase: function uppercase(message) {\n if (message === void 0) {\n message = _locale.string.uppercase;\n }\n\n return this.transform(function (value) {\n return !(0, _isAbsent.default)(value) ? value.toUpperCase() : value;\n }).test({\n message: message,\n name: 'string_case',\n exclusive: true,\n test: function test(value) {\n return (0, _isAbsent.default)(value) || value === value.toUpperCase();\n }\n });\n }\n});\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.createErrorFactory = createErrorFactory;\nexports.default = createValidation;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _mapValues = _interopRequireDefault(require(\"lodash/mapValues\"));\n\nvar _ValidationError = _interopRequireDefault(require(\"../ValidationError\"));\n\nvar _Reference = _interopRequireDefault(require(\"../Reference\"));\n\nvar _synchronousPromise = require(\"synchronous-promise\");\n\nvar formatError = _ValidationError.default.formatError;\n\nvar thenable = function thenable(p) {\n return p && typeof p.then === 'function' && typeof p.catch === 'function';\n};\n\nfunction runTest(testFn, ctx, value, sync) {\n var result = testFn.call(ctx, value);\n if (!sync) return Promise.resolve(result);\n\n if (thenable(result)) {\n throw new Error(\"Validation test of type: \\\"\" + ctx.type + \"\\\" returned a Promise during a synchronous validate. \" + \"This test will finish after the validate call has returned\");\n }\n\n return _synchronousPromise.SynchronousPromise.resolve(result);\n}\n\nfunction resolveParams(oldParams, newParams, resolve) {\n return (0, _mapValues.default)((0, _extends2.default)({}, oldParams, newParams), resolve);\n}\n\nfunction createErrorFactory(_ref) {\n var value = _ref.value,\n label = _ref.label,\n resolve = _ref.resolve,\n originalValue = _ref.originalValue,\n opts = (0, _objectWithoutPropertiesLoose2.default)(_ref, [\"value\", \"label\", \"resolve\", \"originalValue\"]);\n return function createError(_temp) {\n var _ref2 = _temp === void 0 ? {} : _temp,\n _ref2$path = _ref2.path,\n path = _ref2$path === void 0 ? opts.path : _ref2$path,\n _ref2$message = _ref2.message,\n message = _ref2$message === void 0 ? opts.message : _ref2$message,\n _ref2$type = _ref2.type,\n type = _ref2$type === void 0 ? opts.name : _ref2$type,\n params = _ref2.params;\n\n params = (0, _extends2.default)({\n path: path,\n value: value,\n originalValue: originalValue,\n label: label\n }, resolveParams(opts.params, params, resolve));\n return (0, _extends2.default)(new _ValidationError.default(formatError(message, params), value, path, type), {\n params: params\n });\n };\n}\n\nfunction createValidation(options) {\n var name = options.name,\n message = options.message,\n test = options.test,\n params = options.params;\n\n function validate(_ref3) {\n var value = _ref3.value,\n path = _ref3.path,\n label = _ref3.label,\n options = _ref3.options,\n originalValue = _ref3.originalValue,\n sync = _ref3.sync,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_ref3, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n var parent = options.parent;\n\n var resolve = function resolve(item) {\n return _Reference.default.isRef(item) ? item.getValue({\n value: value,\n parent: parent,\n context: options.context\n }) : item;\n };\n\n var createError = createErrorFactory({\n message: message,\n path: path,\n value: value,\n originalValue: originalValue,\n params: params,\n label: label,\n resolve: resolve,\n name: name\n });\n var ctx = (0, _extends2.default)({\n path: path,\n parent: parent,\n type: name,\n createError: createError,\n resolve: resolve,\n options: options\n }, rest);\n return runTest(test, ctx, value, sync).then(function (validOrError) {\n if (_ValidationError.default.isError(validOrError)) throw validOrError;else if (!validOrError) throw createError();\n });\n }\n\n validate.OPTIONS = options;\n return validate;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = inherits;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nfunction inherits(ctor, superCtor, spec) {\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n (0, _extends2.default)(ctor.prototype, spec);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _default = function _default(value) {\n return value == null;\n};\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _default = function _default(obj) {\n return obj && obj.__isYupSchema__;\n};\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = parseIsoDate;\n/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\n\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\n\nfunction parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) {\n struct[k] = +struct[k] || 0;\n } // allow undefined days and months\n\n\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n return timestamp;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = makePath;\n\nfunction makePath(strings) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n var path = strings.reduce(function (str, next) {\n var value = values.shift();\n return str + (value == null ? '' : value) + next;\n });\n return path.replace(/^\\./, '');\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = prependDeep;\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./isSchema\"));\n\nvar isObject = function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n};\n\nfunction prependDeep(target, source) {\n for (var key in source) {\n if ((0, _has.default)(source, key)) {\n var sourceVal = source[key],\n targetVal = target[key];\n\n if (targetVal === undefined) {\n target[key] = sourceVal;\n } else if (targetVal === sourceVal) {\n continue;\n } else if ((0, _isSchema.default)(targetVal)) {\n if ((0, _isSchema.default)(sourceVal)) target[key] = sourceVal.concat(targetVal);\n } else if (isObject(targetVal)) {\n if (isObject(sourceVal)) target[key] = prependDeep(targetVal, sourceVal);\n } else if (Array.isArray(targetVal)) {\n if (Array.isArray(sourceVal)) target[key] = sourceVal.concat(targetVal);\n }\n }\n }\n\n return target;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = printValue;\nvar toString = Object.prototype.toString;\nvar errorToString = Error.prototype.toString;\nvar regExpToString = RegExp.prototype.toString;\nvar symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : function () {\n return '';\n};\nvar SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n var isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings) {\n if (quoteStrings === void 0) {\n quoteStrings = false;\n }\n\n if (val == null || val === true || val === false) return '' + val;\n var typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? \"\\\"\" + val + \"\\\"\" : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n var tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nfunction printValue(value, quoteStrings) {\n var result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n var result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.getIn = getIn;\nexports.default = void 0;\n\nvar _propertyExpr = require(\"property-expr\");\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar trim = function trim(part) {\n return part.substr(0, part.length - 1).substr(1);\n};\n\nfunction getIn(schema, path, value, context) {\n var parent, lastPart, lastPartDebug; // if only one \"value\" arg then use it for both\n\n context = context || value;\n if (!path) return {\n parent: parent,\n parentPath: path,\n schema: schema\n };\n (0, _propertyExpr.forEach)(path, function (_part, isBracket, isArray) {\n var part = isBracket ? trim(_part) : _part;\n\n if (isArray || (0, _has.default)(schema, '_subType')) {\n // we skipped an array: foo[].bar\n var idx = isArray ? parseInt(part, 10) : 0;\n schema = schema.resolve({\n context: context,\n parent: parent,\n value: value\n })._subType;\n\n if (value) {\n if (isArray && idx >= value.length) {\n throw new Error(\"Yup.reach cannot resolve an array item at index: \" + _part + \", in the path: \" + path + \". \" + \"because there is no value at that index. \");\n }\n\n value = value[idx];\n }\n }\n\n if (!isArray) {\n schema = schema.resolve({\n context: context,\n parent: parent,\n value: value\n });\n if (!(0, _has.default)(schema, 'fields') || !(0, _has.default)(schema.fields, part)) throw new Error(\"The schema does not contain the path: \" + path + \". \" + (\"(failed at: \" + lastPartDebug + \" which is a type: \\\"\" + schema._type + \"\\\") \"));\n schema = schema.fields[part];\n parent = value;\n value = value && value[part];\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n }\n });\n return {\n schema: schema,\n parent: parent,\n parentPath: lastPart\n };\n}\n\nvar reach = function reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n};\n\nvar _default = reach;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.propagateErrors = propagateErrors;\nexports.settled = settled;\nexports.collectErrors = collectErrors;\nexports.default = runValidations;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _synchronousPromise = require(\"synchronous-promise\");\n\nvar _ValidationError = _interopRequireDefault(require(\"../ValidationError\"));\n\nvar promise = function promise(sync) {\n return sync ? _synchronousPromise.SynchronousPromise : Promise;\n};\n\nvar unwrapError = function unwrapError(errors) {\n if (errors === void 0) {\n errors = [];\n }\n\n return errors.inner && errors.inner.length ? errors.inner : [].concat(errors);\n};\n\nfunction scopeToValue(promises, value, sync) {\n //console.log('scopeToValue', promises, value)\n var p = promise(sync).all(promises); //console.log('scopeToValue B', p)\n\n var b = p.catch(function (err) {\n if (err.name === 'ValidationError') err.value = value;\n throw err;\n }); //console.log('scopeToValue c', b)\n\n var c = b.then(function () {\n return value;\n }); //console.log('scopeToValue d', c)\n\n return c;\n}\n/**\n * If not failing on the first error, catch the errors\n * and collect them in an array\n */\n\n\nfunction propagateErrors(endEarly, errors) {\n return endEarly ? null : function (err) {\n errors.push(err);\n return err.value;\n };\n}\n\nfunction settled(promises, sync) {\n var Promise = promise(sync);\n return Promise.all(promises.map(function (p) {\n return Promise.resolve(p).then(function (value) {\n return {\n fulfilled: true,\n value: value\n };\n }, function (value) {\n return {\n fulfilled: false,\n value: value\n };\n });\n }));\n}\n\nfunction collectErrors(_ref) {\n var validations = _ref.validations,\n value = _ref.value,\n path = _ref.path,\n sync = _ref.sync,\n errors = _ref.errors,\n sort = _ref.sort;\n errors = unwrapError(errors);\n return settled(validations, sync).then(function (results) {\n var nestedErrors = results.filter(function (r) {\n return !r.fulfilled;\n }).reduce(function (arr, _ref2) {\n var error = _ref2.value; // we are only collecting validation errors\n\n if (!_ValidationError.default.isError(error)) {\n throw error;\n }\n\n return arr.concat(error);\n }, []);\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n errors = nestedErrors.concat(errors);\n if (errors.length) throw new _ValidationError.default(errors, value, path);\n return value;\n });\n}\n\nfunction runValidations(_ref3) {\n var endEarly = _ref3.endEarly,\n options = (0, _objectWithoutPropertiesLoose2.default)(_ref3, [\"endEarly\"]);\n if (endEarly) return scopeToValue(options.validations, options.value, options.sync);\n return collectErrors(options);\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = sortByKeyOrder;\n\nfunction findIndex(arr, err) {\n var idx = Infinity;\n arr.some(function (key, ii) {\n if (err.path.indexOf(key) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nfunction sortByKeyOrder(fields) {\n var keys = Object.keys(fields);\n return function (a, b) {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = sortFields;\n\nvar _has = _interopRequireDefault(require(\"lodash/has\"));\n\nvar _toposort = _interopRequireDefault(require(\"toposort\"));\n\nvar _propertyExpr = require(\"property-expr\");\n\nvar _Reference = _interopRequireDefault(require(\"../Reference\"));\n\nvar _isSchema = _interopRequireDefault(require(\"./isSchema\"));\n\nfunction sortFields(fields, excludes) {\n if (excludes === void 0) {\n excludes = [];\n }\n\n var edges = [],\n nodes = [];\n\n function addNode(depPath, key) {\n var node = (0, _propertyExpr.split)(depPath)[0];\n if (!~nodes.indexOf(node)) nodes.push(node);\n if (!~excludes.indexOf(key + \"-\" + node)) edges.push([key, node]);\n }\n\n for (var key in fields) {\n if ((0, _has.default)(fields, key)) {\n var value = fields[key];\n if (!~nodes.indexOf(key)) nodes.push(key);\n if (_Reference.default.isRef(value) && value.isSibling) addNode(value.path, key);else if ((0, _isSchema.default)(value) && value._deps) value._deps.forEach(function (path) {\n return addNode(path, key);\n });\n }\n }\n\n return _toposort.default.array(nodes, edges).reverse();\n}\n\nmodule.exports = exports[\"default\"];","// easing functions from \"Tween.js\"\nexports.linear = function (n) {\n return n;\n};\n\nexports.inQuad = function (n) {\n return n * n;\n};\n\nexports.outQuad = function (n) {\n return n * (2 - n);\n};\n\nexports.inOutQuad = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n;\n return -0.5 * (--n * (n - 2) - 1);\n};\n\nexports.inCube = function (n) {\n return n * n * n;\n};\n\nexports.outCube = function (n) {\n return --n * n * n + 1;\n};\n\nexports.inOutCube = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n;\n return 0.5 * ((n -= 2) * n * n + 2);\n};\n\nexports.inQuart = function (n) {\n return n * n * n * n;\n};\n\nexports.outQuart = function (n) {\n return 1 - --n * n * n * n;\n};\n\nexports.inOutQuart = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n;\n return -0.5 * ((n -= 2) * n * n * n - 2);\n};\n\nexports.inQuint = function (n) {\n return n * n * n * n * n;\n};\n\nexports.outQuint = function (n) {\n return --n * n * n * n * n + 1;\n};\n\nexports.inOutQuint = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n * n;\n return 0.5 * ((n -= 2) * n * n * n * n + 2);\n};\n\nexports.inSine = function (n) {\n return 1 - Math.cos(n * Math.PI / 2);\n};\n\nexports.outSine = function (n) {\n return Math.sin(n * Math.PI / 2);\n};\n\nexports.inOutSine = function (n) {\n return .5 * (1 - Math.cos(Math.PI * n));\n};\n\nexports.inExpo = function (n) {\n return 0 == n ? 0 : Math.pow(1024, n - 1);\n};\n\nexports.outExpo = function (n) {\n return 1 == n ? n : 1 - Math.pow(2, -10 * n);\n};\n\nexports.inOutExpo = function (n) {\n if (0 == n) return 0;\n if (1 == n) return 1;\n if ((n *= 2) < 1) return .5 * Math.pow(1024, n - 1);\n return .5 * (-Math.pow(2, -10 * (n - 1)) + 2);\n};\n\nexports.inCirc = function (n) {\n return 1 - Math.sqrt(1 - n * n);\n};\n\nexports.outCirc = function (n) {\n return Math.sqrt(1 - --n * n);\n};\n\nexports.inOutCirc = function (n) {\n n *= 2;\n if (n < 1) return -0.5 * (Math.sqrt(1 - n * n) - 1);\n return 0.5 * (Math.sqrt(1 - (n -= 2) * n) + 1);\n};\n\nexports.inBack = function (n) {\n var s = 1.70158;\n return n * n * ((s + 1) * n - s);\n};\n\nexports.outBack = function (n) {\n var s = 1.70158;\n return --n * n * ((s + 1) * n + s) + 1;\n};\n\nexports.inOutBack = function (n) {\n var s = 1.70158 * 1.525;\n if ((n *= 2) < 1) return 0.5 * (n * n * ((s + 1) * n - s));\n return 0.5 * ((n -= 2) * n * ((s + 1) * n + s) + 2);\n};\n\nexports.inBounce = function (n) {\n return 1 - exports.outBounce(1 - n);\n};\n\nexports.outBounce = function (n) {\n if (n < 1 / 2.75) {\n return 7.5625 * n * n;\n } else if (n < 2 / 2.75) {\n return 7.5625 * (n -= 1.5 / 2.75) * n + 0.75;\n } else if (n < 2.5 / 2.75) {\n return 7.5625 * (n -= 2.25 / 2.75) * n + 0.9375;\n } else {\n return 7.5625 * (n -= 2.625 / 2.75) * n + 0.984375;\n }\n};\n\nexports.inOutBounce = function (n) {\n if (n < .5) return exports.inBounce(n * 2) * .5;\n return exports.outBounce(n * 2 - 1) * .5 + .5;\n};\n\nexports.inElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n return -(a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p));\n};\n\nexports.outElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n return a * Math.pow(2, -10 * n) * Math.sin((n - s) * (2 * Math.PI) / p) + 1;\n};\n\nexports.inOutElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n if ((n *= 2) < 1) return -0.5 * (a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p));\n return a * Math.pow(2, -10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p) * 0.5 + 1;\n}; // aliases\n\n\nexports['in-quad'] = exports.inQuad;\nexports['out-quad'] = exports.outQuad;\nexports['in-out-quad'] = exports.inOutQuad;\nexports['in-cube'] = exports.inCube;\nexports['out-cube'] = exports.outCube;\nexports['in-out-cube'] = exports.inOutCube;\nexports['in-quart'] = exports.inQuart;\nexports['out-quart'] = exports.outQuart;\nexports['in-out-quart'] = exports.inOutQuart;\nexports['in-quint'] = exports.inQuint;\nexports['out-quint'] = exports.outQuint;\nexports['in-out-quint'] = exports.inOutQuint;\nexports['in-sine'] = exports.inSine;\nexports['out-sine'] = exports.outSine;\nexports['in-out-sine'] = exports.inOutSine;\nexports['in-expo'] = exports.inExpo;\nexports['out-expo'] = exports.outExpo;\nexports['in-out-expo'] = exports.inOutExpo;\nexports['in-circ'] = exports.inCirc;\nexports['out-circ'] = exports.outCirc;\nexports['in-out-circ'] = exports.inOutCirc;\nexports['in-back'] = exports.inBack;\nexports['out-back'] = exports.outBack;\nexports['in-out-back'] = exports.inOutBack;\nexports['in-bounce'] = exports.inBounce;\nexports['out-bounce'] = exports.outBounce;\nexports['in-out-bounce'] = exports.inOutBounce;\nexports['in-elastic'] = exports.inElastic;\nexports['out-elastic'] = exports.outElastic;\nexports['in-out-elastic'] = exports.inOutElastic;","function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n;\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n\n return obj;\n}\n\nEmitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);\n return this;\n};\n\nEmitter.prototype.once = function (event, fn) {\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\nEmitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {}; // all\n\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n } // specific event\n\n\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this; // remove all handlers\n\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n } // remove specific handler\n\n\n var cb;\n\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n } // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n\n\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\nEmitter.prototype.emit = function (event) {\n this._callbacks = this._callbacks || {};\n var args = [].slice.call(arguments, 1),\n callbacks = this._callbacks['$' + event];\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\nEmitter.prototype.listeners = function (event) {\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\nEmitter.prototype.hasListeners = function (event) {\n return !!this.listeners(event).length;\n};\n\nif (typeof module !== 'undefined') {\n module.exports = Emitter;\n}","var scroll = require('./scroll-to');\n\nfunction calculateScrollOffset(elem, additionalOffset, alignment) {\n var body = document.body,\n html = document.documentElement;\n var elemRect = elem.getBoundingClientRect();\n var clientHeight = html.clientHeight;\n var documentHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n additionalOffset = additionalOffset || 0;\n var scrollPosition;\n\n if (alignment === 'bottom') {\n scrollPosition = elemRect.bottom - clientHeight;\n } else if (alignment === 'middle') {\n scrollPosition = elemRect.bottom - clientHeight / 2 - elemRect.height / 2;\n } else {\n // top and default\n scrollPosition = elemRect.top;\n }\n\n var maxScrollPosition = documentHeight - clientHeight;\n return Math.min(scrollPosition + additionalOffset + window.pageYOffset, maxScrollPosition);\n}\n\nmodule.exports = function (elem, options) {\n options = options || {};\n if (typeof elem === 'string') elem = document.querySelector(elem);\n if (elem) return scroll(0, calculateScrollOffset(elem, options.offset, options.align), options);\n};","var Tween = require('./tween');\n\nvar raf = require('raf');\n\nfunction scroll() {\n var y = window.pageYOffset || document.documentElement.scrollTop;\n var x = window.pageXOffset || document.documentElement.scrollLeft;\n return {\n top: y,\n left: x\n };\n}\n\nfunction scrollTo(x, y, options) {\n options = options || {}; // start position\n\n var start = scroll(); // setup tween\n\n var tween = Tween(start).ease(options.ease || 'out-circ').to({\n top: y,\n left: x\n }).duration(options.duration || 1000); // scroll\n\n tween.update(function (o) {\n window.scrollTo(o.left | 0, o.top | 0);\n }); // handle end\n\n tween.on('end', function () {\n animate = function animate() {};\n }); // animate\n\n function animate() {\n raf(animate);\n tween.update();\n }\n\n animate();\n return tween;\n}\n\nmodule.exports = scrollTo;","var ease = require('./ease');\n\nvar Emitter = require('./emitter');\n\nfunction extend(obj, src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) obj[key] = src[key];\n }\n\n return obj;\n}\n\nfunction Tween(obj) {\n if (!(this instanceof Tween)) return new Tween(obj);\n this._from = obj;\n this.ease('linear');\n this.duration(500);\n}\n\nEmitter(Tween.prototype);\n\nTween.prototype.reset = function () {\n this.isArray = Object.prototype.toString.call(this._from) === '[object Array]';\n this._curr = extend({}, this._from);\n this._done = false;\n this._start = Date.now();\n return this;\n};\n\nTween.prototype.to = function (obj) {\n this.reset();\n this._to = obj;\n return this;\n};\n\nTween.prototype.duration = function (ms) {\n this._duration = ms;\n return this;\n};\n\nTween.prototype.ease = function (fn) {\n fn = 'function' == typeof fn ? fn : ease[fn];\n if (!fn) throw new TypeError('invalid easing function');\n this._ease = fn;\n return this;\n};\n\nTween.prototype.stop = function () {\n this.stopped = true;\n this._done = true;\n this.emit('stop');\n this.emit('end');\n return this;\n};\n\nTween.prototype.step = function () {\n if (this._done) return;\n var duration = this._duration;\n var now = Date.now();\n var delta = now - this._start;\n var done = delta >= duration;\n\n if (done) {\n this._from = this._to;\n\n this._update(this._to);\n\n this._done = true;\n this.emit('end');\n return this;\n }\n\n var from = this._from;\n var to = this._to;\n var curr = this._curr;\n var fn = this._ease;\n var p = (now - this._start) / duration;\n var n = fn(p);\n\n if (this.isArray) {\n for (var i = 0; i < from.length; ++i) {\n curr[i] = from[i] + (to[i] - from[i]) * n;\n }\n\n this._update(curr);\n\n return this;\n }\n\n for (var k in from) {\n curr[k] = from[k] + (to[k] - from[k]) * n;\n }\n\n this._update(curr);\n\n return this;\n};\n\nTween.prototype.update = function (fn) {\n if (0 == arguments.length) return this.step();\n this._update = fn;\n return this;\n};\n\nmodule.exports = Tween;","var hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nvar numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/; // const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\nvar consider = {\n hex: true,\n leadingZeros: true,\n decimalPoint: \"\\.\" //skipLike: /regex/\n\n};\n\nfunction toNumber(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // const options = Object.assign({}, consider);\n // if(opt.leadingZeros === false){\n // options.leadingZeros = false;\n // }else if(opt.hex === false){\n // options.hex = false;\n // }\n options = Object.assign({}, consider, options);\n if (!str || typeof str !== \"string\") return str;\n var trimmedStr = str.trim();\n if (options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16); // } else if (options.parseOct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n } else {\n //separate negative sign, leading zeros, and rest number\n var match = numRegex.exec(trimmedStr);\n\n if (match) {\n var negative = match[1];\n var leadingZeros = match[2];\n var num = match[3]; //complete num\n\n var eNotation = match[4] || match[6];\n if (leadingZeros.length === 1 && num[0] === \".\") return Number(str);else if (!options.leadingZeros && leadingZeros.length > 0) return str;else return Number(trimmedStr);\n } else {\n //non-numeric string\n return str;\n }\n }\n}\n\nmodule.exports = toNumber;","/* jshint node: true */\n\"use strict\";\n\nfunction makeArrayFrom(obj) {\n return Array.prototype.slice.apply(obj);\n}\n\nvar PENDING = \"pending\",\n RESOLVED = \"resolved\",\n REJECTED = \"rejected\";\n\nfunction SynchronousPromise(handler) {\n this.status = PENDING;\n this._continuations = [];\n this._parent = null;\n this._paused = false;\n\n if (handler) {\n handler.call(this, this._continueWith.bind(this), this._failWith.bind(this));\n }\n}\n\nfunction looksLikeAPromise(obj) {\n return obj && typeof obj.then === \"function\";\n}\n\nfunction passThrough(value) {\n return value;\n}\n\nSynchronousPromise.prototype = {\n then: function then(nextFn, catchFn) {\n var next = SynchronousPromise.unresolved()._setParent(this);\n\n if (this._isRejected()) {\n if (this._paused) {\n this._continuations.push({\n promise: next,\n nextFn: nextFn,\n catchFn: catchFn\n });\n\n return next;\n }\n\n if (catchFn) {\n try {\n var catchResult = catchFn(this._error);\n\n if (looksLikeAPromise(catchResult)) {\n this._chainPromiseData(catchResult, next);\n\n return next;\n } else {\n return SynchronousPromise.resolve(catchResult)._setParent(this);\n }\n } catch (e) {\n return SynchronousPromise.reject(e)._setParent(this);\n }\n }\n\n return SynchronousPromise.reject(this._error)._setParent(this);\n }\n\n this._continuations.push({\n promise: next,\n nextFn: nextFn,\n catchFn: catchFn\n });\n\n this._runResolutions();\n\n return next;\n },\n catch: function _catch(handler) {\n if (this._isResolved()) {\n return SynchronousPromise.resolve(this._data)._setParent(this);\n }\n\n var next = SynchronousPromise.unresolved()._setParent(this);\n\n this._continuations.push({\n promise: next,\n catchFn: handler\n });\n\n this._runRejections();\n\n return next;\n },\n finally: function _finally(callback) {\n var ran = false;\n\n function runFinally(result, err) {\n if (!ran) {\n ran = true;\n\n if (!callback) {\n callback = passThrough;\n }\n\n var callbackResult = callback(result);\n\n if (looksLikeAPromise(callbackResult)) {\n return callbackResult.then(function () {\n if (err) {\n throw err;\n }\n\n return result;\n });\n } else {\n return result;\n }\n }\n }\n\n return this.then(function (result) {\n return runFinally(result);\n }).catch(function (err) {\n return runFinally(null, err);\n });\n },\n pause: function pause() {\n this._paused = true;\n return this;\n },\n resume: function resume() {\n var firstPaused = this._findFirstPaused();\n\n if (firstPaused) {\n firstPaused._paused = false;\n\n firstPaused._runResolutions();\n\n firstPaused._runRejections();\n }\n\n return this;\n },\n _findAncestry: function _findAncestry() {\n return this._continuations.reduce(function (acc, cur) {\n if (cur.promise) {\n var node = {\n promise: cur.promise,\n children: cur.promise._findAncestry()\n };\n acc.push(node);\n }\n\n return acc;\n }, []);\n },\n _setParent: function _setParent(parent) {\n if (this._parent) {\n throw new Error(\"parent already set\");\n }\n\n this._parent = parent;\n return this;\n },\n _continueWith: function _continueWith(data) {\n var firstPending = this._findFirstPending();\n\n if (firstPending) {\n firstPending._data = data;\n\n firstPending._setResolved();\n }\n },\n _findFirstPending: function _findFirstPending() {\n return this._findFirstAncestor(function (test) {\n return test._isPending && test._isPending();\n });\n },\n _findFirstPaused: function _findFirstPaused() {\n return this._findFirstAncestor(function (test) {\n return test._paused;\n });\n },\n _findFirstAncestor: function _findFirstAncestor(matching) {\n var test = this;\n var result;\n\n while (test) {\n if (matching(test)) {\n result = test;\n }\n\n test = test._parent;\n }\n\n return result;\n },\n _failWith: function _failWith(error) {\n var firstRejected = this._findFirstPending();\n\n if (firstRejected) {\n firstRejected._error = error;\n\n firstRejected._setRejected();\n }\n },\n _takeContinuations: function _takeContinuations() {\n return this._continuations.splice(0, this._continuations.length);\n },\n _runRejections: function _runRejections() {\n if (this._paused || !this._isRejected()) {\n return;\n }\n\n var error = this._error,\n continuations = this._takeContinuations(),\n self = this;\n\n continuations.forEach(function (cont) {\n if (cont.catchFn) {\n try {\n var catchResult = cont.catchFn(error);\n\n self._handleUserFunctionResult(catchResult, cont.promise);\n } catch (e) {\n cont.promise.reject(e);\n }\n } else {\n cont.promise.reject(error);\n }\n });\n },\n _runResolutions: function _runResolutions() {\n if (this._paused || !this._isResolved() || this._isPending()) {\n return;\n }\n\n var continuations = this._takeContinuations();\n\n if (looksLikeAPromise(this._data)) {\n return this._handleWhenResolvedDataIsPromise(this._data);\n }\n\n var data = this._data;\n var self = this;\n continuations.forEach(function (cont) {\n if (cont.nextFn) {\n try {\n var result = cont.nextFn(data);\n\n self._handleUserFunctionResult(result, cont.promise);\n } catch (e) {\n self._handleResolutionError(e, cont);\n }\n } else if (cont.promise) {\n cont.promise.resolve(data);\n }\n });\n },\n _handleResolutionError: function _handleResolutionError(e, continuation) {\n this._setRejected();\n\n if (continuation.catchFn) {\n try {\n continuation.catchFn(e);\n return;\n } catch (e2) {\n e = e2;\n }\n }\n\n if (continuation.promise) {\n continuation.promise.reject(e);\n }\n },\n _handleWhenResolvedDataIsPromise: function _handleWhenResolvedDataIsPromise(data) {\n var self = this;\n return data.then(function (result) {\n self._data = result;\n\n self._runResolutions();\n }).catch(function (error) {\n self._error = error;\n\n self._setRejected();\n\n self._runRejections();\n });\n },\n _handleUserFunctionResult: function _handleUserFunctionResult(data, nextSynchronousPromise) {\n if (looksLikeAPromise(data)) {\n this._chainPromiseData(data, nextSynchronousPromise);\n } else {\n nextSynchronousPromise.resolve(data);\n }\n },\n _chainPromiseData: function _chainPromiseData(promiseData, nextSynchronousPromise) {\n promiseData.then(function (newData) {\n nextSynchronousPromise.resolve(newData);\n }).catch(function (newError) {\n nextSynchronousPromise.reject(newError);\n });\n },\n _setResolved: function _setResolved() {\n this.status = RESOLVED;\n\n if (!this._paused) {\n this._runResolutions();\n }\n },\n _setRejected: function _setRejected() {\n this.status = REJECTED;\n\n if (!this._paused) {\n this._runRejections();\n }\n },\n _isPending: function _isPending() {\n return this.status === PENDING;\n },\n _isResolved: function _isResolved() {\n return this.status === RESOLVED;\n },\n _isRejected: function _isRejected() {\n return this.status === REJECTED;\n }\n};\n\nSynchronousPromise.resolve = function (result) {\n return new SynchronousPromise(function (resolve, reject) {\n if (looksLikeAPromise(result)) {\n result.then(function (newResult) {\n resolve(newResult);\n }).catch(function (error) {\n reject(error);\n });\n } else {\n resolve(result);\n }\n });\n};\n\nSynchronousPromise.reject = function (result) {\n return new SynchronousPromise(function (resolve, reject) {\n reject(result);\n });\n};\n\nSynchronousPromise.unresolved = function () {\n return new SynchronousPromise(function (resolve, reject) {\n this.resolve = resolve;\n this.reject = reject;\n });\n};\n\nSynchronousPromise.all = function () {\n var args = makeArrayFrom(arguments);\n\n if (Array.isArray(args[0])) {\n args = args[0];\n }\n\n if (!args.length) {\n return SynchronousPromise.resolve([]);\n }\n\n return new SynchronousPromise(function (resolve, reject) {\n var allData = [],\n numResolved = 0,\n doResolve = function doResolve() {\n if (numResolved === args.length) {\n resolve(allData);\n }\n },\n rejected = false,\n doReject = function doReject(err) {\n if (rejected) {\n return;\n }\n\n rejected = true;\n reject(err);\n };\n\n args.forEach(function (arg, idx) {\n SynchronousPromise.resolve(arg).then(function (thisResult) {\n allData[idx] = thisResult;\n numResolved += 1;\n doResolve();\n }).catch(function (err) {\n doReject(err);\n });\n });\n });\n};\n\nfunction createAggregateErrorFrom(errors) {\n /* jshint ignore:start */\n if (typeof window !== \"undefined\" && \"AggregateError\" in window) {\n return new window.AggregateError(errors);\n }\n /* jshint ignore:end */\n\n\n return {\n errors: errors\n };\n}\n\nSynchronousPromise.any = function () {\n var args = makeArrayFrom(arguments);\n\n if (Array.isArray(args[0])) {\n args = args[0];\n }\n\n if (!args.length) {\n return SynchronousPromise.reject(createAggregateErrorFrom([]));\n }\n\n return new SynchronousPromise(function (resolve, reject) {\n var allErrors = [],\n numRejected = 0,\n doReject = function doReject() {\n if (numRejected === args.length) {\n reject(createAggregateErrorFrom(allErrors));\n }\n },\n resolved = false,\n doResolve = function doResolve(result) {\n if (resolved) {\n return;\n }\n\n resolved = true;\n resolve(result);\n };\n\n args.forEach(function (arg, idx) {\n SynchronousPromise.resolve(arg).then(function (thisResult) {\n doResolve(thisResult);\n }).catch(function (err) {\n allErrors[idx] = err;\n numRejected += 1;\n doReject();\n });\n });\n });\n};\n\nSynchronousPromise.allSettled = function () {\n var args = makeArrayFrom(arguments);\n\n if (Array.isArray(args[0])) {\n args = args[0];\n }\n\n if (!args.length) {\n return SynchronousPromise.resolve([]);\n }\n\n return new SynchronousPromise(function (resolve) {\n var allData = [],\n numSettled = 0,\n doSettled = function doSettled() {\n numSettled += 1;\n\n if (numSettled === args.length) {\n resolve(allData);\n }\n };\n\n args.forEach(function (arg, idx) {\n SynchronousPromise.resolve(arg).then(function (thisResult) {\n allData[idx] = {\n status: \"fulfilled\",\n value: thisResult\n };\n doSettled();\n }).catch(function (err) {\n allData[idx] = {\n status: \"rejected\",\n reason: err\n };\n doSettled();\n });\n });\n });\n};\n/* jshint ignore:start */\n\n\nif (Promise === SynchronousPromise) {\n throw new Error(\"Please use SynchronousPromise.installGlobally() to install globally\");\n}\n\nvar RealPromise = Promise;\n\nSynchronousPromise.installGlobally = function (__awaiter) {\n if (Promise === SynchronousPromise) {\n return __awaiter;\n }\n\n var result = patchAwaiterIfRequired(__awaiter);\n Promise = SynchronousPromise;\n return result;\n};\n\nSynchronousPromise.uninstallGlobally = function () {\n if (Promise === SynchronousPromise) {\n Promise = RealPromise;\n }\n};\n\nfunction patchAwaiterIfRequired(__awaiter) {\n if (typeof __awaiter === \"undefined\" || __awaiter.__patched) {\n return __awaiter;\n }\n\n var originalAwaiter = __awaiter;\n\n __awaiter = function __awaiter() {\n var Promise = RealPromise;\n originalAwaiter.apply(this, makeArrayFrom(arguments));\n };\n\n __awaiter.__patched = true;\n return __awaiter;\n}\n/* jshint ignore:end */\n\n\nmodule.exports = {\n SynchronousPromise: SynchronousPromise\n};","/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\nmodule.exports = function (edges) {\n return toposort(uniqueNodes(edges), edges);\n};\n\nmodule.exports.array = toposort;\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length,\n sorted = new Array(cursor),\n visited = {},\n i = cursor // Better data structures make algorithm much faster.\n ,\n outgoingEdges = makeOutgoingEdges(edges),\n nodesHash = makeNodesHash(nodes); // check for unknown nodes\n\n edges.forEach(function (edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.');\n }\n });\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set());\n }\n\n return sorted;\n\n function visit(node, i, predecessors) {\n if (predecessors.has(node)) {\n var nodeRep;\n\n try {\n nodeRep = \", node was:\" + JSON.stringify(node);\n } catch (e) {\n nodeRep = \"\";\n }\n\n throw new Error('Cyclic dependency' + nodeRep);\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: ' + JSON.stringify(node));\n }\n\n if (visited[i]) return;\n visited[i] = true;\n var outgoing = outgoingEdges.get(node) || new Set();\n outgoing = Array.from(outgoing);\n\n if (i = outgoing.length) {\n predecessors.add(node);\n\n do {\n var child = outgoing[--i];\n visit(child, nodesHash.get(child), predecessors);\n } while (i);\n\n predecessors.delete(node);\n }\n\n sorted[--cursor] = node;\n }\n}\n\nfunction uniqueNodes(arr) {\n var res = new Set();\n\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i];\n res.add(edge[0]);\n res.add(edge[1]);\n }\n\n return Array.from(res);\n}\n\nfunction makeOutgoingEdges(arr) {\n var edges = new Map();\n\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i];\n if (!edges.has(edge[0])) edges.set(edge[0], new Set());\n if (!edges.has(edge[1])) edges.set(edge[1], new Set());\n edges.get(edge[0]).add(edge[1]);\n }\n\n return edges;\n}\n\nfunction makeNodesHash(arr) {\n var res = new Map();\n\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i);\n }\n\n return res;\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\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 }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\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 || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n 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) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : 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],\n 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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\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) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /*jshint strict: false */\n\n /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['unipointer/unipointer'], function (Unipointer) {\n return factory(window, Unipointer);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('unipointer'));\n } else {\n // browser global\n window.Unidragger = factory(window, window.Unipointer);\n }\n})(window, function factory(window, Unipointer) {\n 'use strict'; // -------------------------- Unidragger -------------------------- //\n\n function Unidragger() {} // inherit Unipointer & EvEmitter\n\n\n var proto = Unidragger.prototype = Object.create(Unipointer.prototype); // ----- bind start ----- //\n\n proto.bindHandles = function () {\n this._bindHandles(true);\n };\n\n proto.unbindHandles = function () {\n this._bindHandles(false);\n };\n /**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\n\n\n proto._bindHandles = function (isAdd) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd; // bind each handle\n\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n\n for (var i = 0; i < this.handles.length; i++) {\n var handle = this.handles[i];\n\n this._bindStartEvent(handle, isAdd);\n\n handle[bindMethod]('click', this); // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n\n if (window.PointerEvent) {\n handle.style.touchAction = touchAction;\n }\n }\n }; // prototype so it can be overwriteable by Flickity\n\n\n proto._touchActionValue = 'none'; // ----- start event ----- //\n\n /**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n proto.pointerDown = function (event, pointer) {\n var isOkay = this.okayPointerDown(event);\n\n if (!isOkay) {\n return;\n } // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n\n\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY\n };\n event.preventDefault();\n this.pointerDownBlur(); // bind move and end events\n\n this._bindPostStartEvents(event);\n\n this.emitEvent('pointerDown', [event, pointer]);\n }; // nodes that have text fields\n\n\n var cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true\n }; // input types that do not have text fields\n\n var clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true\n }; // dismiss inputs with text fields. flickity#403, flickity#404\n\n proto.okayPointerDown = function (event) {\n var isCursorNode = cursorNodes[event.target.nodeName];\n var isClickType = clickTypes[event.target.type];\n var isOkay = !isCursorNode || isClickType;\n\n if (!isOkay) {\n this._pointerReset();\n }\n\n return isOkay;\n }; // kludge to blur previously focused input\n\n\n proto.pointerDownBlur = function () {\n var focused = document.activeElement; // do not blur body for IE10, metafizzy/flickity#117\n\n var canBlur = focused && focused.blur && focused != document.body;\n\n if (canBlur) {\n focused.blur();\n }\n }; // ----- move event ----- //\n\n /**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n\n proto.pointerMove = function (event, pointer) {\n var moveVector = this._dragPointerMove(event, pointer);\n\n this.emitEvent('pointerMove', [event, pointer, moveVector]);\n\n this._dragMove(event, pointer, moveVector);\n }; // base pointer move logic\n\n\n proto._dragPointerMove = function (event, pointer) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n }; // start drag if pointer has moved far enough to start drag\n\n if (!this.isDragging && this.hasDragStarted(moveVector)) {\n this._dragStart(event, pointer);\n }\n\n return moveVector;\n }; // condition if pointer has moved far enough to start drag\n\n\n proto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > 3 || Math.abs(moveVector.y) > 3;\n }; // ----- end event ----- //\n\n /**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n\n proto.pointerUp = function (event, pointer) {\n this.emitEvent('pointerUp', [event, pointer]);\n\n this._dragPointerUp(event, pointer);\n };\n\n proto._dragPointerUp = function (event, pointer) {\n if (this.isDragging) {\n this._dragEnd(event, pointer);\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick(event, pointer);\n }\n }; // -------------------------- drag -------------------------- //\n // dragStart\n\n\n proto._dragStart = function (event, pointer) {\n this.isDragging = true; // prevent clicks\n\n this.isPreventingClicks = true;\n this.dragStart(event, pointer);\n };\n\n proto.dragStart = function (event, pointer) {\n this.emitEvent('dragStart', [event, pointer]);\n }; // dragMove\n\n\n proto._dragMove = function (event, pointer, moveVector) {\n // do not drag if not dragging yet\n if (!this.isDragging) {\n return;\n }\n\n this.dragMove(event, pointer, moveVector);\n };\n\n proto.dragMove = function (event, pointer, moveVector) {\n event.preventDefault();\n this.emitEvent('dragMove', [event, pointer, moveVector]);\n }; // dragEnd\n\n\n proto._dragEnd = function (event, pointer) {\n // set flags\n this.isDragging = false; // re-enable clicking async\n\n setTimeout(function () {\n delete this.isPreventingClicks;\n }.bind(this));\n this.dragEnd(event, pointer);\n };\n\n proto.dragEnd = function (event, pointer) {\n this.emitEvent('dragEnd', [event, pointer]);\n }; // ----- onclick ----- //\n // handle all clicks and prevent clicks when dragging\n\n\n proto.onclick = function (event) {\n if (this.isPreventingClicks) {\n event.preventDefault();\n }\n }; // ----- staticClick ----- //\n // triggered after pointer down & up with no/tiny movement\n\n\n proto._staticClick = function (event, pointer) {\n // ignore emulated mouse up clicks\n if (this.isIgnoringMouseUp && event.type == 'mouseup') {\n return;\n }\n\n this.staticClick(event, pointer); // set flag for emulated clicks 300ms after touchend\n\n if (event.type != 'mouseup') {\n this.isIgnoringMouseUp = true; // reset flag after 300ms\n\n setTimeout(function () {\n delete this.isIgnoringMouseUp;\n }.bind(this), 400);\n }\n };\n\n proto.staticClick = function (event, pointer) {\n this.emitEvent('staticClick', [event, pointer]);\n }; // ----- utils ----- //\n\n\n Unidragger.getPointerPoint = Unipointer.getPointerPoint; // ----- ----- //\n\n return Unidragger;\n});","/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /*global define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter'], function (EvEmitter) {\n return factory(window, EvEmitter);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('ev-emitter'));\n } else {\n // browser global\n window.Unipointer = factory(window, window.EvEmitter);\n }\n})(window, function factory(window, EvEmitter) {\n 'use strict';\n\n function noop() {}\n\n function Unipointer() {} // inherit EvEmitter\n\n\n var proto = Unipointer.prototype = Object.create(EvEmitter.prototype);\n\n proto.bindStartEvent = function (elem) {\n this._bindStartEvent(elem, true);\n };\n\n proto.unbindStartEvent = function (elem) {\n this._bindStartEvent(elem, false);\n };\n /**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\n\n\n proto._bindStartEvent = function (elem, isAdd) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener'; // default to mouse events\n\n var startEvent = 'mousedown';\n\n if (window.PointerEvent) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ('ontouchstart' in window) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n\n elem[bindMethod](startEvent, this);\n }; // trigger handler methods for events\n\n\n proto.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n }; // returns the touch that we're keeping track of\n\n\n proto.getTouch = function (touches) {\n for (var i = 0; i < touches.length; i++) {\n var touch = touches[i];\n\n if (touch.identifier == this.pointerIdentifier) {\n return touch;\n }\n }\n }; // ----- start event ----- //\n\n\n proto.onmousedown = function (event) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n\n if (button && button !== 0 && button !== 1) {\n return;\n }\n\n this._pointerDown(event, event);\n };\n\n proto.ontouchstart = function (event) {\n this._pointerDown(event, event.changedTouches[0]);\n };\n\n proto.onpointerdown = function (event) {\n this._pointerDown(event, event);\n };\n /**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n\n proto._pointerDown = function (event, pointer) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if (event.button || this.isPointerDown) {\n return;\n }\n\n this.isPointerDown = true; // save pointer identifier to match up touch events\n\n this.pointerIdentifier = pointer.pointerId !== undefined ? // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n this.pointerDown(event, pointer);\n };\n\n proto.pointerDown = function (event, pointer) {\n this._bindPostStartEvents(event);\n\n this.emitEvent('pointerDown', [event, pointer]);\n }; // hash of events to be bound after start event\n\n\n var postStartEvents = {\n mousedown: ['mousemove', 'mouseup'],\n touchstart: ['touchmove', 'touchend', 'touchcancel'],\n pointerdown: ['pointermove', 'pointerup', 'pointercancel']\n };\n\n proto._bindPostStartEvents = function (event) {\n if (!event) {\n return;\n } // get proper events to match start event\n\n\n var events = postStartEvents[event.type]; // bind events to node\n\n events.forEach(function (eventName) {\n window.addEventListener(eventName, this);\n }, this); // save these arguments\n\n this._boundPointerEvents = events;\n };\n\n proto._unbindPostStartEvents = function () {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if (!this._boundPointerEvents) {\n return;\n }\n\n this._boundPointerEvents.forEach(function (eventName) {\n window.removeEventListener(eventName, this);\n }, this);\n\n delete this._boundPointerEvents;\n }; // ----- move event ----- //\n\n\n proto.onmousemove = function (event) {\n this._pointerMove(event, event);\n };\n\n proto.onpointermove = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerMove(event, event);\n }\n };\n\n proto.ontouchmove = function (event) {\n var touch = this.getTouch(event.changedTouches);\n\n if (touch) {\n this._pointerMove(event, touch);\n }\n };\n /**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\n\n\n proto._pointerMove = function (event, pointer) {\n this.pointerMove(event, pointer);\n }; // public\n\n\n proto.pointerMove = function (event, pointer) {\n this.emitEvent('pointerMove', [event, pointer]);\n }; // ----- end event ----- //\n\n\n proto.onmouseup = function (event) {\n this._pointerUp(event, event);\n };\n\n proto.onpointerup = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerUp(event, event);\n }\n };\n\n proto.ontouchend = function (event) {\n var touch = this.getTouch(event.changedTouches);\n\n if (touch) {\n this._pointerUp(event, touch);\n }\n };\n /**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\n\n\n proto._pointerUp = function (event, pointer) {\n this._pointerDone();\n\n this.pointerUp(event, pointer);\n }; // public\n\n\n proto.pointerUp = function (event, pointer) {\n this.emitEvent('pointerUp', [event, pointer]);\n }; // ----- pointer done ----- //\n // triggered on pointer up & pointer cancel\n\n\n proto._pointerDone = function () {\n this._pointerReset();\n\n this._unbindPostStartEvents();\n\n this.pointerDone();\n };\n\n proto._pointerReset = function () {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n };\n\n proto.pointerDone = noop; // ----- pointer cancel ----- //\n\n proto.onpointercancel = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerCancel(event, event);\n }\n };\n\n proto.ontouchcancel = function (event) {\n var touch = this.getTouch(event.changedTouches);\n\n if (touch) {\n this._pointerCancel(event, touch);\n }\n };\n /**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\n\n\n proto._pointerCancel = function (event, pointer) {\n this._pointerDone();\n\n this.pointerCancel(event, pointer);\n }; // public\n\n\n proto.pointerCancel = function (event, pointer) {\n this.emitEvent('pointerCancel', [event, pointer]);\n }; // ----- ----- //\n // utility function for getting x/y coords from event\n\n\n Unipointer.getPointerPoint = function (pointer) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n }; // ----- ----- //\n\n\n return Unipointer;\n});","\"use strict\";\n\nfunction unique_pred(list, compare) {\n var ptr = 1,\n len = list.length,\n a = list[0],\n b = list[0];\n\n for (var i = 1; i < len; ++i) {\n b = a;\n a = list[i];\n\n if (compare(a, b)) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n\n list[ptr++] = a;\n }\n }\n\n list.length = ptr;\n return list;\n}\n\nfunction unique_eq(list) {\n var ptr = 1,\n len = list.length,\n a = list[0],\n b = list[0];\n\n for (var i = 1; i < len; ++i, b = a) {\n b = a;\n a = list[i];\n\n if (a !== b) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n\n list[ptr++] = a;\n }\n }\n\n list.length = ptr;\n return list;\n}\n\nfunction unique(list, compare, sorted) {\n if (list.length === 0) {\n return list;\n }\n\n if (compare) {\n if (!sorted) {\n list.sort(compare);\n }\n\n return unique_pred(list, compare);\n }\n\n if (!sorted) {\n list.sort();\n }\n\n return unique_eq(list);\n}\n\nmodule.exports = unique;","'use strict';\n\nvar camelCase = require('camelcase');\n\nmodule.exports = function () {\n var cased = camelCase.apply(camelCase, arguments);\n return cased.charAt(0).toUpperCase() + cased.slice(1);\n};","'use strict';\n\nfunction preserveCamelCase(str) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {\n str = str.substr(0, i) + '-' + str.substr(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {\n str = str.substr(0, i - 1) + '-' + str.substr(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = c.toLowerCase() === c;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = c.toUpperCase() === c;\n }\n }\n\n return str;\n}\n\nmodule.exports = function (str) {\n if (arguments.length > 1) {\n str = Array.from(arguments).map(function (x) {\n return x.trim();\n }).filter(function (x) {\n return x.length;\n }).join('-');\n } else {\n str = str.trim();\n }\n\n if (str.length === 0) {\n return '';\n }\n\n if (str.length === 1) {\n return str.toLowerCase();\n }\n\n if (/^[a-z0-9]+$/.test(str)) {\n return str;\n }\n\n var hasUpperCase = str !== str.toLowerCase();\n\n if (hasUpperCase) {\n str = preserveCamelCase(str);\n }\n\n return str.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, function (m, p1) {\n return p1.toUpperCase();\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'use strict';\n\nvar punycode = require('punycode');\n\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\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} // Reference: RFC 3986, RFC 1808, RFC 2396\n// define these here so at least they only have to be\n// compiled once on the first module load.\n\n\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n // Special case for a simple path URL\nsimplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n // RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\ndelims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n // RFC 2396: characters not allowed for various reasons.\nunwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\nautoEscape = ['\\''].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.\nnonHostChars = ['%', '/', '?', ';', '#'].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.\nunsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that never have a hostname.\nhostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that always contain a // bit.\nslashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n},\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n } // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n\n\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n var rest = url; // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n\n if (simplePath[2]) {\n this.search = simplePath[2];\n\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\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\n\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) {\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 // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\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\n\n var auth, atSign;\n\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 } // Now we have a portion which is definitely the auth.\n // Pull that off.\n\n\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n } // the host is the remaining to the left of the first non-host char\n\n\n hostEnd = -1;\n\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\n } // if we still have not hit it, then the entire thing is a host.\n\n\n if (hostEnd === -1) hostEnd = rest.length;\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd); // pull out port.\n\n this.parseHost(); // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n\n this.hostname = this.hostname || ''; // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']'; // validate a little.\n\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n\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 } // we test again with ASCII char only\n\n\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\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host; // strip [ and ] from the hostname\n // the host field still retains them, though\n\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n } // now rest is set to the post-host stuff.\n // chop off any delim chars.\n\n\n if (!unsafeProtocol[lowerProto]) {\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) continue;\n var esc = encodeURIComponent(ae);\n\n if (esc === ae) {\n esc = escape(ae);\n }\n\n rest = rest.split(ae).join(esc);\n }\n } // chop off from the tail first.\n\n\n var hash = rest.indexOf('#');\n\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n\n var qm = rest.indexOf('?');\n\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\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\n if (rest) this.pathname = rest;\n\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n } //to support http.request\n\n\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n } // finally, reconstruct the href based on what has been validated.\n\n\n this.href = this.format();\n return this;\n}; // format a parsed object into a url string\n\n\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n\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 ? this.hostname : '[' + this.hostname + ']');\n\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && util.isObject(this.query) && Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || query && '?' + query || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':'; // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n\n if (this.slashes || (!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 pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n } // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n\n\n result.hash = relative.hash; // if the relative url is empty, then there's nothing left to do here.\n\n if (relative.href === '') {\n result.href = result.format();\n return result;\n } // hrefs like //foo/bar always cut to the protocol.\n\n\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') result[rkey] = relative[rkey];\n } //urlParse appends trailing / to urls like http://www.example.com\n\n\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n\n while (relPath.length && !(relative.host = relPath.shift())) {\n ;\n }\n\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\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; // to support http.request\n\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\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 = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || 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]; // 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\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;else srcPath.unshift(result.host);\n }\n\n result.host = '';\n\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;else relPath.unshift(relative.host);\n }\n\n relative.host = null;\n }\n\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath; // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift(); //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n result.search = relative.search;\n result.query = relative.query; //to support http.request\n\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\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; //to support http.request\n\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n\n result.href = result.format();\n return result;\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\n\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === ''; // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n\n var up = 0;\n\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n\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 } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!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] === '' || srcPath[0] && srcPath[0].charAt(0) === '/'; // put the host back\n\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' : srcPath.length ? srcPath.shift() : ''; //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\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 } //to support request.http\n\n\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\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\n if (port) {\n port = port[0];\n\n if (port !== ':') {\n this.port = port.substr(1);\n }\n\n host = host.substr(0, host.length - port.length);\n }\n\n if (host) this.hostname = host;\n};","'use strict';\n\nmodule.exports = {\n isString: function isString(arg) {\n return typeof arg === 'string';\n },\n isObject: function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n },\n isNull: function isNull(arg) {\n return arg === null;\n },\n isNullOrUndefined: function isNullOrUndefined(arg) {\n return arg == null;\n }\n};","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function';\n};","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\n\nvar isGeneratorFunction = require('is-generator-function');\n\nvar whichTypedArray = require('which-typed-array');\n\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\nvar ObjectToString = uncurryThis(Object.prototype.toString);\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n\n try {\n prototypeValueOf(value);\n return true;\n } catch (e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray; // Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\n\nfunction isPromise(input) {\n return typeof Promise !== 'undefined' && input instanceof Promise || input !== null && typeof input === 'object' && typeof input.then === 'function' && typeof input.catch === 'function';\n}\n\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return isTypedArray(value) || isDataView(value);\n}\n\nexports.isArrayBufferView = isArrayBufferView;\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\n\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\n\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\n\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\n\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\n\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\n\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\n\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\n\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\n\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\n\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\n\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\n\nisMapToString.working = typeof Map !== 'undefined' && isMapToString(new Map());\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working ? isMapToString(value) : value instanceof Map;\n}\n\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\n\nisSetToString.working = typeof Set !== 'undefined' && isSetToString(new Set());\n\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working ? isSetToString(value) : value instanceof Set;\n}\n\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\n\nisWeakMapToString.working = typeof WeakMap !== 'undefined' && isWeakMapToString(new WeakMap());\n\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working ? isWeakMapToString(value) : value instanceof WeakMap;\n}\n\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\n\nisWeakSetToString.working = typeof WeakSet !== 'undefined' && isWeakSetToString(new WeakSet());\n\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\n\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\n\nisArrayBufferToString.working = typeof ArrayBuffer !== 'undefined' && isArrayBufferToString(new ArrayBuffer());\n\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working ? isArrayBufferToString(value) : value instanceof ArrayBuffer;\n}\n\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\n\nisDataViewToString.working = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined' && isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1));\n\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working ? isDataViewToString(value) : value instanceof DataView;\n}\n\nexports.isDataView = isDataView;\n\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\n\nisSharedArrayBufferToString.working = typeof SharedArrayBuffer !== 'undefined' && isSharedArrayBufferToString(new SharedArrayBuffer());\n\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBuffer === 'undefined') {\n return false;\n }\n\n return isSharedArrayBufferToString.working ? isSharedArrayBufferToString(value) : value instanceof SharedArrayBuffer;\n}\n\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\n\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\n\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\n\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\n\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\n\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\n\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\n\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\n\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\n\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\n\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return isNumberObject(value) || isStringObject(value) || isBooleanObject(value) || isBigIntObject(value) || isSymbolObject(value);\n}\n\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (isArrayBuffer(value) || isSharedArrayBuffer(value));\n}\n\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function (method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function value() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n\n return descriptors;\n};\n\nvar formatRegExp = /%[sdj%]/g;\n\nexports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n default:\n return x;\n }\n });\n\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n\n return str;\n}; // Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\n\n\nexports.deprecate = function (fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n } // Allow for deprecating things in the process of starting up.\n\n\n if (typeof process === 'undefined') {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&').replace(/\\*/g, '.*').replace(/,/g, '$|^').toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\n\nexports.debuglog = function (set) {\n set = set.toUpperCase();\n\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n\n debugs[set] = function () {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n\n return debugs[set];\n};\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n\n/* legacy: obj, showHidden, depth, colors*/\n\n\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n }; // legacy...\n\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n } // set default options\n\n\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\nexports.inspect = inspect; // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\ninspect.colors = {\n 'bold': [1, 22],\n 'italic': [3, 23],\n 'underline': [4, 24],\n 'inverse': [7, 27],\n 'white': [37, 39],\n 'grey': [90, 39],\n 'black': [30, 39],\n 'blue': [34, 39],\n 'cyan': [36, 39],\n 'green': [32, 39],\n 'magenta': [35, 39],\n 'red': [31, 39],\n 'yellow': [33, 39]\n}; // Don't use 'blue' not visible on cmd.exe\n\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + 'm' + str + \"\\x1B[\" + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\nfunction arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n}\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n\n return ret;\n } // Primitive types cannot have properties\n\n\n var primitive = formatPrimitive(ctx, value);\n\n if (primitive) {\n return primitive;\n } // Look up the keys of the object.\n\n\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n } // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\n\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n } // Some type of object without properties can be shortcutted.\n\n\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}']; // Make Array say that they are Array\n\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n } // Make functions say that they are functions\n\n\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n } // Make RegExps say that they are RegExps\n\n\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n } // Make dates with properties first say the date\n\n\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n } // Make error with message first say the error\n\n\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n var output;\n\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n}\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); // For some reason typeof null is \"object\", so special case here.\n\n if (isNull(value)) return ctx.stylize('null', 'null');\n}\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push('');\n }\n }\n\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n}\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n\n name = JSON.stringify('' + key);\n\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n} // NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\n\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34\n\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n} // log is just a thin wrapper to console.log that prepends a timestamp\n\n\nexports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\n\n\nexports.inherits = require('inherits');\n\nexports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function') throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(fn, getOwnPropertyDescriptors(original));\n};\n\nexports.promisify.custom = kCustomPromisifiedSymbol;\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n } // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n\n\n function callbackified() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n\n var self = this;\n\n var cb = function cb() {\n return maybeCb.apply(self, arguments);\n }; // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n\n\n original.apply(this, args).then(function (ret) {\n process.nextTick(cb.bind(null, null, ret));\n }, function (rej) {\n process.nextTick(callbackifyOnRejected.bind(null, rej, cb));\n });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));\n return callbackified;\n}\n\nexports.callbackify = callbackify;","var v1 = require('./v1');\n\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\nmodule.exports = uuid;","/**\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\nmodule.exports = bytesToUuid;","// 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// 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) || 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}","var rng = require('./lib/rng');\n\nvar bytesToUuid = require('./lib/bytesToUuid'); // **`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\n\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 = rng();\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 : bytesToUuid(b);\n}\n\nmodule.exports = v1;","var rng = require('./lib/rng');\n\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\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n 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;","'use strict';\n\nvar forEach = require('foreach');\n\nvar availableTypedArrays = require('available-typed-arrays');\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar hasSymbols = require('has-symbols')();\n\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\nvar typedArrays = availableTypedArrays();\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\n\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\n\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nif (hasToStringTag && gOPD && getPrototypeOf) {\n forEach(typedArrays, function (typedArray) {\n if (typeof global[typedArray] === 'function') {\n var arr = new global[typedArray]();\n\n if (!(Symbol.toStringTag in arr)) {\n throw new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.');\n }\n\n var proto = getPrototypeOf(arr);\n var descriptor = gOPD(proto, Symbol.toStringTag);\n\n if (!descriptor) {\n var superProto = getPrototypeOf(proto);\n descriptor = gOPD(superProto, Symbol.toStringTag);\n }\n\n toStrTags[typedArray] = descriptor.get;\n }\n });\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n var foundName = false;\n forEach(toStrTags, function (getter, typedArray) {\n if (!foundName) {\n try {\n var name = getter.call(value);\n\n if (name === typedArray) {\n foundName = name;\n }\n } catch (e) {}\n }\n });\n return foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n if (!isTypedArray(value)) {\n return false;\n }\n\n if (!hasToStringTag) {\n return $slice($toString(value), 8, -1);\n }\n\n return tryTypedArrays(value);\n};","module.exports = require('./lib/Observable.js').Observable;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Observable = void 0;\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n} // === Symbol Support ===\n\n\nvar hasSymbols = function hasSymbols() {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function hasSymbol(name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function getSymbol(name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n _classCallCheck(this, Subscription); // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n\n\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n _createClass(Subscription, [{\n key: \"unsubscribe\",\n value: function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n }\n }, {\n key: \"closed\",\n get: function get() {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n _classCallCheck(this, SubscriptionObserver);\n\n this._subscription = subscription;\n }\n\n _createClass(SubscriptionObserver, [{\n key: \"next\",\n value: function next(value) {\n onNotify(this._subscription, 'next', value);\n }\n }, {\n key: \"error\",\n value: function error(value) {\n onNotify(this._subscription, 'error', value);\n }\n }, {\n key: \"complete\",\n value: function complete() {\n onNotify(this._subscription, 'complete');\n }\n }, {\n key: \"closed\",\n get: function get() {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\n _classCallCheck(this, Observable);\n\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n _createClass(Observable, [{\n key: \"subscribe\",\n value: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n }\n }, {\n key: \"forEach\",\n value: function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function next(value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n }, {\n key: \"map\",\n value: function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function next(value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"filter\",\n value: function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function next(value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"reduce\",\n value: function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function next(value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"concat\",\n value: function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function next(v) {\n observer.next(v);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n }\n }, {\n key: \"flatMap\",\n value: function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function next(value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function next(value) {\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n }\n }, {\n key: SymbolObservable,\n value: function value() {\n return this;\n }\n }], [{\n key: \"from\",\n value: function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = method.call(x)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _item = _step.value;\n observer.next(_item);\n if (observer.closed) return;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n }\n }, {\n key: \"of\",\n value: function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }, {\n key: SymbolSpecies,\n get: function get() {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nexports.Observable = Observable;\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n return !String(Symbol()) ||\n // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.13.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && typeof NativePromise == 'function') {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\n$({ target: 'String', proto: true, forced: FORCED }, {\n trimStart: trimStart,\n trimLeft: trimStart\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"]);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","import React from \"react\"\n\nimport fetch from \"cross-fetch\"\n\n// AWS Amplify\nimport { Auth } from \"aws-amplify\"\nimport awsconfig from \"./aws-exports\"\n\n// Apollo client & libraries\nimport { createAuthLink, AUTH_TYPE } from \"aws-appsync-auth-link\"\nimport { createSubscriptionHandshakeLink } from \"aws-appsync-subscription-link\"\n\n// Dirty fix from: https://github.com/awslabs/aws-mobile-appsync-sdk-js/issues/525#issuecomment-625145739\nimport { ApolloLink as WrongApolloLink } from \"apollo-link\"\n\nimport { ApolloClient, ApolloLink, createHttpLink, InMemoryCache, ApolloProvider } from \"@apollo/client\"\n\nlet publicAppsyncClient: any\nlet privateAppsyncClient: any\n\nexport const ApolloWrapper = ({ children }) => {\n // --------------------------------------------------------\n // Setup Apollo AWSAppSync Client\n // https://github.com/awslabs/aws-mobile-appsync-sdk-js#using-authorization-and-subscription-links-with-apollo-client-no-offline-support\n // https://github.com/awslabs/aws-mobile-appsync-sdk-js#readme\n\n const url = awsconfig.aws_appsync_graphqlEndpoint\n const region = awsconfig.aws_appsync_region\n const auth = {\n type: AUTH_TYPE.AMAZON_COGNITO_USER_POOLS,\n jwtToken: async () => (await Auth.currentSession()).getIdToken().getJwtToken(),\n }\n\n //const wssUrl = url.replace(\"http\", \"wss\").replace(\"appsync-api\", \"appsync-realtime-api\")\n const httpLink = createHttpLink({ uri: url })\n\n const link = ApolloLink.from([createAuthLink({ url, region, auth }), createSubscriptionHandshakeLink(url, httpLink)])\n\n privateAppsyncClient = new ApolloClient({\n link,\n cache: new InMemoryCache(),\n })\n\n // --------------------------------------------------------\n\n return {children}\n}\n\nexport default ApolloWrapper\n\n//------------------------------------------------------------------------------------------------------\n// Secondary client with IAM Authentication\n// Necessary for unauthenticated access to API via IAM -> UnauthRole\n// Read: https://aws.amazon.com/blogs/mobile/using-multiple-authorization-types-with-aws-appsync-graphql-apis/\n\nconst createApolloSecondaryIAMClient = () => {\n const url = awsconfig.aws_appsync_graphqlEndpoint\n const region = awsconfig.aws_appsync_region\n const auth = {\n type: AUTH_TYPE.AWS_IAM,\n credentials: async () => await Auth.currentCredentials(),\n }\n\n //const wssUrl = url.replace(\"http\", \"wss\").replace(\"appsync-api\", \"appsync-realtime-api\")\n const httpLink = createHttpLink({ uri: url })\n\n const link = ApolloLink.from([createAuthLink({ url, region, auth }), createSubscriptionHandshakeLink(url, httpLink)])\n\n publicAppsyncClient = new ApolloClient({\n link,\n cache: new InMemoryCache(),\n })\n\n // --------------------------------------------------------\n\n return publicAppsyncClient\n}\n\nexport const PublicAppsyncContext = React.createContext(createApolloSecondaryIAMClient())\n\n//------------------------------------------------------------------------------------------------------\n// Context that can return both clients depending on logged in status\n\nexport const getAppSyncClientContext = React.createContext((isLoggedIn: boolean) => {\n return isLoggedIn ? privateAppsyncClient : publicAppsyncClient\n})\n\n//------------------------------------------------------------------------------------------------------\n// Other client to Wordpress\n// Authorization: \"Basic ZWNvdmVyc286NjNLeWdPJllOdW5pUEg0VyZlOHUjIzE2\", // \"Basic ecoverso:63KygO&YNuniPH4W&e8u##16\"\n\nconst wordpressClient = new ApolloClient({\n link: createHttpLink({\n uri: \"https://cms.ecoverso.org/graphql\",\n headers: {\n //Authorization: \"Basic ZWNvdmVyc286NjNLeWdPJllOdW5pUEg0VyZlOHUjIzE2\",\n },\n fetch,\n }),\n cache: new InMemoryCache(),\n})\n\nexport const WPContext = React.createContext(wordpressClient)\n","import { createElement, Component, useRef, useState, useCallback, useEffect } from 'react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar ObserverMap = new Map();\nvar RootIds = new WeakMap();\nvar rootId = 0;\n/**\r\n * Generate a unique ID for the root element\r\n * @param root\r\n */\n\nfunction getRootId(root) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n/**\r\n * Convert the options to a string Id, based on the values.\r\n * Ensures we can reuse the same observer when observing elements with the same options.\r\n * @param options\r\n */\n\n\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(function (key) {\n return options[key] !== undefined;\n }).map(function (key) {\n return key + \"_\" + (key === 'root' ? getRootId(options.root) : options[key]);\n }).toString();\n}\n\nfunction createObserver(options) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n var id = optionsToId(options);\n var instance = ObserverMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n var elements = new Map();\n var thresholds;\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var _elements$get; // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n\n\n var inView = entry.isIntersecting && thresholds.some(function (threshold) {\n return entry.intersectionRatio >= threshold;\n }); // @ts-ignore support IntersectionObserver v2\n\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n (_elements$get = elements.get(entry.target)) == null ? void 0 : _elements$get.forEach(function (callback) {\n callback(inView, entry);\n });\n });\n }, options); // Ensure we have a valid thresholds array. If not, use the threshold from the options\n\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id: id,\n observer: observer,\n elements: elements\n };\n ObserverMap.set(id, instance);\n }\n\n return instance;\n}\n/**\r\n * @param element - DOM Element to observe\r\n * @param callback - Callback function to trigger when intersection status changes\r\n * @param options - Intersection Observer options\r\n * @return Function - Cleanup function that should be triggered to unregister the observer\r\n */\n\n\nfunction observe(element, callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!element) return function () {}; // An observer with the same options can be reused, so lets use this fact\n\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements; // Register the callback listener for this element\n\n\n var callbacks = elements.get(element) || [];\n\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements[\"delete\"](element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n ObserverMap[\"delete\"](id);\n }\n };\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\r\n ## Render props\r\n\n To use the `` component, you pass it a function. It will be called\r\n whenever the state changes, with the new value of `inView`. In addition to the\r\n `inView` prop, children also receive a `ref` that should be set on the\r\n containing DOM element. This is the element that the IntersectionObserver will\r\n monitor.\r\n\n If you need it, you can also access the\r\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\r\n on `entry`, giving you access to all the details about the current intersection\r\n state.\r\n\n ```jsx\r\n import { InView } from 'react-intersection-observer';\r\n\n const Component = () => (\r\n \r\n {({ inView, ref, entry }) => (\r\n
\r\n

{`Header inside viewport ${inView}.`}

\r\n
\r\n )}\r\n
\r\n );\r\n\n export default Component;\r\n ```\r\n\n ## Plain children\r\n\n You can pass any element to the ``, and it will handle creating the\r\n wrapping DOM element. Add a handler to the `onChange` method, and control the\r\n state in your own component. Any extra props you add to `` will be\r\n passed to the HTML element, allowing you set the `className`, `style`, etc.\r\n\n ```jsx\r\n import { InView } from 'react-intersection-observer';\r\n\n const Component = () => (\r\n console.log('Inview:', inView)}>\r\n

Plain children are always rendered. Use onChange to monitor state.

\r\n
\r\n );\r\n\n export default Component;\r\n ```\r\n */\n\n\nvar InView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.node = null;\n _this._unobserveCb = null;\n\n _this.handleNode = function (node) {\n if (_this.node) {\n // Clear the old observer, before we start observing a new element\n _this.unobserve();\n\n if (!node && !_this.props.triggerOnce && !_this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n _this.setState({\n inView: !!_this.props.initialInView,\n entry: undefined\n });\n }\n }\n\n _this.node = node ? node : null;\n\n _this.observeNode();\n };\n\n _this.handleChange = function (inView, entry) {\n if (inView && _this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n _this.unobserve();\n }\n\n if (!isPlainChildren(_this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n _this.setState({\n inView: inView,\n entry: entry\n });\n }\n\n if (_this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n _this.props.onChange(inView, entry);\n }\n };\n\n _this.state = {\n inView: !!props.initialInView,\n entry: undefined\n };\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unobserve();\n this.node = null;\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node || this.props.skip) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin,\n trackVisibility = _this$props.trackVisibility,\n delay = _this$props.delay;\n this._unobserveCb = observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n };\n\n _proto.unobserve = function unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n\n this._unobserveCb = null;\n }\n };\n\n _proto.render = function render() {\n if (!isPlainChildren(this.props)) {\n var _this$state = this.state,\n inView = _this$state.inView,\n entry = _this$state.entry;\n return this.props.children({\n inView: inView,\n entry: entry,\n ref: this.handleNode\n });\n }\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n as = _this$props2.as,\n tag = _this$props2.tag,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"as\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootMargin\", \"onChange\", \"skip\", \"trackVisibility\", \"delay\", \"initialInView\"]);\n\n return /*#__PURE__*/createElement(as || tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\n\nInView.displayName = 'InView';\nInView.defaultProps = {\n threshold: 0,\n triggerOnce: false,\n initialInView: false\n};\n/**\r\n * React Hooks make it easy to monitor the `inView` state of your components. Call\r\n * the `useInView` hook with the (optional) [options](#options) you need. It will\r\n * return an array containing a `ref`, the `inView` status and the current\r\n * [`entry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry).\r\n * Assign the `ref` to the DOM element you want to monitor, and the hook will\r\n * report the status.\r\n *\r\n * @example\r\n * ```jsx\r\n * import React from 'react';\r\n * import { useInView } from 'react-intersection-observer';\r\n *\r\n * const Component = () => {\r\n * const { ref, inView, entry } = useInView({\r\n * threshold: 0,\r\n * });\r\n *\r\n * return (\r\n *
\r\n *

{`Header inside viewport ${inView}.`}

\r\n *
\r\n * );\r\n * };\r\n * ```\r\n */\n\nfunction useInView(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n threshold = _ref.threshold,\n delay = _ref.delay,\n trackVisibility = _ref.trackVisibility,\n rootMargin = _ref.rootMargin,\n root = _ref.root,\n triggerOnce = _ref.triggerOnce,\n skip = _ref.skip,\n initialInView = _ref.initialInView;\n\n var unobserve = useRef();\n\n var _React$useState = useState({\n inView: !!initialInView\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var setRef = useCallback(function (node) {\n if (unobserve.current !== undefined) {\n unobserve.current();\n unobserve.current = undefined;\n } // Skip creating the observer\n\n\n if (skip) return;\n\n if (node) {\n unobserve.current = observe(node, function (inView, entry) {\n setState({\n inView: inView,\n entry: entry\n });\n\n if (entry.isIntersecting && triggerOnce && unobserve.current) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve.current();\n unobserve.current = undefined;\n }\n }, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n }\n }, // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [// If the threshold is an array, convert it to a string so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold, root, rootMargin, triggerOnce, skip, trackVisibility, delay]);\n /* eslint-disable-next-line */\n\n useEffect(function () {\n if (!unobserve.current && state.entry && !triggerOnce && !skip) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState({\n inView: !!initialInView\n });\n }\n });\n var result = [setRef, state.inView, state.entry]; // Support object destructuring, by adding the specific values.\n\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport default InView;\nexport { InView, observe, useInView };","import React, { useState } from \"react\"\n\nimport RealAnimatedNumber from \"react-animated-numbers\"\nimport { InView } from \"react-intersection-observer\"\n\ntype props = {\n number: number\n prefix?: string\n suffix?: string\n className?: string\n style?: any\n}\n\nconst AnimatedNumber: React.FC = (props) => {\n const [isVisible, setIsVisible] = useState(false)\n\n return (\n \n {({ inView, ref, entry }) => {\n if (inView && !isVisible) setIsVisible(true)\n return (\n
\n {props.prefix}\n {isVisible ? (\n console.log(\"onStart\")}\n // onFinish={() => console.log(\"onFinish\")}\n animationType={\"calm\"}\n />\n ) : null}\n {props.suffix}\n
\n )\n }}\n
\n )\n}\n\nexport default AnimatedNumber\n","import { identity } from \"lodash\"\nimport React, { useEffect, useState } from \"react\"\n\nimport awsconfig from \"../../aws-exports\"\nimport imageExist from \"image-exists\"\n\ntype Props = {\n className?: string\n identityId?: string\n url?: string\n alt?: string\n}\n\nexport const Avatar: React.FC = ({ className, identityId, url, alt }) => {\n const avatarURL =\n url ||\n (identityId\n ? `https://${awsconfig.aws_user_files_s3_bucket}.s3-${awsconfig.aws_user_files_s3_bucket_region}.amazonaws.com/protected/${identityId}/avatar.small.jpg`\n : \"\")\n\n const [exists, setExists] = useState(false)\n\n useEffect(() => {\n if (avatarURL.indexOf(\"amazonaws\") != -1) {\n imageExist(avatarURL, (itExists) => {\n setExists(itExists)\n })\n }\n })\n\n return exists ? {alt} : null\n}\n\nexport default Avatar\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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++) {\n arr2[i] = arr[i];\n }\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} // Get CSS class list from a props object\n\n\nfunction classList(props) {\n var _classes;\n\n var spin = props.spin,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-spin': spin,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n} // Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\n\n\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, [\"style\"]);\n\n mixins.attrs['style'] = _objectSpread2({}, mixins.attrs['style'], {}, existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2({}, mixins.attrs, {}, remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log() {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (_typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n} // creates an object with a key of key\n// and a value of value\n// if certain conditions are met\n\n\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nfunction FontAwesomeIcon(_ref) {\n var forwardedRef = _ref.forwardedRef,\n props = _objectWithoutProperties(_ref, [\"forwardedRef\"]);\n\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2({}, classes, {}, transform, {}, mask, {\n symbol: symbol,\n title: title,\n titleId: titleId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: forwardedRef\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n}\n\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n border: PropTypes.bool,\n className: PropTypes.string,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf(['horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n size: PropTypes.oneOf(['lg', 'xs', 'sm', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n fixedWidth: false,\n inverse: false,\n flip: null,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n symbol: false,\n title: '',\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\nexport { FontAwesomeIcon };","import React from \"react\"\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { IconPrefix, IconName } from \"@fortawesome/fontawesome-svg-core\"\nimport { IconData } from \"../../rows/DynamicRow\"\n\nexport type iconSizeData = \"xs\" | \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\"\n\nexport const Icon = ({\n icon,\n name,\n size,\n className,\n source,\n svg,\n strokeWidth,\n color,\n style,\n}: {\n name?: string\n icon?: IconData\n size?: iconSizeData\n className?: string\n source?: string\n svg?: boolean\n strokeWidth?: number\n color?: string\n style?: any\n}) => {\n source = source || \"feather.min\"\n size = icon?.size || size || \"m\"\n\n if (icon != undefined) {\n switch (icon?.iconType) {\n case \"fontawesome\":\n name = icon.iconStyle + \":\" + icon.icon\n break\n case \"feather\":\n default:\n name = icon.icon\n break\n }\n }\n\n if (name == \"logo\") {\n // The main logo is hard-coded for\n return (\n \n \n \n \n \n \n \n )\n }\n\n if (name.match(/f(ab|as|al|ar|ad):.*/)) {\n return (\n \n )\n }\n\n if (svg) {\n return (\n \n {name ? : }\n \n )\n } else {\n return (\n \n {name ? (\n \n ) : (\n \n )}\n \n )\n }\n}\n\nexport default Icon\n","import React from \"react\"\n\nexport const Loading = (props: { active?: boolean; fixed?: boolean; children?; size?: \"normal\" | \"small\" }) => {\n props = {\n active: true,\n fixed: false,\n size: \"normal\",\n ...props,\n }\n\n return (\n \n {props.active ? (\n
\n {props.size == \"small\" ? (\n \n ) : (\n \n )}\n
\n ) : null}\n {props.children}\n
\n )\n}\n\nexport default Loading\n","import React from \"react\"\nimport Icon from \"./Icon\"\n\nexport type StepProps = {\n title: string\n borderColor?: string\n transparent?: boolean\n active?: boolean\n disabled?: boolean\n unclickable?: boolean\n onClick?: Function\n icon?: \"enter\" | \"do-not-enter\" | \"warning\" | \"cars\" | \"check\" | \"time\" | \"euro\" | \"edit\"\n children?: any\n}\n\nconst Step: React.FC = (props) => {\n props = {\n transparent: true,\n borderColor: \"blue\",\n active: false,\n disabled: false,\n unclickable: false,\n ...props,\n }\n\n if (props.disabled) {\n props.borderColor = \"#AAA\"\n }\n\n let stepIcon\n switch (props.icon) {\n case \"edit\":\n stepIcon = \n break\n case \"time\":\n stepIcon = \n break\n case \"cars\":\n stepIcon = \n break\n case \"check\":\n stepIcon = \n break\n case \"do-not-enter\":\n stepIcon = \n break\n case \"warning\":\n stepIcon = \n break\n case \"euro\":\n stepIcon = \n break\n default:\n case \"enter\":\n stepIcon = \n break\n }\n\n return (\n {\n if (props.onClick) {\n props.onClick(e)\n }\n }}\n >\n
\n
\n
\n
{props.title}
\n
{props.children}
\n
{stepIcon}
\n
\n
\n \n )\n}\n\nconst Steps: React.FC<{ steps: StepProps[] }> = ({ steps }) => {\n return (\n
\n {/* \n Sei iscritto a questo gruppo\n \n \n Compila il form in pagina per proseguire\n \n \n Lo step di conferma sarà accessibile fra 4 giorni\n */}\n {/* \n [-5 gg]Registrati gratis e senza impegno!\n \n \n [Loghi] Sconti e i fornitori del tuo gruppo d'acquisto\n \n \n [15/02 > 15/03] Acquista la tua nuova auto risparmiando in media ulteriori 1000€\n *\n */}\n\n {steps.map((step, i) => (\n \n ))}\n
\n )\n}\n\nexport default Steps\n","import React, { useState } from \"react\"\n\nexport const Tabs = (props: { tabs: string[]; className?: string; onChange?: Function; selected?: number }) => {\n const [activeId, setActiveId] = useState(props.selected || 0)\n\n const changeActive = (id) => {\n setActiveId(id)\n if (props.onChange) props.onChange(id)\n }\n\n return (\n
\n
    \n {props.tabs.map((title, idx) => (\n {\n changeActive(idx)\n }}\n >\n {title}\n \n ))}\n
\n
\n )\n}\n\nexport default Tabs\n","import React, { useEffect, useContext } from \"react\"\n\nimport { useStaticQuery, graphql } from \"gatsby\"\n\nimport { BreadcrumbList, WithContext } from \"schema-dts\"\nimport { Link, useI18next } from \"../../i18n\"\nimport { StructuredData } from \"../../seo\"\nimport { decodeHTMLEntities } from \"../utils/utils\"\n\ntype Props = {\n data: { to?: string; label: string }[]\n}\n\nexport const Breadcrumbs: React.FC = ({ data }) => {\n const i18n = useI18next()\n\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n siteUrl\n }\n }\n }\n `\n )\n\n const structuredData: WithContext = {\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n itemListElement: data.map((breadcrumb, i) => {\n return {\n \"@type\": \"ListItem\",\n position: i,\n name: breadcrumb.label,\n item: site.siteMetadata.siteUrl + i18n.resolveUrl(breadcrumb.to),\n }\n }),\n }\n\n return (\n
\n
\n \n {data.map((breadcrumb, i) => (\n \n {decodeHTMLEntities(breadcrumb.label)}\n \n ))}\n {/* \n \n */}\n \n
\n
\n )\n}\n\nexport default Breadcrumbs\n","import React, { useState } from \"react\"\n\nimport { Link, LinkProps } from \"../../i18n\"\nimport { ButtonData } from \"../../rows/DynamicRow\"\nimport { Icon } from \".\"\n\ntype Props = LinkProps & {\n type?: \"primary\" | \"secondary\" | \"ghost\" | \"white\"\n title?: string\n data?: ButtonData\n external?: Boolean\n disabled?: Boolean\n}\n\nexport const Button: React.FC = ({ type, title, data, className, external, disabled, ...linkProps }) => {\n // if to={null} force rendering without link\n const renderWithoutLink = linkProps.to == null\n\n if (data) {\n if (data.link == null) return null\n type = data.type\n title = data.link.title\n linkProps.to = data.link.url\n linkProps.target = data.link.target\n }\n\n // Save final link in a state so we can react on interpreted version from \n const [finalLink, setFinalLink] = useState(linkProps.to)\n\n const newClassName = className + \" btn btn--\" + (type || \"primary\") + (disabled ? \" btn-\" + (type || \"primary\") + \"--disabled\" : \"\")\n\n if (renderWithoutLink) {\n return (\n
\n {title}\n {external ? : null}\n
\n )\n }\n\n return (\n \n {title}\n {finalLink.indexOf(\"http\") != -1 ? : null}\n \n )\n}\n\nexport default Button\n","import React from \"react\"\nimport Flickity from \"react-flickity-component\"\n\nexport const Carousel = (props: {\n title?: string\n subtitle?: string\n more?: React.ReactNode\n withBackground?: boolean\n initialIndex?: number\n className?: string\n children: any\n}) => {\n props = {\n withBackground: false,\n initialIndex: Math.min(1, props.children.length - 1),\n ...props,\n }\n\n // Options documentation: https://flickity.metafizzy.co/options.html\n const flickityOptions = {\n initialIndex: props.initialIndex,\n cellAlign: \"center\",\n //arrowShape: \"M 5,50 L 25,25 L 90,25 L 90,75 L 25,75 Z\",\n arrowShape: \"M 61,25 L 65,25 L 35,50 L 65,75 L 61,75 L 31,50 Z\",\n pageDots: false,\n // wrapAround: true,\n }\n\n return (\n
\n {props.title ? (\n
\n

{props.title}

\n {props.more}\n
\n ) : null}\n {props.subtitle ? (\n
\n

{props.subtitle}

\n
\n ) : null}\n
\n \n {props.children}\n \n
\n
\n )\n}\n\nexport default Carousel\n","import React, { useContext, useEffect, useState } from \"react\"\n\nimport { useTranslation } from \"../../i18n\"\nimport { useSelector, useDispatch } from \"react-redux\"\nimport * as actions from \"../../store/actions\"\nimport { useMutation } from \"@apollo/client\"\nimport gql from \"graphql-tag\"\n\nimport { getAppSyncClientContext } from \"../../ApolloWrapper\"\n\nimport FormGenerator from \"../Forms/FormGenerator\"\nimport { Loading } from \".\"\nimport { createFormSubmission } from \"../../graphql/mutations\"\n\nimport {\n firstName,\n lastName,\n email,\n mobile,\n message,\n declaredOrigin,\n discountCode,\n readPrivacy,\n newsletterInfo,\n acptNewsletter,\n marketingInfo,\n acptMarketing,\n profilingInfo,\n acptProfiling,\n} from \"../../forms/fields/user\"\n\nlet subscribeFormSetValues = null\nlet subscribeFormReset = null\n\ntype Props = {\n fields?: string[]\n formName?: string\n submitButtonText?: string\n defaultToTrue?: {\n acptNewsletter?: boolean\n acptMarketing?: boolean\n acptProfiling?: boolean\n }\n}\n\nexport const Form: React.FC = (props) => {\n props = {\n formName: \"newsletter\",\n submitButtonText: \"Richiedi informazioni\",\n defaultToTrue: {\n acptNewsletter: false,\n acptMarketing: false,\n acptProfiling: false,\n },\n fields: [\"firstName\", \"email\", \"readPrivacy\"],\n ...props,\n }\n\n const [t] = useTranslation()\n const dispatch = useDispatch()\n\n const isLoggedIn = useSelector((state) => state.auth.isLoggedIn)\n const storedEmail = useSelector((state) => state.auth.payload.userData?.email)\n const storedFirstName = useSelector((state) => state.auth.payload.userData?.firstName)\n const storedLastName = useSelector((state) => state.auth.payload.userData?.lastName)\n\n const [loading, setLoading] = useState(false)\n\n // --- NEW formSubmission ---------------------------------------------------------------------------------------------\n const getAppsyncClient = useContext(getAppSyncClientContext)\n const [submitForm, { error: formSubmissionError }] = useMutation(gql(createFormSubmission), {\n client: getAppsyncClient(isLoggedIn),\n })\n\n if (formSubmissionError) {\n dispatch(actions.notificationAdd({ message: t(\"Form Submission Error\"), variant: \"DangerIcon\" }))\n console.log(\"Form Submission Error\", formSubmissionError)\n return null\n }\n\n // --- BUILD FORM -----------------------------------------------------------------------------------------------------\n\n const subscribeForm = {}\n\n if (props.fields.includes(\"lastName\")) {\n subscribeForm[\"row1\"] = {\n type: \"row\",\n properties: {\n firstName: firstName,\n lastName: lastName,\n },\n }\n } else {\n subscribeForm[\"firstName\"] = firstName\n }\n subscribeForm[\"email\"] = email\n if (props.fields.includes(\"mobile\")) subscribeForm[\"mobile\"] = mobile\n if (props.fields.includes(\"declaredOrigin\")) subscribeForm[\"declaredOrigin\"] = declaredOrigin\n if (props.fields.includes(\"discountCode\")) subscribeForm[\"discountCode\"] = discountCode\n if (props.fields.includes(\"message\")) subscribeForm[\"message\"] = message\n subscribeForm[\"readPrivacy\"] = readPrivacy\n if (props.fields.includes(\"acptNewsletter\") && !props.defaultToTrue.acptNewsletter) {\n subscribeForm[\"newsletterInfo\"] = newsletterInfo\n subscribeForm[\"acptNewsletter\"] = acptNewsletter\n }\n if (props.fields.includes(\"acptMarketing\") && !props.defaultToTrue.acptMarketing) {\n subscribeForm[\"marketingInfo\"] = marketingInfo\n subscribeForm[\"acptMarketing\"] = acptMarketing\n }\n if (props.fields.includes(\"acptProfiling\") && !props.defaultToTrue.acptProfiling) {\n subscribeForm[\"profilingInfo\"] = profilingInfo\n subscribeForm[\"acptProfiling\"] = acptProfiling\n }\n\n // --------------------------------------------------------------------------------------------------------------------\n\n const onSubmit = (values, setSubmitting) => {\n // Set default values to true\n Object.keys(props.defaultToTrue).forEach((key) => {\n if (props.defaultToTrue[key]) values[key] = 1\n })\n\n if (values[\"acptNewsletter\"] != undefined) values[\"acptNewsletter\"] = values[\"acptNewsletter\"] ? 1 : 0\n if (values[\"acptMarketing\"] != undefined) values[\"acptMarketing\"] = values[\"acptMarketing\"] ? 1 : 0\n if (values[\"acptProfiling\"] != undefined) values[\"acptProfiling\"] = values[\"acptProfiling\"] ? 1 : 0\n\n console.log(\"Form submission: \", values)\n submitForm({\n variables: { createForm_submissionInput: { jsonData: JSON.stringify(values), formName: props.formName } },\n }).then(() => {\n dispatch(\n actions.notificationAdd({\n message:\n \"Dati salvati con successo. Se è la prima volta che compili un nostro form, a breve riceverai una mail con un link su cui cliccare per confermare i tuoi dati.\",\n variant: \"SmileIcon\",\n duration: 30,\n })\n )\n setSubmitting(false)\n subscribeFormReset()\n\n // Send event to GTM\n window?.dataLayer?.push({\n event: \"form-submission\",\n formName: props.formName,\n acptNewsletter: values[\"acptNewsletter\"],\n acptMarketing: values[\"acptMarketing\"],\n acptProfiling: values[\"acptProfiling\"],\n })\n })\n }\n\n return (\n (subscribeFormSetValues = callback)}\n bindResertForm={(callback) => (subscribeFormReset = callback)}\n // size=\"small\"\n />\n )\n}\n\nexport default Form\n","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport Img from \"gatsby-image/withIEPolyfill\"\nimport { GatsbyImageProps } from \"gatsby-image\"\nimport { IconData, LinkData } from \"../../rows/DynamicRow\"\nimport Icon from \"./Icon\"\nimport { Link } from \"../../i18n\"\n\nexport type ImageData = { altText: string; imageFile: { childImageSharp?: any; publicURL: any } }\n\nexport type ImageTypes =\n | \"fullwidth\"\n | \"square-styled\"\n | \"cover\"\n | \"contain\"\n | \"inside-arrow\"\n | \"inside-arrow-styled\"\n | \"inside-arrow-full-styled\"\n | \"above-arrow-square-styled\"\n | \"below-arrow-styled\"\n// https://www.gatsbyjs.com/plugins/gatsby-image/#gatsby-image-props\nexport type ImageProps = GatsbyImageProps & {\n objectFit?: `fill` | `contain` | `cover` | `contain` | `none` | `scale-down`\n objectPosition?: string\n file?: { altText: string; imageFile: { childImageSharp?: any; publicURL: any } }\n type?: ImageTypes\n src?: string\n styledColor?: string\n icon?: IconData\n link?: LinkData\n}\n\nexport const Image: React.FC = ({ type, file, ...props }) => {\n // console.log(\"Image props before: \", props)\n\n // A file object is passed and is null, no image\n if (file === null) return null\n\n if (file) {\n props.alt = file.altText\n if (file.imageFile.childImageSharp?.fluid) props.fluid = file.imageFile.childImageSharp.fluid\n if (file.imageFile.childImageSharp?.fixed) props.fluid = file.imageFile.childImageSharp.fixed\n // if neither fluid or fixed is defined then use non optimized image at publicUrl\n if (!props.fluid && !props.fixed) props.src = file.imageFile.publicURL || undefined\n }\n\n let theImage = null\n\n if (type) {\n switch (type) {\n case \"cover\":\n props = applyCover(props)\n theImage = \n break\n case \"contain\":\n props = applyContain(props)\n theImage = \n break\n case \"fullwidth\":\n props.style = { ...props.style, width: \"100%\" }\n theImage = \n break\n case \"square-styled\":\n theImage = (\n
\n
\n \n
\n
\n )\n break\n case \"inside-arrow\":\n theImage = (\n
\n
\n
\n
\n
\n
\n \n
\n
\n )\n break\n case \"inside-arrow-styled\":\n theImage = (\n
\n
\n
\n
\n
\n
\n \n
\n {props.icon?.icon ? (\n
\n \n
\n ) : null}\n
\n )\n break\n case \"inside-arrow-full-styled\":\n theImage = (\n
\n
\n
\n {/*
*/}\n
\n
\n \n
\n {props.icon?.icon ? (\n
\n \n
\n ) : null}\n
\n )\n break\n case \"above-arrow-square-styled\":\n theImage = (\n
\n
\n
\n
\n
\n
\n \n
\n {props.icon?.icon ? (\n
\n \n
\n ) : null}\n
\n )\n break\n case \"below-arrow-styled\":\n theImage = (\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n {props.icon?.icon ? (\n
\n \n
\n ) : null}\n
\n )\n break\n }\n }\n\n // console.log(\"Image props after: \", props)\n\n if (props.link) {\n return (\n \n {theImage}\n {props.icon?.icon ? (\n
\n \n
\n ) : null}\n \n )\n }\n\n return theImage\n}\n\nconst applyCover = (props) => {\n if (props.src) {\n props.style = { ...props.style, objectFit: \"cover\" }\n } else {\n props.objectFit = \"cover\"\n props.objectPosition = \"50% 50%\"\n }\n return props\n}\n\nconst applyContain = (props) => {\n if (props.src) {\n props.style = { ...props.style, objectFit: \"contain\" }\n } else {\n props.objectFit = \"contain\"\n props.objectPosition = \"50% 50%\"\n }\n return props\n}\n\nconst FinalImage = (props: ImageProps) => {\n if (props.src) {\n return {props.alt}\n } else {\n return \n }\n}\n\nexport default Image\n\n// Query fragment to include in graphql\nexport const query = graphql`\n fragment imageData on Wordpress_MediaItem {\n altText\n mediaItemUrl\n imageFile {\n childImageSharp {\n fluid(maxWidth: 1080) {\n ...GatsbyImageSharpFluid\n }\n }\n publicURL\n }\n }\n`\n","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport Img from \"gatsby-image/withIEPolyfill\"\nimport { GatsbyImageProps } from \"gatsby-image\"\nimport { IconData, LinkData } from \"../../rows/DynamicRow\"\nimport Icon from \"./Icon\"\nimport { Link } from \"../../i18n\"\n\nexport type VideoTypes =\n | \"fullwidth\"\n | \"square-styled\"\n | \"cover\"\n | \"contain\"\n | \"inside-arrow\"\n | \"inside-arrow-styled\"\n | \"inside-arrow-full-styled\"\n | \"above-arrow-square-styled\"\n | \"below-arrow-styled\"\n// https://www.gatsbyjs.com/plugins/gatsby-image/#gatsby-image-props\n\nexport type VideoProps = {\n cdnVideo?: string\n youtubeVideo?: string\n style?: any\n className?: string\n}\n\nexport const Video: React.FC = (props) => {\n if (props.cdnVideo) {\n return (\n //
\n \n //
\n )\n } else {\n return (\n
\n \n
\n )\n }\n}\n\nexport default Video\n","import React, { useEffect } from \"react\"\nimport { useComponentWillMount } from \"../utils/customHooks\"\n\nexport const Overlay = () => {\n useComponentWillMount(() => {\n // When the modal is shown, we want a fixed body\n const scrollY = window.scrollY\n document.body.style.position = \"fixed\"\n document.body.style.top = `-${scrollY}px`\n })\n\n useEffect(() => {\n return () => {\n // When the modal is hidden, we want to remain at the top of the scroll position\n const scrollY = document.body.style.top\n document.body.style.position = \"\"\n document.body.style.top = \"\"\n window.scrollTo(0, parseInt(scrollY || \"0\") * -1)\n }\n }, [])\n\n return
\n}\n\nexport default Overlay\n","import React from \"react\"\nimport { TitleData } from \"../../rows/DynamicRow\"\nimport Button from \"./Button\"\nimport Icon from \"./Icon\"\n\ntype Props = {\n type?: \"h1\" | \"h2\" | \"h3\" | \"h4\"\n data?: TitleData\n forceColor?: string\n children?\n}\n\nexport const Title: React.FC = ({ type, data, children, forceColor }) => {\n let theTitle = children\n let subTitle = null\n let superTitle = null\n let containerClassName = \"heading__container heading__container--left mb-xs\"\n let textAlign: \"left\" | \"center\" | \"right\" = \"left\"\n let link = null\n\n if (data) {\n if (!data.title) return null\n type = data.type\n theTitle = data.title\n\n containerClassName = `heading__container heading__container--${data.align} mb-xs`\n textAlign = data.align\n\n subTitle = data.subTitle.title ? (\n

\n {data.subTitle.title}\n

\n ) : null\n\n superTitle = data.superTitle.title ? (\n

\n {data.superTitle.title == \"logo:academy\" ? (\n \n ) : data.superTitle.title == \"logo:r-ace\" ? (\n \n ) : data.superTitle.title == \"logo:plus\" ? (\n \n ) : (\n data.superTitle.title\n )}\n

\n ) : null\n\n link = data.link?.url ? \n )}\n {props.hideCancelButton ? null : (\n \n )}\n {props.debug ? (\n {\n console.log(formProps.values)\n }}\n >\n Values to console\n \n ) : null}\n \n {uploadProgress != 0 && uploadProgress != 100 ? : null}\n \n ) : null}\n {/*
{JSON.stringify(formProps, null, 2)}
*/}\n \n \n )\n }}\n \n {props.debug ? (\n
\n            {JSON.stringify(schema, null, 2)}\n            {JSON.stringify(config, null, 2)}\n            Default Values: {JSON.stringify(defaultValues, null, 2)}\n            Input Values: {JSON.stringify(props.values, null, 2)}\n            Initial Values: {JSON.stringify(initialValues, null, 2)}\n            {/* {JSON.stringify(customValidators, null, 2)} */}\n          
\n ) : null}\n \n \n )\n}\n\nconst generateFields = (FieldsList, layout, formProps: any, span: number = 24, keyPrefix = \"\") => {\n return Object.keys(FieldsList).map((key) => {\n let toBeReturned\n switch (FieldsList[key].type) {\n case \"number\":\n case \"string\":\n // Render simple string fields or a select\n toBeReturned = (\n \n {(fieldProps) => {\n return (\n 0 || fieldProps.meta.touched) && fieldProps.meta.error ? \"error\" : null}\n help={\n (fieldProps.form.submitCount > 0 || fieldProps.meta.touched) && fieldProps.meta.error\n ? fieldProps.meta.error || FieldsList[key].description\n : FieldsList[key].description\n }\n extra={FieldsList[key].extra}\n >\n <>\n {FieldsList[key].fieldType === undefined ? (\n {\n fieldProps.field.onChange({\n target: { name: keyPrefix + key, value: FieldsList[key].onChange ? FieldsList[key].onChange(e.target.value) : e.target.value },\n })\n }}\n />\n ) : null}\n {FieldsList[key].fieldType === \"select\" ? (\n \n ) : null}\n {FieldsList[key].fieldType === \"radio\" ? (\n {\n fieldProps.field.onChange({ target: { name: keyPrefix + key, value: e.target.value } })\n }}\n disabled={FieldsList[key].disabled || formProps.disabled}\n value={fieldProps.field.value}\n >\n {FieldsList[key].options.map((opt) => (\n \n {opt.title || opt.value || opt}\n \n ))}\n \n ) : null}\n {FieldsList[key].fieldType === \"textarea\" ? (\n fieldProps.field.onChange(e)}\n disabled={FieldsList[key].disabled || formProps.disabled}\n allowClear\n {...FieldsList[key].fieldProperties}\n >\n ) : null}\n {/*
{JSON.stringify(fieldProps, null, 2)}
*/}\n \n \n )\n }}\n
\n )\n break\n case \"array\":\n toBeReturned = (\n \n {(fieldProps) => {\n return (\n 0 || fieldProps.meta.touched) && fieldProps.meta.error ? \"error\" : null}\n help={\n (fieldProps.form.submitCount > 0 || fieldProps.meta.touched) && fieldProps.meta.error\n ? fieldProps.meta.error || FieldsList[key].description\n : FieldsList[key].description\n }\n extra={FieldsList[key].extra}\n >\n <>\n {FieldsList[key].fieldType === \"select\" ? : null}\n {FieldsList[key].fieldType === \"checkbox\"\n ? FieldsList[key].options.map((opt) => (\n {\n let newValue = e.target.checked\n ? [...fieldProps.field.value, opt.value || opt]\n : fieldProps.field.value.filter((v) => v !== (opt.value || opt))\n //fieldProps.field.onBlur({ target: { name: key, value: newValue } })\n fieldProps.field.onChange({ target: { name: key, value: newValue } })\n }}\n style={FieldsList[key].inline ? {} : { display: \"block\", height: \"30px\", lineHeight: \"30px\", marginLeft: 0 }}\n disabled={FieldsList[key].disabled || formProps.disabled}\n >\n {opt.title || opt.value || opt}\n \n ))\n : null}\n {/*
{JSON.stringify(fieldProps, null, 2)}
*/}\n \n \n )\n }}\n
\n )\n break\n case \"date\":\n case \"datetime\":\n toBeReturned = (\n \n {(fieldProps) => {\n const val = fieldProps.field.value ? parseISO(fieldProps.field.value) : null\n return (\n 0 || fieldProps.meta.touched) && fieldProps.meta.error ? \"error\" : null}\n help={\n (fieldProps.form.submitCount > 0 || fieldProps.meta.touched) && fieldProps.meta.error\n ? fieldProps.meta.error || FieldsList[key].description\n : FieldsList[key].description\n }\n extra={FieldsList[key].extra}\n >\n <>\n \n fieldProps.field.onChange({\n target: {\n name: keyPrefix + key,\n value: v ? (FieldsList[key].type === \"date\" ? formatISO(v).slice(0, 10) : formatISO(v).slice(0, 19).replace(\"T\", \" \")) : null,\n },\n })\n }\n disabled={FieldsList[key].disabled || formProps.disabled}\n {...FieldsList[key].fieldProperties}\n />\n \n \n )\n }}\n \n )\n break\n case \"boolean\":\n toBeReturned = (\n \n {(fieldProps) => {\n return (\n 0 || fieldProps.meta.touched) && fieldProps.meta.error ? \"error\" : null}\n help={\n (fieldProps.form.submitCount > 0 || fieldProps.meta.touched) && fieldProps.meta.error\n ? fieldProps.meta.error || FieldsList[key].description\n : FieldsList[key].description\n }\n extra={FieldsList[key].extra}\n >\n <>\n {FieldsList[key].fieldType === undefined ? (\n {\n fieldProps.field.onChange({ target: { name: e.target.name, value: e.target.checked ? 1 : 0 } })\n }}\n value={!!fieldProps.field.value || false}\n disabled={FieldsList[key].disabled || formProps.disabled}\n >\n {FieldsList[key].title}\n \n ) : null}\n {FieldsList[key].fieldType === \"radio\" ? (\n {\n fieldProps.field.onChange({ target: { name: e.target.name, value: e.target.value } })\n }}\n disabled={FieldsList[key].disabled || formProps.disabled}\n value={fieldProps.field.value}\n >\n {FieldsList[key].options.map((opt) => (\n \n {opt.title || opt.value || opt}\n \n ))}\n \n ) : null}\n \n \n )\n }}\n \n )\n break\n case \"file\":\n toBeReturned = (\n \n {(fieldProps) => {\n return (\n 0 || fieldProps.meta.touched) && fieldProps.meta.error ? \"error\" : null}\n help={\n (fieldProps.form.submitCount > 0 || fieldProps.meta.touched) && fieldProps.meta.error\n ? fieldProps.meta.error || FieldsList[key].description\n : FieldsList[key].description\n }\n extra={FieldsList[key].extra}\n >\n {\n fieldProps.field.onChange({\n target: {\n name: keyPrefix + key,\n value: acceptedFiles,\n },\n })\n }}\n {...FieldsList[key].dropZoneProperties}\n disabled={FieldsList[key].disabled || formProps.disabled}\n >\n {({ getRootProps, getInputProps, isDragActive, isDragReject, acceptedFiles, fileRejections }) => (\n
\n
\n \n {isDragActive\n ? \"Rilascia qui i file\"\n : FieldsList[key].dropZoneProperties?.multiple == null || FieldsList[key].dropZoneProperties?.multiple == true\n ? \"Trascina qui uno o più file, o fai click per selezionarli\"\n : \"Trascina qui un file, o fai click per selezionarlo\"}\n
\n
    \n {acceptedFiles.map((f, i) => (\n
  • {f.name}
  • \n ))}\n {fileRejections.map((f, i) => (\n
  • \n {f.file.name}:{\" \"}\n {f.errors.map((e, i) => (\n {e.message} \n ))}\n
  • \n ))}\n
\n
\n )}\n \n \n )\n }}\n
\n )\n break\n case \"object\":\n return generateFields(FieldsList[key].properties, layout, formProps, undefined, key + \".\")\n case \"row\":\n // Render multiple fields in a row (2, 3, 4, 6, 8 or 12) by changing the span\n let spanPerField = 24 / Object.keys(FieldsList[key].properties).length\n return generateFields(FieldsList[key].properties, layout, formProps, spanPerField, keyPrefix)\n case \"component\":\n return {FieldsList[key].component}\n case \"html\":\n return
\n default:\n return \"\"\n }\n\n // Add span to fields (whole row 24 default)\n return (\n \n {toBeReturned}\n \n )\n })\n}\n\nconst convertToYupJsonSchema = (formJson) => {\n const schemaJson: any = {}\n const cfgJson = { errMessages: {} }\n let validatorsArray: any[] = []\n\n Object.keys(formJson).forEach((key) => {\n switch (key) {\n case \"properties\":\n // Process each property recursively\n schemaJson[\"properties\"] = {}\n Object.keys(formJson[\"properties\"]).forEach((property) => {\n switch (formJson[\"properties\"][property].type) {\n case \"row\":\n Object.keys(formJson[\"properties\"][property].properties).forEach((propertyNested) => {\n let { schema, config, customValidators } = convertToYupJsonSchema(formJson[\"properties\"][property].properties[propertyNested])\n schemaJson[\"properties\"][propertyNested] = schema\n cfgJson.errMessages[propertyNested] = config.errMessages\n validatorsArray = [...validatorsArray, ...customValidators]\n })\n break\n case \"component\":\n case \"html\":\n // Types not compatible with ValidationSchema converted through https://github.com/kristianmandrup/schema-to-yup\n break\n // console.log(\"File: \", convertToYupJsonSchema(formJson[\"properties\"][property]))\n\n break\n case \"file\":\n default:\n let { schema, config, customValidators } = convertToYupJsonSchema(formJson[\"properties\"][property])\n\n // Also check for arrays... like property=\"test[0]\"\n // const matchArray = /([a-zA-Z_][a-zA-Z0-9_]*)\\[([0-9]+)\\]/gm\n // let m\n // if ((m = matchArray.exec(property))) {\n // if (schemaJson[\"properties\"][m[1]] == null) schemaJson[\"properties\"][m[1]] = []\n // if (cfgJson.errMessages[m[1]] == null) cfgJson.errMessages[m[1]] = []\n\n // schemaJson[\"properties\"][m[1]][m[2]] = schema\n // validatorsArray = [...validatorsArray, ...customValidators]\n // cfgJson.errMessages[m[1]][m[2]] = config.errMessages\n // } else {\n schemaJson[\"properties\"][property] = schema\n validatorsArray = [...validatorsArray, ...customValidators]\n\n // Flatten error messages if inside an object\n if (formJson[\"properties\"][property].type === \"object\") {\n cfgJson.errMessages = { ...cfgJson.errMessages, ...config.errMessages }\n } else {\n cfgJson.errMessages[property] = config.errMessages\n }\n\n // Consider File as Array\n if (schema.type == \"file\") {\n schema.type = \"array\"\n }\n\n // }\n }\n })\n\n break\n case \"default\":\n case \"disabled\":\n case \"title\":\n case \"description\":\n case \"extra\":\n case \"placeholder\":\n case \"horizontal\":\n case \"inline\":\n case \"fieldProperties\":\n case \"fieldType\":\n case \"options\":\n // Avoid processing (not compatible)\n break\n case \"type\":\n switch (formJson[key]) {\n case \"date\":\n case \"datetime\":\n schemaJson[key] = \"string\"\n break\n default:\n schemaJson[key] = formJson[key]\n }\n break\n case \"customValidators\":\n validatorsArray = [...validatorsArray, ...formJson[key]]\n break\n case \"errMessages\":\n cfgJson.errMessages = { ...cfgJson.errMessages, ...formJson[key] }\n break\n default:\n // Not processed, keep it\n schemaJson[key] = formJson[key]\n }\n })\n\n //console.log({ schema: schemaJson, config: cfgJson, customValidators: validatorsArray })\n return { schema: schemaJson, config: cfgJson, customValidators: validatorsArray }\n}\n\nexport const extractDefaultValues = (formJson) => {\n const newJson = {}\n // If we are at the leave return it\n if (formJson.default !== undefined) return formJson.default\n if (formJson.properties === undefined) return \"\"\n\n // Process each property recursively\n Object.keys(formJson[\"properties\"]).forEach((property) => {\n switch (formJson[\"properties\"][property].type) {\n case \"row\":\n Object.keys(formJson[\"properties\"][property].properties).forEach((propertyNested) => {\n newJson[propertyNested] = extractDefaultValues(formJson[\"properties\"][property].properties[propertyNested])\n })\n break\n case \"component\":\n case \"html\":\n break\n default:\n const matchArray = /([a-zA-Z_][a-zA-Z0-9_]*)\\[([0-9]+)\\]/gm\n // Also check for arrays... like property=\"test[0]\"\n let m\n if ((m = matchArray.exec(property))) {\n if (newJson[m[1]] == null) newJson[m[1]] = []\n newJson[m[1]][m[2]] = extractDefaultValues(formJson[\"properties\"][property])\n } else {\n newJson[property] = extractDefaultValues(formJson[\"properties\"][property])\n }\n }\n })\n\n return newJson\n}\n\nexport const translateSchema = (node, t: TFunction, translateAll: Boolean = false) => {\n const newSchema = {}\n\n // If it's an array go throug all values (so also check if they are objects)\n if (Array.isArray(node)) {\n return node.map((e) => translateSchema(e, t))\n }\n\n // If it's an Object, go through all keys\n if (typeof node === \"object\" && node !== null) {\n // if object represents a component. Skip.\n if (node.type === \"component\" || node.type === \"html\") return node\n\n Object.keys(node).forEach((key) => {\n if (Array.isArray(node[key])) {\n // if key is an array (reiterate)\n newSchema[key] = node[key].map((e) => translateSchema(e, t))\n } else if (typeof node[key] === \"object\" && node[key] !== null) {\n // if key is an object (reiterate)\n newSchema[key] = translateSchema(node[key], t, key === \"errMessages\") // if error messages translate them all.\n } else {\n // OK, it's not an object/array, check the key name\n switch (key) {\n case \"title\":\n case \"description\":\n case \"placeholder\":\n newSchema[key] = t(node[key])\n //console.log(`${key}: ${node[key]} -> ${newSchema[key]}`);\n break\n // case \"html\":\n // case \"component\":\n // newSchema[key] = node[key];\n // break;\n default:\n // Copy the value or translate it if translateAll\n newSchema[key] = translateAll ? t(node[key]) : node[key]\n //if (translateAll) console.log(`${key}: ${node[key]} -> ${newSchema[key]}`);\n }\n }\n })\n\n //console.log(newSchema);\n return newSchema\n }\n\n // else return the value (we do not translate unidentified fields)\n return node\n}\n\nexport default FormGenerator\n","import { Storage } from \"aws-amplify\"\nimport { format } from \"date-fns\"\n\n// Resolve object property dinamically\n// https://stackoverflow.com/questions/4244896/dynamically-access-object-property-using-variable\nexport function resolve(path, obj) {\n return path.split(\".\").reduce(function (prev, curr) {\n return prev ? prev[curr] : null\n }, obj)\n}\n\nexport const handleUploadsAndSubstituteToURLs = async (values: any, setProgress: Function) => {\n let filesTotalSize = 0\n let filesUploadedSize = 0\n const arrayOfPromises = []\n\n const parseObject = async (obj, justCalculate = true) => {\n const now = format(new Date(), \"yyyyMMddHHmmss\")\n\n const keys = Object.keys(obj)\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i]\n //console.log(key, obj[key], typeof obj[key])\n if (Array.isArray(obj[key])) {\n // could be files?\n for (let j = 0; j < obj[key].length; j++) {\n let possibleFile = obj[key][j]\n if (possibleFile instanceof File) {\n if (justCalculate) {\n filesTotalSize += possibleFile.size\n } else {\n let fileSize = possibleFile.size\n // Upload file to users folder in AWS S3\n obj[key][j] = await Storage.put(now + \"/\" + possibleFile.name, possibleFile, {\n progressCallback(progress) {\n setProgress(Math.ceil(((filesUploadedSize + progress.loaded) / filesTotalSize) * 100))\n },\n level: \"protected\",\n contentType: possibleFile.type,\n })\n filesUploadedSize += fileSize\n }\n }\n }\n } else if (typeof obj[key] == \"object\" && obj[key] != null) await parseObject(obj[key], justCalculate)\n }\n }\n\n await parseObject(values)\n //console.log(\"Total to upload: \", filesTotalSize)\n await parseObject(values, false)\n return values\n}\n\nexport const capitalizeWords = (text: string) => (text ? text.toLowerCase().replace(/\\b\\w/g, (l) => l.toUpperCase()) : \"\")\n","import React, { useEffect, useRef } from \"react\"\n\n// a custom hook for setting the page title\nexport function useDocumentTitle(title: string) {\n useEffect(() => {\n const originalTitle = document.title\n document.title = title\n\n return () => {\n document.title = originalTitle\n }\n }, [title])\n}\n\nexport const useComponentWillMount = (func) => {\n const willMount = useRef(true)\n\n if (willMount.current) {\n func()\n }\n\n willMount.current = false\n}\n","export function accessibleRouteChangeHandler() {\n return window.setTimeout(() => {\n const mainContainer = document.getElementById(\"primary-app-container\")\n if (mainContainer) {\n mainContainer.focus()\n }\n }, 50)\n}\n\nexport const checkSingleRequirement = (requiredRole: string, isLoggedIn: boolean, roles: any): boolean => {\n // Logged in or not checks\n if (requiredRole === \"AUTH\") return isLoggedIn\n if (requiredRole === \"NOAUTH\") return !isLoggedIn\n // Check simple roles\n if (roles.indexOf(requiredRole) !== -1) return true\n // If Admin always true except for SuperAdmin\n if (requiredRole !== \"SuperAdmin\" && roles.indexOf(\"Admin\") !== -1) return true\n // SuperAdmin always true\n if (roles.indexOf(\"SuperAdmin\") !== -1) return true\n\n return false\n}\n\n/**\n * Given a required role (or a list of them), a boolean indicating if the user is logged in, and his roles\n * determine if the user is authorized\n * @param requires\n * @param isLoggedIn\n * @param roles\n */\nexport const checkIfAuthorized = (\n requires: undefined | string | string[],\n isLoggedIn: boolean,\n roles: any\n): boolean => {\n const toBeRendered = requires\n ? Array.isArray(requires)\n ? requires.reduce((val, req) => val || checkSingleRequirement(req, isLoggedIn, roles), false)\n : checkSingleRequirement(requires, isLoggedIn, roles)\n : true\n\n return toBeRendered\n}\n\nvar htmlEntities = {\n nbsp: \" \",\n cent: \"¢\",\n pound: \"£\",\n yen: \"¥\",\n euro: \"€\",\n copy: \"©\",\n reg: \"®\",\n lt: \"<\",\n gt: \">\",\n quot: '\"',\n amp: \"&\",\n apos: \"'\",\n}\n\nexport const decodeHTMLEntities = (str) => {\n return str.replace(/\\&([^;]+);/g, function (entity, entityCode) {\n var match\n\n if (entityCode in htmlEntities) {\n return htmlEntities[entityCode]\n /*eslint no-cond-assign: 0*/\n } else if ((match = entityCode.match(/^#x([\\da-fA-F]+)$/))) {\n return String.fromCharCode(parseInt(match[1], 16))\n /*eslint no-cond-assign: 0*/\n } else if ((match = entityCode.match(/^#(\\d+)$/))) {\n return String.fromCharCode(~~match[1])\n } else {\n return entity\n }\n })\n}\n","import React from \"react\"\nimport { addDays } from \"date-fns\"\nimport countries from \"../../Layout/Forms/data/countries\"\n\nimport { Tooltip } from \"antd\"\nimport { InfoCircleOutlined, UserOutlined } from \"@ant-design/icons\"\nimport { Link } from \"../../i18n\"\nimport * as site from \"../../sitemap\"\nimport { FormFieldTypeData } from \"../../Layout/Forms/FormDataType\"\nimport { faLoveseat } from \"@fortawesome/pro-solid-svg-icons\"\nimport { capitalizeWords } from \"../../Layout/Forms/utils\"\n\nexport const firstName: FormFieldTypeData = {\n title: \"Nome\",\n type: \"string\",\n nullable: true,\n required: true,\n errMessages: {\n required: \"Il Nome è richiesto.\",\n },\n onChange: (v) => capitalizeWords(v),\n}\n\nexport const lastName: FormFieldTypeData = {\n title: \"Cognome\",\n type: \"string\",\n nullable: true,\n required: true,\n errMessages: {\n required: \"Il Cognome è richiesto.\",\n },\n onChange: (v) => capitalizeWords(v),\n}\n\nexport const birthDate: FormFieldTypeData = {\n title: \"Data di nascita\",\n type: \"date\",\n nullable: true,\n fieldProperties: {\n dateFormat: \"dd/MM/yyyy\",\n maxDate: addDays(new Date(), -1),\n },\n errMessages: { required: \"E' necessario indicare la data di nascita\" },\n}\n\nexport const gender: FormFieldTypeData = {\n title: \"Sesso\",\n type: \"string\",\n fieldType: \"select\",\n nullable: true,\n fieldProperties: {\n variant: \"single\",\n placeholderText: \"Select...\",\n options: [\n { value: \"Maschio\", title: \"Maschio\" },\n { value: \"Femmina\", title: \"Femmina\" },\n { value: \"Altro\", title: \"Altro\" },\n ],\n },\n errMessages: { required: \"E' necessario indicare il sesso\" },\n}\n\nexport const displayName: FormFieldTypeData = {\n title: \"Display name\",\n description: \"Con che nome vuoi comparire sul sito?\",\n type: \"string\",\n pattern: \"^[a-zA-Z].*$\",\n required: true,\n errMessages: {\n required: \"Il Display Name è richiesto.\",\n pattern: \"Il Display Name deve iniziare con una lettera.\",\n },\n}\n\nexport const nominativo: FormFieldTypeData = {\n title: \"Nome\",\n type: \"string\",\n pattern: \"^[a-zA-Z].*$\",\n required: true,\n errMessages: {\n required: \"Il nome è richiesto.\",\n pattern: \"Il nome deve iniziare con una lettera.\",\n },\n}\n\nexport const email: FormFieldTypeData = {\n type: \"string\",\n title: \"Email\",\n format: \"email\",\n required: true,\n errMessages: {\n required: \"La mail è richiesta\",\n },\n onChange: (v) => v.toLowerCase(),\n}\n\nexport const mobile: FormFieldTypeData = {\n type: \"string\",\n title: \"Cellulare\",\n pattern: \"^\\\\+?[0-9]{8,16}$\",\n nullable: true,\n errMessages: { required: \"E' necessario indicare il cellulare\", pattern: \"Per favore indicare un numero valido\" },\n}\n\nexport const message: FormFieldTypeData = {\n title: \"Messaggio\",\n type: \"string\",\n fieldType: \"textarea\",\n required: true,\n fieldProperties: {\n autoSize: { minRows: 4, maxRows: 8 },\n },\n}\n\nexport const address1: FormFieldTypeData = {\n type: \"string\",\n title: \"Indirizzo\",\n nullable: true,\n errMessages: { required: \"E' necessario indicare l'indirizzo\" },\n}\n\nexport const birthPlace: FormFieldTypeData = {\n type: \"string\",\n title: \"Luogo di nascita\",\n nullable: true,\n errMessages: { required: \"E' necessario indicare il luogo di nascita\" },\n}\n\nexport const city: FormFieldTypeData = {\n type: \"string\",\n title: \"Città\",\n nullable: true,\n errMessages: { required: \"E' necessario indicare la città\" },\n onChange: (v) => capitalizeWords(v),\n}\n\nexport const zipCode: FormFieldTypeData = {\n type: \"string\",\n title: \"CAP\",\n pattern: \"^[0-9]{5}$\",\n nullable: true,\n errMessages: { required: \"E' necessario indicare il CAP\", pattern: \"Indicare un CAP corretto\" },\n}\n\nexport const state: FormFieldTypeData = {\n type: \"string\",\n title: \"Provincia (sigla)\",\n pattern: \"^([A-Za-z]{2}|[rR][oO][mM][aA])$\",\n nullable: true,\n errMessages: { required: \"E' necessario indicare la provincia\", pattern: \"Indicare la provincia con la sigla\" },\n onChange: (v) => v.toUpperCase(),\n}\n\nexport const country: FormFieldTypeData = {\n title: \"Nazione\",\n description: \"Selezionare la nazione di residenza\",\n type: \"string\",\n fieldType: \"select\",\n fieldProperties: {\n variant: \"typeahead\",\n placeholderText: \"Select...\",\n options: countries.map((c) => ({ value: c.code, title: c.emoji + \" \" + c.name })),\n },\n //default: [\"Italy\"],\n required: true,\n nullable: true,\n errMessages: {\n required: \"E' necessario specificare una nazione\",\n },\n}\n\nexport const declaredOrigin: FormFieldTypeData = {\n type: \"string\",\n title: \"Come hai conosciuto ecoverso?\",\n // description: \"Selezionare l'opzione che meglio si adatta alla tua esperienza\",\n required: true,\n nullable: true,\n errMessages: {\n required: \"E' necessario selezionare una risposta\",\n },\n fieldType: \"select\",\n fieldProperties: {\n variant: \"typeahead\",\n placeholderText: \"Seleziona...\",\n options: [\n { value: \"PP - Passaparola\", title: \"Passaparola\" },\n {\n label: \"Motori di ricerca\",\n options: [\n { value: \"MR - Google\", title: \"Google\" },\n { value: \"MR - Altro motore di ricerca\", title: \"Altro motore di ricerca\" },\n ],\n },\n { value: \"Articolo Online\", title: \"Articolo Online\" },\n { value: \"Articolo Cartaceo\", title: \"Articolo Cartaceo\" },\n { value: \"Servizio TV\", title: \"Servizio TV\" },\n { value: \"Trasmissione Radio\", title: \"Trasmissione Radio\" },\n {\n label: \"Social Network\",\n options: [\n { value: \"SN - Facebook\", title: \"Facebook\" },\n { value: \"SN - Instagram\", title: \"Instagram\" },\n { value: \"SN - Twitter\", title: \"Twitter\" },\n { value: \"SN - YouTube\", title: \"YouTube\" },\n { value: \"SN - Altro Social Network\", title: \"Altro Social Network\" },\n ],\n },\n { value: \"Forum Online\", title: \"Forum Online\" },\n { value: \"GAS (Gruppo d'Acquisto Solidale)\", title: \"GAS (Gruppo d'Acquisto Solidale)\" },\n { value: \"Convenzione (con aziende, enti e associazioni)\", title: \"Convenzione (con aziende, enti e associazioni)\" },\n { value: \"Fiere\", title: \"Fiere\" },\n { value: \"Raduni\", title: \"Raduni\" },\n { value: \"Adesivo su auto ibrida/elettrica\", title: \"Adesivo su auto ibrida/elettrica\" },\n { value: \"Altro\", title: \"Altro\" },\n ],\n },\n}\n\nexport const discountCode: FormFieldTypeData = {\n type: \"string\",\n title: \"Codice promozionale\",\n nullable: true,\n}\nexport const discountCodeInfo: FormFieldTypeData = {\n type: \"component\",\n component: (\n

Se hai un codice promozionale inseriscilo qui. Ti darà diritto al 50% di sconto sulla quota associativa ad Ecoverso.

\n ),\n}\n\nexport const readPrivacy: FormFieldTypeData = {\n type: \"component\",\n component: (\n

\n Leggi la{\" \"}\n \n Privacy policy\n \n

\n ),\n}\n\nexport const newsletterInfo: FormFieldTypeData = {\n type: \"component\",\n component:

Ci piacerebbe aggiornarti periodicamente sui nostri gruppi d’acquisto, corsi ed eventi.

,\n}\n\nexport const acptNewsletter: FormFieldTypeData = {\n title: \"Desidero iscrivermi alla newsletter\",\n className: \"mb-xxs\",\n type: \"string\",\n fieldType: \"radio\",\n inline: true,\n options: [\n { value: true, title: \"Si\" },\n { value: false, title: \"No\" },\n ],\n required: true,\n errMessages: {\n required: \"E' necessario selezionare una risposta\",\n },\n}\n\nexport const marketingInfo: FormFieldTypeData = {\n type: \"component\",\n component: (\n

\n Ci piacerebbe raccontarti la nostra storia e inviarti offerte speciali. Nessun altro al di fuori di noi potrà inviarti comunicazioni commerciali.\n

\n ),\n}\n\nexport const acptMarketing: FormFieldTypeData = {\n title: \"Accetto il trattamento dei miei dati per finalità di marketing\",\n className: \"mb-xxs\",\n type: \"string\",\n fieldType: \"radio\",\n inline: true,\n options: [\n { value: true, title: \"Si\" },\n { value: false, title: \"No\" },\n ],\n required: true,\n errMessages: {\n required: \"E' necessario selezionare una risposta\",\n },\n}\n\nexport const profilingInfo: FormFieldTypeData = {\n type: \"component\",\n component: (\n

Ci piacerebbe capire quali sono le tue preferenze per offrirti servizi sempre migliori e proposte più interessanti per te.

\n ),\n}\n\nexport const acptProfiling: FormFieldTypeData = {\n title: \"Accetto il trattamento dei miei dati per finalità di profilazione\",\n type: \"string\",\n fieldType: \"radio\",\n inline: true,\n options: [\n { value: true, title: \"Si\" },\n { value: false, title: \"No\" },\n ],\n required: true,\n errMessages: {\n required: \"E' necessario selezionare una risposta\",\n },\n}\n\nexport const statuteInfo: FormFieldTypeData = {\n type: \"component\",\n component: (\n

\n Associantodi a Ecoverso, accetti lo Statuto della nostra associazione. Puoi leggere tutti i dettagli{\" \"}\n \n a questo link\n \n .\n

\n ),\n}\n\nexport const acptStatute: FormFieldTypeData = {\n title: \"Accetto lo statuto dell'associazione Ecoverso\",\n type: \"boolean\",\n oneOf: [true],\n required: true,\n errMessages: {\n required: \"E' necessario accettare lo statuto per associarsi\",\n oneOf: \"E' necessario accettare lo statuto per associarsi\",\n },\n}\n\nexport const loginCode: FormFieldTypeData = {\n type: \"string\",\n title: \"Codice\",\n required: true,\n errMessages: {\n required: \"È necessario inserire il codice ricevuto via mail\",\n },\n}\n\nexport const taxCode: FormFieldTypeData = {\n type: \"string\",\n title: \"Codice Fiscale\",\n required: true,\n errMessages: {\n required: \"È necessario inserire il codice fiscale\",\n },\n customValidators: [\n {\n type: \"function\",\n fieldName: \"taxCode\",\n function: (v) => {\n const regex =\n /^(?:[A-Z][AEIOU][AEIOUX]|[B-DF-HJ-NP-TV-Z]{2}[A-Z]){2}(?:[\\dLMNP-V]{2}(?:[A-EHLMPR-T](?:[04LQ][1-9MNP-V]|[15MR][\\dLMNP-V]|[26NS][0-8LMNP-U])|[DHPS][37PT][0L]|[ACELMRT][37PT][01LM]|[AC-EHLMPR-T][26NS][9V])|(?:[02468LNQSU][048LQU]|[13579MPRTV][26NS])B[26NS][9V])(?:[A-MZ][1-9MNP-V][\\dLMNP-V]{2}|[A-M][0L](?:[1-9MNP-V][\\dLMNP-V]|[0L][1-9MNP-V]))[A-Z]$/i\n const result = v.match(regex)\n return result != null\n },\n errMessage: \"Il formato del codice fiscale non è corretto\",\n },\n ],\n}\n","/* tslint:disable */\n/* eslint-disable */\n// this is an auto generated file. This will be overwritten\n\nexport const deleteAffiliation = /* GraphQL */ `\n mutation DeleteAffiliation($id: String!) {\n deleteAffiliation(id: $id) {\n id\n idUser\n idOrganization\n affiliationCode\n affiliationType\n startDate\n endDate\n subscriptionDiscountAmount\n subscriptionDiscountPercent\n ethicoinBalance\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createAffiliation = /* GraphQL */ `\n mutation CreateAffiliation($createAffiliationInput: CreateAffiliationInput!) {\n createAffiliation(createAffiliationInput: $createAffiliationInput) {\n id\n idUser\n idOrganization\n affiliationCode\n affiliationType\n startDate\n endDate\n subscriptionDiscountAmount\n subscriptionDiscountPercent\n ethicoinBalance\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateAffiliation = /* GraphQL */ `\n mutation UpdateAffiliation($updateAffiliationInput: UpdateAffiliationInput!) {\n updateAffiliation(updateAffiliationInput: $updateAffiliationInput) {\n id\n idUser\n idOrganization\n affiliationCode\n affiliationType\n startDate\n endDate\n subscriptionDiscountAmount\n subscriptionDiscountPercent\n ethicoinBalance\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteBuyingGroup = /* GraphQL */ `\n mutation DeleteBuyingGroup($id: String!) {\n deleteBuying_group(id: $id) {\n id\n idOrganization\n Organizer {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n GoodsOrServices {\n id\n idBuyingGroup\n idGoodOrService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Resellers {\n id\n idBuyingGroup\n idReseller\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n GoodOrServiceVariants {\n id\n idGoodOrService\n idBuyingGroup\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n UsersInBuyingGroup {\n id\n idBuyingGroup\n idUser\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n ChosedVariants {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createBuyingGroup = /* GraphQL */ `\n mutation CreateBuyingGroup(\n $createBuying_groupInput: CreateBuying_groupInput!\n ) {\n createBuying_group(createBuying_groupInput: $createBuying_groupInput) {\n id\n idOrganization\n Organizer {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n GoodsOrServices {\n id\n idBuyingGroup\n idGoodOrService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Resellers {\n id\n idBuyingGroup\n idReseller\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n GoodOrServiceVariants {\n id\n idGoodOrService\n idBuyingGroup\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n UsersInBuyingGroup {\n id\n idBuyingGroup\n idUser\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n ChosedVariants {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateBuyingGroup = /* GraphQL */ `\n mutation UpdateBuyingGroup(\n $updateBuying_groupInput: UpdateBuying_groupInput!\n ) {\n updateBuying_group(updateBuying_groupInput: $updateBuying_groupInput) {\n id\n idOrganization\n Organizer {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n GoodsOrServices {\n id\n idBuyingGroup\n idGoodOrService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Resellers {\n id\n idBuyingGroup\n idReseller\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n GoodOrServiceVariants {\n id\n idGoodOrService\n idBuyingGroup\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n UsersInBuyingGroup {\n id\n idBuyingGroup\n idUser\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n ChosedVariants {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteCategory = /* GraphQL */ `\n mutation DeleteCategory($id: String!) {\n deleteCategory(id: $id) {\n id\n idParentCategory\n name\n description\n isPublic\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createCategory = /* GraphQL */ `\n mutation CreateCategory($createCategoryInput: CreateCategoryInput!) {\n createCategory(createCategoryInput: $createCategoryInput) {\n id\n idParentCategory\n name\n description\n isPublic\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateCategory = /* GraphQL */ `\n mutation UpdateCategory($updateCategoryInput: UpdateCategoryInput!) {\n updateCategory(updateCategoryInput: $updateCategoryInput) {\n id\n idParentCategory\n name\n description\n isPublic\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteCategoryHasGoodOrService = /* GraphQL */ `\n mutation DeleteCategoryHasGoodOrService($id: String!) {\n deleteCategory_has_good_or_service(id: $id) {\n id\n idCategory\n idGoodOrService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createCategoryHasGoodOrService = /* GraphQL */ `\n mutation CreateCategoryHasGoodOrService(\n $createCategory_has_good_or_serviceInput: CreateCategory_has_good_or_serviceInput!\n ) {\n createCategory_has_good_or_service(\n createCategory_has_good_or_serviceInput: $createCategory_has_good_or_serviceInput\n ) {\n id\n idCategory\n idGoodOrService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateCategoryHasGoodOrService = /* GraphQL */ `\n mutation UpdateCategoryHasGoodOrService(\n $updateCategory_has_good_or_serviceInput: UpdateCategory_has_good_or_serviceInput!\n ) {\n updateCategory_has_good_or_service(\n updateCategory_has_good_or_serviceInput: $updateCategory_has_good_or_serviceInput\n ) {\n id\n idCategory\n idGoodOrService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteChosedVariant = /* GraphQL */ `\n mutation DeleteChosedVariant($id: String!) {\n deleteChosed_variant(id: $id) {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Variant {\n id\n idGoodOrService\n idBuyingGroup\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Reseller {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n UserInBuyingGroup {\n id\n idBuyingGroup\n idUser\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createChosedVariant = /* GraphQL */ `\n mutation CreateChosedVariant(\n $createChosed_variantInput: CreateChosed_variantInput!\n ) {\n createChosed_variant(\n createChosed_variantInput: $createChosed_variantInput\n ) {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Variant {\n id\n idGoodOrService\n idBuyingGroup\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Reseller {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n UserInBuyingGroup {\n id\n idBuyingGroup\n idUser\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateChosedVariant = /* GraphQL */ `\n mutation UpdateChosedVariant(\n $updateChosed_variantInput: UpdateChosed_variantInput!\n ) {\n updateChosed_variant(\n updateChosed_variantInput: $updateChosed_variantInput\n ) {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Variant {\n id\n idGoodOrService\n idBuyingGroup\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Reseller {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n UserInBuyingGroup {\n id\n idBuyingGroup\n idUser\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteCommission = /* GraphQL */ `\n mutation DeleteCommission($id: String!) {\n deleteCommission(id: $id) {\n id\n idAffiliation\n idCategory\n startDate\n endDate\n percent\n amountEach\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createCommission = /* GraphQL */ `\n mutation CreateCommission($createCommissionInput: CreateCommissionInput!) {\n createCommission(createCommissionInput: $createCommissionInput) {\n id\n idAffiliation\n idCategory\n startDate\n endDate\n percent\n amountEach\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateCommission = /* GraphQL */ `\n mutation UpdateCommission($updateCommissionInput: UpdateCommissionInput!) {\n updateCommission(updateCommissionInput: $updateCommissionInput) {\n id\n idAffiliation\n idCategory\n startDate\n endDate\n percent\n amountEach\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteEthicoinTransaction = /* GraphQL */ `\n mutation DeleteEthicoinTransaction($id: String!) {\n deleteEthicoin_transaction(id: $id) {\n id\n idAffiliation\n entryDate\n amount\n reason\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createEthicoinTransaction = /* GraphQL */ `\n mutation CreateEthicoinTransaction(\n $createEthicoin_transactionInput: CreateEthicoin_transactionInput!\n ) {\n createEthicoin_transaction(\n createEthicoin_transactionInput: $createEthicoin_transactionInput\n ) {\n id\n idAffiliation\n entryDate\n amount\n reason\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateEthicoinTransaction = /* GraphQL */ `\n mutation UpdateEthicoinTransaction(\n $updateEthicoin_transactionInput: UpdateEthicoin_transactionInput!\n ) {\n updateEthicoin_transaction(\n updateEthicoin_transactionInput: $updateEthicoin_transactionInput\n ) {\n id\n idAffiliation\n entryDate\n amount\n reason\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createFormSubmission = /* GraphQL */ `\n mutation CreateFormSubmission(\n $createForm_submissionInput: CreateForm_submissionInput!\n ) {\n createForm_submission(\n createForm_submissionInput: $createForm_submissionInput\n ) {\n id\n idUser\n jsonData\n formName\n result\n sourceIp\n identityId\n referer\n userAgent\n createdDate\n createdBy\n }\n }\n`;\nexport const deleteGoodOrService = /* GraphQL */ `\n mutation DeleteGoodOrService($id: String!) {\n deleteGood_or_service(id: $id) {\n id\n idGoodOrServiceType\n GoodOrServiceType {\n id\n name\n slug\n description\n userChoosingCustomFieldsDef\n userConfirmationCustomFieldsDef\n resellerSellingCustomFieldsDef\n isGood\n isService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n name\n slug\n description\n idVendor\n GoodsOrServicesInBuyingGroups {\n id\n idBuyingGroup\n idGoodOrService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createGoodOrService = /* GraphQL */ `\n mutation CreateGoodOrService(\n $createGood_or_serviceInput: CreateGood_or_serviceInput!\n ) {\n createGood_or_service(\n createGood_or_serviceInput: $createGood_or_serviceInput\n ) {\n id\n idGoodOrServiceType\n GoodOrServiceType {\n id\n name\n slug\n description\n userChoosingCustomFieldsDef\n userConfirmationCustomFieldsDef\n resellerSellingCustomFieldsDef\n isGood\n isService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n name\n slug\n description\n idVendor\n GoodsOrServicesInBuyingGroups {\n id\n idBuyingGroup\n idGoodOrService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateGoodOrService = /* GraphQL */ `\n mutation UpdateGoodOrService(\n $updateGood_or_serviceInput: UpdateGood_or_serviceInput!\n ) {\n updateGood_or_service(\n updateGood_or_serviceInput: $updateGood_or_serviceInput\n ) {\n id\n idGoodOrServiceType\n GoodOrServiceType {\n id\n name\n slug\n description\n userChoosingCustomFieldsDef\n userConfirmationCustomFieldsDef\n resellerSellingCustomFieldsDef\n isGood\n isService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n name\n slug\n description\n idVendor\n GoodsOrServicesInBuyingGroups {\n id\n idBuyingGroup\n idGoodOrService\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteGoodOrServiceInBuyingGroup = /* GraphQL */ `\n mutation DeleteGoodOrServiceInBuyingGroup($id: String!) {\n deleteGood_or_service_in_buying_group(id: $id) {\n id\n idBuyingGroup\n idGoodOrService\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n GoodOrService {\n id\n idGoodOrServiceType\n name\n slug\n description\n idVendor\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Variants {\n id\n idGoodOrService\n idBuyingGroup\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createGoodOrServiceInBuyingGroup = /* GraphQL */ `\n mutation CreateGoodOrServiceInBuyingGroup(\n $createGood_or_service_in_buying_groupInput: CreateGood_or_service_in_buying_groupInput!\n ) {\n createGood_or_service_in_buying_group(\n createGood_or_service_in_buying_groupInput: $createGood_or_service_in_buying_groupInput\n ) {\n id\n idBuyingGroup\n idGoodOrService\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n GoodOrService {\n id\n idGoodOrServiceType\n name\n slug\n description\n idVendor\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Variants {\n id\n idGoodOrService\n idBuyingGroup\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateGoodOrServiceInBuyingGroup = /* GraphQL */ `\n mutation UpdateGoodOrServiceInBuyingGroup(\n $updateGood_or_service_in_buying_groupInput: UpdateGood_or_service_in_buying_groupInput!\n ) {\n updateGood_or_service_in_buying_group(\n updateGood_or_service_in_buying_groupInput: $updateGood_or_service_in_buying_groupInput\n ) {\n id\n idBuyingGroup\n idGoodOrService\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n GoodOrService {\n id\n idGoodOrServiceType\n name\n slug\n description\n idVendor\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Variants {\n id\n idGoodOrService\n idBuyingGroup\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteGoodOrServiceType = /* GraphQL */ `\n mutation DeleteGoodOrServiceType($id: String!) {\n deleteGood_or_service_type(id: $id) {\n id\n name\n slug\n description\n userChoosingCustomFieldsDef\n userConfirmationCustomFieldsDef\n resellerSellingCustomFieldsDef\n isGood\n isService\n GoodsOrServices {\n id\n idGoodOrServiceType\n name\n slug\n description\n idVendor\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createGoodOrServiceType = /* GraphQL */ `\n mutation CreateGoodOrServiceType(\n $createGood_or_service_typeInput: CreateGood_or_service_typeInput!\n ) {\n createGood_or_service_type(\n createGood_or_service_typeInput: $createGood_or_service_typeInput\n ) {\n id\n name\n slug\n description\n userChoosingCustomFieldsDef\n userConfirmationCustomFieldsDef\n resellerSellingCustomFieldsDef\n isGood\n isService\n GoodsOrServices {\n id\n idGoodOrServiceType\n name\n slug\n description\n idVendor\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateGoodOrServiceType = /* GraphQL */ `\n mutation UpdateGoodOrServiceType(\n $updateGood_or_service_typeInput: UpdateGood_or_service_typeInput!\n ) {\n updateGood_or_service_type(\n updateGood_or_service_typeInput: $updateGood_or_service_typeInput\n ) {\n id\n name\n slug\n description\n userChoosingCustomFieldsDef\n userConfirmationCustomFieldsDef\n resellerSellingCustomFieldsDef\n isGood\n isService\n GoodsOrServices {\n id\n idGoodOrServiceType\n name\n slug\n description\n idVendor\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteOrganization = /* GraphQL */ `\n mutation DeleteOrganization($id: String!) {\n deleteOrganization(id: $id) {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n ResellerIn {\n id\n idBuyingGroup\n idReseller\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n OrganizedBuyingGroups {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n ManagingUsers {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createOrganization = /* GraphQL */ `\n mutation CreateOrganization(\n $createOrganizationInput: CreateOrganizationInput!\n ) {\n createOrganization(createOrganizationInput: $createOrganizationInput) {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n ResellerIn {\n id\n idBuyingGroup\n idReseller\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n OrganizedBuyingGroups {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n ManagingUsers {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateOrganization = /* GraphQL */ `\n mutation UpdateOrganization(\n $updateOrganizationInput: UpdateOrganizationInput!\n ) {\n updateOrganization(updateOrganizationInput: $updateOrganizationInput) {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n ResellerIn {\n id\n idBuyingGroup\n idReseller\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n OrganizedBuyingGroups {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n ManagingUsers {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deletePayment = /* GraphQL */ `\n mutation DeletePayment($id: String!) {\n deletePayment(id: $id) {\n id\n idUser\n stripeSessionId\n paymentTime\n amount_subtotal\n amount_total\n currency\n payment_status\n mode\n stripeCustomerId\n stripeSubscriptionId\n Subscriptions {\n id\n idUser\n stripeSubscriptionId\n stripeCustomerId\n startDate\n endDate\n status\n cancel_at_period_end\n canceledAt\n stripeProductId\n stripePriceId\n amount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createPayment = /* GraphQL */ `\n mutation CreatePayment($createPaymentInput: CreatePaymentInput!) {\n createPayment(createPaymentInput: $createPaymentInput) {\n id\n idUser\n stripeSessionId\n paymentTime\n amount_subtotal\n amount_total\n currency\n payment_status\n mode\n stripeCustomerId\n stripeSubscriptionId\n Subscriptions {\n id\n idUser\n stripeSubscriptionId\n stripeCustomerId\n startDate\n endDate\n status\n cancel_at_period_end\n canceledAt\n stripeProductId\n stripePriceId\n amount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updatePayment = /* GraphQL */ `\n mutation UpdatePayment($updatePaymentInput: UpdatePaymentInput!) {\n updatePayment(updatePaymentInput: $updatePaymentInput) {\n id\n idUser\n stripeSessionId\n paymentTime\n amount_subtotal\n amount_total\n currency\n payment_status\n mode\n stripeCustomerId\n stripeSubscriptionId\n Subscriptions {\n id\n idUser\n stripeSubscriptionId\n stripeCustomerId\n startDate\n endDate\n status\n cancel_at_period_end\n canceledAt\n stripeProductId\n stripePriceId\n amount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteReseller = /* GraphQL */ `\n mutation DeleteReseller($id: String!) {\n deleteReseller(id: $id) {\n id\n idBuyingGroup\n idReseller\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Organization {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createReseller = /* GraphQL */ `\n mutation CreateReseller($createResellerInput: CreateResellerInput!) {\n createReseller(createResellerInput: $createResellerInput) {\n id\n idBuyingGroup\n idReseller\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Organization {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateReseller = /* GraphQL */ `\n mutation UpdateReseller($updateResellerInput: UpdateResellerInput!) {\n updateReseller(updateResellerInput: $updateResellerInput) {\n id\n idBuyingGroup\n idReseller\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Organization {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteResellerHasVariant = /* GraphQL */ `\n mutation DeleteResellerHasVariant($id: String!) {\n deleteReseller_has_variant(id: $id) {\n id\n idReseller\n idVariant\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createResellerHasVariant = /* GraphQL */ `\n mutation CreateResellerHasVariant(\n $createReseller_has_variantInput: CreateReseller_has_variantInput!\n ) {\n createReseller_has_variant(\n createReseller_has_variantInput: $createReseller_has_variantInput\n ) {\n id\n idReseller\n idVariant\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateResellerHasVariant = /* GraphQL */ `\n mutation UpdateResellerHasVariant(\n $updateReseller_has_variantInput: UpdateReseller_has_variantInput!\n ) {\n updateReseller_has_variant(\n updateReseller_has_variantInput: $updateReseller_has_variantInput\n ) {\n id\n idReseller\n idVariant\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteSubscription = /* GraphQL */ `\n mutation DeleteSubscription($id: String!) {\n deleteSubscription(id: $id) {\n id\n idUser\n stripeSubscriptionId\n stripeCustomerId\n startDate\n endDate\n status\n cancel_at_period_end\n canceledAt\n stripeProductId\n stripePriceId\n amount\n Payments {\n id\n idUser\n stripeSessionId\n paymentTime\n amount_subtotal\n amount_total\n currency\n payment_status\n mode\n stripeCustomerId\n stripeSubscriptionId\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createSubscription = /* GraphQL */ `\n mutation CreateSubscription(\n $createSubscriptionInput: CreateSubscriptionInput!\n ) {\n createSubscription(createSubscriptionInput: $createSubscriptionInput) {\n id\n idUser\n stripeSubscriptionId\n stripeCustomerId\n startDate\n endDate\n status\n cancel_at_period_end\n canceledAt\n stripeProductId\n stripePriceId\n amount\n Payments {\n id\n idUser\n stripeSessionId\n paymentTime\n amount_subtotal\n amount_total\n currency\n payment_status\n mode\n stripeCustomerId\n stripeSubscriptionId\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateSubscription = /* GraphQL */ `\n mutation UpdateSubscription(\n $updateSubscriptionInput: UpdateSubscriptionInput!\n ) {\n updateSubscription(updateSubscriptionInput: $updateSubscriptionInput) {\n id\n idUser\n stripeSubscriptionId\n stripeCustomerId\n startDate\n endDate\n status\n cancel_at_period_end\n canceledAt\n stripeProductId\n stripePriceId\n amount\n Payments {\n id\n idUser\n stripeSessionId\n paymentTime\n amount_subtotal\n amount_total\n currency\n payment_status\n mode\n stripeCustomerId\n stripeSubscriptionId\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteUser = /* GraphQL */ `\n mutation DeleteUser($id: String!) {\n deleteUser(id: $id) {\n id\n username\n identityId\n idAffiliation\n idOrganization\n Organization {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n UserInBuyingGroups {\n id\n idBuyingGroup\n idUser\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n ChosedVariants {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Payments {\n id\n idUser\n stripeSessionId\n paymentTime\n amount_subtotal\n amount_total\n currency\n payment_status\n mode\n stripeCustomerId\n stripeSubscriptionId\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Subscriptions {\n id\n idUser\n stripeSubscriptionId\n stripeCustomerId\n startDate\n endDate\n status\n cancel_at_period_end\n canceledAt\n stripeProductId\n stripePriceId\n amount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n }\n`;\nexport const createUser = /* GraphQL */ `\n mutation CreateUser($createUserInput: CreateUserInput!) {\n createUser(createUserInput: $createUserInput) {\n id\n username\n identityId\n idAffiliation\n idOrganization\n Organization {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n UserInBuyingGroups {\n id\n idBuyingGroup\n idUser\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n ChosedVariants {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Payments {\n id\n idUser\n stripeSessionId\n paymentTime\n amount_subtotal\n amount_total\n currency\n payment_status\n mode\n stripeCustomerId\n stripeSubscriptionId\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Subscriptions {\n id\n idUser\n stripeSubscriptionId\n stripeCustomerId\n startDate\n endDate\n status\n cancel_at_period_end\n canceledAt\n stripeProductId\n stripePriceId\n amount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n }\n`;\nexport const updateUser = /* GraphQL */ `\n mutation UpdateUser($updateUserInput: UpdateUserInput!) {\n updateUser(updateUserInput: $updateUserInput) {\n id\n username\n identityId\n idAffiliation\n idOrganization\n Organization {\n id\n name\n organizationType\n isLocation\n isPlaceHolder\n country\n state\n city\n zipCode\n address1\n VATNumber\n SDICode\n PECEmail\n brands\n notificationsEmail\n notifyOnEachSell\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n UserInBuyingGroups {\n id\n idBuyingGroup\n idUser\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n ChosedVariants {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Payments {\n id\n idUser\n stripeSessionId\n paymentTime\n amount_subtotal\n amount_total\n currency\n payment_status\n mode\n stripeCustomerId\n stripeSubscriptionId\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n Subscriptions {\n id\n idUser\n stripeSubscriptionId\n stripeCustomerId\n startDate\n endDate\n status\n cancel_at_period_end\n canceledAt\n stripeProductId\n stripePriceId\n amount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n }\n`;\nexport const deleteUserInBuyingGroup = /* GraphQL */ `\n mutation DeleteUserInBuyingGroup($id: String!) {\n deleteUser_in_buying_group(id: $id) {\n id\n idBuyingGroup\n idUser\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n ChosedVariants {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createUserInBuyingGroup = /* GraphQL */ `\n mutation CreateUserInBuyingGroup(\n $createUser_in_buying_groupInput: CreateUser_in_buying_groupInput!\n ) {\n createUser_in_buying_group(\n createUser_in_buying_groupInput: $createUser_in_buying_groupInput\n ) {\n id\n idBuyingGroup\n idUser\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n ChosedVariants {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateUserInBuyingGroup = /* GraphQL */ `\n mutation UpdateUserInBuyingGroup(\n $updateUser_in_buying_groupInput: UpdateUser_in_buying_groupInput!\n ) {\n updateUser_in_buying_group(\n updateUser_in_buying_groupInput: $updateUser_in_buying_groupInput\n ) {\n id\n idBuyingGroup\n idUser\n User {\n id\n username\n identityId\n idAffiliation\n idOrganization\n email\n emailVerificationCode\n emailVerificationDate\n emailVerified\n displayName\n firstName\n lastName\n gender\n birthDate\n birthPlace\n roles\n mobile\n mobileVerificationCode\n mobileVerificationDate\n mobileVerified\n country\n state\n city\n zipCode\n address1\n taxCode\n avatarUrl\n declaredOrigin\n discountCode\n acptProfiling\n updtProfiling\n acptMarketing\n updtMarketing\n acptNewsletter\n updtNewsletter\n blockProcessing\n updtProcessing\n acptStatute\n updtStatute\n subscribedUntil\n subscribedSince\n stripeCustomerId\n firstLoginDate\n lastLoginDate\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n toBeDeletedAfter\n }\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n registrationDate\n participationDate\n choosingDate\n notInterestInBuying\n confirmationDate\n definitelyNotInterestedInBuying\n lastEmaiNotificationDate\n disableNotifications\n ChosedVariants {\n id\n idBuyingGroup\n idUser\n idVariant\n idReseller\n quantity\n dateChosed\n userChoosingCustomValues\n dateConfirmed\n userConfirmationCustomValues\n dateFinalization\n resellerSellingCustomValues\n totalSoldAmount\n dateCanceled\n cancellationPhase\n cancellationReason\n dateDelivered\n dateBilled\n commisionAmount\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteVariant = /* GraphQL */ `\n mutation DeleteVariant($id: String!) {\n deleteVariant(id: $id) {\n id\n idGoodOrService\n idBuyingGroup\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n GoodOrService {\n id\n idGoodOrServiceType\n name\n slug\n description\n idVendor\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createVariant = /* GraphQL */ `\n mutation CreateVariant($createVariantInput: CreateVariantInput!) {\n createVariant(createVariantInput: $createVariantInput) {\n id\n idGoodOrService\n idBuyingGroup\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n GoodOrService {\n id\n idGoodOrServiceType\n name\n slug\n description\n idVendor\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateVariant = /* GraphQL */ `\n mutation UpdateVariant($updateVariantInput: UpdateVariantInput!) {\n updateVariant(updateVariantInput: $updateVariantInput) {\n id\n idGoodOrService\n idBuyingGroup\n BuyingGroup {\n id\n idOrganization\n name\n description\n uidCMS\n pubblicationStartDate\n registrationStartDate\n participationStartDate\n choosingStartDate\n registrationEndDate\n confirmationStartDate\n resellerFlowStartDate\n pubblicationEndDate\n participationEndDate\n choosingEndDate\n confirmationEndDate\n resellerFlowEndDate\n maxChoosableVariants\n uniteChooseAndConfirm\n declination\n templateSuffix\n isOnlyUpselling\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n GoodOrService {\n id\n idGoodOrServiceType\n name\n slug\n description\n idVendor\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n code\n name\n description\n maxQuantity\n discountAmountEach\n commissionAmountEach\n discountPercent\n commissionPercent\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const deleteVariantHasUpselling = /* GraphQL */ `\n mutation DeleteVariantHasUpselling($id: String!) {\n deleteVariant_has_upselling(id: $id) {\n id\n idVariant\n idBuyingGroup\n specificVariants\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createVariantHasUpselling = /* GraphQL */ `\n mutation CreateVariantHasUpselling(\n $createVariant_has_upsellingInput: CreateVariant_has_upsellingInput!\n ) {\n createVariant_has_upselling(\n createVariant_has_upsellingInput: $createVariant_has_upsellingInput\n ) {\n id\n idVariant\n idBuyingGroup\n specificVariants\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const updateVariantHasUpselling = /* GraphQL */ `\n mutation UpdateVariantHasUpselling(\n $updateVariant_has_upsellingInput: UpdateVariant_has_upsellingInput!\n ) {\n updateVariant_has_upselling(\n updateVariant_has_upsellingInput: $updateVariant_has_upsellingInput\n ) {\n id\n idVariant\n idBuyingGroup\n specificVariants\n createdDate\n createdBy\n modifiedDate\n modifiedBy\n crmId\n crmLastModified\n }\n }\n`;\nexport const createEmailEvent = /* GraphQL */ `\n mutation CreateEmailEvent(\n $input: CreateEmailEventInput!\n $condition: ModelEmailEventConditionInput\n ) {\n createEmailEvent(input: $input, condition: $condition) {\n id\n client_id\n address\n message_id\n type\n date\n feedback\n subject\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateEmailEvent = /* GraphQL */ `\n mutation UpdateEmailEvent(\n $input: UpdateEmailEventInput!\n $condition: ModelEmailEventConditionInput\n ) {\n updateEmailEvent(input: $input, condition: $condition) {\n id\n client_id\n address\n message_id\n type\n date\n feedback\n subject\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteEmailEvent = /* GraphQL */ `\n mutation DeleteEmailEvent(\n $input: DeleteEmailEventInput!\n $condition: ModelEmailEventConditionInput\n ) {\n deleteEmailEvent(input: $input, condition: $condition) {\n id\n client_id\n address\n message_id\n type\n date\n feedback\n subject\n createdAt\n updatedAt\n }\n }\n`;\n","import React from \"react\"\nimport { I18NextContext } from \"./types\"\n\nexport const I18nextContext = React.createContext({\n language: \"en\",\n languages: [\"en\"],\n routed: false,\n defaultLanguage: \"en\",\n originalPath: \"/\",\n path: \"/\",\n uid: null,\n uidPagesMap: {},\n uidPagesMapStringified: \"\",\n})\n","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0]);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, namespaces.join()]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","import { Namespace, useTranslation, UseTranslationOptions } from \"react-i18next\"\nimport { useContext } from \"react\"\nimport { navigate as gatsbyNavigate } from \"gatsby\"\nimport { I18nextContext } from \"./i18nextContext\"\nimport { NavigateOptions } from \"@reach/router\"\nimport { LANGUAGE_KEY } from \"./types\"\n\ndeclare var __BASE_PATH__: string | undefined\ndeclare var __PATH_PREFIX__: string | undefined\n\nexport const useI18next = (ns?: Namespace, options?: UseTranslationOptions) => {\n const { i18n, t, ready } = useTranslation(ns, options)\n const context = useContext(I18nextContext)\n\n const { routed, defaultLanguage } = context\n\n const getLanguagePath = (language: string) => {\n return language !== defaultLanguage ? `/${language}` : \"\"\n }\n\n const removePrefix = (pathname: string) => {\n const base = typeof __BASE_PATH__ !== `undefined` ? __BASE_PATH__ : __PATH_PREFIX__\n if (base && pathname.indexOf(base) === 0) {\n pathname = pathname.slice(base.length)\n }\n return pathname\n }\n\n const removeLocalePart = (pathname: string) => {\n if (!routed) return pathname\n const i = pathname.indexOf(`/`, 1)\n return pathname.substring(i)\n }\n\n const navigate = (to: string, options?: NavigateOptions<{}>) => {\n // const languagePath = getLanguagePath(context.language)\n // const link = routed ? `${languagePath}${to}` : `${to}`\n const link = resolveUrl(to)\n return gatsbyNavigate(link, options)\n }\n\n /**\n * Resolves a destination with i18n\n * @param to URL or UID (if null = current page)\n * @param language desired language (if null = current language)\n */\n const resolveUrl = (to?: string, language?: string) => {\n to = to || context.uid || context.originalPath || removeLocalePart(removePrefix(window?.location.pathname))\n language = language || context.language\n\n const [url, anchor] = to.split(\"#\", 2)\n const [realTo, query] = url.split(\"?\", 2)\n\n // console.log(to, url, realTo, query, anchor)\n\n if (context.uidPagesMap[realTo]) {\n return (\n (context.uidPagesMap[realTo][language] || context.uidPagesMap[realTo][context.defaultLanguage]) +\n (query ? \"?\" + query : \"\") +\n (anchor ? \"#\" + anchor : \"\")\n )\n } else {\n return getLanguagePath(language) + to\n }\n }\n\n const changeLanguage = (language: string, to?: string, options?: NavigateOptions<{}>) => {\n // const languagePath = getLanguagePath(language)\n // const pathname = to || removeLocalePart(removePrefix(window.location.pathname))\n // let link = `${languagePath}${pathname}`\n\n // // Check current page has an UID\n // if (context.uid && context.uidPagesMap[context.uid]) {\n // link = context.uidPagesMap[context.uid][language] || context.uidPagesMap[context.uid][context.defaultLanguage]\n // }\n\n // // Add query string\n // link = link + window.location.search\n\n localStorage.setItem(LANGUAGE_KEY, language)\n return gatsbyNavigate(resolveUrl(to, language) + window.location.search, options)\n }\n\n return {\n ...context,\n i18n,\n t,\n ready,\n resolveUrl,\n navigate,\n changeLanguage,\n }\n}\n","import React from \"react\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport { useI18next } from \".\"\nimport { Link as GatsbyLink, GatsbyLinkProps } from \"gatsby\"\nimport { LANGUAGE_KEY } from \"./types\"\nimport { useMatch, useLocation } from \"@reach/router\"\n\nexport type LinkProps = GatsbyLinkProps & { language?: string; onClickDoNothing?: boolean; finalLinkUpdateCallback?: Function }\n\nexport const Link: React.FC = ({\n language,\n to,\n onClick,\n target,\n children,\n partiallyActive,\n onClickDoNothing,\n className,\n finalLinkUpdateCallback,\n ...rest\n}) => {\n const i18n = useI18next()\n const data = useStaticQuery(graphql`\n query {\n site {\n siteMetadata {\n wordpress {\n baseUrl\n uploadsUrl\n prefixesMap\n }\n }\n }\n }\n `)\n\n const wordPressUrl = data.site.siteMetadata.wordpress.baseUrl\n const uploadsUrl = data.site.siteMetadata.wordpress.uploadsUrl\n const prefixesMap = JSON.parse(data.site.siteMetadata.wordpress.prefixesMap)\n const urlLanguage = language || i18n.language\n\n // If we have a link with http(s):// and then a string without dots (.)\n // then is the cms that added the http(s) but it's an UID an not an FQDN\n const checkForWrongHttp = to ? to.match(/^https?:\\/\\/([^./]+)$/) : null\n if (Array.isArray(checkForWrongHttp)) to = checkForWrongHttp[1]\n\n // Check if an url is pointing to a Wordpress CMS URL (NOT to the uploads folder)\n // and try to convert it based on language, posttype and slug\n if (to && to.indexOf(wordPressUrl) != -1 && to.indexOf(uploadsUrl) == -1) {\n const [url, language, postType, slug] = to.match(/https?:\\/\\/[^/]+\\/([^/]+)\\/([^/]+)\\/([^/]+)(\\/)?/)\n const prefix = prefixesMap[postType]\n\n //console.log(\"URL: \", language, postType, slug)\n const matchingKey = Object.keys(i18n.uidPagesMap).find((key) => {\n // Prefix matches and there are no other \":\" in the key\n if (key.indexOf(prefix) == 0 && key.substr(prefix.length).indexOf(\":\") == -1) {\n return i18n.uidPagesMap[key][language] && i18n.uidPagesMap[key][language].indexOf(slug) != -1\n }\n })\n\n // If there is a match just use the uid, later it will be resolved ;-=\n if (matchingKey) to = matchingKey\n }\n\n const link = i18n.resolveUrl(to, urlLanguage)\n if (finalLinkUpdateCallback) finalLinkUpdateCallback(link)\n\n if (onClickDoNothing) {\n const match = useMatch(link)\n const location = useLocation()\n // console.log(\"Link match? \", location.pathname, link, location.pathname.indexOf(link), match)\n return (\n {\n onClick(e)\n }}\n >\n {children}\n \n )\n }\n\n if (target || link.indexOf(\"://\") != -1)\n return (\n {\n if (language) {\n localStorage.setItem(LANGUAGE_KEY, language)\n }\n if (onClick) {\n onClick(e)\n }\n }}\n target={target || \"_blank\"}\n >\n {children}\n \n )\n\n return (\n // @ts-ignore\n {\n if (language) {\n localStorage.setItem(LANGUAGE_KEY, language)\n }\n if (onClick) {\n onClick(e)\n }\n }}\n activeClassName=\"active\"\n partiallyActive={partiallyActive == undefined ? true : partiallyActive}\n >\n {children}\n \n )\n}\n","import React from \"react\"\nimport { Helmet as ReactHelmet, HelmetProps } from \"react-helmet\"\nimport { useI18next } from \"./useI18next\"\n\nexport const Helmet: React.FC = ({ children, ...props }) => {\n const { languages, language, originalPath, defaultLanguage, siteUrl = \"\", resolveUrl } = useI18next()\n const createUrlWithLang = (lng: string) => {\n // const url = `${siteUrl}${lng === defaultLanguage ? \"\" : `/${lng}`}${originalPath}`\n // return url.endsWith(\"/\") ? url : `${url}/`\n return siteUrl + resolveUrl(null, lng)\n }\n return (\n \n \n \n {languages.map((lng) => (\n \n ))}\n {/* adding a fallback page for unmatched languages */}\n \n {children}\n \n )\n}\n","import React, { useContext } from \"react\"\nimport { I18nextContext } from \"./i18nextContext\"\nimport { format as originalFormat, parse, parseISO } from \"date-fns\"\n\nimport { enUS, it } from \"date-fns/locale\"\nconst locales = { it, en: enUS }\n\n/**\n * Format the date (also with i18n)\n * For formats see: https://date-fns.org/v2.16.1/docs/format\n * For parsing see: https://date-fns.org/v2.16.1/docs/parse\n *\n * @param props\n */\n\nexport const FormatDate = (props: {\n date: Date | string | undefined\n format?: string\n parseFormat?: string\n language?: string\n ifNotValid?: string\n prefix?: string\n postfix?: string\n className?: string\n style?: any\n}) => {\n const context = useContext(I18nextContext)\n\n props = {\n format: \"d MMMM yyyy\", // https://date-fns.org/v2.16.1/docs/format\n parseFormat: null, // https://date-fns.org/v2.16.1/docs/parse\n language: context.language,\n ifNotValid: \"-\",\n prefix: \"\",\n postfix: \"\",\n ...props,\n }\n\n const inputDate = props.date\n let formattedDate = props.ifNotValid\n\n try {\n switch (typeof props.date) {\n case \"string\":\n props.date = props.parseFormat ? parse(props.date, props.parseFormat, new Date()) : parseISO(props.date)\n case \"object\":\n if (props.date !== null) {\n formattedDate = props.prefix + originalFormat(props.date, props.format, { locale: locales[props.language] }) + props.postfix\n }\n }\n } catch (e) {\n //console.log(\"Format date error: \", props.date, inputDate)\n }\n\n return (\n \n {formattedDate}\n \n )\n}\n\nexport default FormatDate\n","import React from \"react\"\nimport { state } from \"../forms/fields/user\"\n\ntype Props = {\n price: number | string\n currency?: string\n decPlaces?: number\n decSep?: string\n thouSep?: string\n className?: string\n style?: any\n onMouseEnter?: any\n onMouseLeave?: any\n onFocus?: any\n onClick?: any\n}\n\nexport const FormatPrice: React.FC = ({ price, className, currency, decPlaces, decSep, thouSep, ...props }) => {\n currency = currency || \"€\"\n decPlaces = decPlaces == undefined ? 2 : decPlaces\n decSep = decSep || \",\"\n thouSep = thouSep || \".\"\n\n return (\n \n {formatPrice(price, decPlaces, decSep, thouSep)}\n {currency}\n \n )\n}\n\nexport const formatPrice = (number, decPlaces?: number, decSep?: string, thouSep?: string) => {\n decPlaces = decPlaces == undefined ? 2 : decPlaces\n decSep = decSep || \",\"\n thouSep = thouSep || \".\"\n var sign = number < 0 ? \"-\" : \"\"\n var i = String(parseInt((number = Math.abs(Number(number) || 0).toFixed(decPlaces))))\n var j = (j = i.length) > 3 ? j % 3 : 0\n\n return (\n sign +\n (j ? i.substr(0, j) + thouSep : \"\") +\n i.substr(j).replace(/(\\decSep{3})(?=\\decSep)/g, \"$1\" + thouSep) +\n (decPlaces\n ? decSep +\n Math.abs(number - i)\n .toFixed(decPlaces)\n .slice(2)\n : \"\")\n )\n}\n\nexport default FormatPrice\n","import React from \"react\"\n\nimport { Router as ReachRouter } from \"@reach/router\"\nimport { useI18next } from \".\"\n\nexport const Router = ({ basepath, children, ...props }: { basepath?: string; children: any; [x: string]: any }) => {\n const { language, defaultLanguage } = useI18next()\n\n // Add language to basepath if needed\n const languageBasePath = language != defaultLanguage ? \"/\" + language : \"\"\n if (basepath || languageBasePath) {\n props.basepath = languageBasePath + (basepath || \"\")\n }\n\n return {children}\n}\n\nexport default Router\n","import React, { useContext } from \"react\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport { Helmet, useI18next } from \"../i18n\"\nimport { SeoContext } from \"./\"\n\nimport { helmetJsonLdProp } from \"react-schemaorg\"\n\n/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nexport const Seo = (props: {\n title: string\n description?: string\n image?: string\n author?: string\n isArticle?: boolean\n noindex?: boolean\n}) => {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n siteUrl\n }\n }\n }\n `\n )\n\n const { schema } = useContext(SeoContext)\n const { path } = useI18next()\n\n props = {\n author: site.siteMetadata.author,\n isArticle: false,\n ...props,\n }\n\n const metaDescription = props.description || site.siteMetadata.description\n\n const siteUrl = site.siteMetadata.siteUrl\n const pageUrl = site.siteMetadata.siteUrl + path\n\n // TODO: implement schema.org\n // reference: https://schema.org/\n // reference: https://github.com/jlengstorf/gatsby-theme-jason-blog/blob/master/src/components/SEO/SEO.js\n // reference: https://yoast.com/structured-data-schema-ultimate-guide/#utm_source=yoast-seo&utm_medium=software&utm_term=info-schema-metabox&utm_content=schema-settings&utm_campaign=wordpress-general\n\n // Add \" - Ecoverso\" to title if missing\n props.title = props.title.indexOf(\"- Ecoverso\") == -1 ? props.title + \" - Ecoverso\" : props.title\n\n //console.log(\"Helmet:\", schema)\n\n return (\n \n helmetJsonLdProp(schema[key]))\n .reduce(\n (prev, curr) => {\n return {\n type: \"application/ld+json\",\n innerHTML: (\n prev.innerHTML.substr(0, prev.innerHTML.length - 1) +\n (prev.innerHTML.length > 2 ? \",\" : \"\") +\n curr.innerHTML +\n \"]\"\n )\n .replace(/\\{siteUrl\\}/g, siteUrl)\n .replace(/\\{pageUrl\\}/g, pageUrl),\n }\n },\n { type: \"application/ld+json\", innerHTML: \"[]\" }\n ),\n ]}\n // titleTemplate={`%s | ${site.siteMetadata.title}`}\n >\n {/* General tags */}\n {props.title}\n {props.description ? : null}\n {props.image ? : null}\n\n {/* OpenGraph tags */}\n \n \n {props.description ? : null}\n {props.image ? : null}\n\n {/* Twitter Card tags */}\n \n \n \n {props.description ? : null}\n {props.image ? : null}\n\n {props.noindex ? : null}\n \n \n )\n}\n\nexport default Seo\n","import React, { useReducer, createContext } from \"react\"\nimport { Thing, WithContext } from \"schema-dts\"\n\nexport type structuredDataType = WithContext\nexport type structuredDataArrayType = structuredDataType[]\n\ntype seoContextType = {\n schema: { [x: number]: WithContext | { property: string; data: Thing } }\n addData: React.Dispatch\n}\n\nexport const SeoContext = createContext({ schema: {}, addData: () => {} })\n\nconst seoReducer = (state, newValue) => {\n return { ...state, ...newValue }\n}\n\nexport const SeoContextProvider: React.FC<{ children: any }> = ({ children }) => {\n const [schema, addData] = useReducer(seoReducer, [])\n\n return {children}\n}\n\nexport default SeoContextProvider\n","import React, { useEffect, useContext, useReducer, useState } from \"react\"\n\nimport { Thing, WithContext } from \"schema-dts\"\nimport { SeoContext, structuredDataType } from \"./\"\n\nlet dataUID = 0\n\ntype Props = {\n data: WithContext | Thing\n property?: string\n children?: any\n}\n\nconst seoReducer = (state, newValue) => {\n return { ...state, ...newValue }\n}\n\n/**\n *\n * Tags that will be replaced:\n *\n * {siteUrl} - the website root url\n * {pageUrl} - the current page full url\n *\n * @param data\n */\nexport const StructuredData: React.FC = ({ data, property, children }) => {\n const { addData: parentAddData } = useContext(SeoContext)\n const [schema, addData] = useReducer(seoReducer, [])\n const [id, setId] = useState(null)\n\n useEffect(() => {\n // Genera un id unovico\n setId(dataUID++)\n }, [])\n\n useEffect(() => {\n // Procedi solo se l'id univoco è già stato generato\n if (id != null) {\n const upsertData = {}\n\n // Add properties to data if there are Childre in the context\n const enrichedData = { ...(data as { [x: string]: any }) }\n Object.keys(schema).forEach((key) => {\n const subData: { property: string; data: Thing } = schema[key]\n if (!enrichedData[subData.property]) enrichedData[subData.property] = subData.data\n else if (!Array.isArray(enrichedData[subData.property]))\n enrichedData[subData.property] = [enrichedData[subData.property], subData.data]\n else enrichedData[subData.property] = [...enrichedData[subData.property], subData.data]\n })\n\n if (property) {\n upsertData[id] = { property, data: enrichedData }\n } else {\n upsertData[id] = enrichedData\n }\n\n parentAddData(upsertData)\n //console.log(id, upsertData)\n }\n }, [schema, id])\n\n if (children) {\n return {children}\n }\n\n return null\n}\n\nexport default StructuredData\n","import { Organization, WithContext, Thing } from \"schema-dts\"\n\nexport const sdEcoversoOrganization: Organization = {\n \"@type\": \"Organization\",\n name: \"Ecoverso\",\n url: \"{siteUrl}\",\n logo: \"{siteUrl}/public/img/ecoverso.logo-avatar.svg\",\n}\n\nexport const sdEcoversoPublisher: Organization = {\n \"@type\": \"Organization\",\n name: \"Ecoverso\",\n url: \"{siteUrl}\",\n logo: \"{siteUrl}/public/img/ecoverso.logo.h60.png\",\n}\n\nexport const addContext = (data: Thing): WithContext => {\n return { ...(data as { [x: string]: any }), \"@context\": \"https://schema.org\" } as WithContext\n}\n","// Auth Actions\n\nexport const AUTH_RESET = \"AUTH_RESET\"\nexport const AUTH_START = \"AUTH_START\"\nexport const AUTH_CHALLENGE = \"AUTH_CHALLENGE\"\nexport const AUTH_CHALLENGE_START = \"AUTH_CHALLENGE_START\"\nexport const AUTH_CHALLENGE_FAIL = \"AUTH_CHALLENGE_FAIL\"\nexport const AUTH_SUCCESS = \"AUTH_SUCCESS\"\nexport const AUTH_FAIL = \"AUTH_FAIL\"\nexport const AUTH_END = \"AUTH_END\"\nexport const REGISTRATION_START = \"REGISTRATION_START\"\nexport const REGISTRATION_SUCCESS = \"REGISTRATION_SUCCESS\"\nexport const REGISTRATION_FAIL = \"REGISTRATION_FAIL\"\n\n// Layout actions\n\nexport const LOADING_ON = \"LOADING_ON\"\nexport const LOADING_OFF = \"LOADING_OFF\"\nexport const LOGIN_MODAL_VISIBILITY = \"LOGIN_MODAL_VISIBILITY\"\nexport const NOTIFICATION_ADD = \"NOTIFICATION_ADD\"\nexport const NOTIFICATION_EMPTY = \"NOTIFICATION_EMPTY\"\n\n// Car Actions\nexport const SET_SELECTED_BRANDS = \"SET_SELECTED_BRANDS\"\nexport const SET_SELECTED_SEGMENTS = \"SET_SELECTED_SEGMENTS\"\nexport const SET_SELECTED_TECHNOLOGIES = \"SET_SELECTED_TECHNOLOGIES\"\nexport const SET_SELECTED_PRICE_RANGE = \"SET_SELECTED_PRICE_RANGE\"\nexport const SET_SELECTED_PRICE_RANGE_MAX = 100000\n","import * as actionTypes from \"./actionTypes\"\nimport * as actions from \"./index\"\nimport { Auth, Hub } from \"aws-amplify\"\nimport { DangerIcon } from \"../../Layout/Notifications\"\n\nlet cognitoUser: any\nexport type cognitoAttributes = {\n email?: string\n given_name?: string\n family_name?: string\n \"custom:declaredOrigin\"?: string\n \"custom:discountCode\"?: string\n \"custom:acptNewsletter\"?: string\n \"custom:acptMarketing\"?: string\n \"custom:acptProfiling\"?: string\n}\n\nexport const authReset = () => {\n return {\n type: actionTypes.AUTH_RESET,\n }\n}\n\nexport const authStart = (email?: string) => {\n return {\n type: actionTypes.AUTH_START,\n email,\n }\n}\n\nexport const authChallenge = (cognitoUser) => {\n return {\n type: actionTypes.AUTH_CHALLENGE,\n cognitoUser,\n }\n}\n\nexport const authChallengeStart = () => {\n return {\n type: actionTypes.AUTH_CHALLENGE_START,\n }\n}\n\nexport const authChallengeFail = (softFailMessage?: string) => {\n return {\n type: actionTypes.AUTH_CHALLENGE_FAIL,\n errorMessage: softFailMessage,\n }\n}\n\nexport const authSuccess = (token, payload) => {\n // Only on browsers push email and userId to google tag manager dataLayer\n if (typeof window !== \"undefined\") {\n //@ts-ignore\n window.dataLayer = window.dataLayer || []\n //@ts-ignore\n window.dataLayer.push({\n email: payload.signInUserSession?.idToken?.payload?.email,\n userId: payload.signInUserSession?.idToken?.payload?.userId,\n acptNewsletter: payload.signInUserSession?.idToken?.payload?.acptNewsletter,\n acptMarketing: payload.signInUserSession?.idToken?.payload?.acptMarketing,\n acptProfiling: payload.signInUserSession?.idToken?.payload?.acptProfiling,\n })\n }\n\n return {\n type: actionTypes.AUTH_SUCCESS,\n error: null,\n token,\n payload: {\n role: payload.signInUserSession?.idToken?.payload?.[\"cognito:groups\"] ?? [],\n userData: payload.signInUserSession?.idToken?.payload || {},\n ...payload,\n },\n }\n}\n\nexport const authFail = (error: any, skipNotification?: boolean) => {\n return (dispatch) => {\n // If present read the \"error_description\" parameter from URL\n function getParameterByName(name) {\n const url = window.location.href\n name = name.replace(/[[]]/g, \"\\\\$&\")\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url)\n if (!results) return null\n if (!results[2]) return \"\"\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"))\n }\n\n if (getParameterByName(\"error_description\")) {\n error = getParameterByName(\"error_description\")\n }\n\n // Register failure to state\n dispatch({\n type: actionTypes.AUTH_FAIL,\n error: error,\n errorMessage: error.message ? error.message : JSON.stringify(error),\n })\n\n if (!skipNotification) {\n dispatch(\n actions.notificationAdd({\n message: \"Authentication failed\",\n description: error.message ? error.message : JSON.stringify(error),\n variant: \"DangerIcon\",\n duration: 0,\n })\n )\n }\n }\n}\n\nexport const authEnd = () => {\n return {\n type: actionTypes.AUTH_END,\n }\n}\n\nexport const federatedSignIn = () => {\n return (dispatch) => {\n dispatch(authStart())\n Auth.federatedSignIn()\n }\n}\n\nexport const passwordlessSignUp = (email: string, attributes?: cognitoAttributes) => {\n return async (dispatch) => {\n const password = getRandomString(30) + \"aA!\"\n //console.log(\"Password: \", password)\n dispatch(registrationStart(email))\n try {\n console.log(attributes)\n await Auth.signUp({ username: email, password, attributes })\n dispatch(passwordlessSignIn(email, true))\n\n // Send event to GTM\n window?.dataLayer?.push({\n event: \"new-user-registered\",\n declaredOrigin: attributes[\"custom:declaredOrigin\"],\n discountCode: attributes[\"custom:discountCode\"],\n acptNewsletter: attributes[\"custom:acptNewsletter\"],\n acptMarketing: attributes[\"custom:acptMarketing\"],\n acptProfiling: attributes[\"custom:acptProfiling\"],\n })\n } catch (error) {\n console.log(\"Error signing up\", error)\n dispatch(registrationFail(error))\n }\n }\n}\n\nexport const passwordSignUp = (username: string, password: string, attributes?: cognitoAttributes) => {\n return async (dispatch) => {\n dispatch(registrationStart(username))\n try {\n await Auth.signUp({ username, password, attributes })\n } catch (error) {\n console.log(\"Error signing up\", error)\n dispatch(registrationFail(error))\n }\n }\n}\n\nexport const passwordlessSignIn = (email: string, skipNotification?: boolean) => {\n return async (dispatch) => {\n dispatch(authStart(email))\n try {\n cognitoUser = await Auth.signIn(email)\n dispatch(authChallenge(cognitoUser))\n } catch (error) {\n console.log(\"Error signing in\", error)\n dispatch(authFail(error, skipNotification))\n }\n }\n}\n\nexport const passwordlessChallenge = (answer: string, skipNotification?: boolean) => {\n return async (dispatch) => {\n dispatch(authChallengeStart())\n // Send the answer to the User Pool\n // This will throw an error if it’s the 3rd wrong answer\n try {\n cognitoUser = await Auth.sendCustomChallengeAnswer(cognitoUser, answer)\n } catch (error) {\n console.log(\"Error signing in challenge\", error)\n dispatch(authFail(error, skipNotification))\n return\n }\n\n // It we get here, the answer was sent successfully,\n // but it might have been wrong (1st or 2nd time)\n // So we should test if the user is authenticated now\n try {\n // This will throw an error if the user is not yet authenticated:\n await Auth.currentSession()\n checkLogin(dispatch)\n } catch (error) {\n console.log(\"Apparently the user did not enter the right code: \", error)\n dispatch(authChallengeFail(\"The code is incorrect. Please try again.\"))\n }\n }\n}\n\nexport const checkIfLoggedIn = () => {\n return (dispatch) => {\n // Listener agli eventi di autenticazione, NECESSARIO per il federated Sign In\n\n // Hub.listen(\"auth\", ({ payload: { event, data } }) => {\n // switch (event) {\n // case \"signIn\":\n // case \"signUp\":\n // checkLogin(dispatch)\n // break\n // case \"signOut\":\n // dispatch(authEnd())\n // break\n // case \"customOAuthState\":\n // dispatch(authSuccess(null, { customState: data }))\n // break\n // case \"signIn_failure\":\n // dispatch(authFail(data))\n // break\n // }\n // })\n\n checkLogin(dispatch)\n }\n}\n\nexport const refreshAuthToken = () => {\n return async (dispatch) => {\n console.log(\"Refreshing Auth Token\")\n dispatch(authSuccess(null, await Auth.currentAuthenticatedUser({ bypassCache: true })))\n }\n}\n\nexport const logout = () => {\n return async (dispatch) => {\n try {\n await Auth.signOut()\n dispatch(authEnd())\n } catch (error) {\n console.log(\"Error signing out: \", error)\n }\n }\n}\n\nexport const registrationStart = (email) => {\n return {\n type: actionTypes.REGISTRATION_START,\n email,\n }\n}\n\nexport const registrationFail = (error) => {\n return {\n type: actionTypes.REGISTRATION_FAIL,\n error: error,\n errorCode: error.code,\n errorMessage: error.message ? error.message : JSON.stringify(error),\n }\n}\n\n//--------------------------------------------------------------------------------------------------------\n// Utilities\n\nexport const checkLogin = (dispatch) => {\n Auth.currentAuthenticatedUser()\n .then((user) => {\n //console.log(\"Info: \", user)\n //console.log(\"Info: \", JSON.stringify(user));\n dispatch(authSuccess(null, user))\n // Fethc Identity Pool identityId\n Auth.currentUserCredentials().then(async (data) => {\n //console.log(\"Auth: \", data)\n // Check if Identity Pool identityId is already stored in Cognito userpool attribute\n if (user.attributes[\"custom:identityId\"] !== data.identityId) {\n //console.log(\"Updating identity id...\")\n const result = await Auth.updateUserAttributes(user, {\n \"custom:identityId\": data.identityId,\n })\n dispatch(refreshAuthToken())\n }\n })\n })\n .catch((e) => {\n //console.log(\"AuthError:\", e)\n Auth.currentCredentials()\n // .then((d) => console.log(\"Credentials :\", d))\n // .catch((e) => console.log(\"Error: \", e))\n })\n}\n\nfunction getRandomString(bytes: number) {\n const randomValues = new Uint8Array(bytes)\n window.crypto.getRandomValues(randomValues)\n return Array.from(randomValues).map(intToHex).join(\"\")\n}\n\nfunction intToHex(nr: number) {\n return nr.toString(16).padStart(2, \"0\")\n}\n","import * as actionTypes from \"./actionTypes\"\nimport { INotification } from \"../../Layout/Notifications\"\n\n// Synchronous Action Creators\n\nexport const loadingOn = () => ({\n type: actionTypes.LOADING_ON,\n})\n\nexport const loadingOff = () => ({\n type: actionTypes.LOADING_OFF,\n})\n\nexport const setLoginModalVisibility = (visible: boolean) => ({\n type: actionTypes.LOGIN_MODAL_VISIBILITY,\n visible,\n})\n\nexport const notificationAdd = (notification: INotification) => ({\n type: actionTypes.NOTIFICATION_ADD,\n notification,\n})\n\nexport const notificationEmpty = () => ({\n type: actionTypes.NOTIFICATION_EMPTY,\n})\n","import * as actionTypes from \"./actionTypes\"\nimport { BrandData, SegmentsData, TechnologyData } from \"../../pages/auto\"\n\n// Synchronous Action Creators\n\nexport const setSelectedBrands = (selectedBrands: BrandData[]) => ({\n type: actionTypes.SET_SELECTED_BRANDS,\n selectedBrands,\n})\n\nexport const setSelectedSegments = (selectedSegments: SegmentsData[]) => ({\n type: actionTypes.SET_SELECTED_SEGMENTS,\n selectedSegments,\n})\n\nexport const setSelectedTechnologies = (selectedTechnologies: TechnologyData[]) => ({\n type: actionTypes.SET_SELECTED_TECHNOLOGIES,\n selectedTechnologies,\n})\nexport const setSelectedPriceRange = (selectedPriceRange: [number, number]) => ({\n type: actionTypes.SET_SELECTED_PRICE_RANGE,\n selectedPriceRange,\n})\n","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-app-tsx\": () => import(\"./../../../src/pages/app.tsx\" /* webpackChunkName: \"component---src-pages-app-tsx\" */),\n \"component---src-pages-auto-tsx\": () => import(\"./../../../src/pages/auto.tsx\" /* webpackChunkName: \"component---src-pages-auto-tsx\" */),\n \"component---src-pages-blog-tsx\": () => import(\"./../../../src/pages/blog.tsx\" /* webpackChunkName: \"component---src-pages-blog-tsx\" */),\n \"component---src-pages-faq-tsx\": () => import(\"./../../../src/pages/faq.tsx\" /* webpackChunkName: \"component---src-pages-faq-tsx\" */),\n \"component---src-pages-logout-tsx\": () => import(\"./../../../src/pages/logout.tsx\" /* webpackChunkName: \"component---src-pages-logout-tsx\" */),\n \"component---src-pages-preferences-tsx\": () => import(\"./../../../src/pages/preferences.tsx\" /* webpackChunkName: \"component---src-pages-preferences-tsx\" */),\n \"component---src-pages-rassegna-stampa-tsx\": () => import(\"./../../../src/pages/rassegna-stampa.tsx\" /* webpackChunkName: \"component---src-pages-rassegna-stampa-tsx\" */),\n \"component---src-pages-redirect-tsx\": () => import(\"./../../../src/pages/redirect.tsx\" /* webpackChunkName: \"component---src-pages-redirect-tsx\" */),\n \"component---src-pages-testimonianze-tsx\": () => import(\"./../../../src/pages/testimonianze.tsx\" /* webpackChunkName: \"component---src-pages-testimonianze-tsx\" */),\n \"component---src-pages-video-tsx\": () => import(\"./../../../src/pages/video.tsx\" /* webpackChunkName: \"component---src-pages-video-tsx\" */),\n \"component---src-templates-crm-wp-buying-group-tsx\": () => import(\"./../../../src/templates/crmWpBuyingGroup.tsx\" /* webpackChunkName: \"component---src-templates-crm-wp-buying-group-tsx\" */),\n \"component---src-templates-wp-blog-category-tsx\": () => import(\"./../../../src/templates/wpBlogCategory.tsx\" /* webpackChunkName: \"component---src-templates-wp-blog-category-tsx\" */),\n \"component---src-templates-wp-blog-tag-tsx\": () => import(\"./../../../src/templates/wpBlogTag.tsx\" /* webpackChunkName: \"component---src-templates-wp-blog-tag-tsx\" */),\n \"component---src-templates-wp-car-tsx\": () => import(\"./../../../src/templates/wpCar.tsx\" /* webpackChunkName: \"component---src-templates-wp-car-tsx\" */),\n \"component---src-templates-wp-page-tsx\": () => import(\"./../../../src/templates/wpPage.tsx\" /* webpackChunkName: \"component---src-templates-wp-page-tsx\" */),\n \"component---src-templates-wp-post-tsx\": () => import(\"./../../../src/templates/wpPost.tsx\" /* webpackChunkName: \"component---src-templates-wp-post-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-anchor-links/gatsby-browser.js'),\n options: {\"plugins\":[],\"offset\":-100},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"ecoverso\",\"short_name\":\"ecoverso\",\"start_url\":\"/\",\"background_color\":\"#0a3854\",\"theme_color\":\"#0a3854\",\"display\":\"minimal-ui\",\"icon\":\"static/img/ecoverso-icon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"85585799390cfef5b3f47b6a43f13be4\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"GTM-5J5DZN6\",\"includeInDevelopment\":true,\"defaultDataLayer\":{\"type\":\"object\",\"value\":{\"platform\":\"gatsby\"}},\"enableWebVitalsTracking\":true,\"routeChangeEventName\":\"gatsby-route-change\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n\n if (redirect != null) {\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n let { pathname } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname, { withErrorDetails: true }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname, {\n withErrorDetails: true,\n })\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n performance.mark(`onInitialClientRender`)\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n process.env.GATSBY_EXPERIMENTAL_CONCURRENT_FEATURES\n ? ReactDOM.unstable_createRoot\n : ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n const container =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.unstable_createRoot) {\n renderer(container, {\n hydrate: true,\n }).render()\n } else {\n renderer(, container)\n }\n })\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","module.exports=\"prod\"","import * as actionType from \"../actions/actionTypes\"\n\nconst initialState: {\n lastStatus: string\n lastLoginEmail: string\n isLoggedIn: boolean\n error: any\n errorMessage: string\n errorCode: string\n token: string\n payload: any\n cognitoUser: any\n} = {\n lastStatus: \"\",\n lastLoginEmail: \"\",\n isLoggedIn: false,\n error: null,\n errorMessage: \"\",\n errorCode: \"\",\n token: \"\",\n payload: {},\n cognitoUser: null,\n}\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionType.AUTH_RESET:\n return initialState\n // Save current action type as lastStatus\n case actionType.AUTH_START:\n return {\n ...initialState,\n lastStatus: action.type,\n lastLoginEmail: action.email,\n }\n case actionType.AUTH_CHALLENGE:\n case actionType.AUTH_CHALLENGE_START:\n case actionType.AUTH_CHALLENGE_FAIL:\n return {\n ...state,\n lastStatus: action.type,\n errorMessage: action.errorMessage || \"\",\n }\n case actionType.AUTH_SUCCESS:\n return {\n ...state,\n lastStatus: action.type,\n isLoggedIn: true,\n token: action.token,\n payload: action.payload,\n }\n case actionType.AUTH_FAIL:\n return {\n ...state,\n lastStatus: action.type,\n error: action.error,\n errorMessage: action.errorMessage,\n isLoggedIn: false,\n }\n case actionType.AUTH_END:\n return {\n ...initialState,\n lastStatus: action.type,\n }\n case actionType.REGISTRATION_START:\n return {\n ...state,\n lastStatus: action.type,\n lastLoginEmail: action.email,\n }\n case actionType.REGISTRATION_FAIL:\n return {\n ...state,\n lastStatus: action.type,\n error: action.error || \"\",\n errorCode: action.errorCode || \"\",\n errorMessage: action.errorMessage || \"\",\n }\n }\n\n return state\n}\n\nexport default reducer\n","import * as actionType from \"../actions/actionTypes\"\nimport { INotification } from \"../../Layout/Notifications\"\n\nconst initialState: {\n loading: Boolean\n loginModalVisibility: Boolean\n notifications: INotification[]\n} = {\n loading: false,\n loginModalVisibility: false,\n notifications: [],\n}\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionType.LOADING_ON:\n return {\n ...state,\n loading: true,\n }\n case actionType.LOADING_OFF:\n return {\n ...state,\n loading: false,\n }\n case actionType.LOGIN_MODAL_VISIBILITY:\n return {\n ...state,\n loginModalVisibility: action.visible,\n }\n case actionType.NOTIFICATION_ADD:\n return {\n ...state,\n notifications: state.notifications.concat(action.notification),\n }\n case actionType.NOTIFICATION_EMPTY:\n return {\n ...state,\n notifications: [],\n }\n }\n\n return state\n}\n\nexport default reducer\n","import * as actionType from \"../actions/actionTypes\"\nimport { INotification } from \"../../Layout/Notifications\"\nimport { BrandData, SegmentsData, TechnologyData } from \"../../pages/auto\"\n\nconst initialState: {\n selectedBrands: BrandData[]\n selectedSegments: SegmentsData[]\n selectedTechnologies: TechnologyData[]\n selectedPriceRange: [number, number]\n} = {\n selectedBrands: [],\n selectedSegments: [],\n selectedTechnologies: [],\n selectedPriceRange: [0, actionType.SET_SELECTED_PRICE_RANGE_MAX],\n}\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionType.SET_SELECTED_BRANDS:\n return {\n ...state,\n selectedBrands: action.selectedBrands,\n }\n case actionType.SET_SELECTED_SEGMENTS:\n return {\n ...state,\n selectedSegments: action.selectedSegments,\n }\n case actionType.SET_SELECTED_TECHNOLOGIES:\n return {\n ...state,\n selectedTechnologies: action.selectedTechnologies,\n }\n case actionType.SET_SELECTED_PRICE_RANGE:\n return {\n ...state,\n selectedPriceRange: action.selectedPriceRange,\n }\n }\n\n return state\n}\n\nexport default reducer\n","function createThunkMiddleware(extraArgument) {\n return function (_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n if (typeof action === 'function') {\n return action(dispatch, getState, extraArgument);\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar thunk = createThunkMiddleware();\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import { createStore, combineReducers, applyMiddleware } from \"redux\"\n\nimport authReducer from \"./reducers/auth\"\nimport layoutReducer from \"./reducers/layout\"\nimport carsReducer from \"./reducers/cars\"\n\nimport logger from \"./middlewares/logger\"\n\nimport { composeWithDevTools } from \"redux-devtools-extension/logOnlyInProduction\"\n\nimport thunk from \"redux-thunk\"\n\nconst rootReducer = combineReducers({\n auth: authReducer,\n layout: layoutReducer,\n cars: carsReducer,\n})\n\nconst composeEnhancers = composeWithDevTools({\n // options like actionSanitizer, stateSanitizer\n})\n\nconst store = createStore(\n rootReducer,\n /* preloadedState, */ composeEnhancers(\n applyMiddleware(/*logger,*/ thunk)\n // other store enhancers if any\n )\n)\n\nexport default store\n","/**\n * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { Amplify } from '../Amplify';\n/**\n * Provides a means to registering a service worker in the browser\n * and communicating with it via postMessage events.\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/\n *\n * postMessage events are currently not supported in all browsers. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API\n *\n * At the minmum this class will register the service worker and listen\n * and attempt to dispatch messages on state change and record analytics\n * events based on the service worker lifecycle.\n */\n\nvar ServiceWorkerClass =\n/** @class */\nfunction () {\n function ServiceWorkerClass() {\n // The AWS Amplify logger\n this._logger = new Logger('ServiceWorker');\n }\n\n Object.defineProperty(ServiceWorkerClass.prototype, \"serviceWorker\", {\n /**\n * Get the currently active service worker\n */\n get: function get() {\n return this._serviceWorker;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Register the service-worker.js file in the browser\n * Make sure the service-worker.js is part of the build\n * for example with Angular, modify the angular-cli.json file\n * and add to \"assets\" array \"service-worker.js\"\n * @param {string} - (optional) Service worker file. Defaults to \"/service-worker.js\"\n * @param {string} - (optional) The service worker scope. Defaults to \"/\"\n * - API Doc: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register\n * @returns {Promise}\n *\t- resolve(ServiceWorkerRegistration)\n *\t- reject(Error)\n **/\n\n ServiceWorkerClass.prototype.register = function (filePath, scope) {\n var _this = this;\n\n if (filePath === void 0) {\n filePath = '/service-worker.js';\n }\n\n if (scope === void 0) {\n scope = '/';\n }\n\n this._logger.debug(\"registering \" + filePath);\n\n this._logger.debug(\"registering service worker with scope \" + scope);\n\n return new Promise(function (resolve, reject) {\n if (navigator && 'serviceWorker' in navigator) {\n navigator.serviceWorker.register(filePath, {\n scope: scope\n }).then(function (registration) {\n if (registration.installing) {\n _this._serviceWorker = registration.installing;\n } else if (registration.waiting) {\n _this._serviceWorker = registration.waiting;\n } else if (registration.active) {\n _this._serviceWorker = registration.active;\n }\n\n _this._registration = registration;\n\n _this._setupListeners();\n\n _this._logger.debug(\"Service Worker Registration Success: \" + registration);\n\n return resolve(registration);\n }).catch(function (error) {\n _this._logger.debug(\"Service Worker Registration Failed \" + error);\n\n return reject(error);\n });\n } else {\n return reject(new Error('Service Worker not available'));\n }\n });\n };\n /**\n * Enable web push notifications. If not subscribed, a new subscription will\n * be created and registered.\n * \tTest Push Server: https://web-push-codelab.glitch.me/\n * \tPush Server Libraries: https://github.com/web-push-libs/\n * \tAPI Doc: https://developers.google.com/web/fundamentals/codelabs/push-notifications/\n * @param publicKey\n * @returns {Promise}\n * \t- resolve(PushSubscription)\n * - reject(Error)\n */\n\n\n ServiceWorkerClass.prototype.enablePush = function (publicKey) {\n var _this = this;\n\n if (!this._registration) throw new Error('Service Worker not registered');\n this._publicKey = publicKey;\n return new Promise(function (resolve, reject) {\n if (browserOrNode().isBrowser) {\n _this._registration.pushManager.getSubscription().then(function (subscription) {\n if (subscription) {\n _this._subscription = subscription;\n\n _this._logger.debug(\"User is subscribed to push: \" + JSON.stringify(subscription));\n\n resolve(subscription);\n } else {\n _this._logger.debug(\"User is NOT subscribed to push\");\n\n return _this._registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: _this._urlB64ToUint8Array(publicKey)\n }).then(function (subscription) {\n _this._subscription = subscription;\n\n _this._logger.debug(\"User subscribed: \" + JSON.stringify(subscription));\n\n resolve(subscription);\n }).catch(function (error) {\n _this._logger.error(error);\n });\n }\n });\n } else {\n return reject(new Error('Service Worker not available'));\n }\n });\n };\n /**\n * Convert a base64 encoded string to a Uint8 array for the push server key\n * @param base64String\n */\n\n\n ServiceWorkerClass.prototype._urlB64ToUint8Array = function (base64String) {\n var padding = '='.repeat((4 - base64String.length % 4) % 4);\n var base64 = (base64String + padding).replace(/\\-/g, '+').replace(/_/g, '/');\n var rawData = window.atob(base64);\n var outputArray = new Uint8Array(rawData.length);\n\n for (var i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n\n return outputArray;\n };\n /**\n * Send a message to the service worker. The service worker needs\n * to implement `self.addEventListener('message') to handle the\n * message. This ***currently*** does not work in Safari or IE.\n * @param {object | string} - An arbitrary JSON object or string message to send to the service worker\n *\t- see: https://developer.mozilla.org/en-US/docs/Web/API/Transferable\n * @returns {Promise}\n **/\n\n\n ServiceWorkerClass.prototype.send = function (message) {\n if (this._serviceWorker) {\n this._serviceWorker.postMessage(typeof message === 'object' ? JSON.stringify(message) : message);\n }\n };\n /**\n * Listen for service worker state change and message events\n * https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state\n **/\n\n\n ServiceWorkerClass.prototype._setupListeners = function () {\n var _this = this;\n\n this._serviceWorker.addEventListener('statechange', function (event) {\n var currentState = _this._serviceWorker.state;\n\n _this._logger.debug(\"ServiceWorker statechange: \" + currentState);\n\n if (Amplify.Analytics && typeof Amplify.Analytics.record === 'function') {\n Amplify.Analytics.record({\n name: 'ServiceWorker',\n attributes: {\n state: currentState\n }\n });\n }\n });\n\n this._serviceWorker.addEventListener('message', function (event) {\n _this._logger.debug(\"ServiceWorker message event: \" + event);\n });\n };\n\n return ServiceWorkerClass;\n}();\n\nexport { ServiceWorkerClass };\n/**\n * @deprecated use named import\n */\n\nexport default ServiceWorkerClass;","/*\n * Copyright 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 { Amplify, ServiceWorker } from '@aws-amplify/core';\nimport { Auth } from '@aws-amplify/auth';\nimport Cache from '@aws-amplify/cache';\n/** Always importing Auth when users import Amplify such that\n for unauthenticated access (no sign in and sign up),\n users don't have to import Auth explicitly **/\n\nAmplify.Auth = Auth;\nAmplify.Cache = Cache;\nAmplify.ServiceWorker = ServiceWorker;\nexport { Analytics, AWSPinpointProvider, AWSKinesisProvider, AWSKinesisFirehoseProvider, AmazonPersonalizeProvider } from '@aws-amplify/analytics';\nexport { Auth } from '@aws-amplify/auth';\nexport { Storage, StorageClass } from '@aws-amplify/storage';\nexport { API, APIClass, graphqlOperation } from '@aws-amplify/api';\nexport { AuthModeStrategyType, DataStore, Predicates, SortDirection, syncExpression } from '@aws-amplify/datastore';\nexport { PubSub } from '@aws-amplify/pubsub';\nexport { default as Cache } from '@aws-amplify/cache';\nexport { Interactions } from '@aws-amplify/interactions';\nexport * from '@aws-amplify/ui';\nexport { XR } from '@aws-amplify/xr';\nexport { Predictions } from '@aws-amplify/predictions';\nexport { ConsoleLogger as Logger, Hub, JS, ClientDevice, Signer, I18n, ServiceWorker, AWSCloudWatchProvider } from '@aws-amplify/core';\nexport { withSSRContext } from './withSSRContext';\nexport { Geo } from '@aws-amplify/geo';\nexport { Amplify };\n/**\n * @deprecated use named import\n */\n\nexport default Amplify;","/*\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('ClientDevice_Browser');\nexport function clientInfo() {\n if (typeof window === 'undefined') {\n return {};\n }\n\n return browserClientInfo();\n}\n\nfunction browserClientInfo() {\n if (typeof window === 'undefined') {\n logger.warn('No window object available to get browser client info');\n return {};\n }\n\n var nav = window.navigator;\n\n if (!nav) {\n logger.warn('No navigator object available to get browser client info');\n return {};\n }\n\n var platform = nav.platform,\n product = nav.product,\n vendor = nav.vendor,\n userAgent = nav.userAgent,\n language = nav.language;\n var type = browserType(userAgent);\n var timezone = browserTimezone();\n return {\n platform: platform,\n make: product || vendor,\n model: type.type,\n version: type.version,\n appVersion: [type.type, type.version].join('/'),\n language: language,\n timezone: timezone\n };\n}\n\nexport function dimension() {\n if (typeof window === 'undefined') {\n logger.warn('No window object available to get browser client info');\n return {\n width: 320,\n height: 320\n };\n }\n\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n}\n\nfunction browserTimezone() {\n var tzMatch = /\\(([A-Za-z\\s].*)\\)/.exec(new Date().toString());\n return tzMatch ? tzMatch[1] || '' : '';\n}\n\nexport function browserType(userAgent) {\n var operaMatch = /.+(Opera[\\s[A-Z]*|OPR[\\sA-Z]*)\\/([0-9\\.]+).*/i.exec(userAgent);\n\n if (operaMatch) {\n return {\n type: operaMatch[1],\n version: operaMatch[2]\n };\n }\n\n var ieMatch = /.+(Trident|Edge)\\/([0-9\\.]+).*/i.exec(userAgent);\n\n if (ieMatch) {\n return {\n type: ieMatch[1],\n version: ieMatch[2]\n };\n }\n\n var cfMatch = /.+(Chrome|Firefox|FxiOS)\\/([0-9\\.]+).*/i.exec(userAgent);\n\n if (cfMatch) {\n return {\n type: cfMatch[1],\n version: cfMatch[2]\n };\n }\n\n var sMatch = /.+(Safari)\\/([0-9\\.]+).*/i.exec(userAgent);\n\n if (sMatch) {\n return {\n type: sMatch[1],\n version: sMatch[2]\n };\n }\n\n var awkMatch = /.+(AppleWebKit)\\/([0-9\\.]+).*/i.exec(userAgent);\n\n if (awkMatch) {\n return {\n type: awkMatch[1],\n version: awkMatch[2]\n };\n }\n\n var anyMatch = /.*([A-Z]+)\\/([0-9\\.]+).*/i.exec(userAgent);\n\n if (anyMatch) {\n return {\n type: anyMatch[1],\n version: anyMatch[2]\n };\n }\n\n return {\n type: '',\n version: ''\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 { clientInfo, dimension } from './browser';\n\nvar ClientDevice =\n/** @class */\nfunction () {\n function ClientDevice() {}\n\n ClientDevice.clientInfo = function () {\n return clientInfo();\n };\n\n ClientDevice.dimension = function () {\n return dimension();\n };\n\n return ClientDevice;\n}();\n\nexport { ClientDevice };\n/**\n * @deprecated use named import\n */\n\nexport default ClientDevice;","import { __assign } from \"tslib\";\nexport var GetJourneyDateRangeKpiRequest;\n\n(function (GetJourneyDateRangeKpiRequest) {\n GetJourneyDateRangeKpiRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetJourneyDateRangeKpiRequest || (GetJourneyDateRangeKpiRequest = {}));\n\nexport var JourneyDateRangeKpiResponse;\n\n(function (JourneyDateRangeKpiResponse) {\n JourneyDateRangeKpiResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(JourneyDateRangeKpiResponse || (JourneyDateRangeKpiResponse = {}));\n\nexport var GetJourneyDateRangeKpiResponse;\n\n(function (GetJourneyDateRangeKpiResponse) {\n GetJourneyDateRangeKpiResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetJourneyDateRangeKpiResponse || (GetJourneyDateRangeKpiResponse = {}));\n\nexport var GetJourneyExecutionActivityMetricsRequest;\n\n(function (GetJourneyExecutionActivityMetricsRequest) {\n GetJourneyExecutionActivityMetricsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetJourneyExecutionActivityMetricsRequest || (GetJourneyExecutionActivityMetricsRequest = {}));\n\nexport var JourneyExecutionActivityMetricsResponse;\n\n(function (JourneyExecutionActivityMetricsResponse) {\n JourneyExecutionActivityMetricsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(JourneyExecutionActivityMetricsResponse || (JourneyExecutionActivityMetricsResponse = {}));\n\nexport var GetJourneyExecutionActivityMetricsResponse;\n\n(function (GetJourneyExecutionActivityMetricsResponse) {\n GetJourneyExecutionActivityMetricsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetJourneyExecutionActivityMetricsResponse || (GetJourneyExecutionActivityMetricsResponse = {}));\n\nexport var GetJourneyExecutionMetricsRequest;\n\n(function (GetJourneyExecutionMetricsRequest) {\n GetJourneyExecutionMetricsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetJourneyExecutionMetricsRequest || (GetJourneyExecutionMetricsRequest = {}));\n\nexport var JourneyExecutionMetricsResponse;\n\n(function (JourneyExecutionMetricsResponse) {\n JourneyExecutionMetricsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(JourneyExecutionMetricsResponse || (JourneyExecutionMetricsResponse = {}));\n\nexport var GetJourneyExecutionMetricsResponse;\n\n(function (GetJourneyExecutionMetricsResponse) {\n GetJourneyExecutionMetricsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetJourneyExecutionMetricsResponse || (GetJourneyExecutionMetricsResponse = {}));\n\nexport var GetPushTemplateRequest;\n\n(function (GetPushTemplateRequest) {\n GetPushTemplateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetPushTemplateRequest || (GetPushTemplateRequest = {}));\n\nexport var PushNotificationTemplateResponse;\n\n(function (PushNotificationTemplateResponse) {\n PushNotificationTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PushNotificationTemplateResponse || (PushNotificationTemplateResponse = {}));\n\nexport var GetPushTemplateResponse;\n\n(function (GetPushTemplateResponse) {\n GetPushTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetPushTemplateResponse || (GetPushTemplateResponse = {}));\n\nexport var GetRecommenderConfigurationRequest;\n\n(function (GetRecommenderConfigurationRequest) {\n GetRecommenderConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetRecommenderConfigurationRequest || (GetRecommenderConfigurationRequest = {}));\n\nexport var GetRecommenderConfigurationResponse;\n\n(function (GetRecommenderConfigurationResponse) {\n GetRecommenderConfigurationResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetRecommenderConfigurationResponse || (GetRecommenderConfigurationResponse = {}));\n\nexport var GetRecommenderConfigurationsRequest;\n\n(function (GetRecommenderConfigurationsRequest) {\n GetRecommenderConfigurationsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetRecommenderConfigurationsRequest || (GetRecommenderConfigurationsRequest = {}));\n\nexport var ListRecommenderConfigurationsResponse;\n\n(function (ListRecommenderConfigurationsResponse) {\n ListRecommenderConfigurationsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListRecommenderConfigurationsResponse || (ListRecommenderConfigurationsResponse = {}));\n\nexport var GetRecommenderConfigurationsResponse;\n\n(function (GetRecommenderConfigurationsResponse) {\n GetRecommenderConfigurationsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetRecommenderConfigurationsResponse || (GetRecommenderConfigurationsResponse = {}));\n\nexport var GetSegmentRequest;\n\n(function (GetSegmentRequest) {\n GetSegmentRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentRequest || (GetSegmentRequest = {}));\n\nexport var GetSegmentResponse;\n\n(function (GetSegmentResponse) {\n GetSegmentResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentResponse || (GetSegmentResponse = {}));\n\nexport var GetSegmentExportJobsRequest;\n\n(function (GetSegmentExportJobsRequest) {\n GetSegmentExportJobsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentExportJobsRequest || (GetSegmentExportJobsRequest = {}));\n\nexport var GetSegmentExportJobsResponse;\n\n(function (GetSegmentExportJobsResponse) {\n GetSegmentExportJobsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentExportJobsResponse || (GetSegmentExportJobsResponse = {}));\n\nexport var GetSegmentImportJobsRequest;\n\n(function (GetSegmentImportJobsRequest) {\n GetSegmentImportJobsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentImportJobsRequest || (GetSegmentImportJobsRequest = {}));\n\nexport var GetSegmentImportJobsResponse;\n\n(function (GetSegmentImportJobsResponse) {\n GetSegmentImportJobsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentImportJobsResponse || (GetSegmentImportJobsResponse = {}));\n\nexport var GetSegmentsRequest;\n\n(function (GetSegmentsRequest) {\n GetSegmentsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentsRequest || (GetSegmentsRequest = {}));\n\nexport var SegmentsResponse;\n\n(function (SegmentsResponse) {\n SegmentsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SegmentsResponse || (SegmentsResponse = {}));\n\nexport var GetSegmentsResponse;\n\n(function (GetSegmentsResponse) {\n GetSegmentsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentsResponse || (GetSegmentsResponse = {}));\n\nexport var GetSegmentVersionRequest;\n\n(function (GetSegmentVersionRequest) {\n GetSegmentVersionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentVersionRequest || (GetSegmentVersionRequest = {}));\n\nexport var GetSegmentVersionResponse;\n\n(function (GetSegmentVersionResponse) {\n GetSegmentVersionResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentVersionResponse || (GetSegmentVersionResponse = {}));\n\nexport var GetSegmentVersionsRequest;\n\n(function (GetSegmentVersionsRequest) {\n GetSegmentVersionsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentVersionsRequest || (GetSegmentVersionsRequest = {}));\n\nexport var GetSegmentVersionsResponse;\n\n(function (GetSegmentVersionsResponse) {\n GetSegmentVersionsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSegmentVersionsResponse || (GetSegmentVersionsResponse = {}));\n\nexport var GetSmsChannelRequest;\n\n(function (GetSmsChannelRequest) {\n GetSmsChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSmsChannelRequest || (GetSmsChannelRequest = {}));\n\nexport var GetSmsChannelResponse;\n\n(function (GetSmsChannelResponse) {\n GetSmsChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSmsChannelResponse || (GetSmsChannelResponse = {}));\n\nexport var GetSmsTemplateRequest;\n\n(function (GetSmsTemplateRequest) {\n GetSmsTemplateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSmsTemplateRequest || (GetSmsTemplateRequest = {}));\n\nexport var SMSTemplateResponse;\n\n(function (SMSTemplateResponse) {\n SMSTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SMSTemplateResponse || (SMSTemplateResponse = {}));\n\nexport var GetSmsTemplateResponse;\n\n(function (GetSmsTemplateResponse) {\n GetSmsTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetSmsTemplateResponse || (GetSmsTemplateResponse = {}));\n\nexport var GetUserEndpointsRequest;\n\n(function (GetUserEndpointsRequest) {\n GetUserEndpointsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetUserEndpointsRequest || (GetUserEndpointsRequest = {}));\n\nexport var GetUserEndpointsResponse;\n\n(function (GetUserEndpointsResponse) {\n GetUserEndpointsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetUserEndpointsResponse || (GetUserEndpointsResponse = {}));\n\nexport var GetVoiceChannelRequest;\n\n(function (GetVoiceChannelRequest) {\n GetVoiceChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetVoiceChannelRequest || (GetVoiceChannelRequest = {}));\n\nexport var GetVoiceChannelResponse;\n\n(function (GetVoiceChannelResponse) {\n GetVoiceChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetVoiceChannelResponse || (GetVoiceChannelResponse = {}));\n\nexport var GetVoiceTemplateRequest;\n\n(function (GetVoiceTemplateRequest) {\n GetVoiceTemplateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetVoiceTemplateRequest || (GetVoiceTemplateRequest = {}));\n\nexport var VoiceTemplateResponse;\n\n(function (VoiceTemplateResponse) {\n VoiceTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(VoiceTemplateResponse || (VoiceTemplateResponse = {}));\n\nexport var GetVoiceTemplateResponse;\n\n(function (GetVoiceTemplateResponse) {\n GetVoiceTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetVoiceTemplateResponse || (GetVoiceTemplateResponse = {}));\n\nexport var JourneysResponse;\n\n(function (JourneysResponse) {\n JourneysResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(JourneysResponse || (JourneysResponse = {}));\n\nexport var JourneyStateRequest;\n\n(function (JourneyStateRequest) {\n JourneyStateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(JourneyStateRequest || (JourneyStateRequest = {}));\n\nexport var ListJourneysRequest;\n\n(function (ListJourneysRequest) {\n ListJourneysRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListJourneysRequest || (ListJourneysRequest = {}));\n\nexport var ListJourneysResponse;\n\n(function (ListJourneysResponse) {\n ListJourneysResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListJourneysResponse || (ListJourneysResponse = {}));\n\nexport var TemplateResponse;\n\n(function (TemplateResponse) {\n TemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TemplateResponse || (TemplateResponse = {}));\n\nexport var TemplateVersionResponse;\n\n(function (TemplateVersionResponse) {\n TemplateVersionResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TemplateVersionResponse || (TemplateVersionResponse = {}));\n\nexport var ListTagsForResourceRequest;\n\n(function (ListTagsForResourceRequest) {\n ListTagsForResourceRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListTagsForResourceRequest || (ListTagsForResourceRequest = {}));\n\nexport var TagsModel;\n\n(function (TagsModel) {\n TagsModel.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TagsModel || (TagsModel = {}));\n\nexport var ListTagsForResourceResponse;\n\n(function (ListTagsForResourceResponse) {\n ListTagsForResourceResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListTagsForResourceResponse || (ListTagsForResourceResponse = {}));\n\nexport var ListTemplatesRequest;\n\n(function (ListTemplatesRequest) {\n ListTemplatesRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListTemplatesRequest || (ListTemplatesRequest = {}));\n\nexport var TemplatesResponse;\n\n(function (TemplatesResponse) {\n TemplatesResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TemplatesResponse || (TemplatesResponse = {}));\n\nexport var ListTemplatesResponse;\n\n(function (ListTemplatesResponse) {\n ListTemplatesResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListTemplatesResponse || (ListTemplatesResponse = {}));\n\nexport var ListTemplateVersionsRequest;\n\n(function (ListTemplateVersionsRequest) {\n ListTemplateVersionsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListTemplateVersionsRequest || (ListTemplateVersionsRequest = {}));\n\nexport var TemplateVersionsResponse;\n\n(function (TemplateVersionsResponse) {\n TemplateVersionsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TemplateVersionsResponse || (TemplateVersionsResponse = {}));\n\nexport var ListTemplateVersionsResponse;\n\n(function (ListTemplateVersionsResponse) {\n ListTemplateVersionsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListTemplateVersionsResponse || (ListTemplateVersionsResponse = {}));\n\nexport var MessageResult;\n\n(function (MessageResult) {\n MessageResult.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MessageResult || (MessageResult = {}));\n\nexport var MessageRequest;\n\n(function (MessageRequest) {\n MessageRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MessageRequest || (MessageRequest = {}));\n\nexport var MessageResponse;\n\n(function (MessageResponse) {\n MessageResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MessageResponse || (MessageResponse = {}));\n\nexport var NumberValidateRequest;\n\n(function (NumberValidateRequest) {\n NumberValidateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NumberValidateRequest || (NumberValidateRequest = {}));\n\nexport var NumberValidateResponse;\n\n(function (NumberValidateResponse) {\n NumberValidateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NumberValidateResponse || (NumberValidateResponse = {}));\n\nexport var PhoneNumberValidateRequest;\n\n(function (PhoneNumberValidateRequest) {\n PhoneNumberValidateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PhoneNumberValidateRequest || (PhoneNumberValidateRequest = {}));\n\nexport var PhoneNumberValidateResponse;\n\n(function (PhoneNumberValidateResponse) {\n PhoneNumberValidateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PhoneNumberValidateResponse || (PhoneNumberValidateResponse = {}));\n\nexport var PutEventsRequest;\n\n(function (PutEventsRequest) {\n PutEventsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutEventsRequest || (PutEventsRequest = {}));\n\nexport var PutEventsResponse;\n\n(function (PutEventsResponse) {\n PutEventsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutEventsResponse || (PutEventsResponse = {}));\n\nexport var WriteEventStream;\n\n(function (WriteEventStream) {\n WriteEventStream.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(WriteEventStream || (WriteEventStream = {}));\n\nexport var PutEventStreamRequest;\n\n(function (PutEventStreamRequest) {\n PutEventStreamRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutEventStreamRequest || (PutEventStreamRequest = {}));\n\nexport var PutEventStreamResponse;\n\n(function (PutEventStreamResponse) {\n PutEventStreamResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutEventStreamResponse || (PutEventStreamResponse = {}));\n\nexport var UpdateAttributesRequest;\n\n(function (UpdateAttributesRequest) {\n UpdateAttributesRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateAttributesRequest || (UpdateAttributesRequest = {}));\n\nexport var RemoveAttributesRequest;\n\n(function (RemoveAttributesRequest) {\n RemoveAttributesRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RemoveAttributesRequest || (RemoveAttributesRequest = {}));\n\nexport var RemoveAttributesResponse;\n\n(function (RemoveAttributesResponse) {\n RemoveAttributesResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RemoveAttributesResponse || (RemoveAttributesResponse = {}));\n\nexport var SendMessagesRequest;\n\n(function (SendMessagesRequest) {\n SendMessagesRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SendMessagesRequest || (SendMessagesRequest = {}));\n\nexport var SendMessagesResponse;\n\n(function (SendMessagesResponse) {\n SendMessagesResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SendMessagesResponse || (SendMessagesResponse = {}));\n\nexport var SendUsersMessageRequest;\n\n(function (SendUsersMessageRequest) {\n SendUsersMessageRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SendUsersMessageRequest || (SendUsersMessageRequest = {}));\n\nexport var SendUsersMessagesRequest;\n\n(function (SendUsersMessagesRequest) {\n SendUsersMessagesRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SendUsersMessagesRequest || (SendUsersMessagesRequest = {}));\n\nexport var SendUsersMessageResponse;\n\n(function (SendUsersMessageResponse) {\n SendUsersMessageResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SendUsersMessageResponse || (SendUsersMessageResponse = {}));\n\nexport var SendUsersMessagesResponse;\n\n(function (SendUsersMessagesResponse) {\n SendUsersMessagesResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SendUsersMessagesResponse || (SendUsersMessagesResponse = {}));\n\nexport var TagResourceRequest;\n\n(function (TagResourceRequest) {\n TagResourceRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TagResourceRequest || (TagResourceRequest = {}));\n\nexport var UntagResourceRequest;\n\n(function (UntagResourceRequest) {\n UntagResourceRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UntagResourceRequest || (UntagResourceRequest = {}));\n\nexport var UpdateAdmChannelRequest;\n\n(function (UpdateAdmChannelRequest) {\n UpdateAdmChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateAdmChannelRequest || (UpdateAdmChannelRequest = {}));\n\nexport var UpdateAdmChannelResponse;\n\n(function (UpdateAdmChannelResponse) {\n UpdateAdmChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateAdmChannelResponse || (UpdateAdmChannelResponse = {}));\n\nexport var UpdateApnsChannelRequest;\n\n(function (UpdateApnsChannelRequest) {\n UpdateApnsChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApnsChannelRequest || (UpdateApnsChannelRequest = {}));\n\nexport var UpdateApnsChannelResponse;\n\n(function (UpdateApnsChannelResponse) {\n UpdateApnsChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApnsChannelResponse || (UpdateApnsChannelResponse = {}));\n\nexport var UpdateApnsSandboxChannelRequest;\n\n(function (UpdateApnsSandboxChannelRequest) {\n UpdateApnsSandboxChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApnsSandboxChannelRequest || (UpdateApnsSandboxChannelRequest = {}));\n\nexport var UpdateApnsSandboxChannelResponse;\n\n(function (UpdateApnsSandboxChannelResponse) {\n UpdateApnsSandboxChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApnsSandboxChannelResponse || (UpdateApnsSandboxChannelResponse = {}));\n\nexport var UpdateApnsVoipChannelRequest;\n\n(function (UpdateApnsVoipChannelRequest) {\n UpdateApnsVoipChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApnsVoipChannelRequest || (UpdateApnsVoipChannelRequest = {}));\n\nexport var UpdateApnsVoipChannelResponse;\n\n(function (UpdateApnsVoipChannelResponse) {\n UpdateApnsVoipChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApnsVoipChannelResponse || (UpdateApnsVoipChannelResponse = {}));\n\nexport var UpdateApnsVoipSandboxChannelRequest;\n\n(function (UpdateApnsVoipSandboxChannelRequest) {\n UpdateApnsVoipSandboxChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApnsVoipSandboxChannelRequest || (UpdateApnsVoipSandboxChannelRequest = {}));\n\nexport var UpdateApnsVoipSandboxChannelResponse;\n\n(function (UpdateApnsVoipSandboxChannelResponse) {\n UpdateApnsVoipSandboxChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApnsVoipSandboxChannelResponse || (UpdateApnsVoipSandboxChannelResponse = {}));\n\nexport var WriteApplicationSettingsRequest;\n\n(function (WriteApplicationSettingsRequest) {\n WriteApplicationSettingsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(WriteApplicationSettingsRequest || (WriteApplicationSettingsRequest = {}));\n\nexport var UpdateApplicationSettingsRequest;\n\n(function (UpdateApplicationSettingsRequest) {\n UpdateApplicationSettingsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApplicationSettingsRequest || (UpdateApplicationSettingsRequest = {}));\n\nexport var UpdateApplicationSettingsResponse;\n\n(function (UpdateApplicationSettingsResponse) {\n UpdateApplicationSettingsResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateApplicationSettingsResponse || (UpdateApplicationSettingsResponse = {}));\n\nexport var UpdateBaiduChannelRequest;\n\n(function (UpdateBaiduChannelRequest) {\n UpdateBaiduChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateBaiduChannelRequest || (UpdateBaiduChannelRequest = {}));\n\nexport var UpdateBaiduChannelResponse;\n\n(function (UpdateBaiduChannelResponse) {\n UpdateBaiduChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateBaiduChannelResponse || (UpdateBaiduChannelResponse = {}));\n\nexport var UpdateCampaignRequest;\n\n(function (UpdateCampaignRequest) {\n UpdateCampaignRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateCampaignRequest || (UpdateCampaignRequest = {}));\n\nexport var UpdateCampaignResponse;\n\n(function (UpdateCampaignResponse) {\n UpdateCampaignResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateCampaignResponse || (UpdateCampaignResponse = {}));\n\nexport var UpdateEmailChannelRequest;\n\n(function (UpdateEmailChannelRequest) {\n UpdateEmailChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateEmailChannelRequest || (UpdateEmailChannelRequest = {}));\n\nexport var UpdateEmailChannelResponse;\n\n(function (UpdateEmailChannelResponse) {\n UpdateEmailChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateEmailChannelResponse || (UpdateEmailChannelResponse = {}));\n\nexport var UpdateEmailTemplateRequest;\n\n(function (UpdateEmailTemplateRequest) {\n UpdateEmailTemplateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateEmailTemplateRequest || (UpdateEmailTemplateRequest = {}));\n\nexport var UpdateEmailTemplateResponse;\n\n(function (UpdateEmailTemplateResponse) {\n UpdateEmailTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateEmailTemplateResponse || (UpdateEmailTemplateResponse = {}));\n\nexport var UpdateEndpointRequest;\n\n(function (UpdateEndpointRequest) {\n UpdateEndpointRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateEndpointRequest || (UpdateEndpointRequest = {}));\n\nexport var UpdateEndpointResponse;\n\n(function (UpdateEndpointResponse) {\n UpdateEndpointResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateEndpointResponse || (UpdateEndpointResponse = {}));\n\nexport var UpdateEndpointsBatchRequest;\n\n(function (UpdateEndpointsBatchRequest) {\n UpdateEndpointsBatchRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateEndpointsBatchRequest || (UpdateEndpointsBatchRequest = {}));\n\nexport var UpdateEndpointsBatchResponse;\n\n(function (UpdateEndpointsBatchResponse) {\n UpdateEndpointsBatchResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateEndpointsBatchResponse || (UpdateEndpointsBatchResponse = {}));\n\nexport var UpdateGcmChannelRequest;\n\n(function (UpdateGcmChannelRequest) {\n UpdateGcmChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateGcmChannelRequest || (UpdateGcmChannelRequest = {}));\n\nexport var UpdateGcmChannelResponse;\n\n(function (UpdateGcmChannelResponse) {\n UpdateGcmChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateGcmChannelResponse || (UpdateGcmChannelResponse = {}));\n\nexport var UpdateJourneyRequest;\n\n(function (UpdateJourneyRequest) {\n UpdateJourneyRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateJourneyRequest || (UpdateJourneyRequest = {}));\n\nexport var UpdateJourneyResponse;\n\n(function (UpdateJourneyResponse) {\n UpdateJourneyResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateJourneyResponse || (UpdateJourneyResponse = {}));\n\nexport var UpdateJourneyStateRequest;\n\n(function (UpdateJourneyStateRequest) {\n UpdateJourneyStateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateJourneyStateRequest || (UpdateJourneyStateRequest = {}));\n\nexport var UpdateJourneyStateResponse;\n\n(function (UpdateJourneyStateResponse) {\n UpdateJourneyStateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateJourneyStateResponse || (UpdateJourneyStateResponse = {}));\n\nexport var UpdatePushTemplateRequest;\n\n(function (UpdatePushTemplateRequest) {\n UpdatePushTemplateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdatePushTemplateRequest || (UpdatePushTemplateRequest = {}));\n\nexport var UpdatePushTemplateResponse;\n\n(function (UpdatePushTemplateResponse) {\n UpdatePushTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdatePushTemplateResponse || (UpdatePushTemplateResponse = {}));\n\nexport var UpdateRecommenderConfigurationShape;\n\n(function (UpdateRecommenderConfigurationShape) {\n UpdateRecommenderConfigurationShape.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateRecommenderConfigurationShape || (UpdateRecommenderConfigurationShape = {}));\n\nexport var UpdateRecommenderConfigurationRequest;\n\n(function (UpdateRecommenderConfigurationRequest) {\n UpdateRecommenderConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateRecommenderConfigurationRequest || (UpdateRecommenderConfigurationRequest = {}));\n\nexport var UpdateRecommenderConfigurationResponse;\n\n(function (UpdateRecommenderConfigurationResponse) {\n UpdateRecommenderConfigurationResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateRecommenderConfigurationResponse || (UpdateRecommenderConfigurationResponse = {}));\n\nexport var UpdateSegmentRequest;\n\n(function (UpdateSegmentRequest) {\n UpdateSegmentRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateSegmentRequest || (UpdateSegmentRequest = {}));\n\nexport var UpdateSegmentResponse;\n\n(function (UpdateSegmentResponse) {\n UpdateSegmentResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateSegmentResponse || (UpdateSegmentResponse = {}));\n\nexport var SMSChannelRequest;\n\n(function (SMSChannelRequest) {\n SMSChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SMSChannelRequest || (SMSChannelRequest = {}));\n\nexport var UpdateSmsChannelRequest;\n\n(function (UpdateSmsChannelRequest) {\n UpdateSmsChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateSmsChannelRequest || (UpdateSmsChannelRequest = {}));\n\nexport var UpdateSmsChannelResponse;\n\n(function (UpdateSmsChannelResponse) {\n UpdateSmsChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateSmsChannelResponse || (UpdateSmsChannelResponse = {}));\n\nexport var UpdateSmsTemplateRequest;\n\n(function (UpdateSmsTemplateRequest) {\n UpdateSmsTemplateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateSmsTemplateRequest || (UpdateSmsTemplateRequest = {}));\n\nexport var UpdateSmsTemplateResponse;\n\n(function (UpdateSmsTemplateResponse) {\n UpdateSmsTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateSmsTemplateResponse || (UpdateSmsTemplateResponse = {}));\n\nexport var TemplateActiveVersionRequest;\n\n(function (TemplateActiveVersionRequest) {\n TemplateActiveVersionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TemplateActiveVersionRequest || (TemplateActiveVersionRequest = {}));\n\nexport var UpdateTemplateActiveVersionRequest;\n\n(function (UpdateTemplateActiveVersionRequest) {\n UpdateTemplateActiveVersionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateTemplateActiveVersionRequest || (UpdateTemplateActiveVersionRequest = {}));\n\nexport var UpdateTemplateActiveVersionResponse;\n\n(function (UpdateTemplateActiveVersionResponse) {\n UpdateTemplateActiveVersionResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateTemplateActiveVersionResponse || (UpdateTemplateActiveVersionResponse = {}));\n\nexport var VoiceChannelRequest;\n\n(function (VoiceChannelRequest) {\n VoiceChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(VoiceChannelRequest || (VoiceChannelRequest = {}));\n\nexport var UpdateVoiceChannelRequest;\n\n(function (UpdateVoiceChannelRequest) {\n UpdateVoiceChannelRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateVoiceChannelRequest || (UpdateVoiceChannelRequest = {}));\n\nexport var UpdateVoiceChannelResponse;\n\n(function (UpdateVoiceChannelResponse) {\n UpdateVoiceChannelResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateVoiceChannelResponse || (UpdateVoiceChannelResponse = {}));\n\nexport var UpdateVoiceTemplateRequest;\n\n(function (UpdateVoiceTemplateRequest) {\n UpdateVoiceTemplateRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateVoiceTemplateRequest || (UpdateVoiceTemplateRequest = {}));\n\nexport var UpdateVoiceTemplateResponse;\n\n(function (UpdateVoiceTemplateResponse) {\n UpdateVoiceTemplateResponse.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(UpdateVoiceTemplateResponse || (UpdateVoiceTemplateResponse = {}));","import { __extends } from \"tslib\";\nimport { PutEventsRequest, PutEventsResponse } from \"../models/models_1\";\nimport { deserializeAws_restJson1PutEventsCommand, serializeAws_restJson1PutEventsCommand } from \"../protocols/Aws_restJson1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Creates a new event to record for endpoints, or creates or updates endpoint data that existing events are associated with.

\n */\n\nvar PutEventsCommand =\n/** @class */\nfunction (_super) {\n __extends(PutEventsCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function PutEventsCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\n\n PutEventsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"PinpointClient\";\n var commandName = \"PutEventsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PutEventsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: PutEventsResponse.filterSensitiveLog\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n\n PutEventsCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1PutEventsCommand(input, context);\n };\n\n PutEventsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1PutEventsCommand(output, context);\n };\n\n return PutEventsCommand;\n}($Command);\n\nexport { PutEventsCommand };","import { __extends } from \"tslib\";\nimport { UpdateEndpointRequest, UpdateEndpointResponse } from \"../models/models_1\";\nimport { deserializeAws_restJson1UpdateEndpointCommand, serializeAws_restJson1UpdateEndpointCommand } from \"../protocols/Aws_restJson1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Creates a new endpoint for an application or updates the settings and attributes of an existing endpoint for an application. You can also use this operation to define custom attributes for an endpoint. If an update includes one or more values for a custom attribute, Amazon Pinpoint replaces (overwrites) any existing values with the new values.

\n */\n\nvar UpdateEndpointCommand =\n/** @class */\nfunction (_super) {\n __extends(UpdateEndpointCommand, _super); // Start section: command_properties\n // End section: command_properties\n\n\n function UpdateEndpointCommand(input) {\n var _this = // Start section: command_constructor\n _super.call(this) || this;\n\n _this.input = input;\n return _this; // End section: command_constructor\n }\n /**\n * @internal\n */\n\n\n UpdateEndpointCommand.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 = \"PinpointClient\";\n var commandName = \"UpdateEndpointCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: UpdateEndpointRequest.filterSensitiveLog,\n outputFilterSensitiveLog: UpdateEndpointResponse.filterSensitiveLog\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n\n UpdateEndpointCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1UpdateEndpointCommand(input, context);\n };\n\n UpdateEndpointCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1UpdateEndpointCommand(output, context);\n };\n\n return UpdateEndpointCommand;\n}($Command);\n\nexport { UpdateEndpointCommand };","import { __assign } from \"tslib\"; // Partition default templates\n\nvar AWS_TEMPLATE = \"pinpoint.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"pinpoint.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"pinpoint.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"pinpoint.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"pinpoint.{region}.amazonaws.com\"; // Partition regions\n\nvar AWS_REGIONS = new Set([\"af-south-1\", \"ap-east-1\", \"ap-northeast-1\", \"ap-northeast-2\", \"ap-south-1\", \"ap-southeast-1\", \"ap-southeast-2\", \"ca-central-1\", \"eu-central-1\", \"eu-north-1\", \"eu-south-1\", \"eu-west-1\", \"eu-west-2\", \"eu-west-3\", \"me-south-1\", \"sa-east-1\", \"us-east-1\", \"us-east-2\", \"us-west-1\", \"us-west-2\"]);\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 defaultRegionInfoProvider(region, options) {\n var regionInfo = undefined;\n\n switch (region) {\n // First, try to match exact region names.\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"pinpoint.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n break;\n\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"pinpoint.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n break;\n\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"pinpoint.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n break;\n\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"pinpoint.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n break;\n\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"pinpoint.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n break;\n\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"pinpoint.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n break;\n\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"pinpoint.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n break;\n\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"pinpoint.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n break;\n\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"pinpoint.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n break;\n\n case \"fips-us-east-1\":\n regionInfo = {\n hostname: \"pinpoint-fips.us-east-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\"\n };\n break;\n\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"pinpoint-fips.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\"\n };\n break;\n\n case \"fips-us-west-2\":\n regionInfo = {\n hostname: \"pinpoint-fips.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\"\n };\n break;\n\n case \"us-east-1\":\n regionInfo = {\n hostname: \"pinpoint.us-east-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\"\n };\n break;\n\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"pinpoint.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\"\n };\n break;\n\n case \"us-west-2\":\n regionInfo = {\n hostname: \"pinpoint.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\"\n };\n break;\n // Next, try to match partition endpoints.\n\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\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\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\"\n };\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\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 signingService: \"mobiletargeting\"\n };\n } // Finally, assume it's an AWS partition endpoint.\n\n\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n signingService: \"mobiletargeting\"\n };\n }\n\n }\n\n return Promise.resolve(__assign({\n signingService: \"mobiletargeting\"\n }, regionInfo));\n};","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\n\nexport var ClientSharedValues = {\n apiVersion: \"2016-12-01\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"Pinpoint\",\n urlParser: parseUrl\n};","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 */\n\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), {\n runtime: \"browser\",\n base64Decoder: fromBase64,\n base64Encoder: toBase64,\n bodyLengthChecker: calculateBodyLength,\n credentialDefaultProvider: function credentialDefaultProvider(_) {\n return function () {\n return Promise.reject(new Error(\"Credential is missing\"));\n };\n },\n defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version\n }),\n maxAttempts: DEFAULT_MAX_ATTEMPTS,\n region: invalidProvider(\"Region is missing\"),\n requestHandler: new FetchHttpHandler(),\n sha256: Sha256,\n streamCollector: streamCollector,\n utf8Decoder: fromUtf8,\n utf8Encoder: toUtf8\n});","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig } from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client } from \"@aws-sdk/smithy-client\";\n/**\n *

Doc Engage API - Amazon Pinpoint API

\n */\n\nvar PinpointClient =\n/** @class */\nfunction (_super) {\n __extends(PinpointClient, _super);\n\n function PinpointClient(configuration) {\n var _this = this;\n\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n\n var _config_1 = resolveRegionConfig(_config_0);\n\n var _config_2 = resolveEndpointsConfig(_config_1);\n\n var _config_3 = resolveAwsAuthConfig(_config_2);\n\n var _config_4 = resolveRetryConfig(_config_3);\n\n var _config_5 = resolveHostHeaderConfig(_config_4);\n\n var _config_6 = resolveUserAgentConfig(_config_5);\n\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n\n return _this;\n }\n\n PinpointClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n\n return PinpointClient;\n}(__Client);\n\nexport { PinpointClient };","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { PutEventsCommand } from '@aws-sdk/client-pinpoint';\nimport { isAppInForeground } from '../utils/AppUtils';\nvar logger = new Logger('EventsBuffer');\nvar RETRYABLE_CODES = [429, 500];\nvar ACCEPTED_CODES = [202];\n\nvar EventsBuffer =\n/** @class */\nfunction () {\n function EventsBuffer(client, config) {\n this._pause = false;\n this._flush = false;\n logger.debug('Instantiating buffer with config:', config);\n this._buffer = [];\n this._client = client;\n this._config = config;\n this._sendBatch = this._sendBatch.bind(this);\n\n this._startLoop();\n }\n\n EventsBuffer.prototype.push = function (event) {\n var _a;\n\n if (this._buffer > this._config.bufferSize) {\n logger.debug('Exceeded analytics events buffer size');\n return event.handlers.reject(new Error('Exceeded the size of analytics events buffer'));\n }\n\n var eventId = event.params.event.eventId;\n var bufferElement = (_a = {}, _a[eventId] = event, _a);\n\n this._buffer.push(bufferElement);\n };\n\n EventsBuffer.prototype.pause = function () {\n this._pause = true;\n };\n\n EventsBuffer.prototype.resume = function () {\n this._pause = false;\n };\n\n EventsBuffer.prototype.updateClient = function (client) {\n this._client = client;\n };\n\n EventsBuffer.prototype.flush = function () {\n this._flush = true;\n };\n\n EventsBuffer.prototype._startLoop = function () {\n if (this._interval) {\n clearInterval(this._interval);\n }\n\n var flushInterval = this._config.flushInterval;\n this._interval = setInterval(this._sendBatch, flushInterval);\n };\n\n EventsBuffer.prototype._sendBatch = function () {\n var bufferLength = this._buffer.length;\n\n if (this._flush && !bufferLength) {\n clearInterval(this._interval);\n } // Do not send the batch of events if\n // the Buffer is paused or is empty or the App is not in the foreground\n // Apps should be in the foreground since\n // the OS may restrict access to the network in the background\n\n\n if (this._pause || !bufferLength || !isAppInForeground()) {\n return;\n }\n\n var flushSize = this._config.flushSize;\n var batchSize = Math.min(flushSize, bufferLength);\n\n var bufferSubset = this._buffer.splice(0, batchSize);\n\n this._putEvents(bufferSubset);\n };\n\n EventsBuffer.prototype._putEvents = function (buffer) {\n return __awaiter(this, void 0, void 0, function () {\n var eventMap, batchEventParams, command, data, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventMap = this._bufferToMap(buffer);\n batchEventParams = this._generateBatchEventParams(eventMap);\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n command = new PutEventsCommand(batchEventParams);\n return [4\n /*yield*/\n , this._client.send(command)];\n\n case 2:\n data = _a.sent();\n\n this._processPutEventsSuccessResponse(data, eventMap);\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n err_1 = _a.sent();\n return [2\n /*return*/\n , this._handlePutEventsFailure(err_1, eventMap)];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n EventsBuffer.prototype._generateBatchEventParams = function (eventMap) {\n var batchEventParams = {\n ApplicationId: '',\n EventsRequest: {\n BatchItem: {}\n }\n };\n Object.values(eventMap).forEach(function (item) {\n var params = item.params;\n var event = params.event,\n timestamp = params.timestamp,\n config = params.config;\n var name = event.name,\n attributes = event.attributes,\n metrics = event.metrics,\n eventId = event.eventId,\n session = event.session;\n var appId = config.appId,\n endpointId = config.endpointId;\n var batchItem = batchEventParams.EventsRequest.BatchItem;\n batchEventParams.ApplicationId = batchEventParams.ApplicationId || appId;\n\n if (!batchItem[endpointId]) {\n batchItem[endpointId] = {\n Endpoint: {},\n Events: {}\n };\n }\n\n batchItem[endpointId].Events[eventId] = {\n EventType: name,\n Timestamp: new Date(timestamp).toISOString(),\n Attributes: attributes,\n Metrics: metrics,\n Session: session\n };\n });\n return batchEventParams;\n };\n\n EventsBuffer.prototype._handlePutEventsFailure = function (err, eventMap) {\n logger.debug('_putEvents Failed: ', err);\n var statusCode = err.$metadata && err.$metadata.httpStatusCode;\n\n if (RETRYABLE_CODES.includes(statusCode)) {\n var retryableEvents = Object.values(eventMap);\n\n this._retry(retryableEvents);\n\n return;\n }\n };\n\n EventsBuffer.prototype._processPutEventsSuccessResponse = function (data, eventMap) {\n var Results = data.EventsResponse.Results;\n var retryableEvents = [];\n Object.entries(Results).forEach(function (_a) {\n var _b = __read(_a, 2),\n endpointId = _b[0],\n endpointValues = _b[1];\n\n var responses = endpointValues.EventsItemResponse;\n Object.entries(responses).forEach(function (_a) {\n var _b, _c;\n\n var _d = __read(_a, 2),\n eventId = _d[0],\n _e = _d[1],\n StatusCode = _e.StatusCode,\n Message = _e.Message;\n\n var eventObject = eventMap[eventId]; // manually crafting handlers response to keep API consistant\n\n var response = {\n EventsResponse: {\n Results: (_b = {}, _b[endpointId] = {\n EventsItemResponse: (_c = {}, _c[eventId] = {\n StatusCode: StatusCode,\n Message: Message\n }, _c)\n }, _b)\n }\n };\n\n if (ACCEPTED_CODES.includes(StatusCode)) {\n eventObject.handlers.resolve(response);\n return;\n }\n\n if (RETRYABLE_CODES.includes(StatusCode)) {\n retryableEvents.push(eventObject);\n return;\n }\n\n var name = eventObject.params.event.name;\n logger.error(\"event \" + eventId + \" : \" + name + \" failed with error: \" + Message);\n return eventObject.handlers.reject(response);\n });\n });\n\n if (retryableEvents.length) {\n this._retry(retryableEvents);\n }\n };\n\n EventsBuffer.prototype._retry = function (retryableEvents) {\n var _a; // retryable events that haven't reached the resendLimit\n\n\n var eligibleEvents = [];\n retryableEvents.forEach(function (event) {\n var _a;\n\n var params = event.params;\n var _b = params.event,\n eventId = _b.eventId,\n name = _b.name;\n\n if (params.resendLimit-- > 0) {\n logger.debug(\"resending event \" + eventId + \" : \" + name + \" with \" + params.resendLimit + \" retry attempts remaining\");\n eligibleEvents.push((_a = {}, _a[eventId] = event, _a));\n return;\n }\n\n logger.debug(\"no retry attempts remaining for event \" + eventId + \" : \" + name);\n }); // add the events to the front of the buffer\n\n (_a = this._buffer).unshift.apply(_a, __spread(eligibleEvents));\n }; // convert buffer to map, i.e. { eventId1: { params, handler }, eventId2: { params, handlers } }\n // this allows us to easily access the handlers after receiving a batch response\n\n\n EventsBuffer.prototype._bufferToMap = function (buffer) {\n return buffer.reduce(function (acc, curVal) {\n var _a = __read(Object.entries(curVal), 1),\n _b = __read(_a[0], 2),\n key = _b[0],\n value = _b[1];\n\n acc[key] = value;\n return acc;\n }, {});\n };\n\n return EventsBuffer;\n}();\n\nexport default EventsBuffer;","/*\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport { ConsoleLogger as Logger, ClientDevice, Credentials, Signer, JS, Hub, getAmplifyUserAgent } from '@aws-amplify/core';\nimport { PinpointClient, PutEventsCommand, UpdateEndpointCommand } from '@aws-sdk/client-pinpoint';\nimport Cache from '@aws-amplify/cache';\nimport { v1 as uuid } from 'uuid';\nimport EventsBuffer from './EventBuffer';\nvar AMPLIFY_SYMBOL = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default';\n\nvar dispatchAnalyticsEvent = function dispatchAnalyticsEvent(event, data) {\n Hub.dispatch('analytics', {\n event: event,\n data: data\n }, 'Analytics', AMPLIFY_SYMBOL);\n};\n\nvar logger = new Logger('AWSPinpointProvider');\nvar RETRYABLE_CODES = [429, 500];\nvar ACCEPTED_CODES = [202];\nvar FORBIDDEN_CODE = 403;\nvar MOBILE_SERVICE_NAME = 'mobiletargeting';\nvar EXPIRED_TOKEN_CODE = 'ExpiredTokenException';\nvar UPDATE_ENDPOINT = '_update_endpoint';\nvar SESSION_START = '_session.start';\nvar SESSION_STOP = '_session.stop';\nvar BEACON_SUPPORTED = typeof navigator !== 'undefined' && navigator && typeof navigator.sendBeacon === 'function'; // events buffer\n\nvar BUFFER_SIZE = 1000;\nvar FLUSH_SIZE = 100;\nvar FLUSH_INTERVAL = 5 * 1000; // 5s\n\nvar RESEND_LIMIT = 5; // params: { event: {name: , .... }, timeStamp, config, resendLimits }\n\nvar AWSPinpointProvider =\n/** @class */\nfunction () {\n function AWSPinpointProvider(config) {\n this._endpointGenerating = true;\n this._endpointUpdateInProgress = false;\n this._buffer = null;\n this._endpointBuffer = [];\n this._config = config ? config : {};\n this._config.bufferSize = this._config.bufferSize || BUFFER_SIZE;\n this._config.flushSize = this._config.flushSize || FLUSH_SIZE;\n this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL;\n this._config.resendLimit = this._config.resendLimit || RESEND_LIMIT;\n this._clientInfo = ClientDevice.clientInfo();\n }\n /**\n * get the category of the plugin\n */\n\n\n AWSPinpointProvider.prototype.getCategory = function () {\n return AWSPinpointProvider.category;\n };\n /**\n * get provider name of the plugin\n */\n\n\n AWSPinpointProvider.prototype.getProviderName = function () {\n return AWSPinpointProvider.providerName;\n };\n /**\n * configure the plugin\n * @param {Object} config - configuration\n */\n\n\n AWSPinpointProvider.prototype.configure = function (config) {\n var _this = this;\n\n logger.debug('configure Analytics', config);\n var conf = config || {};\n this._config = Object.assign({}, this._config, conf); // If autoSessionRecord is enabled, we need to wait for the endpoint to be\n // updated before sending any events. See `sendEvents` in `Analytics.ts`\n\n this._endpointGenerating = !!config['autoSessionRecord'];\n\n if (this._config.appId && !this._config.disabled) {\n if (!this._config.endpointId) {\n var cacheKey = this.getProviderName() + '_' + this._config.appId;\n\n this._getEndpointId(cacheKey).then(function (endpointId) {\n logger.debug('setting endpoint id from the cache', endpointId);\n _this._config.endpointId = endpointId;\n dispatchAnalyticsEvent('pinpointProvider_configured', null);\n }).catch(function (err) {\n logger.debug('Failed to generate endpointId', err);\n });\n } else {\n dispatchAnalyticsEvent('pinpointProvider_configured', null);\n }\n } else {\n this._flushBuffer();\n }\n\n return this._config;\n };\n /**\n * record an event\n * @param {Object} params - the params of an event\n */\n\n\n AWSPinpointProvider.prototype.record = function (params, handlers) {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, timestamp;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('_public record', params);\n return [4\n /*yield*/\n , this._getCredentials()];\n\n case 1:\n credentials = _a.sent();\n\n if (!credentials || !this._config.appId || !this._config.region) {\n logger.debug('cannot send events without credentials, applicationId or region');\n return [2\n /*return*/\n , handlers.reject(new Error('No credentials, applicationId or region'))];\n }\n\n this._initClients(credentials);\n\n timestamp = new Date().getTime(); // attach the session and eventId\n\n this._generateSession(params);\n\n params.event.eventId = uuid();\n Object.assign(params, {\n timestamp: timestamp,\n config: this._config\n });\n\n if (params.event.immediate) {\n return [2\n /*return*/\n , this._send(params, handlers)];\n } else {\n this._putToBuffer(params, handlers);\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AWSPinpointProvider.prototype._sendEndpointUpdate = function (endpointObject) {\n return __awaiter(this, void 0, void 0, function () {\n var next;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this._endpointUpdateInProgress) {\n this._endpointBuffer.push(endpointObject);\n\n return [2\n /*return*/\n ];\n }\n\n this._endpointUpdateInProgress = true;\n return [4\n /*yield*/\n , this._updateEndpoint(endpointObject)];\n\n case 1:\n _a.sent();\n\n next = this._endpointBuffer.shift();\n this._endpointUpdateInProgress = false;\n next && this._sendEndpointUpdate(next);\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * @private\n * @param params - params for event recording\n * Put events into buffer\n */\n\n\n AWSPinpointProvider.prototype._putToBuffer = function (params, handlers) {\n if (params.event.name === UPDATE_ENDPOINT) {\n this._sendEndpointUpdate({\n params: params,\n handlers: handlers\n });\n\n return;\n }\n\n this._buffer && this._buffer.push({\n params: params,\n handlers: handlers\n });\n };\n\n AWSPinpointProvider.prototype._generateSession = function (params) {\n this._sessionId = this._sessionId || uuid();\n var event = params.event;\n\n switch (event.name) {\n case SESSION_START:\n // refresh the session id and session start time\n this._sessionStartTimestamp = new Date().getTime();\n this._sessionId = uuid();\n event.session = {\n Id: this._sessionId,\n StartTimestamp: new Date(this._sessionStartTimestamp).toISOString()\n };\n break;\n\n case SESSION_STOP:\n var stopTimestamp = new Date().getTime();\n this._sessionStartTimestamp = this._sessionStartTimestamp || new Date().getTime();\n this._sessionId = this._sessionId || uuid();\n event.session = {\n Id: this._sessionId,\n Duration: stopTimestamp - this._sessionStartTimestamp,\n StartTimestamp: new Date(this._sessionStartTimestamp).toISOString(),\n StopTimestamp: new Date(stopTimestamp).toISOString()\n };\n this._sessionId = undefined;\n this._sessionStartTimestamp = undefined;\n break;\n\n default:\n this._sessionStartTimestamp = this._sessionStartTimestamp || new Date().getTime();\n this._sessionId = this._sessionId || uuid();\n event.session = {\n Id: this._sessionId,\n StartTimestamp: new Date(this._sessionStartTimestamp).toISOString()\n };\n }\n };\n\n AWSPinpointProvider.prototype._send = function (params, handlers) {\n return __awaiter(this, void 0, void 0, function () {\n var event;\n return __generator(this, function (_a) {\n event = params.event;\n\n switch (event.name) {\n case UPDATE_ENDPOINT:\n return [2\n /*return*/\n , this._updateEndpoint({\n params: params,\n handlers: handlers\n })];\n\n case SESSION_STOP:\n return [2\n /*return*/\n , this._pinpointSendStopSession(params, handlers)];\n\n default:\n return [2\n /*return*/\n , this._pinpointPutEvents(params, handlers)];\n }\n\n return [2\n /*return*/\n ];\n });\n });\n };\n\n AWSPinpointProvider.prototype._generateBatchItemContext = function (params) {\n var _a;\n\n var event = params.event,\n timestamp = params.timestamp,\n config = params.config;\n var name = event.name,\n attributes = event.attributes,\n metrics = event.metrics,\n eventId = event.eventId,\n session = event.session;\n var appId = config.appId,\n endpointId = config.endpointId;\n var endpointContext = {};\n var eventParams = {\n ApplicationId: appId,\n EventsRequest: {\n BatchItem: {}\n }\n };\n var endpointObj = {};\n endpointObj.Endpoint = endpointContext;\n endpointObj.Events = (_a = {}, _a[eventId] = {\n EventType: name,\n Timestamp: new Date(timestamp).toISOString(),\n Attributes: attributes,\n Metrics: metrics,\n Session: session\n }, _a);\n eventParams.EventsRequest.BatchItem[endpointId] = endpointObj;\n return eventParams;\n };\n\n AWSPinpointProvider.prototype._pinpointPutEvents = function (params, handlers) {\n return __awaiter(this, void 0, void 0, function () {\n var eventId, endpointId, eventParams, command, data, _a, _b, _c, StatusCode, Message, err_1;\n\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n eventId = params.event.eventId, endpointId = params.config.endpointId;\n eventParams = this._generateBatchItemContext(params);\n command = new PutEventsCommand(eventParams);\n _d.label = 1;\n\n case 1:\n _d.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this.pinpointClient.send(command)];\n\n case 2:\n data = _d.sent();\n _a = endpointId, _b = eventId, _c = data.EventsResponse.Results[_a].EventsItemResponse[_b], StatusCode = _c.StatusCode, Message = _c.Message;\n\n if (ACCEPTED_CODES.includes(StatusCode)) {\n logger.debug('record event success. ', data);\n return [2\n /*return*/\n , handlers.resolve(data)];\n } else {\n if (RETRYABLE_CODES.includes(StatusCode)) {\n this._retry(params, handlers);\n } else {\n logger.error(\"Event \" + eventId + \" is not accepted, the error is \" + Message);\n return [2\n /*return*/\n , handlers.reject(data)];\n }\n }\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n err_1 = _d.sent();\n\n this._eventError(err_1);\n\n return [2\n /*return*/\n , handlers.reject(err_1)];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AWSPinpointProvider.prototype._pinpointSendStopSession = function (params, handlers) {\n if (!BEACON_SUPPORTED) {\n this._pinpointPutEvents(params, handlers);\n\n return;\n }\n\n var eventParams = this._generateBatchItemContext(params);\n\n var region = this._config.region;\n var ApplicationId = eventParams.ApplicationId,\n EventsRequest = eventParams.EventsRequest;\n var accessInfo = {\n secret_key: this._config.credentials.secretAccessKey,\n access_key: this._config.credentials.accessKeyId,\n session_token: this._config.credentials.sessionToken\n };\n var url = \"https://pinpoint.\" + region + \".amazonaws.com/v1/apps/\" + ApplicationId + \"/events/legacy\";\n var body = JSON.stringify(EventsRequest);\n var method = 'POST';\n var request = {\n url: url,\n body: body,\n method: method\n };\n var serviceInfo = {\n region: region,\n service: MOBILE_SERVICE_NAME\n };\n var requestUrl = Signer.signUrl(request, accessInfo, serviceInfo, null);\n var success = navigator.sendBeacon(requestUrl, body);\n\n if (success) {\n return handlers.resolve('sendBeacon success');\n }\n\n return handlers.reject('sendBeacon failure');\n };\n\n AWSPinpointProvider.prototype._retry = function (params, handlers) {\n var resendLimit = params.config.resendLimit; // For backward compatibility\n\n params.resendLimit = typeof params.resendLimit === 'number' ? params.resendLimit : resendLimit;\n\n if (params.resendLimit-- > 0) {\n logger.debug(\"resending event \" + params.eventName + \" with \" + params.resendLimit + \" retry times left\");\n\n this._pinpointPutEvents(params, handlers);\n } else {\n logger.debug(\"retry times used up for event \" + params.eventName);\n }\n };\n\n AWSPinpointProvider.prototype._updateEndpoint = function (endpointObject) {\n return __awaiter(this, void 0, void 0, function () {\n var params, handlers, config, event, appId, endpointId, request, update_params, command, data, err_2, failureData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n params = endpointObject.params, handlers = endpointObject.handlers;\n config = params.config, event = params.event;\n appId = config.appId, endpointId = config.endpointId;\n request = this._endpointRequest(config, JS.transferKeyToLowerCase(event, [], ['attributes', 'userAttributes', 'Attributes', 'UserAttributes']));\n update_params = {\n ApplicationId: appId,\n EndpointId: endpointId,\n EndpointRequest: request\n };\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n command = new UpdateEndpointCommand(update_params);\n return [4\n /*yield*/\n , this.pinpointClient.send(command)];\n\n case 2:\n data = _a.sent();\n logger.debug('updateEndpoint success', data);\n this._endpointGenerating = false;\n\n this._resumeBuffer();\n\n handlers.resolve(data);\n return [2\n /*return*/\n ];\n\n case 3:\n err_2 = _a.sent();\n failureData = {\n err: err_2,\n update_params: update_params,\n endpointObject: endpointObject\n };\n return [2\n /*return*/\n , this._handleEndpointUpdateFailure(failureData)];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AWSPinpointProvider.prototype._handleEndpointUpdateFailure = function (failureData) {\n return __awaiter(this, void 0, void 0, function () {\n var err, endpointObject, statusCode, exponential;\n return __generator(this, function (_a) {\n err = failureData.err, endpointObject = failureData.endpointObject;\n statusCode = err.$metadata && err.$metadata.httpStatusCode;\n logger.debug('updateEndpoint error', err);\n\n switch (statusCode) {\n case FORBIDDEN_CODE:\n return [2\n /*return*/\n , this._handleEndpointUpdateForbidden(failureData)];\n\n default:\n if (RETRYABLE_CODES.includes(statusCode)) {\n exponential = true;\n return [2\n /*return*/\n , this._retryEndpointUpdate(endpointObject, exponential)];\n }\n\n logger.error('updateEndpoint failed', err);\n endpointObject.handlers.reject(err);\n }\n\n return [2\n /*return*/\n ];\n });\n });\n };\n\n AWSPinpointProvider.prototype._handleEndpointUpdateForbidden = function (failureData) {\n var err = failureData.err,\n endpointObject = failureData.endpointObject;\n var code = err.code,\n retryable = err.retryable;\n\n if (code !== EXPIRED_TOKEN_CODE && !retryable) {\n return endpointObject.handlers.reject(err);\n }\n\n this._retryEndpointUpdate(endpointObject);\n };\n\n AWSPinpointProvider.prototype._retryEndpointUpdate = function (endpointObject, exponential) {\n if (exponential === void 0) {\n exponential = false;\n }\n\n logger.debug('_retryEndpointUpdate', endpointObject);\n var params = endpointObject.params; // TODO: implement retry with exp back off once exp function is available\n\n var resendLimit = params.config.resendLimit;\n params.resendLimit = typeof params.resendLimit === 'number' ? params.resendLimit : resendLimit;\n\n if (params.resendLimit-- > 0) {\n logger.debug(\"resending endpoint update \" + params.event.eventId + \" with \" + params.resendLimit + \" retry attempts remaining\"); // insert at the front of endpointBuffer\n\n this._endpointBuffer.length ? this._endpointBuffer.unshift(endpointObject) : this._updateEndpoint(endpointObject);\n return;\n }\n\n logger.warn(\"resending endpoint update \" + params.event.eventId + \" failed after \" + params.config.resendLimit + \" attempts\");\n\n if (this._endpointGenerating) {\n logger.error('Initial endpoint update failed. ');\n }\n };\n /**\n * @private\n * @param config\n * Init the clients\n */\n\n\n AWSPinpointProvider.prototype._initClients = function (credentials) {\n return __awaiter(this, void 0, void 0, function () {\n var identityId, region;\n return __generator(this, function (_a) {\n logger.debug('init clients');\n\n if (this.pinpointClient && this._config.credentials && this._config.credentials.sessionToken === credentials.sessionToken && this._config.credentials.identityId === credentials.identityId) {\n logger.debug('no change for aws credentials, directly return from init');\n return [2\n /*return*/\n ];\n }\n\n identityId = this._config.credentials ? this._config.credentials.identityId : null;\n this._config.credentials = credentials;\n region = this._config.region;\n logger.debug('init clients with credentials', credentials);\n this.pinpointClient = new PinpointClient({\n region: region,\n credentials: credentials,\n customUserAgent: getAmplifyUserAgent()\n }); // TODO: remove this middleware once a long term fix is implemented by aws-sdk-js team.\n\n this.pinpointClient.middlewareStack.addRelativeTo(function (next) {\n return function (args) {\n delete args.request.headers['amz-sdk-invocation-id'];\n delete args.request.headers['amz-sdk-request'];\n return next(args);\n };\n }, {\n step: 'finalizeRequest',\n relation: 'after',\n toMiddleware: 'retryMiddleware'\n });\n\n if (this._bufferExists() && identityId === credentials.identityId) {\n // if the identity has remained the same, pass the updated client to the buffer\n this._updateBufferClient();\n } else {\n // otherwise flush the buffer and instantiate a new one\n // this will cause the old buffer to send any remaining events\n // with the old credentials and then stop looping and shortly thereafter get picked up by GC\n this._initBuffer();\n }\n\n this._customizePinpointClientReq();\n\n return [2\n /*return*/\n ];\n });\n });\n };\n\n AWSPinpointProvider.prototype._bufferExists = function () {\n return this._buffer && this._buffer instanceof EventsBuffer;\n };\n\n AWSPinpointProvider.prototype._initBuffer = function () {\n if (this._bufferExists()) {\n this._flushBuffer();\n }\n\n this._buffer = new EventsBuffer(this.pinpointClient, this._config); // if the first endpoint update hasn't yet resolved pause the buffer to\n // prevent race conditions. It will be resumed as soon as that request succeeds\n\n if (this._endpointGenerating) {\n this._buffer.pause();\n }\n };\n\n AWSPinpointProvider.prototype._updateBufferClient = function () {\n if (this._bufferExists()) {\n this._buffer.updateClient(this.pinpointClient);\n }\n };\n\n AWSPinpointProvider.prototype._flushBuffer = function () {\n if (this._bufferExists()) {\n this._buffer.flush();\n\n this._buffer = null;\n }\n };\n\n AWSPinpointProvider.prototype._resumeBuffer = function () {\n if (this._bufferExists()) {\n this._buffer.resume();\n }\n };\n\n AWSPinpointProvider.prototype._customizePinpointClientReq = function () {// TODO FIXME: Find a middleware to do this with AWS V3 SDK\n // if (Platform.isReactNative) {\n // \tthis.pinpointClient.customizeRequests(request => {\n // \t\trequest.on('build', req => {\n // \t\t\treq.httpRequest.headers['user-agent'] = Platform.userAgent;\n // \t\t});\n // \t});\n // }\n };\n\n AWSPinpointProvider.prototype._getEndpointId = function (cacheKey) {\n return __awaiter(this, void 0, void 0, function () {\n var endpointId, ttl, expiration;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , Cache.getItem(cacheKey)];\n\n case 1:\n endpointId = _a.sent();\n logger.debug('endpointId from cache', endpointId, 'type', typeof endpointId);\n\n if (!endpointId) {\n endpointId = uuid();\n ttl = 1000 * 60 * 60 * 24 * 365 * 100;\n expiration = new Date().getTime() + ttl;\n Cache.setItem(cacheKey, endpointId, {\n expires: expiration,\n priority: 1\n });\n }\n\n return [2\n /*return*/\n , endpointId];\n }\n });\n });\n };\n /**\n * EndPoint request\n * @return {Object} - The request of updating endpoint\n */\n\n\n AWSPinpointProvider.prototype._endpointRequest = function (config, event) {\n var credentials = config.credentials;\n var clientInfo = this._clientInfo || {};\n var clientContext = config.clientContext || {}; // for now we have three different ways for default endpoint configurations\n // clientInfo\n // clientContext (deprecated)\n // config.endpoint\n\n var defaultEndpointConfig = config.endpoint || {};\n var demographicByClientInfo = {\n appVersion: clientInfo.appVersion,\n make: clientInfo.make,\n model: clientInfo.model,\n modelVersion: clientInfo.version,\n platform: clientInfo.platform\n }; // for backward compatibility\n\n var clientId = clientContext.clientId,\n appTitle = clientContext.appTitle,\n appVersionName = clientContext.appVersionName,\n appVersionCode = clientContext.appVersionCode,\n appPackageName = clientContext.appPackageName,\n demographicByClientContext = __rest(clientContext, [\"clientId\", \"appTitle\", \"appVersionName\", \"appVersionCode\", \"appPackageName\"]);\n\n var channelType = event.address ? clientInfo.platform === 'android' ? 'GCM' : 'APNS' : undefined;\n\n var tmp = __assign(__assign(__assign({\n channelType: channelType,\n requestId: uuid(),\n effectiveDate: new Date().toISOString()\n }, defaultEndpointConfig), event), {\n attributes: __assign(__assign({}, defaultEndpointConfig.attributes), event.attributes),\n demographic: __assign(__assign(__assign(__assign({}, demographicByClientInfo), demographicByClientContext), defaultEndpointConfig.demographic), event.demographic),\n location: __assign(__assign({}, defaultEndpointConfig.location), event.location),\n metrics: __assign(__assign({}, defaultEndpointConfig.metrics), event.metrics),\n user: {\n userId: event.userId || defaultEndpointConfig.userId || credentials.identityId,\n userAttributes: __assign(__assign({}, defaultEndpointConfig.userAttributes), event.userAttributes)\n }\n }); // eliminate unnecessary params\n\n\n var userId = tmp.userId,\n userAttributes = tmp.userAttributes,\n name = tmp.name,\n session = tmp.session,\n eventId = tmp.eventId,\n immediate = tmp.immediate,\n ret = __rest(tmp, [\"userId\", \"userAttributes\", \"name\", \"session\", \"eventId\", \"immediate\"]);\n\n return JS.transferKeyToUpperCase(ret, [], ['metrics', 'userAttributes', 'attributes']);\n };\n\n AWSPinpointProvider.prototype._eventError = function (err) {\n logger.error('record event failed.', err);\n logger.warn(\"Please ensure you have updated your Pinpoint IAM Policy \" + \"with the Action: \\\"mobiletargeting:PutEvents\\\" \" + \"in order to record events\");\n };\n\n AWSPinpointProvider.prototype._getCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, err_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4\n /*yield*/\n , Credentials.get()];\n\n case 1:\n credentials = _a.sent();\n if (!credentials) return [2\n /*return*/\n , null];\n logger.debug('set credentials for analytics', credentials);\n return [2\n /*return*/\n , Credentials.shear(credentials)];\n\n case 2:\n err_3 = _a.sent();\n logger.debug('ensure credentials error', err_3);\n return [2\n /*return*/\n , null];\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n AWSPinpointProvider.category = 'Analytics';\n AWSPinpointProvider.providerName = 'AWSPinpoint';\n return AWSPinpointProvider;\n}();\n\nexport { AWSPinpointProvider };\n/**\n * @deprecated use named import\n */\n\nexport default AWSPinpointProvider;","/*\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 __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),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nvar lists = [];\n\nvar MethodEmbed =\n/** @class */\nfunction () {\n function MethodEmbed(context, methodName) {\n this.context = context;\n this.methodName = methodName;\n this._originalMethod = context[methodName].bind(context);\n }\n\n MethodEmbed.add = function (context, methodName, methodOverride) {\n getInstance(context, methodName).set(methodOverride);\n };\n\n MethodEmbed.remove = function (context, methodName) {\n getInstance(context, methodName).remove();\n };\n\n MethodEmbed.prototype.set = function (methodOverride) {\n var _this = this;\n\n this.context[this.methodName] = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return methodOverride(_this._originalMethod.apply(_this, __spread(args)));\n };\n };\n\n MethodEmbed.prototype.remove = function () {\n this.context[this.methodName] = this._originalMethod;\n };\n\n return MethodEmbed;\n}();\n\nexport { MethodEmbed };\n\nfunction getInstance(context, methodName) {\n var instance = lists.filter(function (h) {\n return h.context === context && h.methodName === methodName;\n })[0];\n\n if (!instance) {\n instance = new MethodEmbed(context, methodName);\n lists.push(instance);\n }\n\n return instance;\n}\n/**\n * @deprecated use named import\n */\n\n\nexport default MethodEmbed;","/*\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 __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { MethodEmbed } from '../utils/MethodEmbed';\nimport { ConsoleLogger as Logger, JS } from '@aws-amplify/core';\nvar logger = new Logger('PageViewTracker');\nvar PREV_URL_KEY = 'aws-amplify-analytics-prevUrl';\n\nvar getUrl = function getUrl() {\n if (!JS.browserOrNode().isBrowser) return '';else return window.location.origin + window.location.pathname;\n};\n\nvar defaultOpts = {\n enable: false,\n provider: 'AWSPinpoint',\n getUrl: getUrl\n};\n\nvar PageViewTracker =\n/** @class */\nfunction () {\n function PageViewTracker(tracker, opts) {\n logger.debug('initialize pageview tracker with opts', opts);\n this._config = Object.assign({}, defaultOpts, opts);\n this._tracker = tracker;\n this._hasEnabled = false;\n this._trackFunc = this._trackFunc.bind(this);\n\n if (this._config.type === 'SPA') {\n this._pageViewTrackSPA();\n } else {\n this._pageViewTrackDefault();\n }\n }\n\n PageViewTracker.prototype.configure = function (opts) {\n Object.assign(this._config, opts); // if spa, need to remove those listeners if disabled\n\n if (this._config.type === 'SPA') {\n this._pageViewTrackSPA();\n }\n\n return this._config;\n };\n\n PageViewTracker.prototype._isSameUrl = function () {\n var prevUrl = sessionStorage.getItem(PREV_URL_KEY);\n\n var curUrl = this._config.getUrl();\n\n if (prevUrl === curUrl) {\n logger.debug('the url is same');\n return true;\n } else return false;\n };\n\n PageViewTracker.prototype._pageViewTrackDefault = function () {\n return __awaiter(this, void 0, void 0, function () {\n var url, customAttrs, _a, attributes;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!JS.browserOrNode().isBrowser || !window.addEventListener || !window.sessionStorage) {\n logger.debug('not in the supported web enviroment');\n return [2\n /*return*/\n ];\n }\n\n url = this._config.getUrl();\n if (!(typeof this._config.attributes === 'function')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this._config.attributes()];\n\n case 1:\n _a = _b.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n\n case 3:\n customAttrs = _a;\n attributes = Object.assign({\n url: url\n }, customAttrs);\n\n if (this._config.enable && !this._isSameUrl()) {\n this._tracker({\n name: this._config.eventName || 'pageView',\n attributes: attributes\n }, this._config.provider).catch(function (e) {\n logger.debug('Failed to record the page view event', e);\n });\n\n sessionStorage.setItem(PREV_URL_KEY, url);\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n PageViewTracker.prototype._trackFunc = function () {\n return __awaiter(this, void 0, void 0, function () {\n var url, customAttrs, _a, attributes;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!JS.browserOrNode().isBrowser || !window.addEventListener || !history.pushState || !window.sessionStorage) {\n logger.debug('not in the supported web enviroment');\n return [2\n /*return*/\n ];\n }\n\n url = this._config.getUrl();\n if (!(typeof this._config.attributes === 'function')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this._config.attributes()];\n\n case 1:\n _a = _b.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n\n case 3:\n customAttrs = _a;\n attributes = Object.assign({\n url: url\n }, customAttrs);\n\n if (!this._isSameUrl()) {\n this._tracker({\n name: this._config.eventName || 'pageView',\n attributes: attributes\n }, this._config.provider).catch(function (e) {\n logger.debug('Failed to record the page view event', e);\n });\n\n sessionStorage.setItem(PREV_URL_KEY, url);\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n PageViewTracker.prototype._pageViewTrackSPA = function () {\n if (!JS.browserOrNode().isBrowser || !window.addEventListener || !history.pushState) {\n logger.debug('not in the supported web enviroment');\n return;\n }\n\n if (this._config.enable && !this._hasEnabled) {\n MethodEmbed.add(history, 'pushState', this._trackFunc);\n MethodEmbed.add(history, 'replaceState', this._trackFunc);\n window.addEventListener('popstate', this._trackFunc);\n\n this._trackFunc();\n\n this._hasEnabled = true;\n } else {\n MethodEmbed.remove(history, 'pushState');\n MethodEmbed.remove(history, 'replaceState');\n window.removeEventListener('popstate', this._trackFunc);\n this._hasEnabled = false;\n }\n };\n\n return PageViewTracker;\n}();\n\nexport { PageViewTracker };\n/**\n * @deprecated use named import\n */\n\nexport default PageViewTracker;","/**\n * Copyright (c) 2017, Philip Walton \n */\nimport { JS } from '@aws-amplify/core';\nvar proto = JS.browserOrNode().isBrowser && window['Element'] ? window['Element'].prototype : null;\nvar nativeMatches = proto ? proto.matches || // @ts-ignore\nproto.matchesSelector || // @ts-ignore\nproto.webkitMatchesSelector || // @ts-ignore\nproto.mozMatchesSelector || // @ts-ignore\nproto.msMatchesSelector || // @ts-ignore\nproto.oMatchesSelector : null;\n/**\n * Tests if a DOM elements matches any of the test DOM elements or selectors.\n * @param {Element} element The DOM element to test.\n * @param {Element|string|Array} test A DOM element, a CSS\n * selector, or an array of DOM elements or CSS selectors to match against.\n * @return {boolean} True of any part of the test matches.\n */\n\nexport function matches(element, test) {\n // Validate input.\n if (element && element.nodeType === 1 && test) {\n // if test is a string or DOM element test it.\n if (typeof test === 'string' || test.nodeType === 1) {\n return element === test || matchesSelector(element,\n /** @type {string} */\n test);\n } else if ('length' in test) {\n // if it has a length property iterate over the items\n // and return true if any match.\n for (var i = 0, item = void 0; item = test[i]; i++) {\n if (element === item || matchesSelector(element, item)) return true;\n }\n }\n } // Still here? Return false\n\n\n return false;\n}\n/**\n * Tests whether a DOM element matches a selector. This polyfills the native\n * Element.prototype.matches method across browsers.\n * @param {!Element} element The DOM element to test.\n * @param {string} selector The CSS selector to test element against.\n * @return {boolean} True if the selector matches.\n */\n\nfunction matchesSelector(element, selector) {\n if (typeof selector !== 'string') return false;\n if (nativeMatches) return nativeMatches.call(element, selector);\n var nodes = element.parentNode.querySelectorAll(selector);\n\n for (var i = 0, node = void 0; node = nodes[i]; i++) {\n if (node === element) return true;\n }\n\n return false;\n}","/**\n * Copyright (c) 2017, Philip Walton \n */\nimport { closest } from './closest';\nimport { matches } from './matches';\n/**\n * Delegates the handling of events for an element matching a selector to an\n * ancestor of the matching element.\n * @param {!Node} ancestor The ancestor element to add the listener to.\n * @param {string} eventType The event type to listen to.\n * @param {string} selector A CSS selector to match against child elements.\n * @param {!Function} callback A function to run any time the event happens.\n * @param {Object=} opts A configuration options object. The available options:\n * - useCapture: If true, bind to the event capture phase.\n * - deep: If true, delegate into shadow trees.\n * @return {Object} The delegate object. It contains a destroy method.\n */\n\nexport function delegate(ancestor, eventType, selector, callback, opts) {\n if (opts === void 0) {\n opts = {};\n } // Defines the event listener.\n\n\n var listener = function listener(event) {\n var delegateTarget; // If opts.composed is true and the event originated from inside a Shadow\n // tree, check the composed path nodes.\n\n if (opts['composed'] && typeof event['composedPath'] === 'function') {\n var composedPath = event.composedPath();\n\n for (var i = 0, node = void 0; node = composedPath[i]; i++) {\n if (node.nodeType === 1 && matches(node, selector)) {\n delegateTarget = node;\n }\n }\n } else {\n // Otherwise check the parents.\n delegateTarget = closest(event.target, selector, true);\n }\n\n if (delegateTarget) {\n callback.call(delegateTarget, event, delegateTarget);\n }\n };\n\n ancestor.addEventListener(eventType, listener, opts['useCapture']);\n return {\n destroy: function destroy() {\n ancestor.removeEventListener(eventType, listener, opts['useCapture']);\n }\n };\n}","/**\n * Copyright (c) 2017, Philip Walton \n */\nimport { matches } from './matches';\nimport { parents } from './parents';\n/**\n * Gets the closest parent element that matches the passed selector.\n * @param {Element} element The element whose parents to check.\n * @param {string} selector The CSS selector to match against.\n * @param {boolean=} shouldCheckSelf True if the selector should test against\n * the passed element itself.\n * @return {Element|undefined} The matching element or undefined.\n */\n\nexport function closest(element, selector, shouldCheckSelf) {\n if (shouldCheckSelf === void 0) {\n shouldCheckSelf = false;\n }\n\n if (!(element && element.nodeType === 1 && selector)) return;\n var parentElements = (shouldCheckSelf ? [element] : []).concat(parents(element));\n\n for (var i = 0, parent_1; parent_1 = parentElements[i]; i++) {\n if (matches(parent_1, selector)) return parent_1;\n }\n}","/**\n * Copyright (c) 2017, Philip Walton \n */\n\n/**\n * Returns an array of a DOM element's parent elements.\n * @param {!Element} element The DOM element whose parents to get.\n * @return {!Array} An array of all parent elemets, or an empty array if no\n * parent elements are found.\n */\nexport function parents(ele) {\n var list = [];\n var element = ele;\n\n while (element && element.parentNode && element.parentNode.nodeType === 1) {\n element =\n /** @type {!Element} */\n element.parentNode;\n list.push(element);\n }\n\n return list;\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 */\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { delegate } from '../vendor/dom-utils';\nimport { ConsoleLogger as Logger, JS } from '@aws-amplify/core';\nvar logger = new Logger('EventTracker');\nvar defaultOpts = {\n enable: false,\n events: ['click'],\n selectorPrefix: 'data-amplify-analytics-',\n provider: 'AWSPinpoint'\n};\n\nvar EventTracker =\n/** @class */\nfunction () {\n function EventTracker(tracker, opts) {\n if (!JS.browserOrNode().isBrowser || !window.addEventListener) {\n logger.debug('not in the supported web environment');\n return;\n }\n\n this._config = Object.assign({}, defaultOpts, opts);\n this._tracker = tracker;\n this._delegates = {};\n this._trackFunc = this._trackFunc.bind(this);\n logger.debug('initialize pageview tracker with opts', this._config);\n this.configure(this._config);\n }\n\n EventTracker.prototype.configure = function (opts) {\n var _this = this;\n\n Object.assign(this._config, opts);\n\n if (!this._config.enable) {\n Object.keys(this._delegates).forEach(function (key) {\n if (typeof _this._delegates[key].destroy === 'function') _this._delegates[key].destroy();\n });\n this._delegates = {};\n } else if (this._config.enable && Object.keys(this._delegates).length === 0) {\n var selector_1 = '[' + this._config.selectorPrefix + 'on]';\n\n this._config.events.forEach(function (evt) {\n _this._delegates[evt] = delegate(document, evt, selector_1, _this._trackFunc, {\n composed: true,\n useCapture: true\n });\n });\n }\n\n return this._config;\n };\n\n EventTracker.prototype._trackFunc = function (event, element) {\n return __awaiter(this, void 0, void 0, function () {\n var customAttrs, events, eventName, attrs, defaultAttrs, _a, attributes;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n customAttrs = {};\n events = element.getAttribute(this._config.selectorPrefix + 'on').split(/\\s*,\\s*/);\n eventName = element.getAttribute(this._config.selectorPrefix + 'name');\n attrs = element.getAttribute(this._config.selectorPrefix + 'attrs');\n\n if (attrs) {\n attrs.split(/\\s*,\\s*/).forEach(function (attr) {\n var tmp = attr.trim().split(/\\s*:\\s*/);\n customAttrs[tmp[0]] = tmp[1];\n });\n }\n\n if (!(typeof this._config.attributes === 'function')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this._config.attributes()];\n\n case 1:\n _a = _b.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n\n case 3:\n defaultAttrs = _a;\n attributes = Object.assign({\n type: event.type,\n target: event.target.localName + \" with id \" + event.target.id\n }, defaultAttrs, customAttrs);\n logger.debug('events needed to be recorded', events);\n logger.debug('attributes needed to be attached', customAttrs);\n\n if (events.indexOf(event.type) < 0) {\n logger.debug(\"event \" + event.type + \" is not selected to be recorded\");\n return [2\n /*return*/\n ];\n }\n\n this._tracker({\n name: eventName || 'event',\n attributes: attributes\n }, this._config.provider).catch(function (e) {\n logger.debug(\"Failed to record the \" + event.type + \" event', \" + e);\n });\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n return EventTracker;\n}();\n\nexport { EventTracker };\n/**\n * @deprecated use named import\n */\n\nexport default EventTracker;","/*\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 __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}; // the session tracker for web\n\n\nimport { ConsoleLogger as Logger, JS } from '@aws-amplify/core';\nvar logger = new Logger('SessionTracker');\nvar defaultOpts = {\n enable: false,\n provider: 'AWSPinpoint'\n};\nvar initialEventSent = false;\n\nvar SessionTracker =\n/** @class */\nfunction () {\n function SessionTracker(tracker, opts) {\n this._config = Object.assign({}, defaultOpts, opts);\n this._tracker = tracker;\n this._hasEnabled = false;\n this._trackFunc = this._trackFunc.bind(this);\n this._trackBeforeUnload = this._trackBeforeUnload.bind(this);\n this.configure(this._config);\n }\n\n SessionTracker.prototype._envCheck = function () {\n if (!JS.browserOrNode().isBrowser) {\n return false;\n }\n\n if (!document || !document.addEventListener) {\n logger.debug('not in the supported web environment');\n return false;\n }\n\n if (typeof document.hidden !== 'undefined') {\n this._hidden = 'hidden';\n this._visibilityChange = 'visibilitychange';\n } else if (typeof document['msHidden'] !== 'undefined') {\n this._hidden = 'msHidden';\n this._visibilityChange = 'msvisibilitychange';\n } else if (typeof document['webkitHidden'] !== 'undefined') {\n this._hidden = 'webkitHidden';\n this._visibilityChange = 'webkitvisibilitychange';\n } else {\n logger.debug('not in the supported web environment');\n return false;\n }\n\n return true;\n };\n\n SessionTracker.prototype._trackFunc = function () {\n return __awaiter(this, void 0, void 0, function () {\n var customAttrs, _a, attributes;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(typeof this._config.attributes === 'function')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this._config.attributes()];\n\n case 1:\n _a = _b.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n\n case 3:\n customAttrs = _a;\n attributes = Object.assign({}, customAttrs);\n\n if (document.visibilityState === this._hidden) {\n this._tracker({\n name: '_session.stop',\n attributes: attributes\n }, this._config.provider).catch(function (e) {\n logger.debug('record session stop event failed.', e);\n });\n } else {\n this._tracker({\n name: '_session.start',\n attributes: attributes\n }, this._config.provider).catch(function (e) {\n logger.debug('record session start event failed.', e);\n });\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n SessionTracker.prototype._trackBeforeUnload = function (event) {\n // before unload callback cannot be async => https://github.com/aws-amplify/amplify-js/issues/2088\n var _this = this;\n\n var customAttrs = typeof this._config.attributes === 'function' ? Promise.resolve(this._config.attributes()) : Promise.resolve(this._config.attributes);\n customAttrs.then(function (custom) {\n var attributes = Object.assign({}, custom);\n\n _this._tracker({\n name: '_session.stop',\n attributes: attributes,\n immediate: true\n }, _this._config.provider).catch(function (e) {\n logger.debug('record session stop event failed.', e);\n });\n });\n }; // to keep configure a synchronized function\n\n\n SessionTracker.prototype._sendInitialEvent = function () {\n return __awaiter(this, void 0, void 0, function () {\n var customAttrs, _a, attributes;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (initialEventSent) {\n logger.debug('the start session has been sent when the page is loaded');\n return [2\n /*return*/\n ];\n } else {\n initialEventSent = true;\n }\n\n if (!(typeof this._config.attributes === 'function')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this._config.attributes()];\n\n case 1:\n _a = _b.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n\n case 3:\n customAttrs = _a;\n attributes = Object.assign({}, customAttrs);\n\n this._tracker({\n name: '_session.start',\n attributes: attributes\n }, this._config.provider).catch(function (e) {\n logger.debug('record session start event failed.', e);\n });\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n SessionTracker.prototype.configure = function (opts) {\n if (!this._envCheck()) {\n return this._config;\n }\n\n Object.assign(this._config, opts);\n\n if (this._config.enable && !this._hasEnabled) {\n // send a start session as soon as it's enabled\n this._sendInitialEvent(); // listen on events\n\n\n document.addEventListener(this._visibilityChange, this._trackFunc, false);\n window.addEventListener('beforeunload', this._trackBeforeUnload, false);\n this._hasEnabled = true;\n } else if (!this._config.enable && this._hasEnabled) {\n document.removeEventListener(this._visibilityChange, this._trackFunc, false);\n window.removeEventListener('beforeunload', this._trackBeforeUnload, false);\n this._hasEnabled = false;\n }\n\n return this._config;\n };\n\n return SessionTracker;\n}();\n\nexport { SessionTracker };\n/**\n * @deprecated use named import\n */\n\nexport default SessionTracker;","/*\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n 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\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Amplify, ConsoleLogger as Logger, Hub, Parser } from '@aws-amplify/core';\nimport { AWSPinpointProvider } from './Providers/AWSPinpointProvider';\nimport { PageViewTracker, EventTracker, SessionTracker } from './trackers';\nvar logger = new Logger('AnalyticsClass');\nvar AMPLIFY_SYMBOL = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default';\n\nvar dispatchAnalyticsEvent = function dispatchAnalyticsEvent(event, data, message) {\n Hub.dispatch('analytics', {\n event: event,\n data: data,\n message: message\n }, 'Analytics', AMPLIFY_SYMBOL);\n};\n\nvar trackers = {\n pageView: PageViewTracker,\n event: EventTracker,\n session: SessionTracker\n};\nvar _instance = null;\n/**\n * Provide mobile analytics client functions\n */\n\nvar AnalyticsClass =\n/** @class */\nfunction () {\n /**\n * Initialize Analtyics\n * @param config - Configuration of the Analytics\n */\n function AnalyticsClass() {\n this._config = {};\n this._pluggables = [];\n this._disabled = false;\n this._trackers = {};\n _instance = this;\n this.record = this.record.bind(this);\n Hub.listen('auth', listener);\n Hub.listen('storage', listener);\n Hub.listen('analytics', listener);\n }\n\n AnalyticsClass.prototype.getModuleName = function () {\n return 'Analytics';\n };\n /**\n * configure Analytics\n * @param {Object} config - Configuration of the Analytics\n */\n\n\n AnalyticsClass.prototype.configure = function (config) {\n var _this = this;\n\n if (!config) return this._config;\n logger.debug('configure Analytics', config);\n var amplifyConfig = Parser.parseMobilehubConfig(config);\n this._config = Object.assign({}, this._config, amplifyConfig.Analytics, config);\n\n if (this._config['disabled']) {\n this._disabled = true;\n } // turn on the autoSessionRecord if not specified\n\n\n if (this._config['autoSessionRecord'] === undefined) {\n this._config['autoSessionRecord'] = true;\n }\n\n this._pluggables.forEach(function (pluggable) {\n // for backward compatibility\n var providerConfig = pluggable.getProviderName() === 'AWSPinpoint' && !_this._config['AWSPinpoint'] ? _this._config : _this._config[pluggable.getProviderName()];\n pluggable.configure(__assign({\n disabled: _this._config['disabled'],\n autoSessionRecord: _this._config['autoSessionRecord']\n }, providerConfig));\n });\n\n if (this._pluggables.length === 0) {\n this.addPluggable(new AWSPinpointProvider());\n }\n\n dispatchAnalyticsEvent('configured', null, \"The Analytics category has been configured successfully\");\n logger.debug('current configuration', this._config);\n return this._config;\n };\n /**\n * add plugin into Analytics category\n * @param {Object} pluggable - an instance of the plugin\n */\n\n\n AnalyticsClass.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategory() === 'Analytics') {\n this._pluggables.push(pluggable); // for backward compatibility\n\n\n var providerConfig = pluggable.getProviderName() === 'AWSPinpoint' && !this._config['AWSPinpoint'] ? this._config : this._config[pluggable.getProviderName()];\n\n var config = __assign({\n disabled: this._config['disabled']\n }, providerConfig);\n\n pluggable.configure(config);\n return config;\n }\n };\n /**\n * Get the plugin object\n * @param providerName - the name of the plugin\n */\n\n\n AnalyticsClass.prototype.getPluggable = function (providerName) {\n for (var i = 0; i < this._pluggables.length; i += 1) {\n var pluggable = this._pluggables[i];\n\n if (pluggable.getProviderName() === providerName) {\n return pluggable;\n }\n }\n\n logger.debug('No plugin found with providerName', providerName);\n return null;\n };\n /**\n * Remove the plugin object\n * @param providerName - the name of the plugin\n */\n\n\n AnalyticsClass.prototype.removePluggable = function (providerName) {\n var idx = 0;\n\n while (idx < this._pluggables.length) {\n if (this._pluggables[idx].getProviderName() === providerName) {\n break;\n }\n\n idx += 1;\n }\n\n if (idx === this._pluggables.length) {\n logger.debug('No plugin found with providerName', providerName);\n return;\n } else {\n this._pluggables.splice(idx, idx + 1);\n\n return;\n }\n };\n /**\n * stop sending events\n */\n\n\n AnalyticsClass.prototype.disable = function () {\n this._disabled = true;\n };\n /**\n * start sending events\n */\n\n\n AnalyticsClass.prototype.enable = function () {\n this._disabled = false;\n };\n /**\n * Record Session start\n * @return - A promise which resolves if buffer doesn't overflow\n */\n\n\n AnalyticsClass.prototype.startSession = function (provider) {\n return __awaiter(this, void 0, void 0, function () {\n var params;\n return __generator(this, function (_a) {\n params = {\n event: {\n name: '_session.start'\n },\n provider: provider\n };\n return [2\n /*return*/\n , this._sendEvent(params)];\n });\n });\n };\n /**\n * Record Session stop\n * @return - A promise which resolves if buffer doesn't overflow\n */\n\n\n AnalyticsClass.prototype.stopSession = function (provider) {\n return __awaiter(this, void 0, void 0, function () {\n var params;\n return __generator(this, function (_a) {\n params = {\n event: {\n name: '_session.stop'\n },\n provider: provider\n };\n return [2\n /*return*/\n , this._sendEvent(params)];\n });\n });\n };\n /**\n * Record one analytic event and send it to Pinpoint\n * @param {String} name - The name of the event\n * @param {Object} [attributes] - Attributes of the event\n * @param {Object} [metrics] - Event metrics\n * @return - A promise which resolves if buffer doesn't overflow\n */\n\n\n AnalyticsClass.prototype.record = function (event, provider, metrics) {\n return __awaiter(this, void 0, void 0, function () {\n var params;\n return __generator(this, function (_a) {\n params = null; // this is just for compatibility, going to be deprecated\n\n if (typeof event === 'string') {\n params = {\n event: {\n name: event,\n attributes: provider,\n metrics: metrics\n },\n provider: 'AWSPinpoint'\n };\n } else {\n params = {\n event: event,\n provider: provider\n };\n }\n\n return [2\n /*return*/\n , this._sendEvent(params)];\n });\n });\n };\n\n AnalyticsClass.prototype.updateEndpoint = function (attrs, provider) {\n return __awaiter(this, void 0, void 0, function () {\n var event;\n return __generator(this, function (_a) {\n event = __assign(__assign({}, attrs), {\n name: '_update_endpoint'\n });\n return [2\n /*return*/\n , this.record(event, provider)];\n });\n });\n };\n\n AnalyticsClass.prototype._sendEvent = function (params) {\n var _this = this;\n\n if (this._disabled) {\n logger.debug('Analytics has been disabled');\n return Promise.resolve();\n }\n\n var provider = params.provider ? params.provider : 'AWSPinpoint';\n return new Promise(function (resolve, reject) {\n _this._pluggables.forEach(function (pluggable) {\n if (pluggable.getProviderName() === provider) {\n pluggable.record(params, {\n resolve: resolve,\n reject: reject\n });\n }\n });\n });\n };\n\n AnalyticsClass.prototype.autoTrack = function (trackerType, opts) {\n if (!trackers[trackerType]) {\n logger.debug('invalid tracker type');\n return;\n } // to sync up two different configuration ways of auto session tracking\n\n\n if (trackerType === 'session') {\n this._config['autoSessionRecord'] = opts['enable'];\n }\n\n var tracker = this._trackers[trackerType];\n\n if (!tracker) {\n this._trackers[trackerType] = new trackers[trackerType](this.record, opts);\n } else {\n tracker.configure(opts);\n }\n };\n\n return AnalyticsClass;\n}();\n\nexport { AnalyticsClass };\nvar endpointUpdated = false;\nvar authConfigured = false;\nvar analyticsConfigured = false;\n\nvar listener = function listener(capsule) {\n var channel = capsule.channel,\n payload = capsule.payload;\n logger.debug('on hub capsule ' + channel, payload);\n\n switch (channel) {\n case 'auth':\n authEvent(payload);\n break;\n\n case 'storage':\n storageEvent(payload);\n break;\n\n case 'analytics':\n analyticsEvent(payload);\n break;\n\n default:\n break;\n }\n};\n\nvar storageEvent = function storageEvent(payload) {\n var _a = payload.data,\n attrs = _a.attrs,\n metrics = _a.metrics;\n if (!attrs) return;\n\n if (analyticsConfigured) {\n _instance.record({\n name: 'Storage',\n attributes: attrs,\n metrics: metrics\n }).catch(function (e) {\n logger.debug('Failed to send the storage event automatically', e);\n });\n }\n};\n\nvar authEvent = function authEvent(payload) {\n var event = payload.event;\n\n if (!event) {\n return;\n }\n\n var recordAuthEvent = function recordAuthEvent(eventName) {\n return __awaiter(void 0, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(authConfigured && analyticsConfigured)) return [3\n /*break*/\n , 4];\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , _instance.record({\n name: \"_userauth.\" + eventName\n })];\n\n case 2:\n return [2\n /*return*/\n , _a.sent()];\n\n case 3:\n err_1 = _a.sent();\n logger.debug(\"Failed to send the \" + eventName + \" event automatically\", err_1);\n return [3\n /*break*/\n , 4];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n switch (event) {\n case 'signIn':\n return recordAuthEvent('sign_in');\n\n case 'signUp':\n return recordAuthEvent('sign_up');\n\n case 'signOut':\n return recordAuthEvent('sign_out');\n\n case 'signIn_failure':\n return recordAuthEvent('auth_fail');\n\n case 'configured':\n authConfigured = true;\n\n if (authConfigured && analyticsConfigured) {\n sendEvents();\n }\n\n break;\n }\n};\n\nvar analyticsEvent = function analyticsEvent(payload) {\n var event = payload.event;\n if (!event) return;\n\n switch (event) {\n case 'pinpointProvider_configured':\n analyticsConfigured = true;\n\n if (authConfigured && analyticsConfigured) {\n sendEvents();\n }\n\n break;\n }\n};\n\nvar sendEvents = function sendEvents() {\n var config = _instance.configure();\n\n if (!endpointUpdated && config['autoSessionRecord']) {\n _instance.updateEndpoint({\n immediate: true\n }).catch(function (e) {\n logger.debug('Failed to update the endpoint', e);\n });\n\n endpointUpdated = true;\n }\n\n _instance.autoTrack('session', {\n enable: config['autoSessionRecord']\n });\n};\n\nexport var Analytics = new AnalyticsClass();\nAmplify.register(Analytics);","import Amplify, { Analytics } from \"aws-amplify\"\nimport currentEnv from \"../../currentEnv\"\n\nexport type EndpointLocation = {\n Latitude?: number\n Longitude?: number\n PostalCode?: string\n City?: string\n Region?: string\n Country?: string\n}\n\nexport type EndpointDemographic = {\n Make?: string\n Model?: string\n ModelVersion?: string\n Timezone?: string\n Locale?: string\n AppVersion?: string\n Platform?: string\n PlatformVersion?: string\n}\n\nexport type EndpointRequest = {\n ChannelType?: \"EMAIL\" | \"SMS\"\n Address?: string\n EndpointStatus?: \"ACTIVE\" | \"INACTIVE\"\n OptOut?: \"ALL\" | \"NONE\"\n RequestId?: string\n Location?: EndpointLocation\n Demographic?: EndpointDemographic\n EffectiveDate?: string\n Attributes?: {\n [k: string]: string[]\n }\n Metrics?: {}\n UserId?: string\n UserAttributes?: {\n [k: string]: string[]\n }\n ApplicationId?: string\n Id?: string\n CohortId?: string\n CreationDate?: string\n}\n\n/**\n * https://docs.amplify.aws/lib/analytics/autotrack/q/platform/js\n */\nexport const analyicsSetup = () => {\n // Session tracking enabled by default\n\n // Save current environment\n Analytics.updateEndpoint({ attributes: { env: [currentEnv] } }).catch((e) => {\n console.log(\"Pinpoint error:\", e)\n })\n\n /**\n * Page View Tracking\n * If you want to track which page/url in your webapp is the most frequently viewed one, you can use this feature.\n * It will automatically send events containing url information when the page is visited.\n */\n Analytics.autoTrack(\"pageView\", {\n // REQUIRED, turn on/off the auto tracking\n enable: true,\n // OPTIONAL, the event name, by default is 'pageView'\n eventName: \"pageView\",\n // OPTIONAL, the attributes of the event, you can either pass an object or a function\n // which allows you to define dynamic attributes\n // attributes: {\n // attr: 'attr'\n // },\n // when using function\n // attributes: () => {\n // const attr = somewhere();\n // return {\n // myAttr: attr\n // }\n // },\n // OPTIONAL, by default is 'multiPageApp'\n // you need to change it to 'SPA' if your app is a single-page app like React\n type: \"SPA\",\n // OPTIONAL, the service provider, by default is the Amazon Pinpoint\n provider: \"AWSPinpoint\",\n // OPTIONAL, to get the current page url\n // getUrl: () => {\n // // the default function\n // return window.location.origin + window.location.pathname;\n // }\n })\n\n /**\n * Page Event Tracking\n * If you want to track user interactions with elements on the page, you can use this feature.\n * All you need to do is attach the specified selectors to your dom element and turn on the auto tracking.\n *\n * \n * \n *\n * When the button above is clicked, an event will be sent automatically and this is equivalent to do:\n * \n *